Source code for static_frame.core.platform
import importlib
import platform as platform_mod
import sys
import typing as tp
import static_frame
from static_frame.core.display import Display
from static_frame.core.series import Series
[docs]class Platform:
[docs] @staticmethod
def to_series() -> Series:
def items() -> tp.Iterator[tp.Tuple[str, tp.Any]]:
yield 'platform', platform_mod.platform()
yield 'sys.version', sys.version.replace('\n', '')
yield 'static-frame', static_frame.__version__
# NOTE: see requirements-extras.txt
for package in (
'numpy',
'pandas',
'xlsxwriter',
'openpyxl',
'xarray',
'tables',
'pyarrow',
'msgpack',
'msgpack_numpy',
):
mod = None
try:
mod = importlib.import_module(package)
except ModuleNotFoundError: #pragma: no cover
yield package, ModuleNotFoundError #pragma: no cover
continue #pragma: no cover
if hasattr(mod, '__version__'):
yield package, mod.__version__
elif hasattr(mod, 'version'): # msgpack
yield package, mod.version
else:
yield package, None
return Series.from_items(items(), name='platform')
[docs] @classmethod
def display(cls) -> Display:
return cls.to_series().display_wide() #type: ignore [no-any-return]