Ajout type contrat

This commit is contained in:
2026-04-29 11:52:03 +02:00
parent 375549cb30
commit 1c0e4c3048
10530 changed files with 1842149 additions and 158 deletions

View File

@@ -0,0 +1,173 @@
"""
compat
======
Cross-compatible functions for different versions of Python.
Other items:
* platform checker
"""
from __future__ import annotations
import os
import platform
import sys
from typing import TYPE_CHECKING
from pandas.compat._constants import (
CHAINED_WARNING_DISABLED,
IS64,
ISMUSL,
PY312,
PY314,
PYPY,
WASM,
)
from pandas.compat.numpy import is_numpy_dev
from pandas.compat.pyarrow import (
HAS_PYARROW,
PYARROW_MIN_VERSION,
pa_version_under14p0,
pa_version_under14p1,
pa_version_under16p0,
pa_version_under17p0,
pa_version_under18p0,
pa_version_under19p0,
pa_version_under20p0,
pa_version_under21p0,
)
if TYPE_CHECKING:
from pandas._typing import F
def set_function_name(f: F, name: str, cls: type) -> F:
"""
Bind the name/qualname attributes of the function.
"""
f.__name__ = name
f.__qualname__ = f"{cls.__name__}.{name}"
f.__module__ = cls.__module__
return f
def is_platform_little_endian() -> bool:
"""
Checking if the running platform is little endian.
Returns
-------
bool
True if the running platform is little endian.
"""
return sys.byteorder == "little"
def is_platform_windows() -> bool:
"""
Checking if the running platform is windows.
Returns
-------
bool
True if the running platform is windows.
"""
return sys.platform in ["win32", "cygwin"]
def is_platform_linux() -> bool:
"""
Checking if the running platform is linux.
Returns
-------
bool
True if the running platform is linux.
"""
return sys.platform == "linux"
def is_platform_mac() -> bool:
"""
Checking if the running platform is mac.
Returns
-------
bool
True if the running platform is mac.
"""
return sys.platform == "darwin"
def is_platform_arm() -> bool:
"""
Checking if the running platform use ARM architecture.
Returns
-------
bool
True if the running platform uses ARM architecture.
"""
return platform.machine() in ("arm64", "aarch64") or platform.machine().startswith(
"armv"
)
def is_platform_power() -> bool:
"""
Checking if the running platform use Power architecture.
Returns
-------
bool
True if the running platform uses ARM architecture.
"""
return platform.machine() in ("ppc64", "ppc64le")
def is_platform_riscv64() -> bool:
"""
Checking if the running platform use riscv64 architecture.
Returns
-------
bool
True if the running platform uses riscv64 architecture.
"""
return platform.machine() == "riscv64"
def is_ci_environment() -> bool:
"""
Checking if running in a continuous integration environment by checking
the PANDAS_CI environment variable.
Returns
-------
bool
True if the running in a continuous integration environment.
"""
return os.environ.get("PANDAS_CI", "0") == "1"
__all__ = [
"CHAINED_WARNING_DISABLED",
"HAS_PYARROW",
"IS64",
"ISMUSL",
"PY312",
"PY314",
"PYARROW_MIN_VERSION",
"PYPY",
"WASM",
"is_numpy_dev",
"pa_version_under14p0",
"pa_version_under14p1",
"pa_version_under16p0",
"pa_version_under17p0",
"pa_version_under18p0",
"pa_version_under19p0",
"pa_version_under20p0",
"pa_version_under21p0",
]