75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
"""A collection of functions which are triggered automatically by finder when
|
|
pandas package is included.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from cx_Freeze.hooks._libs import replace_delvewheel_patch
|
|
|
|
if TYPE_CHECKING:
|
|
from cx_Freeze.finder import ModuleFinder
|
|
from cx_Freeze.module import Module
|
|
|
|
|
|
def load_pandas(finder: ModuleFinder, module: Module) -> None:
|
|
"""The pandas package.
|
|
|
|
Supported pypi and conda-forge versions (tested from 1.3.3 to 2.2.3).
|
|
"""
|
|
source_dir = module.file.parent.parent / f"{module.name}.libs"
|
|
if source_dir.exists(): # pandas >= 2.1.0
|
|
finder.include_files(source_dir, f"lib/{source_dir.name}")
|
|
replace_delvewheel_patch(module)
|
|
finder.include_package("pandas._libs")
|
|
finder.exclude_module("pandas.conftest")
|
|
finder.exclude_module("pandas.tests")
|
|
|
|
|
|
def load_pandas_io_formats_style(_, module: Module) -> None:
|
|
"""Ignore optional modules in the pandas.io.formats.style module."""
|
|
module.ignore_names.update(
|
|
["matplotlib", "matplotlib.colors", "matplotlib.pyplot"]
|
|
)
|
|
|
|
|
|
def load_pandas__libs_testing(
|
|
finder: ModuleFinder,
|
|
module: Module, # noqa: ARG001
|
|
) -> None:
|
|
"""Include module used by the pandas._libs.testing module."""
|
|
finder.include_module("cmath")
|
|
|
|
|
|
def load_pandas_plotting__core(_, module: Module) -> None:
|
|
"""Ignore optional modules in the pandas.plotting._core module."""
|
|
module.ignore_names.add("matplotlib.axes")
|
|
|
|
|
|
def load_pandas_plotting__misc(_, module: Module) -> None:
|
|
"""Ignore optional modules in the pandas.plotting._misc module."""
|
|
module.ignore_names.update(
|
|
[
|
|
"matplotlib.axes",
|
|
"matplotlib.colors",
|
|
"matplotlib.figure",
|
|
"matplotlib.table",
|
|
]
|
|
)
|
|
|
|
|
|
def load_pandas__testing(_, module: Module) -> None:
|
|
"""Ignore optional modules in the pandas._testing module."""
|
|
module.exclude_names.add("pytest")
|
|
|
|
|
|
def load_pandas__testing_asserters(_, module: Module) -> None:
|
|
"""Ignore optional modules in the pandas._testing.asserters module."""
|
|
module.ignore_names.add("matplotlib.pyplot")
|
|
|
|
|
|
def load_pandas__testing__io(_, module: Module) -> None:
|
|
"""Ignore optional modules in the pandas._testing._io module."""
|
|
module.exclude_names.add("pytest")
|