Source code for onyo.lib.faker

from __future__ import annotations

from typing import TYPE_CHECKING

from faker.providers import python

if TYPE_CHECKING:
    from typing import Generator


[docs] class OnyoProvider(python.Provider): r"""Faker Provider for Onyo. Onyo-related provider functions are all prefixed with ``onyo_``. """
[docs] def onyo_asset_dicts(self, num: int = 1, override: dict | None = None) -> Generator[dict, None, None]: r"""Yield asset dictionaries suitable for populating realistic assets.""" if override is None: override = {} for _ in range(num): yield { 'type': next(self.onyo_types()), 'make': next(self.onyo_manufacturers()), 'model': { 'name': self.numerify(text='Wizbang %##!') }, 'serial': self.pystr(min_chars=15), 'keyboard': next(self.onyo_keyboards()), 'display': { 'size': self.numerify(text='%#'), 'resolution': self.numerify(text='%##! x %##!'), 'hz': self.numerify(text='%#!'), }, 'RAM': self.numerify(text='%#!!G'), 'CPU': { 'vendor': next(self.onyo_cpu_vendors()), 'cores': self.numerify(text='%#!'), 'arch': next(self.onyo_cpu_archs()), 'model': self.numerify(text='Speedy % %%##Z'), }, 'disk': { 'size': self.numerify(text='%#!T') }, } | override
[docs] def onyo_cpu_archs(self, num: int = 1) -> Generator[str, None, None]: r"""Yield CPU architectures.""" cpu_archs = ( 'aarch64', 'amd64', 'ppc64', 'x86', ) yield self.random_element(elements=cpu_archs)
[docs] def onyo_cpu_vendors(self, num: int = 1) -> Generator[str, None, None]: r"""Yield CPU vendors.""" cpu_vendors = ( 'amd', 'apple', 'intel', 'ibm', ) yield self.random_element(elements=cpu_vendors)
[docs] def onyo_directories(self, num: int = 1) -> Generator[str, None, None]: r"""Yield directory names. Useful for ``onyo.path.directory``. """ locations = ( 'repair', 'shelf', 'warehouse', 'group', 'group/Accounting', 'group/Creative', 'group/HR', 'group/IT', 'group/Operations', 'group/Purchasing', 'group/Sales', ) for _ in range(num): yield self.random_element(elements=locations)
[docs] def onyo_keyboards(self, num: int = 1) -> Generator[str, None, None]: r"""Yield keyboard layout names.""" keyboards = ( 'azerty', 'qwerty', 'qwertz', 'qzerty', 'qüerty', 'ąžerty', ) yield self.random_element(elements=keyboards)
[docs] def onyo_manufacturers(self, num: int = 1) -> Generator[str, None, None]: r"""Yield manufacturers.""" manufacturers = ( 'apple', 'asus', 'cisco', 'dell', 'eizo', 'framework', 'hp', 'lenovo', 'samsung', 'sun', 'toshiba', 'zebra', ) yield self.random_element(elements=manufacturers)
[docs] def onyo_types(self, num: int = 1) -> Generator[str, None, None]: r"""Yield asset types.""" types = ( 'desktop', 'display', 'laptop', 'pdu', 'server', 'switch', 'ups', ) yield self.random_element(elements=types)