Eventual-Inc / Daft

Distributed DataFrame for Python designed for the cloud, powered by Rust
https://getdaft.io
Apache License 2.0
2.08k stars 141 forks source link

Reduce import daft time to under 100ms #1876

Open samster25 opened 7 months ago

samster25 commented 7 months ago

Daft import time is currently around 1.5 seconds (with all extras). For reference, polars is 30ms and pandas is < 300ms.

Here is a profile of import times produced via

python -X importtime -c "import daft" &> imports.txt
sort -nrk 2 -t '|' imports.txt > sorted_imports.txt

Times:

import time: self [us] | cumulative | imported package
import time:      6777 |     560167 | daft
import time:       121 |     501672 |   daft.dataframe
import time:       866 |     501552 |     daft.dataframe.dataframe
import time:       431 |     458246 |       daft.dataframe.preview
import time:       197 |     457815 |         daft.table
import time:       535 |     457455 |           daft.table.table
import time:       462 |     385727 |             daft.datatype
import time:        82 |     208636 |               ray.data.extensions
import time:       155 |     207765 |                 ray.data
import time:     54389 |     176631 |               ray
import time:       279 |     149399 |                   pandas
import time:       124 |     119187 |                     pandas.core.api
import time:      1124 |      77664 |                 ray._raylet
import time:      3747 |      68015 |             pyarrow
import time:       489 |      66027 |                   ray.exceptions
import time:     13658 |      59425 |               pyarrow.lib
import time:        21 |      54750 |                     ray.util.annotations
import time:       281 |      54730 |                       ray.util
import time:      1460 |      42918 |                 numpy
import time:        68 |      40379 |                       pandas.core.groupby
import time:      1063 |      40312 |                         pandas.core.groupby.generic
import time:       106 |      40095 |                       pandas._libs
import time:       831 |      38974 |                         pandas._libs.interval
import time:       658 |      38846 |       daft.runners.pyrunner
import time:       939 |      37369 |                           pandas._libs.hashtable
import time:      1577 |      37131 |                 ray._private.worker
import time:       567 |      36430 |                             pandas._libs.missing
import time:       326 |      35886 |         daft.execution.physical_plan
import time:     21118 |      35560 |           daft.execution.execution_step
import time:         8 |      35429 |                               pandas._libs.tslibs.nattype
import time:       127 |      35421 |                                 pandas._libs.tslibs
import time:       704 |      34696 |   daft.analytics
import time:      4257 |      34475 |                           pandas.core.frame
import time:       121 |      33317 |                       pandas.core.arrays
import time:       774 |      30181 |                   ray.actor
import time:      1961 |      29865 |                                   pandas._libs.tslibs.conversion
import time:       258 |      29132 |                     ray.util.tracing.tracing_helper
import time:       171 |      28818 |                       ray.runtime_context
import time:        87 |      28648 |                         ray.runtime_env
import time:       108 |      28357 |                         ray.util.accelerators
import time:       124 |      28189 |                           ray.util.accelerators.tpu
import time:       189 |      28065 |                             ray._private.accelerators
import time:       405 |      27963 |                           ray.runtime_env.runtime_env
import time:       119 |      25861 |                         pandas.core.arrays.arrow
import time:      3594 |      24899 |                             pandas.core.generic
import time:       106 |      24363 |                             ray._private.runtime_env.plugin_schema_manager
import time:       156 |      24258 |                               jsonschema
import time:      2474 |      23982 |                                     pandas._libs.tslibs.offsets
import time:       141 |      23139 |                               ray._private.accelerators.tpu
import time:       252 |      22999 |                                 requests
import time:      1537 |      22395 |                   ray.data.dataset
import time:       297 |      22080 |                   numpy.__config__
import time:         8 |      21783 |                     numpy.core._multiarray_umath
import time:       499 |      21775 |                       numpy.core
import time:      3327 |      21007 |                                       pandas._libs.tslibs.timestamps
import time:       364 |      17647 |                   pkg_resources._vendor.packaging.version
import time:       353 |      17537 |                   ray.data._internal.compute
samster25 commented 6 months ago

Ran a script to see what the imported packages are for daft.

>>> import daft
>>> import sys
>>> output = [module.__name__ for module in sys.modules.values() if module]
>>> output = sorted(output)
>>> print('The list of imported Python modules are :',output)
The list of imported Python modules are : 
['PIL',
 'PIL.ExifTags',
 'PIL.Image',
 'PIL.ImageMode',
 'PIL.TiffTags',
 'PIL._binary',
 'PIL._deprecate',
 'PIL._imaging',
 'PIL._util',
 'PIL._version',
 '__future__',
 '__main__',
 '__main__',
 '_abc',
 '_ast',
 '_asyncio',
 '_bisect',
 '_blake2',
 '_bz2',
 '_codecs',
 '_collections',
 '_compat_pickle',
 '_compression',
 '_contextvars',
 '_csv',
 '_ctypes',
 '_cython_0_29_32',
 '_cython_0_29_34',
 '_cython_0_29_36',
 '_cython_3_0_2',
 '_cython_3_0_5',
 '_datetime',
 '_distutils_hack',
 '_elementtree',
 '_functools',
 '_hashlib',
 '_heapq',
 '_imp',
 '_json',
 '_locale',
 '_lzma',
 '_multibytecodec',
 '_opcode',
 '_operator',
 '_osx_support',
 '_pickle',
 '_posixsubprocess',
 '_queue',
 '_random',
 '_scproxy',
 '_sha512',
 '_signal',
 '_sitebuiltins',
 '_socket',
 '_sre',
 '_ssl',
 '_stat',
 '_statistics',
 '_string',
 '_strptime',
 '_struct',
 '_sysconfigdata__darwin_darwin',
 '_thread',
 '_tracemalloc',
 '_typing',
 '_uuid',
 '_warnings',
 '_weakref',
 '_weakrefset',
 '_zoneinfo',
 'abc',
 'array',
 'arrow',
 'arrow._version',
 'arrow.api',
 'arrow.arrow',
 'arrow.constants',
 'arrow.factory',
 'arrow.formatter',
 'arrow.locales',
 'arrow.parser',
 'arrow.util',
 'ast',
 'asyncio',
 'asyncio.base_events',
 'asyncio.base_futures',
 'asyncio.base_subprocess',
 'asyncio.base_tasks',
 'asyncio.constants',
 'asyncio.coroutines',
 'asyncio.events',
 'asyncio.exceptions',
 'asyncio.format_helpers',
 'asyncio.futures',
 'asyncio.locks',
 'asyncio.log',
 'asyncio.mixins',
 'asyncio.protocols',
 'asyncio.queues',
 'asyncio.runners',
 'asyncio.selector_events',
 'asyncio.sslproto',
 'asyncio.staggered',
 'asyncio.streams',
 'asyncio.subprocess',
 'asyncio.taskgroups',
 'asyncio.tasks',
 'asyncio.threads',
 'asyncio.timeouts',
 'asyncio.transports',
 'asyncio.trsock',
 'asyncio.unix_events',
 'atexit',
 'attr',
 'attr._cmp',
 'attr._compat',
 'attr._config',
 'attr._funcs',
 'attr._make',
 'attr._next_gen',
 'attr._version_info',
 'attr.converters',
 'attr.exceptions',
 'attr.filters',
 'attr.setters',
 'attr.validators',
 'attrs',
 'attrs.converters',
 'attrs.exceptions',
 'attrs.filters',
 'attrs.setters',
 'attrs.validators',
 'base64',
 'bdb',
 'binascii',
 'bisect',
 'builtins',
 'bz2',
 'calendar',
 'certifi',
 'certifi.core',
 'cffi',
 'cffi.api',
 'cffi.error',
 'cffi.lock',
 'cffi.model',
 'charset_normalizer',
 'charset_normalizer.api',
 'charset_normalizer.cd',
 'charset_normalizer.constant',
 'charset_normalizer.constant',
 'charset_normalizer.legacy',
 'charset_normalizer.md',
 'charset_normalizer.md__mypyc',
 'charset_normalizer.models',
 'charset_normalizer.utils',
 'charset_normalizer.version',
 'cloudpickle',
 'cloudpickle.cloudpickle',
 'cmath',
 'cmd',
 'code',
 'codecs',
 'codeop',
 'collections',
 'collections.abc',
 'collections.abc',
 'colorama',
 'colorama.ansi',
 'colorama.ansitowin32',
 'colorama.initialise',
 'colorama.win32',
 'colorama.winterm',
 'concurrent',
 'concurrent.futures',
 'concurrent.futures._base',
 'concurrent.futures.thread',
 'configparser',
 'contextlib',
 'contextvars',
 'copy',
 'copyreg',
 'csv',
 'ctypes',
 'ctypes._endian',
 'cython_runtime',
 'daft',
 'daft.analytics',
 'daft.api_annotations',
 'daft.arrow_utils',
 'daft.context',
 'daft.convert',
 'daft.daft',
 'daft.dataframe',
 'daft.dataframe.dataframe',
 'daft.dataframe.preview',
 'daft.datatype',
 'daft.errors',
 'daft.execution',
 'daft.execution.execution_step',
 'daft.execution.physical_plan',
 'daft.expressions',
 'daft.expressions.expressions',
 'daft.expressions.testing',
 'daft.filesystem',
 'daft.internal',
 'daft.internal.gpu',
 'daft.io',
 'daft.io._csv',
 'daft.io._iceberg',
 'daft.io._json',
 'daft.io._parquet',
 'daft.io.common',
 'daft.io.file_path',
 'daft.logical',
 'daft.logical.builder',
 'daft.logical.map_partition_ops',
 'daft.logical.schema',
 'daft.runners',
 'daft.runners.partitioning',
 'daft.runners.profiler',
 'daft.runners.progress_bar',
 'daft.runners.pyrunner',
 'daft.runners.runner',
 'daft.runners.runner_io',
 'daft.series',
 'daft.table',
 'daft.table.micropartition',
 'daft.table.schema_inference',
 'daft.table.table',
 'daft.table.table_io',
 'daft.udf',
 'daft.utils',
 'daft.viz',
 'daft.viz.dataframe_display',
 'daft.viz.html_viz_hooks',
 'dataclasses',
 'datetime',
 'dateutil',
 'dateutil._common',
 'dateutil._version',
 'dateutil.parser',
 'dateutil.parser._parser',
 'dateutil.parser.isoparser',
 'dateutil.relativedelta',
 'dateutil.rrule',
 'dateutil.tz',
 'dateutil.tz._common',
 'dateutil.tz._factories',
 'dateutil.tz.tz',
 'decimal',
 'decimal',
 'defusedxml',
 'defusedxml.ElementTree',
 'defusedxml.common',
 'dis',
 'email',
 'email._encoded_words',
 'email._parseaddr',
 'email._policybase',
 'email.base64mime',
 'email.charset',
 'email.encoders',
 'email.errors',
 'email.feedparser',
 'email.header',
 'email.iterators',
 'email.message',
 'email.parser',
 'email.quoprimime',
 'email.utils',
 'encodings',
 'encodings.aliases',
 'encodings.idna',
 'encodings.raw_unicode_escape',
 'encodings.unicode_escape',
 'encodings.utf_8',
 'enum',
 'errno',
 'faulthandler',
 'fcntl',
 'filelock',
 'filelock._api',
 'filelock._error',
 'filelock._soft',
 'filelock._unix',
 'filelock._util',
 'filelock._windows',
 'filelock.version',
 'fnmatch',
 'fqdn',
 'fqdn._compat',
 'fractions',
 'fsspec',
 'fsspec._version',
 'fsspec.caching',
 'fsspec.callbacks',
 'fsspec.compression',
 'fsspec.config',
 'fsspec.core',
 'fsspec.dircache',
 'fsspec.exceptions',
 'fsspec.implementations',
 'fsspec.implementations.local',
 'fsspec.mapping',
 'fsspec.registry',
 'fsspec.spec',
 'fsspec.transaction',
 'fsspec.utils',
 'functools',
 'gc',
 'genericpath',
 'glob',
 'google',
 'google._upb',
 'google._upb._message',
 'google.cloud',
 'google.logging',
 'google.protobuf',
 'google.protobuf.descriptor',
 'google.protobuf.descriptor_database',
 'google.protobuf.descriptor_pool',
 'google.protobuf.internal',
 'google.protobuf.internal.api_implementation',
 'google.protobuf.internal.containers',
 'google.protobuf.internal.decoder',
 'google.protobuf.internal.encoder',
 'google.protobuf.internal.enum_type_wrapper',
 'google.protobuf.internal.extension_dict',
 'google.protobuf.internal.field_mask',
 'google.protobuf.internal.message_listener',
 'google.protobuf.internal.python_message',
 'google.protobuf.internal.type_checkers',
 'google.protobuf.internal.well_known_types',
 'google.protobuf.internal.wire_format',
 'google.protobuf.json_format',
 'google.protobuf.message',
 'google.protobuf.message_factory',
 'google.protobuf.pyext',
 'google.protobuf.pyext.cpp_message',
 'google.protobuf.reflection',
 'google.protobuf.symbol_database',
 'google.protobuf.text_encoding',
 'google.protobuf.text_format',
 'google.protobuf.unknown_fields',
 'grp',
 'gzip',
 'hashlib',
 'heapq',
 'hmac',
 'html',
 'html.entities',
 'http',
 'http.client',
 'http.client',
 'http.client',
 'http.cookiejar',
 'http.cookies',
 'idna',
 'idna',
 'idna.core',
 'idna.core',
 'idna.idnadata',
 'idna.idnadata',
 'idna.intranges',
 'idna.intranges',
 'idna.package_data',
 'idna.package_data',
 'importlib',
 'importlib._abc',
 'importlib._bootstrap',
 'importlib._bootstrap',
 'importlib._bootstrap_external',
 'importlib._bootstrap_external',
 'importlib.abc',
 'importlib.machinery',
 'importlib.metadata',
 'importlib.metadata._adapters',
 'importlib.metadata._collections',
 'importlib.metadata._functools',
 'importlib.metadata._itertools',
 'importlib.metadata._meta',
 'importlib.metadata._text',
 'importlib.readers',
 'importlib.resources',
 'importlib.resources._adapters',
 'importlib.resources._common',
 'importlib.resources._itertools',
 'importlib.resources._legacy',
 'importlib.resources.abc',
 'importlib.resources.readers',
 'importlib.util',
 'inspect',
 'io',
 'io',
 'ipaddress',
 'isoduration',
 'isoduration.constants',
 'isoduration.formatter',
 'isoduration.formatter.checking',
 'isoduration.formatter.exceptions',
 'isoduration.formatter.formatting',
 'isoduration.operations',
 'isoduration.operations.util',
 'isoduration.parser',
 'isoduration.parser.exceptions',
 'isoduration.parser.parsing',
 'isoduration.parser.util',
 'isoduration.types',
 'itertools',
 'json',
 'json.decoder',
 'json.encoder',
 'json.scanner',
 'jsonpointer',
 'jsonschema',
 'jsonschema._format',
 'jsonschema._keywords',
 'jsonschema._legacy_keywords',
 'jsonschema._types',
 'jsonschema._typing',
 'jsonschema._utils',
 'jsonschema.exceptions',
 'jsonschema.protocols',
 'jsonschema.validators',
 'jsonschema_specifications',
 'jsonschema_specifications._core',
 'keyword',
 'linecache',
 'locale',
 'logging',
 'logging.config',
 'logging.handlers',
 'lzma',
 'marshal',
 'math',
 'mimetypes',
 'mmap',
 'msgpack',
 'msgpack._cmsgpack',
 'msgpack.exceptions',
 'msgpack.ext',
 'multiprocessing',
 'multiprocessing.context',
 'multiprocessing.process',
 'multiprocessing.reduction',
 'ntpath',
 'numbers',
 'numpy',
 'numpy.__config__',
 'numpy._distributor_init',
 'numpy._globals',
 'numpy._pytesttester',
 'numpy._typing',
 'numpy._typing._array_like',
 'numpy._typing._char_codes',
 'numpy._typing._dtype_like',
 'numpy._typing._nbit',
 'numpy._typing._nested_sequence',
 'numpy._typing._scalars',
 'numpy._typing._shape',
 'numpy._utils',
 'numpy._utils._convertions',
 'numpy._utils._inspect',
 'numpy.compat',
 'numpy.compat.py3k',
 'numpy.core',
 'numpy.core._add_newdocs',
 'numpy.core._add_newdocs_scalars',
 'numpy.core._asarray',
 'numpy.core._dtype',
 'numpy.core._dtype_ctypes',
 'numpy.core._exceptions',
 'numpy.core._internal',
 'numpy.core._machar',
 'numpy.core._methods',
 'numpy.core._multiarray_tests',
 'numpy.core._multiarray_umath',
 'numpy.core._string_helpers',
 'numpy.core._type_aliases',
 'numpy.core._ufunc_config',
 'numpy.core.arrayprint',
 'numpy.core.defchararray',
 'numpy.core.einsumfunc',
 'numpy.core.fromnumeric',
 'numpy.core.function_base',
 'numpy.core.getlimits',
 'numpy.core.memmap',
 'numpy.core.multiarray',
 'numpy.core.numeric',
 'numpy.core.numerictypes',
 'numpy.core.overrides',
 'numpy.core.records',
 'numpy.core.shape_base',
 'numpy.core.umath',
 'numpy.ctypeslib',
 'numpy.dtypes',
 'numpy.exceptions',
 'numpy.fft',
 'numpy.fft._pocketfft',
 'numpy.fft._pocketfft_internal',
 'numpy.fft.helper',
 'numpy.lib',
 'numpy.lib._datasource',
 'numpy.lib._iotools',
 'numpy.lib._version',
 'numpy.lib.arraypad',
 'numpy.lib.arraysetops',
 'numpy.lib.arrayterator',
 'numpy.lib.format',
 'numpy.lib.function_base',
 'numpy.lib.histograms',
 'numpy.lib.index_tricks',
 'numpy.lib.mixins',
 'numpy.lib.nanfunctions',
 'numpy.lib.npyio',
 'numpy.lib.polynomial',
 'numpy.lib.scimath',
 'numpy.lib.shape_base',
 'numpy.lib.stride_tricks',
 'numpy.lib.twodim_base',
 'numpy.lib.type_check',
 'numpy.lib.ufunclike',
 'numpy.lib.utils',
 'numpy.linalg',
 'numpy.linalg._umath_linalg',
 'numpy.linalg.linalg',
 'numpy.ma',
 'numpy.ma.core',
 'numpy.ma.extras',
 'numpy.matrixlib',
 'numpy.matrixlib.defmatrix',
 'numpy.polynomial',
 'numpy.polynomial._polybase',
 'numpy.polynomial.chebyshev',
 'numpy.polynomial.hermite',
 'numpy.polynomial.hermite_e',
 'numpy.polynomial.laguerre',
 'numpy.polynomial.legendre',
 'numpy.polynomial.polynomial',
 'numpy.polynomial.polyutils',
 'numpy.random',
 'numpy.random._bounded_integers',
 'numpy.random._common',
 'numpy.random._generator',
 'numpy.random._mt19937',
 'numpy.random._pcg64',
 'numpy.random._philox',
 'numpy.random._pickle',
 'numpy.random._sfc64',
 'numpy.random.bit_generator',
 'numpy.random.mtrand',
 'numpy.version',
 'opcode',
 'operator',
 'os',
 'packaging',
 'packaging._structures',
 'packaging.version',
 'pandas',
 'pandas._config',
 'pandas._config.config',
 'pandas._config.dates',
 'pandas._config.display',
 'pandas._config.localization',
 'pandas._libs',
 'pandas._libs.algos',
 'pandas._libs.arrays',
 'pandas._libs.groupby',
 'pandas._libs.hashtable',
 'pandas._libs.index',
 'pandas._libs.indexing',
 'pandas._libs.internals',
 'pandas._libs.interval',
 'pandas._libs.join',
 'pandas._libs.json',
 'pandas._libs.lib',
 'pandas._libs.missing',
 'pandas._libs.ops',
 'pandas._libs.ops_dispatch',
 'pandas._libs.pandas_datetime',
 'pandas._libs.pandas_parser',
 'pandas._libs.parsers',
 'pandas._libs.properties',
 'pandas._libs.reshape',
 'pandas._libs.sparse',
 'pandas._libs.testing',
 'pandas._libs.tslib',
 'pandas._libs.tslibs',
 'pandas._libs.tslibs.base',
 'pandas._libs.tslibs.ccalendar',
 'pandas._libs.tslibs.conversion',
 'pandas._libs.tslibs.dtypes',
 'pandas._libs.tslibs.fields',
 'pandas._libs.tslibs.nattype',
 'pandas._libs.tslibs.np_datetime',
 'pandas._libs.tslibs.offsets',
 'pandas._libs.tslibs.parsing',
 'pandas._libs.tslibs.period',
 'pandas._libs.tslibs.strptime',
 'pandas._libs.tslibs.timedeltas',
 'pandas._libs.tslibs.timestamps',
 'pandas._libs.tslibs.timezones',
 'pandas._libs.tslibs.tzconversion',
 'pandas._libs.tslibs.vectorized',
 'pandas._libs.window',
 'pandas._libs.window.aggregations',
 'pandas._libs.window.indexers',
 'pandas._libs.writers',
 'pandas._testing',
 'pandas._testing._io',
 'pandas._testing._warnings',
 'pandas._testing.asserters',
 'pandas._testing.compat',
 'pandas._testing.contexts',
 'pandas._typing',
 'pandas._version_meson',
 'pandas.api',
 'pandas.api.extensions',
 'pandas.api.indexers',
 'pandas.api.interchange',
 'pandas.api.types',
 'pandas.api.typing',
 'pandas.arrays',
 'pandas.compat',
 'pandas.compat._constants',
 'pandas.compat._optional',
 'pandas.compat.compressors',
 'pandas.compat.numpy',
 'pandas.compat.numpy.function',
 'pandas.compat.pickle_compat',
 'pandas.compat.pyarrow',
 'pandas.core',
 'pandas.core._numba',
 'pandas.core._numba.executor',
 'pandas.core.accessor',
 'pandas.core.algorithms',
 'pandas.core.api',
 'pandas.core.apply',
 'pandas.core.array_algos',
 'pandas.core.array_algos.datetimelike_accumulations',
 'pandas.core.array_algos.masked_accumulations',
 'pandas.core.array_algos.masked_reductions',
 'pandas.core.array_algos.putmask',
 'pandas.core.array_algos.quantile',
 'pandas.core.array_algos.replace',
 'pandas.core.array_algos.take',
 'pandas.core.array_algos.transforms',
 'pandas.core.arraylike',
 'pandas.core.arrays',
 'pandas.core.arrays._arrow_string_mixins',
 'pandas.core.arrays._mixins',
 'pandas.core.arrays._ranges',
 'pandas.core.arrays.arrow',
 'pandas.core.arrays.arrow._arrow_utils',
 'pandas.core.arrays.arrow.array',
 'pandas.core.arrays.base',
 'pandas.core.arrays.boolean',
 'pandas.core.arrays.categorical',
 'pandas.core.arrays.datetimelike',
 'pandas.core.arrays.datetimes',
 'pandas.core.arrays.floating',
 'pandas.core.arrays.integer',
 'pandas.core.arrays.interval',
 'pandas.core.arrays.masked',
 'pandas.core.arrays.numeric',
 'pandas.core.arrays.numpy_',
 'pandas.core.arrays.period',
 'pandas.core.arrays.sparse',
 'pandas.core.arrays.sparse.accessor',
 'pandas.core.arrays.sparse.array',
 'pandas.core.arrays.string_',
 'pandas.core.arrays.string_arrow',
 'pandas.core.arrays.timedeltas',
 'pandas.core.base',
 'pandas.core.common',
 'pandas.core.computation',
 'pandas.core.computation.align',
 'pandas.core.computation.api',
 'pandas.core.computation.check',
 'pandas.core.computation.common',
 'pandas.core.computation.engines',
 'pandas.core.computation.eval',
 'pandas.core.computation.expr',
 'pandas.core.computation.expressions',
 'pandas.core.computation.ops',
 'pandas.core.computation.parsing',
 'pandas.core.computation.pytables',
 'pandas.core.computation.scope',
 'pandas.core.config_init',
 'pandas.core.construction',
 'pandas.core.dtypes',
 'pandas.core.dtypes.api',
 'pandas.core.dtypes.astype',
 'pandas.core.dtypes.base',
 'pandas.core.dtypes.cast',
 'pandas.core.dtypes.common',
 'pandas.core.dtypes.concat',
 'pandas.core.dtypes.dtypes',
 'pandas.core.dtypes.generic',
 'pandas.core.dtypes.inference',
 'pandas.core.dtypes.missing',
 'pandas.core.flags',
 'pandas.core.frame',
 'pandas.core.generic',
 'pandas.core.groupby',
 'pandas.core.groupby.base',
 'pandas.core.groupby.categorical',
 'pandas.core.groupby.generic',
 'pandas.core.groupby.groupby',
 'pandas.core.groupby.grouper',
 'pandas.core.groupby.indexing',
 'pandas.core.groupby.numba_',
 'pandas.core.groupby.ops',
 'pandas.core.indexers',
 'pandas.core.indexers.objects',
 'pandas.core.indexers.utils',
 'pandas.core.indexes',
 'pandas.core.indexes.accessors',
 'pandas.core.indexes.api',
 'pandas.core.indexes.base',
 'pandas.core.indexes.category',
 'pandas.core.indexes.datetimelike',
 'pandas.core.indexes.datetimes',
 'pandas.core.indexes.extension',
 'pandas.core.indexes.frozen',
 'pandas.core.indexes.interval',
 'pandas.core.indexes.multi',
 'pandas.core.indexes.period',
 'pandas.core.indexes.range',
 'pandas.core.indexes.timedeltas',
 'pandas.core.indexing',
 'pandas.core.interchange',
 'pandas.core.interchange.dataframe_protocol',
 'pandas.core.interchange.from_dataframe',
 'pandas.core.interchange.utils',
 'pandas.core.internals',
 'pandas.core.internals.api',
 'pandas.core.internals.array_manager',
 'pandas.core.internals.base',
 'pandas.core.internals.blocks',
 'pandas.core.internals.concat',
 'pandas.core.internals.construction',
 'pandas.core.internals.managers',
 'pandas.core.internals.ops',
 'pandas.core.methods',
 'pandas.core.methods.describe',
 'pandas.core.methods.selectn',
 'pandas.core.missing',
 'pandas.core.nanops',
 'pandas.core.ops',
 'pandas.core.ops.array_ops',
 'pandas.core.ops.common',
 'pandas.core.ops.dispatch',
 'pandas.core.ops.docstrings',
 'pandas.core.ops.invalid',
 'pandas.core.ops.mask_ops',
 'pandas.core.ops.missing',
 'pandas.core.resample',
 'pandas.core.reshape',
 'pandas.core.reshape.api',
 'pandas.core.reshape.concat',
 'pandas.core.reshape.encoding',
 'pandas.core.reshape.melt',
 'pandas.core.reshape.merge',
 'pandas.core.reshape.pivot',
 'pandas.core.reshape.tile',
 'pandas.core.reshape.util',
 'pandas.core.roperator',
 'pandas.core.sample',
 'pandas.core.series',
 'pandas.core.shared_docs',
 'pandas.core.sorting',
 'pandas.core.strings',
 'pandas.core.strings.accessor',
 'pandas.core.strings.base',
 'pandas.core.strings.object_array',
 'pandas.core.tools',
 'pandas.core.tools.datetimes',
 'pandas.core.tools.numeric',
 'pandas.core.tools.timedeltas',
 'pandas.core.tools.times',
 'pandas.core.util',
 'pandas.core.util.numba_',
 'pandas.core.window',
 'pandas.core.window.common',
 'pandas.core.window.doc',
 'pandas.core.window.ewm',
 'pandas.core.window.expanding',
 'pandas.core.window.numba_',
 'pandas.core.window.online',
 'pandas.core.window.rolling',
 'pandas.errors',
 'pandas.io',
 'pandas.io._util',
 'pandas.io.api',
 'pandas.io.clipboards',
 'pandas.io.common',
 'pandas.io.excel',
 'pandas.io.excel._base',
 'pandas.io.excel._odfreader',
 'pandas.io.excel._odswriter',
 'pandas.io.excel._openpyxl',
 'pandas.io.excel._pyxlsb',
 'pandas.io.excel._util',
 'pandas.io.excel._xlrd',
 'pandas.io.excel._xlsxwriter',
 'pandas.io.feather_format',
 'pandas.io.formats',
 'pandas.io.formats.console',
 'pandas.io.formats.format',
 'pandas.io.formats.info',
 'pandas.io.formats.printing',
 'pandas.io.gbq',
 'pandas.io.html',
 'pandas.io.json',
 'pandas.io.json._json',
 'pandas.io.json._normalize',
 'pandas.io.json._table_schema',
 'pandas.io.orc',
 'pandas.io.parquet',
 'pandas.io.parsers',
 'pandas.io.parsers.arrow_parser_wrapper',
 'pandas.io.parsers.base_parser',
 'pandas.io.parsers.c_parser_wrapper',
 'pandas.io.parsers.python_parser',
 'pandas.io.parsers.readers',
 'pandas.io.pickle',
 'pandas.io.pytables',
 'pandas.io.sas',
 'pandas.io.sas.sasreader',
 'pandas.io.spss',
 'pandas.io.sql',
 'pandas.io.stata',
 'pandas.io.xml',
 'pandas.plotting',
 'pandas.plotting._core',
 'pandas.plotting._misc',
 'pandas.testing',
 'pandas.tseries',
 'pandas.tseries.api',
 'pandas.tseries.frequencies',
 'pandas.tseries.offsets',
 'pandas.util',
 'pandas.util._decorators',
 'pandas.util._exceptions',
 'pandas.util._print_versions',
 'pandas.util._tester',
 'pandas.util._validators',
 'pandas.util.version',
 'pathlib',
 'pdb',
 'pickle',
 'pkg_resources',
 'pkg_resources._vendor',
 'pkg_resources._vendor.jaraco',
 'pkg_resources._vendor.jaraco',
 'pkg_resources._vendor.more_itertools',
 'pkg_resources._vendor.more_itertools',
 'pkg_resources._vendor.more_itertools.more',
 'pkg_resources._vendor.more_itertools.recipes',
 'pkg_resources._vendor.packaging',
 'pkg_resources._vendor.packaging',
 'pkg_resources._vendor.packaging._elffile',
 'pkg_resources._vendor.packaging._manylinux',
 'pkg_resources._vendor.packaging._musllinux',
 'pkg_resources._vendor.packaging._structures',
 'pkg_resources._vendor.packaging.version',
 'pkg_resources._vendor.platformdirs',
 'pkg_resources._vendor.platformdirs',
 'pkg_resources._vendor.platformdirs.api',
 'pkg_resources._vendor.platformdirs.macos',
 'pkg_resources._vendor.platformdirs.version',
 'pkg_resources.extern',
 'pkg_resources.extern.jaraco.context',
 'pkg_resources.extern.jaraco.functools',
 'pkg_resources.extern.jaraco.text',
 'pkg_resources.extern.packaging._parser',
 'pkg_resources.extern.packaging._structures',
 'pkg_resources.extern.packaging._tokenizer',
 'pkg_resources.extern.packaging.markers',
 'pkg_resources.extern.packaging.requirements',
 'pkg_resources.extern.packaging.specifiers',
 'pkg_resources.extern.packaging.tags',
 'pkg_resources.extern.packaging.utils',
 'pkg_resources.extern.packaging.version',
 'pkgutil',
 'platform',
 'plistlib',
 'posix',
 'posixpath',
 'posixpath',
 'pprint',
 'psutil',
 'psutil._common',
 'psutil._compat',
 'psutil._psosx',
 'psutil._psposix',
 'psutil._psutil_osx',
 'psutil._psutil_posix',
 'pwd',
 'pyarrow',
 'pyarrow._acero',
 'pyarrow._compute',
 'pyarrow._compute_docstrings',
 'pyarrow._csv',
 'pyarrow._dataset',
 'pyarrow._dataset_orc',
 'pyarrow._dataset_parquet',
 'pyarrow._fs',
 'pyarrow._gcsfs',
 'pyarrow._generated_version',
 'pyarrow._hdfs',
 'pyarrow._hdfsio',
 'pyarrow._json',
 'pyarrow._parquet',
 'pyarrow._s3fs',
 'pyarrow.compute',
 'pyarrow.csv',
 'pyarrow.dataset',
 'pyarrow.filesystem',
 'pyarrow.fs',
 'pyarrow.hdfs',
 'pyarrow.ipc',
 'pyarrow.json',
 'pyarrow.lib',
 'pyarrow.pandas_compat',
 'pyarrow.parquet',
 'pyarrow.parquet.core',
 'pyarrow.types',
 'pyarrow.util',
 'pyarrow.vendored',
 'pyarrow.vendored.docscrape',
 'pyarrow.vendored.version',
 'pydoc',
 'pyexpat',
 'pyexpat.errors',
 'pyexpat.errors',
 'pyexpat.model',
 'pyexpat.model',
 'pytz',
 'pytz.exceptions',
 'pytz.lazy',
 'pytz.tzfile',
 'pytz.tzinfo',
 'queue',
 'quopri',
 'random',
 'ray',
 'ray._private',
 'ray._private.accelerator',
 'ray._private.async_compat',
 'ray._private.auto_init_hook',
 'ray._private.client_mode_hook',
 'ray._private.external_storage',
 'ray._private.function_manager',
 'ray._private.inspect_util',
 'ray._private.internal_api',
 'ray._private.log',
 'ray._private.memory_monitor',
 'ray._private.node',
 'ray._private.parameter',
 'ray._private.profiling',
 'ray._private.ray_constants',
 'ray._private.ray_logging',
 'ray._private.ray_option_utils',
 'ray._private.resource_spec',
 'ray._private.runtime_env',
 'ray._private.runtime_env.conda',
 'ray._private.runtime_env.conda_utils',
 'ray._private.runtime_env.constants',
 'ray._private.runtime_env.context',
 'ray._private.runtime_env.packaging',
 'ray._private.runtime_env.pip',
 'ray._private.runtime_env.plugin',
 'ray._private.runtime_env.plugin_schema_manager',
 'ray._private.runtime_env.py_modules',
 'ray._private.runtime_env.setup_hook',
 'ray._private.runtime_env.uri_cache',
 'ray._private.runtime_env.utils',
 'ray._private.runtime_env.validation',
 'ray._private.runtime_env.working_dir',
 'ray._private.serialization',
 'ray._private.services',
 'ray._private.signature',
 'ray._private.state',
 'ray._private.storage',
 'ray._private.thirdparty',
 'ray._private.thirdparty.dacite',
 'ray._private.thirdparty.dacite.config',
 'ray._private.thirdparty.dacite.core',
 'ray._private.thirdparty.dacite.data',
 'ray._private.thirdparty.dacite.dataclasses',
 'ray._private.thirdparty.dacite.exceptions',
 'ray._private.thirdparty.dacite.types',
 'ray._private.thirdparty.pathspec',
 'ray._private.thirdparty.pathspec.compat',
 'ray._private.thirdparty.pathspec.pathspec',
 'ray._private.thirdparty.pathspec.pattern',
 'ray._private.thirdparty.pathspec.patterns',
 'ray._private.thirdparty.pathspec.patterns.gitwildmatch',
 'ray._private.thirdparty.pathspec.util',
 'ray._private.thirdparty.tabulate',
 'ray._private.thirdparty.tabulate.tabulate',
 'ray._private.usage',
 'ray._private.usage.usage_constants',
 'ray._private.usage.usage_lib',
 'ray._private.utils',
 'ray._private.worker',
 'ray._raylet',
 'ray.actor',
 'ray.air',
 'ray.air._internal',
 'ray.air._internal.checkpointing',
 'ray.air._internal.filelock',
 'ray.air._internal.remote_storage',
 'ray.air._internal.util',
 'ray.air.checkpoint',
 'ray.air.config',
 'ray.air.constants',
 'ray.air.data_batch_type',
 'ray.air.execution',
 'ray.air.execution.resources',
 'ray.air.execution.resources.fixed',
 'ray.air.execution.resources.placement_group',
 'ray.air.execution.resources.request',
 'ray.air.execution.resources.resource_manager',
 'ray.air.result',
 'ray.air.util',
 'ray.air.util.data_batch_conversion',
 'ray.air.util.tensor_extensions',
 'ray.air.util.tensor_extensions.arrow',
 'ray.air.util.tensor_extensions.pandas',
 'ray.air.util.tensor_extensions.utils',
 'ray.client_builder',
 'ray.cloudpickle',
 'ray.cloudpickle.cloudpickle',
 'ray.cloudpickle.cloudpickle_fast',
 'ray.cloudpickle.compat',
 'ray.core',
 'ray.core.generated',
 'ray.core.generated.common_pb2',
 'ray.core.generated.dependency_pb2',
 'ray.core.generated.gcs_pb2',
 'ray.core.generated.gcs_service_pb2',
 'ray.core.generated.logging_pb2',
 'ray.core.generated.pubsub_pb2',
 'ray.core.generated.runtime_env_common_pb2',
 'ray.core.generated.usage_pb2',
 'ray.cross_language',
 'ray.data',
 'ray.data._default_config',
 'ray.data._internal',
 'ray.data._internal.arrow_block',
 'ray.data._internal.arrow_ops',
 'ray.data._internal.arrow_ops.transform_polars',
 'ray.data._internal.arrow_ops.transform_pyarrow',
 'ray.data._internal.batcher',
 'ray.data._internal.block_batching',
 'ray.data._internal.block_batching.block_batching',
 'ray.data._internal.block_batching.interfaces',
 'ray.data._internal.block_batching.iter_batches',
 'ray.data._internal.block_batching.util',
 'ray.data._internal.block_builder',
 'ray.data._internal.block_list',
 'ray.data._internal.compute',
 'ray.data._internal.dataset_logger',
 'ray.data._internal.delegating_block_builder',
 'ray.data._internal.equalize',
 'ray.data._internal.execution',
 'ray.data._internal.execution.autoscaling_requester',
 'ray.data._internal.execution.interfaces',
 'ray.data._internal.execution.interfaces.common',
 'ray.data._internal.execution.interfaces.execution_options',
 'ray.data._internal.execution.interfaces.executor',
 'ray.data._internal.execution.interfaces.physical_operator',
 'ray.data._internal.execution.interfaces.ref_bundle',
 'ray.data._internal.execution.interfaces.task_context',
 'ray.data._internal.execution.interfaces.transform_fn',
 'ray.data._internal.execution.legacy_compat',
 'ray.data._internal.execution.operators',
 'ray.data._internal.execution.operators.actor_pool_map_operator',
 'ray.data._internal.execution.operators.base_physical_operator',
 'ray.data._internal.execution.operators.input_data_buffer',
 'ray.data._internal.execution.operators.limit_operator',
 'ray.data._internal.execution.operators.map_operator',
 'ray.data._internal.execution.operators.map_transformer',
 'ray.data._internal.execution.operators.output_splitter',
 'ray.data._internal.execution.operators.task_pool_map_operator',
 'ray.data._internal.execution.operators.union_operator',
 'ray.data._internal.execution.operators.zip_operator',
 'ray.data._internal.execution.streaming_executor',
 'ray.data._internal.execution.streaming_executor_state',
 'ray.data._internal.execution.util',
 'ray.data._internal.fast_repartition',
 'ray.data._internal.iterator',
 'ray.data._internal.iterator.iterator_impl',
 'ray.data._internal.iterator.pipelined_iterator',
 'ray.data._internal.iterator.stream_split_iterator',
 'ray.data._internal.lazy_block_list',
 'ray.data._internal.logical',
 'ray.data._internal.logical.interfaces',
 'ray.data._internal.logical.interfaces.logical_operator',
 'ray.data._internal.logical.interfaces.logical_plan',
 'ray.data._internal.logical.interfaces.operator',
 'ray.data._internal.logical.interfaces.optimizer',
 'ray.data._internal.logical.interfaces.physical_plan',
 'ray.data._internal.logical.interfaces.plan',
 'ray.data._internal.logical.operators',
 'ray.data._internal.logical.operators.all_to_all_operator',
 'ray.data._internal.logical.operators.from_operators',
 'ray.data._internal.logical.operators.input_data_operator',
 'ray.data._internal.logical.operators.map_operator',
 'ray.data._internal.logical.operators.n_ary_operator',
 'ray.data._internal.logical.operators.one_to_one_operator',
 'ray.data._internal.logical.operators.read_operator',
 'ray.data._internal.logical.operators.write_operator',
 'ray.data._internal.logical.optimizers',
 'ray.data._internal.logical.rules',
 'ray.data._internal.logical.rules._user_provided_optimizer_rules',
 'ray.data._internal.logical.rules.operator_fusion',
 'ray.data._internal.logical.rules.randomize_blocks',
 'ray.data._internal.logical.rules.zero_copy_map_fusion',
 'ray.data._internal.logical.util',
 'ray.data._internal.memory_tracing',
 'ray.data._internal.null_aggregate',
 'ray.data._internal.numpy_support',
 'ray.data._internal.output_buffer',
 'ray.data._internal.pandas_block',
 'ray.data._internal.pipeline_executor',
 'ray.data._internal.plan',
 'ray.data._internal.planner',
 'ray.data._internal.planner.aggregate',
 'ray.data._internal.planner.exchange',
 'ray.data._internal.planner.exchange.aggregate_task_spec',
 'ray.data._internal.planner.exchange.interfaces',
 'ray.data._internal.planner.exchange.pull_based_shuffle_task_scheduler',
 'ray.data._internal.planner.exchange.push_based_shuffle_task_scheduler',
 'ray.data._internal.planner.exchange.shuffle_task_spec',
 'ray.data._internal.planner.exchange.sort_task_spec',
 'ray.data._internal.planner.exchange.split_repartition_task_scheduler',
 'ray.data._internal.planner.plan_all_to_all_op',
 'ray.data._internal.planner.plan_from_op',
 'ray.data._internal.planner.plan_input_data_op',
 'ray.data._internal.planner.plan_limit_op',
 'ray.data._internal.planner.plan_read_op',
 'ray.data._internal.planner.plan_udf_map_op',
 'ray.data._internal.planner.plan_write_op',
 'ray.data._internal.planner.planner',
 'ray.data._internal.planner.random_shuffle',
 'ray.data._internal.planner.randomize_blocks',
 'ray.data._internal.planner.repartition',
 'ray.data._internal.planner.sort',
 'ray.data._internal.progress_bar',
 'ray.data._internal.push_based_shuffle',
 'ray.data._internal.remote_fn',
 'ray.data._internal.shuffle',
 'ray.data._internal.shuffle_and_partition',
 'ray.data._internal.size_estimator',
 'ray.data._internal.sort',
 'ray.data._internal.split',
 'ray.data._internal.stage_impl',
 'ray.data._internal.stats',
 'ray.data._internal.table_block',
 'ray.data._internal.util',
 'ray.data.aggregate',
 'ray.data.aggregate._aggregate',
 'ray.data.block',
 'ray.data.context',
 'ray.data.dataset',
 'ray.data.dataset_pipeline',
 'ray.data.datasource',
 'ray.data.datasource._default_metadata_providers',
 'ray.data.datasource.binary_datasource',
 'ray.data.datasource.csv_datasource',
 'ray.data.datasource.datasource',
 'ray.data.datasource.file_based_datasource',
 'ray.data.datasource.file_meta_provider',
 'ray.data.datasource.image_datasource',
 'ray.data.datasource.json_datasource',
 'ray.data.datasource.mongo_datasource',
 'ray.data.datasource.numpy_datasource',
 'ray.data.datasource.parquet_base_datasource',
 'ray.data.datasource.parquet_datasource',
 'ray.data.datasource.partitioning',
 'ray.data.datasource.sql_datasource',
 'ray.data.datasource.text_datasource',
 'ray.data.datasource.tfrecords_datasource',
 'ray.data.datasource.webdataset_datasource',
 'ray.data.extensions',
 'ray.data.extensions.tensor_extension',
 'ray.data.iterator',
 'ray.data.preprocessor',
 'ray.data.random_access_dataset',
 'ray.data.read_api',
 'ray.data.row',
 'ray.exceptions',
 'ray.experimental',
 'ray.experimental.dynamic_resources',
 'ray.experimental.internal_kv',
 'ray.experimental.locations',
 'ray.experimental.packaging',
 'ray.experimental.packaging.load_package',
 'ray.experimental.tqdm_ray',
 'ray.internal',
 'ray.job_config',
 'ray.remote_function',
 'ray.runtime_context',
 'ray.runtime_env',
 'ray.runtime_env.runtime_env',
 'ray.types',
 'ray.util',
 'ray.util.accelerators',
 'ray.util.accelerators.accelerators',
 'ray.util.actor_pool',
 'ray.util.annotations',
 'ray.util.check_serialize',
 'ray.util.client',
 'ray.util.client.api',
 'ray.util.client.runtime_context',
 'ray.util.client_connect',
 'ray.util.debug',
 'ray.util.iter',
 'ray.util.iter_metrics',
 'ray.util.placement_group',
 'ray.util.rpdb',
 'ray.util.scheduling_strategies',
 'ray.util.serialization',
 'ray.util.serialization_addons',
 'ray.util.timer',
 'ray.util.tracing',
 'ray.util.tracing.tracing_helper',
 'ray.widgets',
 'ray.widgets.render',
 'ray.widgets.util',
 're',
 're._casefix',
 're._compiler',
 're._constants',
 're._parser',
 'readline',
 'referencing',
 'referencing._attrs',
 'referencing._core',
 'referencing.exceptions',
 'referencing.jsonschema',
 'referencing.typing',
 'reprlib',
 'requests',
 'requests.__version__',
 'requests._internal_utils',
 'requests.adapters',
 'requests.api',
 'requests.auth',
 'requests.certs',
 'requests.compat',
 'requests.cookies',
 'requests.exceptions',
 'requests.hooks',
 'requests.models',
 'requests.packages',
 'requests.sessions',
 'requests.status_codes',
 'requests.structures',
 'requests.utils',
 'resource',
 'rfc3339_validator',
 'rfc3986_validator',
 'rlcompleter',
 'rpds',
 'rpds.rpds',
 'runpy',
 'secrets',
 'select',
 'selectors',
 'setproctitle',
 'shutil',
 'signal',
 'site',
 'sitecustomize',
 'six',
 'six.moves',
 'socket',
 'socketserver',
 'sphinxcontrib',
 'ssl',
 'stat',
 'statistics',
 'string',
 'stringprep',
 'struct',
 'subprocess',
 'sys',
 'sysconfig',
 'tarfile',
 'tempfile',
 'textwrap',
 'threading',
 'time',
 'token',
 'tokenize',
 'tqdm',
 'tqdm._dist_ver',
 'tqdm._monitor',
 'tqdm._tqdm_pandas',
 'tqdm.asyncio',
 'tqdm.auto',
 'tqdm.autonotebook',
 'tqdm.cli',
 'tqdm.gui',
 'tqdm.std',
 'tqdm.utils',
 'tqdm.version',
 'traceback',
 'tracemalloc',
 'types',
 'typing',
 'typing.io',
 'typing.re',
 'typing_extensions',
 'unicodedata',
 'uri_template',
 'uri_template.charset',
 'uri_template.expansions',
 'uri_template.uritemplate',
 'uri_template.variable',
 'urllib',
 'urllib.error',
 'urllib.parse',
 'urllib.request',
 'urllib.response',
 'urllib3',
 'urllib3',
 'urllib3._collections',
 'urllib3._collections',
 'urllib3._version',
 'urllib3._version',
 'urllib3.connection',
 'urllib3.connection',
 'urllib3.connectionpool',
 'urllib3.connectionpool',
 'urllib3.contrib',
 'urllib3.contrib',
 'urllib3.contrib._appengine_environ',
 'urllib3.contrib._appengine_environ',
 'urllib3.exceptions',
 'urllib3.exceptions',
 'urllib3.fields',
 'urllib3.fields',
 'urllib3.filepost',
 'urllib3.filepost',
 'urllib3.packages',
 'urllib3.packages',
 'urllib3.packages.six',
 'urllib3.packages.six',
 'urllib3.packages.six.moves',
 'urllib3.packages.six.moves',
 'urllib3.packages.six.moves.urllib',
 'urllib3.packages.six.moves.urllib',
 'urllib3.packages.six.moves.urllib_parse',
 'urllib3.packages.six.moves.urllib_parse',
 'urllib3.poolmanager',
 'urllib3.poolmanager',
 'urllib3.request',
 'urllib3.request',
 'urllib3.response',
 'urllib3.response',
 'urllib3.util',
 'urllib3.util',
 'urllib3.util.connection',
 'urllib3.util.connection',
 'urllib3.util.proxy',
 'urllib3.util.proxy',
 'urllib3.util.queue',
 'urllib3.util.queue',
 'urllib3.util.request',
 'urllib3.util.request',
 'urllib3.util.response',
 'urllib3.util.response',
 'urllib3.util.retry',
 'urllib3.util.retry',
 'urllib3.util.ssl_',
 'urllib3.util.ssl_',
 'urllib3.util.ssl_match_hostname',
 'urllib3.util.ssl_match_hostname',
 'urllib3.util.ssltransport',
 'urllib3.util.ssltransport',
 'urllib3.util.timeout',
 'urllib3.util.timeout',
 'urllib3.util.url',
 'urllib3.util.url',
 'urllib3.util.wait',
 'urllib3.util.wait',
 'uuid',
 'warnings',
 'wcwidth',
 'wcwidth.table_wide',
 'wcwidth.table_zero',
 'wcwidth.unicode_versions',
 'wcwidth.wcwidth',
 'weakref',
 'webcolors',
 'webcolors.constants',
 'webcolors.conversion',
 'webcolors.html5',
 'webcolors.normalization',
 'webcolors.types',
 'xml',
 'xml.etree',
 'xml.etree.ElementPath',
 'xml.etree.ElementTree',
 'xml.parsers',
 'xml.parsers.expat',
 'yaml',
 'yaml._yaml',
 'yaml.composer',
 'yaml.constructor',
 'yaml.cyaml',
 'yaml.dumper',
 'yaml.emitter',
 'yaml.error',
 'yaml.events',
 'yaml.loader',
 'yaml.nodes',
 'yaml.parser',
 'yaml.reader',
 'yaml.representer',
 'yaml.resolver',
 'yaml.scanner',
 'yaml.serializer',
 'yaml.tokens',
 'zipfile',
 'zipimport',
 'zlib',
 'zoneinfo',
 'zoneinfo._common',
 'zoneinfo._tzpath']