diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9e0e9bb2..f814ce6a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,6 +44,9 @@ jobs: - name: Run mypy tests run: python -m mypy . --python-version=${{ matrix.python-version }} + - name: Run runtime regression tests + run: python -m pytest -q tests + - name: Run stubtest run: python tests/run_stubtest.py diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebf23aca..9d072d78 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,3 +12,31 @@ instructions provided by the bot. You will only need to do this once across all This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +## Checking stub changes + +Use an isolated Python environment and install the test and hygiene dependencies: + +```shell +python -m pip install --group tests --group hygiene +python -m ruff check +python -m ruff format --check +python -m mypy . --python-version 3.13 +python -m pyright --pythonversion 3.13 +python -m pytest -q tests +python tests/run_stubtest.py +``` + +Select the same environment in Pyright, using `--pythonpath` if necessary. Include the +local stubs when running mypy on regression tests; checking only a test directory can +resolve installed library code instead of the stubs being changed. + +CI checks Python 3.10 and 3.13 on Linux, Windows, and macOS. Run against both Python +versions when updating runtime APIs: the latest compatible library release can differ +between them. For a focused runtime check, pass package directories to the runner, +for example `python tests/run_stubtest.py vispy sklearn`. + +Fix incorrect declarations before adding allowlist entries. Keep exceptions narrow +and documented, and remove entries that no longer suppress an error. Modules shipped +only in some wheels or on some platforms need optional entries rather than disabling +unused-allowlist checks globally. diff --git a/stubs/skimage/README.md b/stubs/skimage/README.md index 4d9e507f..013e0b18 100644 --- a/stubs/skimage/README.md +++ b/stubs/skimage/README.md @@ -1,3 +1,21 @@ These stubs were created with https://github.com/gramster/docs2stubs. +The stubs target the latest scikit-image supported by each Python version: +0.25 on Python 3.10 and 0.26 on Python 3.11 and newer. Version-dependent APIs +use `sys.version_info` branches because scikit-image 0.26 requires Python 3.11. +For Python 3.11 and newer, use 0.26 to obtain the newly annotated model and +transform estimation APIs. +The deprecated no-argument model constructors and `estimate` methods remain +available. New `from_estimate` methods return either the requested model or +`skimage._shared.utils.FailedEstimation`, not a boolean or `None`. + +`RansacModelProtocol` accepts a variadic data signature: annotate one-array +models as `RansacModelProtocol[NDArray]` and two-array transforms as +`RansacModelProtocol[NDArray, NDArray]`. These parameters are typing-only; +use postponed annotations (`from __future__ import annotations`) because the +runtime protocol does not support subscripting. + +The allowlist documents five specific 0.26 signature-introspection bugs rather +than changing the annotations to match incorrect wrapper metadata. Optional +test-module entries are exact names and do not suppress public API failures. diff --git a/stubs/skimage/_shared/testing.pyi b/stubs/skimage/_shared/testing.pyi index dfa611b1..fb0915f6 100644 --- a/stubs/skimage/_shared/testing.pyi +++ b/stubs/skimage/_shared/testing.pyi @@ -1,3 +1,5 @@ +import sys + from numpy.typing import ArrayLike SKIP_RE = ... @@ -23,5 +25,10 @@ def color_check(plugin, fmt="png"): ... def mono_check(plugin, fmt="png"): ... def setup_test(): ... def teardown_test(): ... -def fetch(data_filename): ... + +if sys.version_info >= (3, 11): + def fetch(data_filename: str, prefix: str | None = None) -> str: ... +else: + def fetch(data_filename: str) -> str: ... + def test_parallel(num_threads: int = 2, warnings_matching: ArrayLike | None = None): ... diff --git a/stubs/skimage/_shared/utils.pyi b/stubs/skimage/_shared/utils.pyi index 9711e09f..57ef0dc5 100644 --- a/stubs/skimage/_shared/utils.pyi +++ b/stubs/skimage/_shared/utils.pyi @@ -1,5 +1,7 @@ +import sys from collections.abc import Iterable, Mapping -from typing import Any, Literal +from typing import Any, ClassVar, Literal +from typing_extensions import Never from numpy.typing import ArrayLike, NDArray @@ -30,7 +32,18 @@ class _DecoratorBaseClass: def get_stack_length(self, func): ... class change_default_value(_DecoratorBaseClass): - def __init__(self, arg_name: str, *, new_value: Any, changed_version: str, warning_msg: str | None = None): ... + if sys.version_info >= (3, 11): + def __init__( + self, + arg_name: str, + *, + new_value: Any, + changed_version: str, + warning_msg: str | None = None, + stacklevel: int | None = None, + ): ... + else: + def __init__(self, arg_name: str, *, new_value: Any, changed_version: str, warning_msg: str | None = None): ... def __call__(self, func): ... class remove_arg(_DecoratorBaseClass): @@ -87,3 +100,15 @@ new_float_type: dict = ... def _supported_float_type(input_dtype, allow_complex=False): ... def identity(image, *args, **kwargs): ... + +if sys.version_info >= (3, 11): + class FailedEstimationAccessError(AttributeError): ... + + class FailedEstimation: + error_cls: ClassVar[type[FailedEstimationAccessError]] + hint: ClassVar[str] + message: str + def __init__(self, message: str) -> None: ... + def __bool__(self) -> Literal[False]: ... + def __call__(self, *args: object, **kwargs: object) -> Never: ... + def __getattr__(self, name: str) -> Never: ... diff --git a/stubs/skimage/data/_fetchers.pyi b/stubs/skimage/data/_fetchers.pyi index 4a954c9f..8e6d93f8 100644 --- a/stubs/skimage/data/_fetchers.pyi +++ b/stubs/skimage/data/_fetchers.pyi @@ -1,3 +1,4 @@ +import sys from os import PathLike def file_hash(fname, alg="sha256") -> str: ... @@ -12,7 +13,12 @@ image_fetcher = ... data_dir = ... def _skip_pytest_case_requiring_pooch(data_filename): ... -def _fetch(data_filename): ... + +if sys.version_info >= (3, 11): + def _fetch(data_filename: str, prefix: str | None = None) -> str: ... +else: + def _fetch(data_filename: str) -> str: ... + def _init_pooch(): ... def download_all(directory: PathLike | None = None): ... def lbp_frontal_face_cascade_filename(): ... diff --git a/stubs/skimage/data/_registry.pyi b/stubs/skimage/data/_registry.pyi index e79d6df1..2e9f7158 100644 --- a/stubs/skimage/data/_registry.pyi +++ b/stubs/skimage/data/_registry.pyi @@ -1,9 +1,8 @@ -# This minimal dataset was available as part of -# scikit-image 0.15 and will be retained until -# further notice. -# Testing data and additional datasets should only -# be made available by pooch -legacy_datasets: list = ... +import sys + +if sys.version_info < (3, 11): + legacy_datasets: list[str] + legacy_registry: dict[str, str] # Registry of datafiles that can be downloaded along with their SHA256 hashes # To generate the SHA256 hash, use the command @@ -11,5 +10,3 @@ legacy_datasets: list = ... registry: dict = ... registry_urls: dict = ... - -legacy_registry: dict = ... diff --git a/stubs/skimage/draw/draw.pyi b/stubs/skimage/draw/draw.pyi index c4ccc130..956be906 100644 --- a/stubs/skimage/draw/draw.pyi +++ b/stubs/skimage/draw/draw.pyi @@ -1,3 +1,4 @@ +import sys from typing import Literal import numpy as np @@ -6,6 +7,9 @@ from numpy.typing import NDArray from .._shared._geometry import polygon_clip from .._shared.version_requirements import require +if sys.version_info >= (3, 11): + __doctest_requires__: dict[tuple[str, ...], list[str]] + def _ellipse_in_shape(shape, center, radii, rotation=0.0): ... def ellipse(r, c, r_radius, c_radius, shape: tuple | None = None, rotation=0.0) -> NDArray: ... def disk(center: tuple, radius, *, shape: tuple | None = None) -> NDArray: ... diff --git a/stubs/skimage/feature/_basic_features.pyi b/stubs/skimage/feature/_basic_features.pyi index c06830a0..1ff998fb 100644 --- a/stubs/skimage/feature/_basic_features.pyi +++ b/stubs/skimage/feature/_basic_features.pyi @@ -1,19 +1,36 @@ +import sys +from collections.abc import Iterator + from numpy.typing import NDArray from .._shared import utils def _texture_filter(gaussian_filtered): ... def _singlescale_basic_features_singlechannel(img, sigma, intensity=True, edges=True, texture=True): ... -def _mutiscale_basic_features_singlechannel( - img, - intensity=True, - edges=True, - texture=True, - sigma_min=0.5, - sigma_max=16, - num_sigma=None, - num_workers=None, -): ... + +if sys.version_info >= (3, 11): + def _mutiscale_basic_features_singlechannel( + img: NDArray, + intensity: bool = True, + edges: bool = True, + texture: bool = True, + sigma_min: float = 0.5, + sigma_max: float = 16, + num_sigma: int | None = None, + workers: int | None = None, + ) -> Iterator[NDArray]: ... +else: + def _mutiscale_basic_features_singlechannel( + img: NDArray, + intensity: bool = True, + edges: bool = True, + texture: bool = True, + sigma_min: float = 0.5, + sigma_max: float = 16, + num_sigma: int | None = None, + num_workers: int | None = None, + ) -> Iterator[NDArray]: ... + @utils.deprecate_multichannel_kwarg(multichannel_position=1) def multiscale_basic_features( image: NDArray, diff --git a/stubs/skimage/feature/_cascade.pyi b/stubs/skimage/feature/_cascade.pyi index 0041bfa1..66317952 100644 --- a/stubs/skimage/feature/_cascade.pyi +++ b/stubs/skimage/feature/_cascade.pyi @@ -1,9 +1,11 @@ from typing import Any, ClassVar +from typing_extensions import disjoint_base __reduce_cython__: Any __setstate_cython__: Any __test__: dict +@disjoint_base class Cascade: __pyx_vtable__: ClassVar[Any] = ... eps: Any diff --git a/stubs/skimage/measure/__init__.pyi b/stubs/skimage/measure/__init__.pyi index d51aaa57..9b2cb25b 100644 --- a/stubs/skimage/measure/__init__.pyi +++ b/stubs/skimage/measure/__init__.pyi @@ -1,3 +1,5 @@ +import sys + from ._blur_effect import blur_effect as blur_effect from ._find_contours import find_contours as find_contours from ._label import label as label @@ -28,6 +30,9 @@ from .fit import CircleModel as CircleModel, EllipseModel as EllipseModel, LineM from .pnpoly import grid_points_in_poly as grid_points_in_poly, points_in_poly as points_in_poly from .profile import profile_line as profile_line +if sys.version_info >= (3, 11): + from .fit import RansacModelProtocol as RansacModelProtocol + __all__ = [ "find_contours", "regionprops", @@ -59,3 +64,6 @@ __all__ = [ "shannon_entropy", "blur_effect", ] + +if sys.version_info >= (3, 11): + __all__ += ["RansacModelProtocol"] diff --git a/stubs/skimage/measure/_regionprops.pyi b/stubs/skimage/measure/_regionprops.pyi index 0c985fa4..7e0fbfd5 100644 --- a/stubs/skimage/measure/_regionprops.pyi +++ b/stubs/skimage/measure/_regionprops.pyi @@ -1,6 +1,7 @@ +import sys from collections.abc import Mapping -from numpy.typing import ArrayLike +from numpy.typing import ArrayLike, NDArray from ._regionprops_utils import euler_number, perimeter, perimeter_crofton @@ -80,6 +81,9 @@ class RegionProperties: def intensity_max(self): ... @property def intensity_mean(self): ... + if sys.version_info >= (3, 11): + @property + def intensity_median(self) -> float | NDArray: ... @property def intensity_min(self): ... @property diff --git a/stubs/skimage/measure/fit.pyi b/stubs/skimage/measure/fit.pyi index dc23208f..e59a21ba 100644 --- a/stubs/skimage/measure/fit.pyi +++ b/stubs/skimage/measure/fit.pyi @@ -1,34 +1,88 @@ import math -from typing import Any +import sys +from typing import Any, Protocol, TypeVar, overload, runtime_checkable +from typing_extensions import Self, TypeVarTuple, Unpack from warnings import warn import numpy as np from numpy.linalg import inv -from numpy.typing import ArrayLike +from numpy.typing import ArrayLike, NDArray from scipy import optimize, spatial +if sys.version_info >= (3, 11): + from .._shared.utils import FailedEstimation + + _Data = TypeVarTuple("_Data") + + @runtime_checkable + class RansacModelProtocol(Protocol[Unpack[_Data]]): + @classmethod + def from_estimate(cls, *data: Unpack[_Data]) -> Self | FailedEstimation: ... + def residuals(self, *data: Unpack[_Data]) -> NDArray[np.floating]: ... + + _ModelT = TypeVar("_ModelT") + + def add_from_estimate(cls: type[_ModelT]) -> type[_ModelT]: ... + def _check_data_dim(data, dim): ... def _check_data_atleast_2D(data): ... class BaseModel: - def __init__(self): ... - -class LineModelND(BaseModel): - def estimate(self, data) -> bool: ... - def residuals(self, data, params=None): ... - def predict(self, x, axis: int = 0, params=None): ... - def predict_x(self, y: ArrayLike, params=None) -> ArrayLike: ... - def predict_y(self, x: ArrayLike, params=None) -> ArrayLike: ... - -class CircleModel(BaseModel): - def estimate(self, data) -> bool: ... - def residuals(self, data): ... - def predict_xy(self, t: ArrayLike, params=None): ... - -class EllipseModel(BaseModel): - def estimate(self, data) -> bool: ... - def residuals(self, data): ... - def predict_xy(self, t: ArrayLike, params=None): ... + def __init__(self) -> None: ... + +if sys.version_info >= (3, 11): + class _BaseModel: + @classmethod + def from_estimate(cls, data: NDArray) -> Self | FailedEstimation: ... + + _ModelBase = _BaseModel +else: + _ModelBase = BaseModel + +class LineModelND(_ModelBase): + if sys.version_info >= (3, 11): + origin: NDArray | None + direction: NDArray | None + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, origin: ArrayLike, direction: ArrayLike) -> None: ... + @property + def params(self) -> tuple[NDArray | None, NDArray | None]: ... + def estimate(self, data: NDArray) -> bool: ... + def residuals(self, data: NDArray, params: tuple[ArrayLike, ArrayLike] | None = ...) -> NDArray[np.floating]: ... + def predict(self, x: ArrayLike, axis: int = 0, params: tuple[ArrayLike, ArrayLike] | None = ...) -> NDArray: ... + def predict_x(self, y: ArrayLike, params: tuple[ArrayLike, ArrayLike] | None = ...) -> NDArray: ... + def predict_y(self, x: ArrayLike, params: tuple[ArrayLike, ArrayLike] | None = ...) -> NDArray: ... + +class CircleModel(_ModelBase): + if sys.version_info >= (3, 11): + center: NDArray | None + radius: float | None + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, center: ArrayLike, radius: float) -> None: ... + @property + def params(self) -> NDArray: ... + def estimate(self, data: NDArray) -> bool: ... + def residuals(self, data: NDArray) -> NDArray[np.floating]: ... + def predict_xy(self, t: ArrayLike, params: ArrayLike | None = ...) -> NDArray: ... + +class EllipseModel(_ModelBase): + if sys.version_info >= (3, 11): + center: NDArray | None + axis_lengths: NDArray | None + theta: float | None + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, center: ArrayLike, axis_lengths: ArrayLike, theta: float) -> None: ... + @property + def params(self) -> NDArray: ... + def estimate(self, data: NDArray) -> bool: ... + def residuals(self, data: NDArray) -> NDArray[np.float64]: ... + def predict_xy(self, t: ArrayLike, params: ArrayLike | None = ...) -> NDArray: ... def _dynamic_max_trials(n_inliers, n_samples, min_samples, probability): ... def ransac( diff --git a/stubs/skimage/stubtest_allowlist.txt b/stubs/skimage/stubtest_allowlist.txt index eea8978b..7d932d00 100644 --- a/stubs/skimage/stubtest_allowlist.txt +++ b/stubs/skimage/stubtest_allowlist.txt @@ -1,3 +1,5 @@ +# scikit-image wheels may omit tests. Exact optional entries also cover wheels +# (including 0.25 on Python 3.10) that still distribute these test modules. # TODO: Missing in this non-partial stub skimage.__all__ skimage._shared._dependency_checks.is_wasm @@ -8,17 +10,17 @@ skimage._shared.geometry skimage._shared.interpolation skimage._shared.testing.assert_stacklevel skimage._shared.testing.run_in_parallel -skimage._shared.tests -skimage._shared.tests.test_coord -skimage._shared.tests.test_dtype -skimage._shared.tests.test_fast_exp -skimage._shared.tests.test_geometry -skimage._shared.tests.test_interpolation -skimage._shared.tests.test_safe_as_int -skimage._shared.tests.test_testing -skimage._shared.tests.test_utils -skimage._shared.tests.test_version_requirements -skimage._shared.tests.test_warnings +(skimage\._shared\.tests)? +(skimage\._shared\.tests\.test_coord)? +(skimage\._shared\.tests\.test_dtype)? +(skimage\._shared\.tests\.test_fast_exp)? +(skimage\._shared\.tests\.test_geometry)? +(skimage\._shared\.tests\.test_interpolation)? +(skimage\._shared\.tests\.test_safe_as_int)? +(skimage\._shared\.tests\.test_testing)? +(skimage\._shared\.tests\.test_utils)? +(skimage\._shared\.tests\.test_version_requirements)? +(skimage\._shared\.tests\.test_warnings)? skimage._shared.transform skimage._shared.utils.DEPRECATED skimage._shared.utils.__all__ @@ -31,33 +33,33 @@ skimage.color.colorconv skimage.color.colorlabel skimage.color.delta_e skimage.color.rgb_colors -skimage.color.tests -skimage.color.tests.test_adapt_rgb -skimage.color.tests.test_colorconv -skimage.color.tests.test_colorlabel -skimage.color.tests.test_delta_e +(skimage\.color\.tests)? +(skimage\.color\.tests\.test_adapt_rgb)? +(skimage\.color\.tests\.test_colorconv)? +(skimage\.color\.tests\.test_colorlabel)? +(skimage\.color\.tests\.test_delta_e)? skimage.conftest skimage.data skimage.data.binary_blobs skimage.data.cat skimage.data.data_dir -skimage.data.tests -skimage.data.tests.test_data +(skimage\.data\.tests)? +(skimage\.data\.tests\.test_data)? skimage.draw skimage.draw.__all__ skimage.draw._bezier_segment -skimage.draw.tests -skimage.draw.tests.test_draw -skimage.draw.tests.test_draw3d -skimage.draw.tests.test_draw_nd -skimage.draw.tests.test_polygon2mask -skimage.draw.tests.test_random_shapes +(skimage\.draw\.tests)? +(skimage\.draw\.tests\.test_draw)? +(skimage\.draw\.tests\.test_draw3d)? +(skimage\.draw\.tests\.test_draw_nd)? +(skimage\.draw\.tests\.test_polygon2mask)? +(skimage\.draw\.tests\.test_random_shapes)? skimage.exposure skimage.exposure.exposure skimage.exposure.histogram_matching -skimage.exposure.tests -skimage.exposure.tests.test_exposure -skimage.exposure.tests.test_histogram_matching +(skimage\.exposure\.tests)? +(skimage\.exposure\.tests\.test_exposure)? +(skimage\.exposure\.tests\.test_histogram_matching)? skimage.feature skimage.feature.__all__ skimage.feature.brief.np2 @@ -70,25 +72,25 @@ skimage.feature.orb.i skimage.feature.orb.j skimage.feature.orb_cy skimage.feature.plot_matched_features -skimage.feature.tests -skimage.feature.tests.test_basic_features -skimage.feature.tests.test_blob -skimage.feature.tests.test_brief -skimage.feature.tests.test_canny -skimage.feature.tests.test_cascade -skimage.feature.tests.test_censure -skimage.feature.tests.test_corner -skimage.feature.tests.test_daisy -skimage.feature.tests.test_fisher_vector -skimage.feature.tests.test_haar -skimage.feature.tests.test_hog -skimage.feature.tests.test_match -skimage.feature.tests.test_orb -skimage.feature.tests.test_peak -skimage.feature.tests.test_sift -skimage.feature.tests.test_template -skimage.feature.tests.test_texture -skimage.feature.tests.test_util +(skimage\.feature\.tests)? +(skimage\.feature\.tests\.test_basic_features)? +(skimage\.feature\.tests\.test_blob)? +(skimage\.feature\.tests\.test_brief)? +(skimage\.feature\.tests\.test_canny)? +(skimage\.feature\.tests\.test_cascade)? +(skimage\.feature\.tests\.test_censure)? +(skimage\.feature\.tests\.test_corner)? +(skimage\.feature\.tests\.test_daisy)? +(skimage\.feature\.tests\.test_fisher_vector)? +(skimage\.feature\.tests\.test_haar)? +(skimage\.feature\.tests\.test_hog)? +(skimage\.feature\.tests\.test_match)? +(skimage\.feature\.tests\.test_orb)? +(skimage\.feature\.tests\.test_peak)? +(skimage\.feature\.tests\.test_sift)? +(skimage\.feature\.tests\.test_template)? +(skimage\.feature\.tests\.test_texture)? +(skimage\.feature\.tests\.test_util)? skimage.feature.util.plot_matched_features skimage.filters skimage.filters.edges @@ -101,40 +103,40 @@ skimage.filters.rank.core_cy_3d skimage.filters.rank.generic skimage.filters.rank.generic_cy skimage.filters.rank.percentile_cy -skimage.filters.rank.tests -skimage.filters.rank.tests.test_rank +(skimage\.filters\.rank\.tests)? +(skimage\.filters\.rank\.tests\.test_rank)? skimage.filters.ridges -skimage.filters.tests -skimage.filters.tests.test_correlate -skimage.filters.tests.test_edges -skimage.filters.tests.test_fft_based -skimage.filters.tests.test_gabor -skimage.filters.tests.test_gaussian -skimage.filters.tests.test_lpi_filter -skimage.filters.tests.test_median -skimage.filters.tests.test_ridges -skimage.filters.tests.test_thresholding -skimage.filters.tests.test_unsharp_mask -skimage.filters.tests.test_window +(skimage\.filters\.tests)? +(skimage\.filters\.tests\.test_correlate)? +(skimage\.filters\.tests\.test_edges)? +(skimage\.filters\.tests\.test_fft_based)? +(skimage\.filters\.tests\.test_gabor)? +(skimage\.filters\.tests\.test_gaussian)? +(skimage\.filters\.tests\.test_lpi_filter)? +(skimage\.filters\.tests\.test_median)? +(skimage\.filters\.tests\.test_ridges)? +(skimage\.filters\.tests\.test_thresholding)? +(skimage\.filters\.tests\.test_unsharp_mask)? +(skimage\.filters\.tests\.test_window)? skimage.filters.thresholding skimage.future skimage.future.__all__ -skimage.future.tests -skimage.future.tests.test_trainable_segmentation +(skimage\.future\.tests)? +(skimage\.future\.tests\.test_trainable_segmentation)? skimage.future.trainable_segmentation.has_sklearn skimage.graph skimage.graph.heap skimage.graph.mcp skimage.graph.spath -skimage.graph.tests -skimage.graph.tests.test_anisotropy -skimage.graph.tests.test_connect -skimage.graph.tests.test_flexible -skimage.graph.tests.test_heap -skimage.graph.tests.test_mcp -skimage.graph.tests.test_pixel_graph -skimage.graph.tests.test_rag -skimage.graph.tests.test_spath +(skimage\.graph\.tests)? +(skimage\.graph\.tests\.test_anisotropy)? +(skimage\.graph\.tests\.test_connect)? +(skimage\.graph\.tests\.test_flexible)? +(skimage\.graph\.tests\.test_heap)? +(skimage\.graph\.tests\.test_mcp)? +(skimage\.graph\.tests\.test_pixel_graph)? +(skimage\.graph\.tests\.test_rag)? +(skimage\.graph\.tests\.test_spath)? skimage.io skimage.io._plugins.fits_plugin skimage.io._plugins.gdal_plugin @@ -147,19 +149,19 @@ skimage.io._plugins.tifffile_plugin skimage.io.collection skimage.io.manage_plugins skimage.io.sift -skimage.io.tests -skimage.io.tests.test_collection -skimage.io.tests.test_fits -skimage.io.tests.test_imageio -skimage.io.tests.test_imread -skimage.io.tests.test_io -skimage.io.tests.test_mpl_imshow -skimage.io.tests.test_multi_image -skimage.io.tests.test_pil -skimage.io.tests.test_plugin -skimage.io.tests.test_sift -skimage.io.tests.test_simpleitk -skimage.io.tests.test_tifffile +(skimage\.io\.tests)? +(skimage\.io\.tests\.test_collection)? +(skimage\.io\.tests\.test_fits)? +(skimage\.io\.tests\.test_imageio)? +(skimage\.io\.tests\.test_imread)? +(skimage\.io\.tests\.test_io)? +(skimage\.io\.tests\.test_mpl_imshow)? +(skimage\.io\.tests\.test_multi_image)? +(skimage\.io\.tests\.test_pil)? +(skimage\.io\.tests\.test_plugin)? +(skimage\.io\.tests\.test_sift)? +(skimage\.io\.tests\.test_simpleitk)? +(skimage\.io\.tests\.test_tifffile)? skimage.io.util skimage.measure skimage.measure.__all__ @@ -171,29 +173,29 @@ skimage.measure.intersection_coeff skimage.measure.manders_coloc_coeff skimage.measure.manders_overlap_coeff skimage.measure.pearson_corr_coeff -skimage.measure.tests -skimage.measure.tests.test_block -skimage.measure.tests.test_blur_effect -skimage.measure.tests.test_ccomp -skimage.measure.tests.test_colocalization -skimage.measure.tests.test_entropy -skimage.measure.tests.test_find_contours -skimage.measure.tests.test_fit -skimage.measure.tests.test_label -skimage.measure.tests.test_marching_cubes -skimage.measure.tests.test_moments -skimage.measure.tests.test_pnpoly -skimage.measure.tests.test_polygon -skimage.measure.tests.test_profile -skimage.measure.tests.test_regionprops +(skimage\.measure\.tests)? +(skimage\.measure\.tests\.test_block)? +(skimage\.measure\.tests\.test_blur_effect)? +(skimage\.measure\.tests\.test_ccomp)? +(skimage\.measure\.tests\.test_colocalization)? +(skimage\.measure\.tests\.test_entropy)? +(skimage\.measure\.tests\.test_find_contours)? +(skimage\.measure\.tests\.test_fit)? +(skimage\.measure\.tests\.test_label)? +(skimage\.measure\.tests\.test_marching_cubes)? +(skimage\.measure\.tests\.test_moments)? +(skimage\.measure\.tests\.test_pnpoly)? +(skimage\.measure\.tests\.test_polygon)? +(skimage\.measure\.tests\.test_profile)? +(skimage\.measure\.tests\.test_regionprops)? skimage.metrics skimage.metrics.set_metrics skimage.metrics.simple_metrics -skimage.metrics.tests -skimage.metrics.tests.test_segmentation_metrics -skimage.metrics.tests.test_set_metrics -skimage.metrics.tests.test_simple_metrics -skimage.metrics.tests.test_structural_similarity +(skimage\.metrics\.tests)? +(skimage\.metrics\.tests\.test_segmentation_metrics)? +(skimage\.metrics\.tests\.test_set_metrics)? +(skimage\.metrics\.tests\.test_simple_metrics)? +(skimage\.metrics\.tests\.test_structural_similarity)? skimage.morphology skimage.morphology.__all__ skimage.morphology.ellipse @@ -212,37 +214,37 @@ skimage.morphology.mirror_footprint skimage.morphology.misc.remove_objects_by_distance skimage.morphology.pad_footprint skimage.morphology.remove_objects_by_distance -skimage.morphology.tests -skimage.morphology.tests.test_binary -skimage.morphology.tests.test_convex_hull -skimage.morphology.tests.test_extrema -skimage.morphology.tests.test_flood_fill -skimage.morphology.tests.test_footprints -skimage.morphology.tests.test_gray -skimage.morphology.tests.test_isotropic -skimage.morphology.tests.test_max_tree -skimage.morphology.tests.test_misc -skimage.morphology.tests.test_reconstruction -skimage.morphology.tests.test_skeletonize -skimage.morphology.tests.test_util +(skimage\.morphology\.tests)? +(skimage\.morphology\.tests\.test_binary)? +(skimage\.morphology\.tests\.test_convex_hull)? +(skimage\.morphology\.tests\.test_extrema)? +(skimage\.morphology\.tests\.test_flood_fill)? +(skimage\.morphology\.tests\.test_footprints)? +(skimage\.morphology\.tests\.test_gray)? +(skimage\.morphology\.tests\.test_isotropic)? +(skimage\.morphology\.tests\.test_max_tree)? +(skimage\.morphology\.tests\.test_misc)? +(skimage\.morphology\.tests\.test_reconstruction)? +(skimage\.morphology\.tests\.test_skeletonize)? +(skimage\.morphology\.tests\.test_util)? skimage.registration -skimage.registration.tests -skimage.registration.tests.test_ilk -skimage.registration.tests.test_masked_phase_cross_correlation -skimage.registration.tests.test_phase_cross_correlation -skimage.registration.tests.test_tvl1 +(skimage\.registration\.tests)? +(skimage\.registration\.tests\.test_ilk)? +(skimage\.registration\.tests\.test_masked_phase_cross_correlation)? +(skimage\.registration\.tests\.test_phase_cross_correlation)? +(skimage\.registration\.tests\.test_tvl1)? skimage.restoration skimage.restoration.deconvolution skimage.restoration.inpaint skimage.restoration.j_invariant skimage.restoration.non_local_means -skimage.restoration.tests -skimage.restoration.tests.test_denoise -skimage.restoration.tests.test_inpaint -skimage.restoration.tests.test_j_invariant -skimage.restoration.tests.test_restoration -skimage.restoration.tests.test_rolling_ball -skimage.restoration.tests.test_unwrap +(skimage\.restoration\.tests)? +(skimage\.restoration\.tests\.test_denoise)? +(skimage\.restoration\.tests\.test_inpaint)? +(skimage\.restoration\.tests\.test_j_invariant)? +(skimage\.restoration\.tests\.test_restoration)? +(skimage\.restoration\.tests\.test_rolling_ball)? +(skimage\.restoration\.tests\.test_unwrap)? skimage.restoration.uft skimage.restoration.unwrap skimage.segmentation @@ -251,31 +253,31 @@ skimage.segmentation.boundaries skimage.segmentation.morphsnakes skimage.segmentation.random_walker_segmentation skimage.segmentation.slic_superpixels -skimage.segmentation.tests -skimage.segmentation.tests.test_active_contour_model -skimage.segmentation.tests.test_boundaries -skimage.segmentation.tests.test_chan_vese -skimage.segmentation.tests.test_clear_border -skimage.segmentation.tests.test_expand_labels -skimage.segmentation.tests.test_felzenszwalb -skimage.segmentation.tests.test_join -skimage.segmentation.tests.test_morphsnakes -skimage.segmentation.tests.test_quickshift -skimage.segmentation.tests.test_random_walker -skimage.segmentation.tests.test_slic -skimage.segmentation.tests.test_watershed +(skimage\.segmentation\.tests)? +(skimage\.segmentation\.tests\.test_active_contour_model)? +(skimage\.segmentation\.tests\.test_boundaries)? +(skimage\.segmentation\.tests\.test_chan_vese)? +(skimage\.segmentation\.tests\.test_clear_border)? +(skimage\.segmentation\.tests\.test_expand_labels)? +(skimage\.segmentation\.tests\.test_felzenszwalb)? +(skimage\.segmentation\.tests\.test_join)? +(skimage\.segmentation\.tests\.test_morphsnakes)? +(skimage\.segmentation\.tests\.test_quickshift)? +(skimage\.segmentation\.tests\.test_random_walker)? +(skimage\.segmentation\.tests\.test_slic)? +(skimage\.segmentation\.tests\.test_watershed)? skimage.transform skimage.transform.ThinPlateSplineTransform skimage.transform.__all__ -skimage.transform.tests -skimage.transform.tests.test_finite_radon_transform -skimage.transform.tests.test_geometric -skimage.transform.tests.test_hough_transform -skimage.transform.tests.test_integral -skimage.transform.tests.test_pyramids -skimage.transform.tests.test_radon_transform -skimage.transform.tests.test_thin_plate_splines -skimage.transform.tests.test_warps +(skimage\.transform\.tests)? +(skimage\.transform\.tests\.test_finite_radon_transform)? +(skimage\.transform\.tests\.test_geometric)? +(skimage\.transform\.tests\.test_hough_transform)? +(skimage\.transform\.tests\.test_integral)? +(skimage\.transform\.tests\.test_pyramids)? +(skimage\.transform\.tests\.test_radon_transform)? +(skimage\.transform\.tests\.test_thin_plate_splines)? +(skimage\.transform\.tests\.test_warps)? skimage.util skimage.util.apply_parallel skimage.util.arraycrop @@ -284,21 +286,21 @@ skimage.util.dtype skimage.util.lookfor skimage.util.noise skimage.util.shape -skimage.util.tests -skimage.util.tests.test_apply_parallel -skimage.util.tests.test_arraycrop -skimage.util.tests.test_compare -skimage.util.tests.test_dtype -skimage.util.tests.test_invert -skimage.util.tests.test_labels -skimage.util.tests.test_lookfor -skimage.util.tests.test_map_array -skimage.util.tests.test_montage -skimage.util.tests.test_random_noise -skimage.util.tests.test_regular_grid -skimage.util.tests.test_shape -skimage.util.tests.test_slice_along_axes -skimage.util.tests.test_unique_rows +(skimage\.util\.tests)? +(skimage\.util\.tests\.test_apply_parallel)? +(skimage\.util\.tests\.test_arraycrop)? +(skimage\.util\.tests\.test_compare)? +(skimage\.util\.tests\.test_dtype)? +(skimage\.util\.tests\.test_invert)? +(skimage\.util\.tests\.test_labels)? +(skimage\.util\.tests\.test_lookfor)? +(skimage\.util\.tests\.test_map_array)? +(skimage\.util\.tests\.test_montage)? +(skimage\.util\.tests\.test_random_noise)? +(skimage\.util\.tests\.test_regular_grid)? +(skimage\.util\.tests\.test_shape)? +(skimage\.util\.tests\.test_slice_along_axes)? +(skimage\.util\.tests\.test_unique_rows)? skimage.util.unique # TODO: Fix all these so stubs match implementation @@ -519,3 +521,15 @@ skimage.transform.hough_transform.hough_line_peaks skimage.transform.hough_transform.probabilistic_hough_line skimage.transform.probabilistic_hough_line skimage.transform.warp + +# 0.26 introspection bugs: _deprecate_no_args copies the required-argument +# signature onto wrappers that still support deprecated no-argument construction. +# Keep both valid constructor overloads rather than removing legacy calls. +(skimage\.measure\.(fit\.)?CircleModel\.__init__)? +(skimage\.measure\.(fit\.)?EllipseModel\.__init__)? +(skimage\.measure\.(fit\.)?LineModelND\.__init__)? +# _update_from_estimate_docstring copies an already-bound signature onto a new +# classmethod, so inspect.signature drops src a second time. Both methods really +# accept src, dst (and AffineTransform also accepts weights). +(skimage\.transform\.(_geometric\.)?AffineTransform\.from_estimate)? +(skimage\.transform\.(_geometric\.)?SimilarityTransform\.from_estimate)? diff --git a/stubs/skimage/transform/_geometric.pyi b/stubs/skimage/transform/_geometric.pyi index 5e0e00a8..ee245a0a 100644 --- a/stubs/skimage/transform/_geometric.pyi +++ b/stubs/skimage/transform/_geometric.pyi @@ -1,9 +1,22 @@ +import sys from collections.abc import Sequence +from typing import ClassVar, Literal +from typing_extensions import Self -from numpy.typing import ArrayLike +from numpy.typing import ArrayLike, NDArray + +if sys.version_info >= (3, 11): + from .._shared.utils import FailedEstimation def _affine_matrix_from_vector(v): ... -def _center_and_normalize_points(points): ... + +if sys.version_info >= (3, 11): + def _center_and_normalize_points( + points: ArrayLike, scaling: Literal["rms", "mrs", "raw"] = "rms" + ) -> tuple[NDArray, NDArray]: ... +else: + def _center_and_normalize_points(points: ArrayLike) -> tuple[NDArray, NDArray]: ... + def _umeyama(src, dst, estimate_scale): ... class GeometricTransform: @@ -13,7 +26,15 @@ class GeometricTransform: def __add__(self, other): ... class FundamentalMatrixTransform(GeometricTransform): - def __init__(self, matrix=None, *, dimensionality=2): ... + if sys.version_info >= (3, 11): + def __init__(self, matrix: ArrayLike | None = None, *, dimensionality: int | None = None): ... + scaling: ClassVar[Literal["rms", "mrs", "raw"]] + @classmethod + def from_estimate(cls, src: ArrayLike, dst: ArrayLike) -> Self | FailedEstimation: ... + @classmethod + def identity(cls, dimensionality: int | None = None) -> Self: ... + else: + def __init__(self, matrix: ArrayLike | None = None, *, dimensionality: int = 2): ... def __call__(self, coords): ... def inverse(self, coords): ... def _setup_constraint_matrix(self, src, dst): ... @@ -21,14 +42,33 @@ class FundamentalMatrixTransform(GeometricTransform): def residuals(self, src, dst): ... class EssentialMatrixTransform(FundamentalMatrixTransform): - def __init__(self, rotation=None, translation=None, matrix=None, *, dimensionality=2): ... + if sys.version_info >= (3, 11): + def __init__( + self, + *, + rotation: ArrayLike | None = None, + translation: ArrayLike | None = None, + matrix: ArrayLike | None = None, + dimensionality: int | None = None, + ): ... + else: + def __init__(self, rotation=None, translation=None, matrix=None, *, dimensionality: int = 2): ... def estimate(self, src, dst) -> bool: ... class ProjectiveTransform(GeometricTransform): - def __init__(self, matrix=None, *, dimensionality: int = 2): ... + if sys.version_info >= (3, 11): + def __init__(self, matrix: ArrayLike | None = None, *, dimensionality: int | None = None): ... + scaling: ClassVar[Literal["rms", "mrs", "raw"]] + @classmethod + def from_estimate(cls, src: ArrayLike, dst: ArrayLike, weights: ArrayLike | None = None) -> Self | FailedEstimation: ... + @classmethod + def identity(cls, dimensionality: int | None = None) -> Self: ... + else: + def __init__(self, matrix: ArrayLike | None = None, *, dimensionality: int = 2): ... @property def _inv_matrix(self): ... - def _apply_mat(self, coords, matrix): ... + if sys.version_info < (3, 11): + def _apply_mat(self, coords, matrix): ... def __array__(self, dtype=None): ... def __call__(self, coords): ... def inverse(self, coords): ... @@ -41,16 +81,28 @@ class ProjectiveTransform(GeometricTransform): def dimensionality(self): ... class AffineTransform(ProjectiveTransform): - def __init__( - self, - matrix=None, - scale=None, - rotation: float | None = None, - shear: float | None = None, - translation=None, - *, - dimensionality: int = 2, - ): ... + if sys.version_info >= (3, 11): + def __init__( + self, + matrix: ArrayLike | None = None, + *, + scale: float | Sequence[float] | None = None, + rotation: float | None = None, + shear: float | Sequence[float] | None = None, + translation: ArrayLike | None = None, + dimensionality: int | None = None, + ): ... + else: + def __init__( + self, + matrix=None, + scale=None, + rotation: float | None = None, + shear: float | None = None, + translation=None, + *, + dimensionality: int = 2, + ): ... @property def scale(self): ... @property @@ -62,6 +114,11 @@ class AffineTransform(ProjectiveTransform): class PiecewiseAffineTransform(GeometricTransform): def __init__(self): ... + if sys.version_info >= (3, 11): + @classmethod + def from_estimate(cls, src: ArrayLike, dst: ArrayLike) -> Self | FailedEstimation: ... + @classmethod + def identity(cls, dimensionality: int | None = None) -> Self: ... def estimate(self, src, dst) -> bool: ... def __call__(self, coords): ... def inverse(self, coords): ... @@ -70,9 +127,21 @@ def _euler_rotation(axis, angle): ... def _euler_rotation_matrix(angles, axes=None): ... class EuclideanTransform(ProjectiveTransform): - def __init__( - self, matrix=None, rotation: float | Sequence[float] | None = None, translation=None, *, dimensionality: int = 2 - ): ... + if sys.version_info >= (3, 11): + def __init__( + self, + matrix: ArrayLike | None = None, + *, + rotation: float | Sequence[float] | None = None, + translation: ArrayLike | None = None, + dimensionality: int | None = None, + ): ... + @classmethod + def from_estimate(cls, src: ArrayLike, dst: ArrayLike) -> Self | FailedEstimation: ... + else: + def __init__( + self, matrix=None, rotation: float | Sequence[float] | None = None, translation=None, *, dimensionality: int = 2 + ): ... def estimate(self, src, dst) -> bool: ... @property def rotation(self): ... @@ -80,15 +149,35 @@ class EuclideanTransform(ProjectiveTransform): def translation(self): ... class SimilarityTransform(EuclideanTransform): - def __init__( - self, matrix=None, scale: float | None = None, rotation: float | None = None, translation=None, *, dimensionality=2 - ): ... + if sys.version_info >= (3, 11): + def __init__( + self, + matrix: ArrayLike | None = None, + *, + scale: float | None = None, + rotation: float | Sequence[float] | None = None, + translation: ArrayLike | None = None, + dimensionality: int | None = None, + ): ... + else: + def __init__( + self, matrix=None, scale: float | None = None, rotation: float | None = None, translation=None, *, dimensionality=2 + ): ... def estimate(self, src, dst) -> bool: ... @property def scale(self): ... class PolynomialTransform(GeometricTransform): - def __init__(self, params=None, *, dimensionality=2): ... + if sys.version_info >= (3, 11): + def __init__(self, params: ArrayLike | None = None, *, dimensionality: int | None = None): ... + @classmethod + def from_estimate( + cls, src: ArrayLike, dst: ArrayLike, order: int = 2, weights: ArrayLike | None = None + ) -> Self | FailedEstimation: ... + @classmethod + def identity(cls, dimensionality: int | None = None) -> Self: ... + else: + def __init__(self, params: ArrayLike | None = None, *, dimensionality: int = 2): ... def estimate(self, src, dst, order: int = 2, weights=None) -> bool: ... def __call__(self, coords): ... def inverse(self, coords): ... diff --git a/stubs/sklearn/_loss/_loss.pyi b/stubs/sklearn/_loss/_loss.pyi index e49d018d..ab74969c 100644 --- a/stubs/sklearn/_loss/_loss.pyi +++ b/stubs/sklearn/_loss/_loss.pyi @@ -1,3 +1,6 @@ +from typing_extensions import disjoint_base + +@disjoint_base class CyLossFunction: def cy_loss(self, y_true: float, raw_prediction: float) -> float: ... def cy_gradient(self, y_true: float, raw_prediction: float) -> float: ... @@ -13,6 +16,7 @@ class CyAbsoluteError(CyLossFunction): def cy_gradient(self, y_true: float, raw_prediction: float) -> float: ... def cy_grad_hess(self, y_true: float, raw_prediction: float) -> tuple[float, float]: ... +@disjoint_base class CyPinballLoss(CyLossFunction): quantile: float def cy_loss(self, y_true: float, raw_prediction: float) -> float: ... @@ -29,12 +33,14 @@ class CyHalfGammaLoss(CyLossFunction): def cy_gradient(self, y_true: float, raw_prediction: float) -> float: ... def cy_grad_hess(self, y_true: float, raw_prediction: float) -> tuple[float, float]: ... +@disjoint_base class CyHalfTweedieLoss(CyLossFunction): power: float def cy_loss(self, y_true: float, raw_prediction: float) -> float: ... def cy_gradient(self, y_true: float, raw_prediction: float) -> float: ... def cy_grad_hess(self, y_true: float, raw_prediction: float) -> tuple[float, float]: ... +@disjoint_base class CyHalfTweedieLossIdentity(CyLossFunction): power: float def cy_loss(self, y_true: float, raw_prediction: float) -> float: ... @@ -46,6 +52,7 @@ class CyHalfBinomialLoss(CyLossFunction): def cy_gradient(self, y_true: float, raw_prediction: float) -> float: ... def cy_grad_hess(self, y_true: float, raw_prediction: float) -> tuple[float, float]: ... +@disjoint_base class CyHalfMultinomialLoss(CyLossFunction): def cy_loss(self, y_true: float, raw_prediction: float) -> float: ... def cy_gradient(self, y_true: float, raw_prediction: float) -> float: ... diff --git a/stubs/sklearn/linear_model/_sgd_fast.pyi b/stubs/sklearn/linear_model/_sgd_fast.pyi index 4d97d4fb..02d2d1d6 100644 --- a/stubs/sklearn/linear_model/_sgd_fast.pyi +++ b/stubs/sklearn/linear_model/_sgd_fast.pyi @@ -1,3 +1,5 @@ +from typing_extensions import disjoint_base + class LossFunction: def loss(self, p: float, y: float) -> float: ... def dloss(self, p: float, y) -> float: ... @@ -22,6 +24,7 @@ class ModifiedHuber(Classification): def loss(self, p: float, y: float) -> float: ... def dloss(self, p: float, y: float) -> float: ... +@disjoint_base class Hinge(Classification): """Hinge loss for binary classification tasks with y in {-1,1} @@ -38,6 +41,7 @@ class Hinge(Classification): def loss(self, p: float, y: float) -> float: ... def dloss(self, p: float, y: float) -> float: ... +@disjoint_base class SquaredHinge(Classification): """Squared Hinge loss for binary classification tasks with y in {-1,1} @@ -80,6 +84,7 @@ class Huber(Regression): def loss(self, p: float, y: float) -> float: ... def dloss(self, p: float, y: float) -> float: ... +@disjoint_base class EpsilonInsensitive(Regression): """Epsilon-Insensitive loss (used by SVR). @@ -91,6 +96,7 @@ class EpsilonInsensitive(Regression): def loss(self, p: float, y: float) -> float: ... def dloss(self, p: float, y: float) -> float: ... +@disjoint_base class SquaredEpsilonInsensitive(Regression): """Epsilon-Insensitive loss. diff --git a/stubs/sklearn/metrics/_dist_metrics.pyi b/stubs/sklearn/metrics/_dist_metrics.pyi index 10b190d1..daafebed 100644 --- a/stubs/sklearn/metrics/_dist_metrics.pyi +++ b/stubs/sklearn/metrics/_dist_metrics.pyi @@ -1,5 +1,6 @@ from collections.abc import Iterable from typing import Any +from typing_extensions import disjoint_base import numpy as np from scipy.sparse import csr_matrix @@ -22,6 +23,7 @@ class DistanceMetric: def dist_to_rdist(self, dist: float) -> float: ... def pairwise(self, X: np.ndarray | csr_matrix, Y: np.ndarray | csr_matrix | None = None) -> np.ndarray: ... +@disjoint_base class DistanceMetric32: def __init__(self) -> None: ... @classmethod @@ -57,7 +59,10 @@ class JaccardDistance32(DistanceMetric32): ... class KulsinskiDistance(DistanceMetric): ... class KulsinskiDistance32(DistanceMetric32): ... class MahalanobisDistance(DistanceMetric): ... + +@disjoint_base class MahalanobisDistance32(DistanceMetric32): ... + class ManhattanDistance(DistanceMetric): ... class ManhattanDistance32(DistanceMetric32): ... class MatchingDistance(DistanceMetric): ... diff --git a/stubs/sklearn/stubtest_allowlist.txt b/stubs/sklearn/stubtest_allowlist.txt index b7d62874..d45bc2d9 100644 --- a/stubs/sklearn/stubtest_allowlist.txt +++ b/stubs/sklearn/stubtest_allowlist.txt @@ -1897,7 +1897,6 @@ sklearn.manifold._mds.smacof sklearn.manifold._t_sne.MACHINE_EPSILON sklearn.manifold._t_sne.TSNE.__init__ sklearn.manifold.smacof -sklearn.metrics.DistanceMetric.__init__ sklearn.metrics.DistanceMetric.cdist sklearn.metrics.DistanceMetric.cdist_csr sklearn.metrics.DistanceMetric.dist @@ -1925,7 +1924,6 @@ sklearn.metrics._dist_metrics.CanberraDistance sklearn.metrics._dist_metrics.ChebyshevDistance sklearn.metrics._dist_metrics.ChebyshevDistance32.__init__ sklearn.metrics._dist_metrics.DiceDistance -sklearn.metrics._dist_metrics.DistanceMetric.__init__ sklearn.metrics._dist_metrics.DistanceMetric.cdist sklearn.metrics._dist_metrics.DistanceMetric.cdist_csr sklearn.metrics._dist_metrics.DistanceMetric.dist @@ -2066,10 +2064,8 @@ sklearn.pipeline.make_pipeline sklearn.preprocessing.KBinsDiscretizer.__init__ sklearn.preprocessing.KBinsDiscretizer.fit sklearn.preprocessing.KBinsDiscretizer.inverse_transform -sklearn.preprocessing.KernelCenterer.__init__ sklearn.preprocessing.OneHotEncoder.__init__ sklearn.preprocessing.OrdinalEncoder.__init__ -sklearn.preprocessing._data.KernelCenterer.__init__ sklearn.preprocessing._data.OneHotEncoder.__init__ sklearn.preprocessing._discretization.KBinsDiscretizer.__init__ sklearn.preprocessing._discretization.KBinsDiscretizer.fit @@ -2270,7 +2266,6 @@ sklearn.utils.register_parallel_backend sklearn.utils.suppress sklearn.utils.validation.FLOAT_DTYPES sklearn.utils.validation.Parameter.__init__ -sklearn.utils.validation.Parameter.empty sklearn.utils.validation.as_float_array sklearn.utils.validation.check_X_y sklearn.utils.validation.check_array diff --git a/stubs/sklearn/tree/_criterion.pyi b/stubs/sklearn/tree/_criterion.pyi index 5c1aacbe..3353d3c6 100644 --- a/stubs/sklearn/tree/_criterion.pyi +++ b/stubs/sklearn/tree/_criterion.pyi @@ -1,5 +1,8 @@ +from typing_extensions import disjoint_base + import numpy as np +@disjoint_base class Criterion: y: np.ndarray sample_weight: np.ndarray @@ -35,6 +38,7 @@ class Criterion: def impurity_improvement(self, impurity_parent: float, impurity_left: float, impurity_right: float) -> float: ... def proxy_impurity_improvement(self) -> float: ... +@disjoint_base class ClassificationCriterion(Criterion): n_classes: np.ndarray max_n_classes: int @@ -43,6 +47,7 @@ class ClassificationCriterion(Criterion): sum_left: np.ndarray sum_right: np.ndarray +@disjoint_base class RegressionCriterion(Criterion): sq_sum_total: float diff --git a/stubs/sklearn/tree/_splitter.pyi b/stubs/sklearn/tree/_splitter.pyi index be15c6ed..8f5b8876 100644 --- a/stubs/sklearn/tree/_splitter.pyi +++ b/stubs/sklearn/tree/_splitter.pyi @@ -1,3 +1,5 @@ +from typing_extensions import disjoint_base + import numpy as np from ._criterion import Criterion @@ -13,6 +15,7 @@ class SplitRecord: impurity_left: float # Impurity of the left split. impurity_right: float # Impurity of the right split. +@disjoint_base class Splitter: """The splitter searches in the input space for a feature and a threshold to split the samples samples[start:end].""" diff --git a/stubs/sklearn/tree/_tree.pyi b/stubs/sklearn/tree/_tree.pyi index 8774cd09..a2b76ffb 100644 --- a/stubs/sklearn/tree/_tree.pyi +++ b/stubs/sklearn/tree/_tree.pyi @@ -1,4 +1,5 @@ from typing import Any +from typing_extensions import Self, disjoint_base import numpy as np @@ -18,15 +19,15 @@ class Node: class DepthFirstTreeBuilder(TreeBuilder): """Build a decision tree in depth-first fashion.""" - def __init__( - self, + def __new__( + cls, splitter: Splitter, min_samples_split: int, min_samples_leaf: int, min_weight_leaf: float, max_depth: int, min_impurity_decrease: float, - ) -> None: ... + ) -> Self: ... def build( self, tree: Tree, @@ -35,6 +36,7 @@ class DepthFirstTreeBuilder(TreeBuilder): sample_weight: np.ndarray | None = None, ) -> None: ... +@disjoint_base class BestFirstTreeBuilder(TreeBuilder): """Build a decision tree in best-first fashion. The best node to expand is given by the node at the frontier that has the @@ -43,8 +45,8 @@ class BestFirstTreeBuilder(TreeBuilder): max_leaf_nodes: int - def __init__( - self, + def __new__( + cls, splitter: Splitter, min_samples_split: int, min_samples_leaf: int, @@ -52,7 +54,7 @@ class BestFirstTreeBuilder(TreeBuilder): max_depth: int, max_leaf_nodes: int, min_impurity_decrease: float, - ) -> None: ... + ) -> Self: ... def build( self, tree: Tree, @@ -61,6 +63,7 @@ class BestFirstTreeBuilder(TreeBuilder): sample_weight: np.ndarray | None = None, ) -> None: ... +@disjoint_base class Tree: n_features: int n_classes: int @@ -80,6 +83,7 @@ class Tree: def compute_node_depths(self): ... def compute_feature_importances(self, normalize): ... +@disjoint_base class TreeBuilder: splitter: Splitter min_samples_split: int diff --git a/stubs/sklearn/utils/_fast_dict.pyi b/stubs/sklearn/utils/_fast_dict.pyi index d2292340..f4baac73 100644 --- a/stubs/sklearn/utils/_fast_dict.pyi +++ b/stubs/sklearn/utils/_fast_dict.pyi @@ -1,2 +1,5 @@ +from typing_extensions import disjoint_base + +@disjoint_base class IntFloatDict: cpp_map: dict diff --git a/stubs/sklearn/utils/_pprint.pyi b/stubs/sklearn/utils/_pprint.pyi index 8cafe113..7db59f56 100644 --- a/stubs/sklearn/utils/_pprint.pyi +++ b/stubs/sklearn/utils/_pprint.pyi @@ -1,5 +1,7 @@ import pprint +import sys from typing import Any +from typing_extensions import disjoint_base # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Python Software Foundation; @@ -62,7 +64,13 @@ from typing import Any # - long sequences (lists, tuples, dict items) with more than N elements are # shortened using ellipsis (', ...') at the end. -class KeyValTuple(tuple): ... +if sys.version_info >= (3, 12): + class KeyValTuple(tuple): ... + +else: + @disjoint_base + class KeyValTuple(tuple): ... + class KeyValTupleParam(KeyValTuple): ... class _EstimatorPrettyPrinter(pprint.PrettyPrinter): diff --git a/stubs/sklearn/utils/_seq_dataset.pyi b/stubs/sklearn/utils/_seq_dataset.pyi index 85dc3d17..fc9b1f04 100644 --- a/stubs/sklearn/utils/_seq_dataset.pyi +++ b/stubs/sklearn/utils/_seq_dataset.pyi @@ -1,5 +1,8 @@ +from typing_extensions import Self, disjoint_base + import numpy as np +@disjoint_base class SequentialDataset32: current_index: int index: np.ndarray @@ -11,6 +14,7 @@ class SequentialDataset32: def next(self, x_data_ptr, x_ind_ptr, nnz, y, sample_weight) -> None: ... def random(self, x_data_ptr, x_ind_ptr, nnz, y, sample_weight) -> int: ... +@disjoint_base class SequentialDataset64: current_index: int index: np.ndarray @@ -22,14 +26,18 @@ class SequentialDataset64: def next(self, x_data_ptr, x_ind_ptr, nnz, y, sample_weight) -> None: ... def random(self, x_data_ptr, x_ind_ptr, nnz, y, sample_weight) -> int: ... +@disjoint_base class ArrayDataset32(SequentialDataset32): - def __init__(self, X, Y, sample_weights, seed=1) -> None: ... + def __new__(cls, X, Y, sample_weights, seed=1) -> Self: ... +@disjoint_base class ArrayDataset64(SequentialDataset64): - def __init__(self, X, Y, sample_weights, seed=1) -> None: ... + def __new__(cls, X, Y, sample_weights, seed=1) -> Self: ... +@disjoint_base class CSRDataset64(SequentialDataset64): - def __init__(self, X_data, X_indptr, X_indices, Y, sample_weights, seed=1) -> None: ... + def __new__(cls, X_data, X_indptr, X_indices, Y, sample_weights, seed=1) -> Self: ... +@disjoint_base class CSRDataset32(SequentialDataset32): - def __init__(self, X_data, X_indptr, X_indices, Y, sample_weights, seed=1) -> None: ... + def __new__(cls, X_data, X_indptr, X_indices, Y, sample_weights, seed=1) -> Self: ... diff --git a/stubs/sympy-stubs/assumptions/ask.pyi b/stubs/sympy-stubs/assumptions/ask.pyi index 20d51759..c578ff94 100644 --- a/stubs/sympy-stubs/assumptions/ask.pyi +++ b/stubs/sympy-stubs/assumptions/ask.pyi @@ -169,7 +169,7 @@ class AssumptionKeys: @memoize_property def le(self) -> UndefinedPredicate | LessThanPredicate: ... -Q = ... +Q: AssumptionKeys def ask(proposition, assumptions=..., context=...) -> bool | None: ... def register_handler(key, handler) -> None: ... diff --git a/stubs/sympy-stubs/assumptions/assume.pyi b/stubs/sympy-stubs/assumptions/assume.pyi index f214cf89..4ae16206 100644 --- a/stubs/sympy-stubs/assumptions/assume.pyi +++ b/stubs/sympy-stubs/assumptions/assume.pyi @@ -12,7 +12,7 @@ class AssumptionsContext(set): global_assumptions = ... class AppliedPredicate(Boolean): - __slots__ = ... + __slots__: tuple[str, ...] = ... def __new__(cls, predicate, *args) -> Self: ... @property def arg(self) -> Basic: ... diff --git a/stubs/sympy-stubs/assumptions/relation/equality.pyi b/stubs/sympy-stubs/assumptions/relation/equality.pyi index 65dd456d..9937a3ee 100644 --- a/stubs/sympy-stubs/assumptions/relation/equality.pyi +++ b/stubs/sympy-stubs/assumptions/relation/equality.pyi @@ -12,10 +12,10 @@ __all__ = [ ] class EqualityPredicate(BinaryRelation): - is_reflexive = ... - is_symmetric = ... - name = ... - handler = ... + is_reflexive: bool + is_symmetric: bool + name: str + handler: None @property def negated(self) -> Any: ... def eval(self, args, assumptions=...): ... @@ -30,10 +30,10 @@ class UnequalityPredicate(BinaryRelation): def eval(self, args, assumptions=...): ... class StrictGreaterThanPredicate(BinaryRelation): - is_reflexive = ... - is_symmetric = ... - name = ... - handler = ... + is_reflexive: bool + is_symmetric: bool + name: str + handler: None @property def reversed(self) -> Any: ... @property @@ -41,10 +41,10 @@ class StrictGreaterThanPredicate(BinaryRelation): def eval(self, args, assumptions=...): ... class GreaterThanPredicate(BinaryRelation): - is_reflexive = ... - is_symmetric = ... - name = ... - handler = ... + is_reflexive: bool + is_symmetric: bool + name: str + handler: None @property def reversed(self) -> Any: ... @property @@ -52,10 +52,10 @@ class GreaterThanPredicate(BinaryRelation): def eval(self, args, assumptions=...): ... class StrictLessThanPredicate(BinaryRelation): - is_reflexive = ... - is_symmetric = ... - name = ... - handler = ... + is_reflexive: bool + is_symmetric: bool + name: str + handler: None @property def reversed(self) -> Any: ... @property @@ -63,10 +63,10 @@ class StrictLessThanPredicate(BinaryRelation): def eval(self, args, assumptions=...): ... class LessThanPredicate(BinaryRelation): - is_reflexive = ... - is_symmetric = ... - name = ... - handler = ... + is_reflexive: bool + is_symmetric: bool + name: str + handler: None @property def reversed(self) -> Any: ... @property diff --git a/stubs/sympy-stubs/assumptions/sathandlers.pyi b/stubs/sympy-stubs/assumptions/sathandlers.pyi index 6a344045..e2ca1eb1 100644 --- a/stubs/sympy-stubs/assumptions/sathandlers.pyi +++ b/stubs/sympy-stubs/assumptions/sathandlers.pyi @@ -3,6 +3,7 @@ from typing import Any, Callable from sympy.core import Add, Mul, Number, NumberSymbol, Pow from sympy.core.logic import And, Or from sympy.core.numbers import ImaginaryUnit +from sympy.core.symbol import Symbol as _Symbol from sympy.functions.elementary.complexes import Abs from sympy.logic.boolalg import Implies from sympy.matrices.expressions import MatMul @@ -19,7 +20,7 @@ class ClassFactRegistry: def __call__(self, expr) -> set[Any]: ... class_fact_registry: ClassFactRegistry -x = ... +x: _Symbol @class_fact_registry.multiregister(Abs) def _(expr) -> list[Any]: ... diff --git a/stubs/sympy-stubs/codegen/ast.pyi b/stubs/sympy-stubs/codegen/ast.pyi index 5232064a..55d8b6b9 100644 --- a/stubs/sympy-stubs/codegen/ast.pyi +++ b/stubs/sympy-stubs/codegen/ast.pyi @@ -5,7 +5,7 @@ from typing_extensions import Self from sympy.core.basic import Basic from sympy.core.expr import Atom, Expr from sympy.core.function import UndefinedFunction -from sympy.core.numbers import Float, Integer +from sympy.core.numbers import Float, Integer, Integer as _Integer class CodegenAST(Basic): __slots__ = ... @@ -28,17 +28,17 @@ class Token(CodegenAST): class BreakToken(Token): ... -break_ = ... +break_: BreakToken class ContinueToken(Token): ... -continue_ = ... +continue_: ContinueToken class NoneToken(Token): def __eq__(self, other) -> bool: ... def __hash__(self) -> int: ... -none = ... +none: NoneToken class AssignmentBase(CodegenAST): def __new__(cls, lhs, rhs) -> Self: ... @@ -138,7 +138,7 @@ class UnsignedIntType(_SizedIntType): @property def max(self) -> Literal[0]: ... -two = ... +two: _Integer class FloatBaseType(Type): __slots__ = ... @@ -173,29 +173,29 @@ class ComplexBaseType(FloatBaseType): class ComplexType(ComplexBaseType, FloatType): __slots__ = ... -intc = ... -intp = ... -int8 = ... -int16 = ... -int32 = ... -int64 = ... -uint8 = ... -uint16 = ... -uint32 = ... -uint64 = ... -float16 = ... -float32 = ... -float64 = ... -float80 = ... -float128 = ... -float256 = ... -complex64 = ... -complex128 = ... -untyped = ... -real = ... -integer = ... -complex_ = ... -bool_ = ... +intc: IntBaseType +intp: IntBaseType +int8: SignedIntType +int16: SignedIntType +int32: SignedIntType +int64: SignedIntType +uint8: UnsignedIntType +uint16: UnsignedIntType +uint32: UnsignedIntType +uint64: UnsignedIntType +float16: FloatType +float32: FloatType +float64: FloatType +float80: FloatType +float128: FloatType +float256: FloatType +complex64: ComplexType +complex128: ComplexType +untyped: Type +real: FloatBaseType +integer: IntBaseType +complex_: ComplexBaseType +bool_: Type class Attribute(Token): _fields = ... @@ -203,8 +203,8 @@ class Attribute(Token): _construct_name = String _construct_parameters = ... -value_const = ... -pointer_const = ... +value_const: Attribute +pointer_const: Attribute class Variable(Node): __slots__ = ... @@ -248,8 +248,8 @@ class Stream(Token): _fields = ... _construct_name = String -stdout = ... -stderr = ... +stdout: Stream +stderr: Stream class Print(Token): _fields = ... diff --git a/stubs/sympy-stubs/codegen/cfunctions.pyi b/stubs/sympy-stubs/codegen/cfunctions.pyi index 56dbe599..b8ec84fc 100644 --- a/stubs/sympy-stubs/codegen/cfunctions.pyi +++ b/stubs/sympy-stubs/codegen/cfunctions.pyi @@ -1,9 +1,11 @@ from sympy.core.basic import Basic from sympy.core.function import Function, UndefinedFunction +from sympy.core.numbers import Integer as _Integer from sympy.core.power import Pow +from sympy.sets.sets import FiniteSet as _FiniteSet class expm1(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...) -> type[UndefinedFunction]: ... _eval_rewrite_as_tractable = ... @@ -11,17 +13,17 @@ class expm1(Function): def eval(cls, arg) -> None: ... class log1p(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... _eval_rewrite_as_tractable = ... @classmethod def eval(cls, arg) -> type[UndefinedFunction] | None: ... -_Two = ... +_Two: _Integer class exp2(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... _eval_rewrite_as_tractable = ... @@ -29,7 +31,7 @@ class exp2(Function): def eval(cls, arg) -> Pow | None: ... class log2(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... @classmethod def eval(cls, arg) -> None: ... @@ -37,13 +39,13 @@ class log2(Function): _eval_rewrite_as_tractable = ... class fma(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...) -> Basic: ... -_Ten = ... +_Ten: _Integer class log10(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... @classmethod def eval(cls, arg) -> None: ... @@ -51,19 +53,19 @@ class log10(Function): _eval_rewrite_as_tractable = ... class Sqrt(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... _eval_rewrite_as_tractable = ... class Cbrt(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... _eval_rewrite_as_tractable = ... class hypot(Function): - nargs = ... + nargs: _FiniteSet def fdiff(self, argindex=...): ... _eval_rewrite_as_tractable = ... diff --git a/stubs/sympy-stubs/codegen/cnodes.pyi b/stubs/sympy-stubs/codegen/cnodes.pyi index d598e708..a98d6395 100644 --- a/stubs/sympy-stubs/codegen/cnodes.pyi +++ b/stubs/sympy-stubs/codegen/cnodes.pyi @@ -1,12 +1,12 @@ from typing_extensions import Self -from sympy.codegen.ast import FunctionCall, Node, String, Token +from sympy.codegen.ast import Attribute as _Attribute, FunctionCall, Node, String, Token, Type as _Type from sympy.core.basic import Basic -void = ... -restrict = ... -volatile = ... -static = ... +void: _Type +restrict: _Attribute +volatile: _Attribute +static: _Attribute def alignof(arg) -> FunctionCall: ... def sizeof(arg) -> FunctionCall: ... diff --git a/stubs/sympy-stubs/codegen/fnodes.pyi b/stubs/sympy-stubs/codegen/fnodes.pyi index 7db65b95..fe81ffa5 100644 --- a/stubs/sympy-stubs/codegen/fnodes.pyi +++ b/stubs/sympy-stubs/codegen/fnodes.pyi @@ -1,18 +1,19 @@ from ast import Attribute from typing_extensions import Self -from sympy.codegen.ast import FunctionCall, Node, String, Token, Variable +from sympy.codegen.ast import Attribute as _Attribute, FunctionCall, Node, String, Token, Variable from sympy.core.basic import Basic from sympy.core.expr import Expr from sympy.core.function import Function from sympy.core.numbers import Float +from sympy.sets.sets import FiniteSet as _FiniteSet -pure = ... -elemental = ... -intent_in = ... -intent_out = ... -intent_inout = ... -allocatable = ... +pure: _Attribute +elemental: _Attribute +intent_in: _Attribute +intent_out: _Attribute +intent_inout: _Attribute +allocatable: _Attribute class Program(Token): _fields = ... @@ -74,11 +75,11 @@ class ImpliedDoLoop(Token): class Extent(Basic): def __new__(cls, *args) -> Self: ... -assumed_extent = ... +assumed_extent: Extent def dimension(*args) -> Attribute: ... -assumed_size = ... +assumed_size: _Attribute def array(symbol, dim, intent=..., *, attrs=..., value=..., type=...) -> Variable: ... def allocated(array) -> FunctionCall: ... @@ -107,19 +108,19 @@ class F95Function(FFunction): _required_standard = ... class isign(FFunction): - nargs = ... + nargs: _FiniteSet class dsign(FFunction): - nargs = ... + nargs: _FiniteSet class cmplx(FFunction): - nargs = ... + nargs: _FiniteSet class kind(FFunction): - nargs = ... + nargs: _FiniteSet class merge(F95Function): - nargs = ... + nargs: _FiniteSet class _literal(Float): _token: str = ... diff --git a/stubs/sympy-stubs/combinatorics/graycode.pyi b/stubs/sympy-stubs/combinatorics/graycode.pyi index c0b75f81..4f77aa5a 100644 --- a/stubs/sympy-stubs/combinatorics/graycode.pyi +++ b/stubs/sympy-stubs/combinatorics/graycode.pyi @@ -5,9 +5,9 @@ from typing_extensions import LiteralString, Self from sympy.core import Basic class GrayCode(Basic): - _skip = ... - _current = ... - _rank = ... + _skip: bool + _current: int + _rank: int | None def __new__(cls, n, *args, **kw_args) -> Self: ... def next(self, delta=...) -> GrayCode: ... @property diff --git a/stubs/sympy-stubs/combinatorics/partitions.pyi b/stubs/sympy-stubs/combinatorics/partitions.pyi index 542b1f34..429cd72b 100644 --- a/stubs/sympy-stubs/combinatorics/partitions.pyi +++ b/stubs/sympy-stubs/combinatorics/partitions.pyi @@ -6,8 +6,8 @@ from sympy.core.function import UndefinedFunction from sympy.sets.sets import FiniteSet class Partition(FiniteSet): - _rank = ... - _partition = ... + _rank: int | None + _partition: list[list[Any]] | None def __new__(cls, *partition) -> Self: ... def sort_key( self, order=... @@ -33,8 +33,8 @@ class Partition(FiniteSet): def from_rgs(cls, rgs, elements) -> Partition: ... class IntegerPartition(Basic): - _dict = ... - _keys = ... + _dict: dict[int, int] | None + _keys: list[int] | None def __new__(cls, partition, integer=...) -> Self: ... def prev_lex(self) -> IntegerPartition: ... def next_lex(self) -> IntegerPartition: ... diff --git a/stubs/sympy-stubs/combinatorics/pc_groups.pyi b/stubs/sympy-stubs/combinatorics/pc_groups.pyi index 3df1a59c..8119b3c1 100644 --- a/stubs/sympy-stubs/combinatorics/pc_groups.pyi +++ b/stubs/sympy-stubs/combinatorics/pc_groups.pyi @@ -3,8 +3,8 @@ from typing import Any, Literal from sympy.printing.defaults import DefaultPrinting class PolycyclicGroup(DefaultPrinting): - is_group = ... - is_solvable = ... + is_group: bool + is_solvable: bool def __init__(self, pc_sequence, pc_series, relative_order, collector=...) -> None: ... def is_prime_order(self) -> bool: ... def length(self) -> int: ... diff --git a/stubs/sympy-stubs/combinatorics/perm_groups.pyi b/stubs/sympy-stubs/combinatorics/perm_groups.pyi index aeda5fcd..847af0d4 100644 --- a/stubs/sympy-stubs/combinatorics/perm_groups.pyi +++ b/stubs/sympy-stubs/combinatorics/perm_groups.pyi @@ -12,7 +12,7 @@ rmul = ... _af_new = ... class PermutationGroup(Basic): - is_group = ... + is_group: bool def __new__(cls, *args, dups=..., **kwargs) -> Self: ... def __init__(self, *args, **kwargs) -> None: ... def __getitem__(self, i): ... diff --git a/stubs/sympy-stubs/combinatorics/permutations.pyi b/stubs/sympy-stubs/combinatorics/permutations.pyi index e9673c79..04988df2 100644 --- a/stubs/sympy-stubs/combinatorics/permutations.pyi +++ b/stubs/sympy-stubs/combinatorics/permutations.pyi @@ -20,12 +20,12 @@ class Cycle(dict): def copy(self) -> Cycle: ... class Permutation(Atom): - is_Permutation = ... - _array_form = ... - _cyclic_form = ... - _cycle_structure = ... - _size = ... - _rank = ... + is_Permutation: bool + _array_form: list[int] | None + _cyclic_form: list[list[int]] | None + _cycle_structure: dict[int, int] | None + _size: int | None + _rank: int | None def __new__(cls, *args, size=..., **kwargs): ... @property def array_form(self): ... @@ -115,7 +115,7 @@ class Permutation(Atom): def unrank_lex(cls, size, rank) -> Self: ... def resize(self, n) -> Permutation | Self: ... - print_cyclic = ... + print_cyclic: bool | None Perm = Permutation _af_new = ... diff --git a/stubs/sympy-stubs/combinatorics/polyhedron.pyi b/stubs/sympy-stubs/combinatorics/polyhedron.pyi index 0d41960a..4caf3170 100644 --- a/stubs/sympy-stubs/combinatorics/polyhedron.pyi +++ b/stubs/sympy-stubs/combinatorics/polyhedron.pyi @@ -7,12 +7,12 @@ from sympy.sets.sets import FiniteSet rmul = ... class Polyhedron(Basic): - _edges = ... + _edges: FiniteSet | None def __new__(cls, corners, faces=..., pgroup=...) -> Self: ... @property def corners(self) -> tuple[Any, ...] | Basic: ... - vertices = ... + vertices = corners @property def array_form(self) -> list[int]: ... @property @@ -28,11 +28,11 @@ class Polyhedron(Basic): def rotate(self, perm) -> None: ... def reset(self) -> None: ... -tetrahedron = ... -cube = ... -octahedron = ... -dodecahedron = ... -icosahedron = ... +tetrahedron: Polyhedron +cube: Polyhedron +octahedron: Polyhedron +dodecahedron: Polyhedron +icosahedron: Polyhedron tetrahedron_faces = ... cube_faces = ... octahedron_faces = ... diff --git a/stubs/sympy-stubs/combinatorics/prufer.pyi b/stubs/sympy-stubs/combinatorics/prufer.pyi index 36e0b689..dba18548 100644 --- a/stubs/sympy-stubs/combinatorics/prufer.pyi +++ b/stubs/sympy-stubs/combinatorics/prufer.pyi @@ -4,10 +4,10 @@ from typing_extensions import Self from sympy.core import Basic class Prufer(Basic): - _prufer_repr = ... - _tree_repr = ... - _nodes = ... - _rank = ... + _prufer_repr: list[int] | None + _tree_repr: list[list[int]] | None + _nodes: int | None + _rank: int | None @property def prufer_repr(self) -> list[Any]: ... @property diff --git a/stubs/sympy-stubs/combinatorics/subsets.pyi b/stubs/sympy-stubs/combinatorics/subsets.pyi index 2c923d31..4c96ea8b 100644 --- a/stubs/sympy-stubs/combinatorics/subsets.pyi +++ b/stubs/sympy-stubs/combinatorics/subsets.pyi @@ -3,11 +3,11 @@ from typing import Any from typing_extensions import Self class Subset: - _rank_binary = ... - _rank_lex = ... - _rank_graycode = ... - _subset = ... - _superset = ... + _rank_binary: int | None + _rank_lex: int | None + _rank_graycode: int | None + _subset: list[Any] | None + _superset: list[Any] | None def __new__(cls, subset, superset) -> Self: ... def __eq__(self, other) -> bool: ... def iterate_binary(self, k) -> Subset: ... diff --git a/stubs/sympy-stubs/core/__init__.pyi b/stubs/sympy-stubs/core/__init__.pyi index e1a8f608..58ea25d7 100644 --- a/stubs/sympy-stubs/core/__init__.pyi +++ b/stubs/sympy-stubs/core/__init__.pyi @@ -35,14 +35,18 @@ from sympy.core.mul import Mul, prod from sympy.core.multidimensional import vectorize from sympy.core.numbers import ( AlgebraicNumber, + Catalan as _Catalan, E, + EulerGamma as _EulerGamma, Float, + GoldenRatio as _GoldenRatio, I, Integer, Number, NumberSymbol, Rational, RealNumber, + TribonacciConstant as _TribonacciConstant, comp, igcd, ilcm, @@ -76,10 +80,10 @@ from sympy.core.symbol import Dummy, Symbol, Wild, symbols, var from sympy.core.sympify import SympifyError, sympify from sympy.core.traversal import bottom_up, postorder_traversal, preorder_traversal, use -Catalan = ... -EulerGamma = ... -GoldenRatio = ... -TribonacciConstant = ... +Catalan: _Catalan +EulerGamma: _EulerGamma +GoldenRatio: _GoldenRatio +TribonacciConstant: _TribonacciConstant __all__ = [ "sympify", "SympifyError", diff --git a/stubs/sympy-stubs/core/add.pyi b/stubs/sympy-stubs/core/add.pyi index a5ab0fbe..7f33fdda 100644 --- a/stubs/sympy-stubs/core/add.pyi +++ b/stubs/sympy-stubs/core/add.pyi @@ -12,9 +12,10 @@ from sympy.series.order import Order _args_sortkey = ... class Add(Expr, AssocOp): - __slots__ = ... - args: tuple[Expr, ...] - is_Add = ... + __slots__: tuple[str, ...] = ... + @property + def args(self) -> tuple[Expr, ...]: ... + is_Add: bool _args_type = Expr @classmethod def flatten(cls, seq): ... @@ -34,17 +35,16 @@ class Add(Expr, AssocOp): def as_numer_denom( self, ) -> tuple[Order, Any] | tuple[Self, Any | Add | Order | Mul] | tuple[Any | Add | Order | Mul, Any | Add | Order | Mul]: ... - - _eval_is_real = ... - _eval_is_extended_real = ... - _eval_is_complex = ... - _eval_is_antihermitian = ... - _eval_is_finite = ... - _eval_is_hermitian = ... - _eval_is_integer = ... - _eval_is_rational = ... - _eval_is_algebraic = ... - _eval_is_commutative = ... + def _eval_is_real(self) -> bool | None: ... + def _eval_is_extended_real(self) -> bool | None: ... + def _eval_is_complex(self) -> bool | None: ... + def _eval_is_antihermitian(self) -> bool | None: ... + def _eval_is_finite(self) -> bool | None: ... + def _eval_is_hermitian(self) -> bool | None: ... + def _eval_is_integer(self) -> bool | None: ... + def _eval_is_rational(self) -> bool | None: ... + def _eval_is_algebraic(self) -> bool | None: ... + def _eval_is_commutative(self) -> bool | None: ... def removeO(self) -> Self: ... def getO(self) -> Self | None: ... @cacheit diff --git a/stubs/sympy-stubs/core/basic.pyi b/stubs/sympy-stubs/core/basic.pyi index 5fca6c4a..789c4380 100644 --- a/stubs/sympy-stubs/core/basic.pyi +++ b/stubs/sympy-stubs/core/basic.pyi @@ -1,3 +1,4 @@ +from collections.abc import Callable from typing import Any, Literal from typing_extensions import Self @@ -9,48 +10,53 @@ from sympy.core.kind import Kind def as_Basic(expr): ... class Basic(Printable): - __slots__ = ... + __slots__: tuple[str, ...] = ... _args: tuple[Basic, ...] _mhash: int | None @property def __sympy__(self) -> Literal[True]: ... def __init_subclass__(cls) -> None: ... - is_number = ... - is_Atom = ... - is_Symbol = ... - is_symbol = ... - is_Indexed = ... - is_Dummy = ... - is_Wild = ... - is_Function = ... - is_Add = ... - is_Mul = ... - is_Pow = ... - is_Number = ... - is_Float = ... - is_Rational = ... - is_Integer = ... - is_NumberSymbol = ... - is_Order = ... - is_Derivative = ... - is_Piecewise = ... - is_Poly = ... - is_AlgebraicNumber = ... - is_Relational = ... - is_Equality = ... - is_Boolean = ... - is_Not = ... - is_Matrix = ... - is_Vector = ... - is_Point = ... - is_MatAdd = ... - is_MatMul = ... - is_real: bool | None - is_extended_real: bool | None - is_zero: bool | None - is_negative: bool | None - is_commutative: bool | None + is_number: bool + is_Atom: bool + is_Symbol: bool + is_symbol: bool + is_Indexed: bool + is_Dummy: bool + is_Wild: bool + is_Function: bool + is_Add: bool + is_Mul: bool + is_Pow: bool + is_Number: bool + is_Float: bool + is_Rational: bool + is_Integer: bool + is_NumberSymbol: bool + is_Order: bool + is_Derivative: bool + is_Piecewise: bool + is_Poly: bool + is_AlgebraicNumber: bool + is_Relational: bool + is_Equality: bool + is_Boolean: bool + is_Not: bool + is_Matrix: bool + is_Vector: bool + is_Point: bool + is_MatAdd: bool + is_MatMul: bool + @property + def is_real(self) -> bool | None: ... + @property + def is_extended_real(self) -> bool | None: ... + @property + def is_zero(self) -> bool | None: ... + @property + def is_negative(self) -> bool | None: ... + @property + def is_commutative(self) -> bool | None: ... kind: Kind = ... def __new__(cls, *args) -> Self: ... def copy(self) -> Self: ... @@ -88,7 +94,7 @@ class Basic(Printable): @property def args(self) -> tuple[Basic, ...]: ... def as_content_primitive(self, radical=..., clear=...) -> tuple[Any, Self]: ... - def subs(self, *args, **kwargs) -> Self | Basic: ... + def subs(self, arg1, arg2=..., **kwargs) -> Self | Basic: ... def xreplace(self, rule) -> Self: ... @cacheit def has(self, *patterns) -> bool: ... @@ -106,7 +112,7 @@ class Basic(Printable): def refine(self, assumption=...) -> Basic: ... def rewrite(self, *args, deep=..., **hints) -> Self | Any: ... - _constructor_postprocessor_mapping = ... + _constructor_postprocessor_mapping: dict[type[Basic], dict[str, list[Callable[[Basic], Basic]]]] def could_extract_minus_sign(self) -> Literal[False]: ... class Atom(Basic): diff --git a/stubs/sympy-stubs/core/containers.pyi b/stubs/sympy-stubs/core/containers.pyi index 424463ef..02785a63 100644 --- a/stubs/sympy-stubs/core/containers.pyi +++ b/stubs/sympy-stubs/core/containers.pyi @@ -21,7 +21,7 @@ class Tuple(Basic): def __radd__(self, other) -> Tuple | NotImplementedType: ... def __mul__(self, other) -> Self: ... - __rmul__ = ... + __rmul__ = __mul__ def __eq__(self, other) -> bool: ... def __ne__(self, other) -> bool: ... def __hash__(self) -> int: ... diff --git a/stubs/sympy-stubs/core/decorators.pyi b/stubs/sympy-stubs/core/decorators.pyi index d560a4d1..56ea0b9d 100644 --- a/stubs/sympy-stubs/core/decorators.pyi +++ b/stubs/sympy-stubs/core/decorators.pyi @@ -1,11 +1,18 @@ from functools import _Wrapped -from typing import Any, Callable +from typing import Any, Callable, TypeVar +from typing_extensions import ParamSpec -def call_highest_priority(method_name) -> Callable[..., _Wrapped[..., Any, ..., Any]]: ... -def sympify_method_args(cls): ... -def sympify_return(*args) -> Callable[..., _SympifyWrapper]: ... -def _sympifyit(arg, retval=None) -> Callable[..., _SympifyWrapper]: ... -def __sympifyit(func, arg, retval=None) -> Callable[..., _SympifyWrapper]: ... +_P = ParamSpec("_P") +_T = TypeVar("_T") +_Class = TypeVar("_Class", bound=type) + +def call_highest_priority(method_name: str) -> Callable[[Callable[_P, _T]], Callable[_P, _T]]: ... +def sympify_method_args(cls: _Class) -> _Class: ... + +# sympify_method_args replaces the temporary wrappers with signature-preserving methods. +def sympify_return(*args) -> Callable[[Callable[_P, _T]], Callable[_P, _T]]: ... +def _sympifyit(arg, retval=None) -> Callable[[Callable[_P, _T]], Callable[_P, _T]]: ... +def __sympifyit(func: Callable[_P, _T], arg, retval=None) -> Callable[_P, _T]: ... class _SympifyWrapper: def __init__(self, func, args) -> None: ... diff --git a/stubs/sympy-stubs/core/expr.pyi b/stubs/sympy-stubs/core/expr.pyi index 45a3223d..11603b23 100644 --- a/stubs/sympy-stubs/core/expr.pyi +++ b/stubs/sympy-stubs/core/expr.pyi @@ -17,7 +17,7 @@ from sympy.tensor.array.array_derivatives import ArrayDerivative @sympify_method_args class Expr(Basic, EvalfMixin): __slots__: tuple[str, ...] = ... - is_scalar = ... + is_scalar: bool @cacheit def sort_key( self, order=... @@ -41,7 +41,7 @@ class Expr(Basic, EvalfMixin): Number, ]: ... - _op_priority = ... + _op_priority: float def __pos__(self) -> Self: ... def __neg__(self) -> Mul: ... def __abs__(self) -> Expr: ... @@ -151,7 +151,6 @@ class Expr(Basic, EvalfMixin): def lseries(self, x=..., x0=..., dir=..., logx=..., cdir=...): ... def nseries(self, x=..., x0=..., n=..., dir=..., logx=..., cdir=...) -> Self: ... def limit(self, x, xlim, dir=...): ... - def compute_leading_term(self, x, logx=...) -> Self | Order | Any: ... @cacheit def as_leading_term(self, *symbols, logx=..., cdir=...) -> Self: ... def as_coeff_exponent(self, x) -> tuple[Expr, Expr]: ... @@ -182,7 +181,7 @@ class Expr(Basic, EvalfMixin): def invert(self, g, *gens, **args) -> int | Any: ... def round(self, n=...) -> Self | Integer | Rational | Float: ... - __round__ = ... + __round__ = round class AtomicExpr(Atom, Expr): is_number = ... diff --git a/stubs/sympy-stubs/core/exprtools.pyi b/stubs/sympy-stubs/core/exprtools.pyi index bcb2241d..06ffb5a4 100644 --- a/stubs/sympy-stubs/core/exprtools.pyi +++ b/stubs/sympy-stubs/core/exprtools.pyi @@ -8,13 +8,14 @@ from sympy.core.basic import Basic from sympy.core.expr import Expr from sympy.core.mul import Mul from sympy.core.numbers import Rational +from sympy.core.symbol import Dummy as _Dummy if sys.version_info >= (3, 10): from types import NotImplementedType else: NotImplementedType: TypeAlias = Any -_eps = ... +_eps: _Dummy def decompose_power(expr: Expr) -> tuple[Expr, int]: ... def decompose_power_rat(expr: Expr) -> tuple[Expr, Rational]: ... diff --git a/stubs/sympy-stubs/core/function.pyi b/stubs/sympy-stubs/core/function.pyi index 737bf45e..15e7d3a4 100644 --- a/stubs/sympy-stubs/core/function.pyi +++ b/stubs/sympy-stubs/core/function.pyi @@ -10,6 +10,7 @@ from sympy.core.expr import AtomicExpr, Expr from sympy.core.kind import Kind from sympy.core.logic import FuzzyBool from sympy.core.numbers import Float +from sympy.sets.fancysets import Naturals0 from sympy.sets.sets import FiniteSet from sympy.tensor.array.array_derivatives import ArrayDerivative @@ -35,7 +36,7 @@ class FunctionClass(type): @property def xreplace(self) -> Callable[..., Any]: ... @property - def nargs(self) -> FiniteSet: ... + def nargs(self) -> FiniteSet | Naturals0: ... class Application(Basic, metaclass=FunctionClass): is_Function = ... @@ -72,7 +73,7 @@ class UndefSageHelper: _undef_sage_helper = ... class UndefinedFunction(FunctionClass): - def __new__(cls, name, bases=..., __dict__=..., **kwargs) -> Self: # pyright: ignore[reportGeneralTypeIssues] + def __new__(mcl, name, bases=..., __dict__=..., **kwargs) -> Self: # pyright: ignore[reportGeneralTypeIssues] ... def __instancecheck__(cls, instance) -> bool: ... @@ -109,7 +110,7 @@ class Derivative(Expr): def as_finite_difference(self, points=..., x0=..., wrt=...) -> Literal[0]: ... class Lambda(Expr): - is_Function = ... + is_Function: bool def __new__(cls, signature, expr) -> Self: ... @property def signature(self) -> Basic: ... @@ -120,7 +121,7 @@ class Lambda(Expr): @property def nargs(self) -> FiniteSet: ... - bound_symbols = ... + bound_symbols = variables @property def free_symbols(self) -> set[Basic]: ... def __call__(self, *args) -> Basic: ... diff --git a/stubs/sympy-stubs/core/kind.pyi b/stubs/sympy-stubs/core/kind.pyi index d6a27763..a6cc132b 100644 --- a/stubs/sympy-stubs/core/kind.pyi +++ b/stubs/sympy-stubs/core/kind.pyi @@ -14,19 +14,19 @@ class _UndefinedKind(Kind): def __new__(cls) -> Self: ... def __repr__(self) -> Literal["UndefinedKind"]: ... -UndefinedKind = ... +UndefinedKind: _UndefinedKind class _NumberKind(Kind): def __new__(cls) -> Self: ... def __repr__(self) -> Literal["NumberKind"]: ... -NumberKind = ... +NumberKind: _NumberKind class _BooleanKind(Kind): def __new__(cls) -> Self: ... def __repr__(self) -> Literal["BooleanKind"]: ... -BooleanKind = ... +BooleanKind: _BooleanKind class KindDispatcher: def __init__(self, name, commutative=..., doc=...) -> None: ... diff --git a/stubs/sympy-stubs/core/mul.pyi b/stubs/sympy-stubs/core/mul.pyi index 5211c239..9d5f6d8f 100644 --- a/stubs/sympy-stubs/core/mul.pyi +++ b/stubs/sympy-stubs/core/mul.pyi @@ -4,7 +4,7 @@ from typing_extensions import Self from sympy.core.cache import cacheit from sympy.core.expr import Expr -from sympy.core.kind import Kind, _UndefinedKind +from sympy.core.kind import Kind, KindDispatcher as _KindDispatcher, _UndefinedKind from sympy.core.operations import AssocOp class NC_Marker: @@ -17,11 +17,12 @@ class NC_Marker: _args_sortkey = ... class Mul(Expr, AssocOp): - __slots__ = ... - args: tuple[Expr] - is_Mul = ... + __slots__: tuple[str, ...] = ... + @property + def args(self) -> tuple[Expr, ...]: ... + is_Mul: bool _args_type = Expr - _kind_dispatcher = ... + _kind_dispatcher: _KindDispatcher @property def kind(self) -> Kind | _UndefinedKind: ... def could_extract_minus_sign(self) -> Literal[False]: ... @@ -44,8 +45,7 @@ class Mul(Expr, AssocOp): def as_powers_dict(self) -> defaultdict[Any, int]: ... def as_numer_denom(self) -> tuple[Self, Self]: ... def as_base_exp(self) -> tuple[Self, Any] | tuple[Self, Expr | None]: ... - - _eval_is_commutative = ... + def _eval_is_commutative(self) -> bool | None: ... def as_content_primitive(self, radical=..., clear=...) -> tuple[Any, Self]: ... def as_ordered_factors(self, order=...): ... diff --git a/stubs/sympy-stubs/core/numbers.pyi b/stubs/sympy-stubs/core/numbers.pyi index 71b3ba33..658dec67 100644 --- a/stubs/sympy-stubs/core/numbers.pyi +++ b/stubs/sympy-stubs/core/numbers.pyi @@ -47,7 +47,7 @@ def igcdex( def mod_inverse(a, m) -> int: ... class Number(AtomicExpr): - is_commutative = ... + is_commutative: bool is_number = ... is_Number = ... __slots__ = ... @@ -96,14 +96,14 @@ class Number(AtomicExpr): def cofactors(self, other) -> Any: ... class Float(Number): - __slots__ = ... + __slots__: tuple[str, ...] = ... _mpf_: tuple[int, int, int, int] - is_rational = ... - is_irrational = ... - is_number = ... - is_real = ... - is_extended_real = ... - is_Float = ... + is_rational: bool | None + is_irrational: bool | None + is_number: bool + is_real: bool + is_extended_real: bool + is_Float: bool def __new__(cls, num, dps=..., precision=...): ... def __getnewargs_ex__(self) -> tuple[tuple[tuple[int, str, int, int]], dict[str, Any]]: ... def floor(self) -> Integer: ... @@ -141,14 +141,14 @@ class Float(Number): RealNumber = Float class Rational(Number): - is_real = ... - is_integer = ... - is_rational = ... - is_number = ... - __slots__ = ... + is_real: bool + is_integer: bool + is_rational: bool + is_number: bool + __slots__: tuple[str, ...] = ... p: int q: int - is_Rational = ... + is_Rational: bool @cacheit def __new__(cls, p, q=..., gcd=...) -> Rational | Integer | Self: ... def limit_denominator(self, max_denominator=...) -> Rational: ... @@ -156,8 +156,7 @@ class Rational(Number): def __neg__(self) -> Rational | Integer: ... @_sympifyit("other", NotImplemented) def __add__(self, other) -> Rational | Integer | Float: ... - - __radd__ = ... + def __radd__(self, other) -> Rational | Integer | Float: ... @_sympifyit("other", NotImplemented) def __sub__(self, other) -> Rational | Integer | Float: ... @_sympifyit("other", NotImplemented) @@ -165,7 +164,7 @@ class Rational(Number): @_sympifyit("other", NotImplemented) def __mul__(self, other) -> Rational | Integer | Float | NotImplementedType: ... - __rmul__ = ... + __rmul__ = __mul__ @_sympifyit("other", NotImplemented) def __truediv__(self, other) -> Rational | Integer: ... @_sympifyit("other", NotImplemented) @@ -206,11 +205,11 @@ class Rational(Number): def as_coeff_Add(self, rational=...) -> tuple[Self, Any]: ... class Integer(Rational): - q = ... - is_integer = ... - is_number = ... - is_Integer = ... - __slots__ = ... + q: int + is_integer: bool + is_number: bool + is_Integer: bool + __slots__: tuple[str, ...] = ... @cacheit def __new__(cls, i) -> Self: ... def __getnewargs__(self) -> tuple[int]: ... @@ -380,7 +379,7 @@ class Infinity(Number, metaclass=Singleton): def floor(self) -> Self: ... def ceiling(self) -> Self: ... -oo = ... +oo: Infinity class NegativeInfinity(Number, metaclass=Singleton): is_extended_real = ... @@ -463,7 +462,7 @@ class NaN(Number, metaclass=Singleton): __lt__ = ... __le__ = ... -nan = ... +nan: NaN class ComplexInfinity(AtomicExpr, metaclass=Singleton): is_commutative = ... @@ -482,7 +481,7 @@ class ComplexInfinity(AtomicExpr, metaclass=Singleton): @staticmethod def __neg__(): ... -zoo = ... +zoo: ComplexInfinity class NumberSymbol(AtomicExpr): is_commutative = ... @@ -514,7 +513,7 @@ class Exp1(NumberSymbol, metaclass=Singleton): def __int__(self) -> int: ... def approximation_interval(self, number_cls) -> tuple[Any | Integer, Any | Integer] | None: ... -E = ... +E: Exp1 class Pi(NumberSymbol, metaclass=Singleton): is_real = ... @@ -532,7 +531,7 @@ class Pi(NumberSymbol, metaclass=Singleton): self, number_cls ) -> tuple[Any | Integer, Any | Integer] | tuple[Rational | Any | Integer, Rational | Any | Integer] | None: ... -pi = ... +pi: Pi class GoldenRatio(NumberSymbol, metaclass=Singleton): is_real = ... @@ -595,7 +594,7 @@ class ImaginaryUnit(AtomicExpr, metaclass=Singleton): def __abs__(): ... def as_base_exp(self) -> tuple[Any, Any]: ... -I = ... +I: ImaginaryUnit def equal_valued(x, y) -> Literal[False]: ... def sympify_fractions(f) -> Rational | Integer: ... diff --git a/stubs/sympy-stubs/core/power.pyi b/stubs/sympy-stubs/core/power.pyi index 2e8a58ab..28eac69c 100644 --- a/stubs/sympy-stubs/core/power.pyi +++ b/stubs/sympy-stubs/core/power.pyi @@ -18,9 +18,10 @@ def integer_nthroot( def integer_log(y, x) -> tuple[int, Any] | tuple[Any, Any | bool] | tuple[int, bool]: ... class Pow(Expr): - is_Pow = ... - __slots__ = ... - args: tuple[Expr, Expr] + is_Pow: bool + __slots__: tuple[str, ...] = ... + @property + def args(self) -> tuple[Expr, Expr]: ... _args: tuple[Expr, Expr] @cacheit def __new__(cls, b, e, evaluate=...): ... diff --git a/stubs/sympy-stubs/core/relational.pyi b/stubs/sympy-stubs/core/relational.pyi index f007bdee..8acd2127 100644 --- a/stubs/sympy-stubs/core/relational.pyi +++ b/stubs/sympy-stubs/core/relational.pyi @@ -29,9 +29,9 @@ __all__ = ( ) class Relational(Boolean, EvalfMixin): - __slots__ = ... + __slots__: tuple[str, ...] = ... ValidRelationOperator: dict[str | None, type[Relational]] = ... - is_Relational = ... + is_Relational: bool def __new__(cls, lhs, rhs, rop=..., **assumptions) -> Self | Eq | Relational | Ne: ... @property def lhs(self) -> Basic: ... @@ -58,9 +58,9 @@ class Relational(Boolean, EvalfMixin): Rel = Relational class Equality(Relational): - rel_op = ... - __slots__ = ... - is_Equality = ... + rel_op: str + __slots__: tuple[str, ...] = ... + is_Equality: bool def __new__(cls, lhs, rhs, **options) -> Self | Eq | Relational | Ne: ... @property def binary_symbols(self) -> set[Basic] | set[Any]: ... @@ -70,8 +70,8 @@ class Equality(Relational): Eq = Equality class Unequality(Relational): - rel_op = ... - __slots__ = ... + rel_op: str + __slots__: tuple[str, ...] = ... def __new__(cls, lhs, rhs, **options) -> Self: ... @property def binary_symbols(self) -> set[Basic] | set[Any]: ... @@ -97,32 +97,32 @@ class _Less(_Inequality): def lts(self) -> Basic: ... class GreaterThan(_Greater): - __slots__ = ... - rel_op = ... + __slots__: tuple[str, ...] = ... + rel_op: str @property def strict(self) -> NotImplementedType | Gt | Eq | Relational | Ne: ... Ge = GreaterThan class LessThan(_Less): - __slots__ = ... - rel_op = ... + __slots__: tuple[str, ...] = ... + rel_op: str @property def strict(self) -> NotImplementedType | Lt | Eq | Relational | Ne: ... Le = LessThan class StrictGreaterThan(_Greater): - __slots__ = ... - rel_op = ... + __slots__: tuple[str, ...] = ... + rel_op: str @property def weak(self) -> NotImplementedType | Ge | Eq | Relational | Ne: ... Gt = StrictGreaterThan class StrictLessThan(_Less): - __slots__ = ... - rel_op = ... + __slots__: tuple[str, ...] = ... + rel_op: str @property def weak(self) -> NotImplementedType | Le | Eq | Relational | Ne: ... diff --git a/stubs/sympy-stubs/core/singleton.pyi b/stubs/sympy-stubs/core/singleton.pyi index 30ac823a..d3f62614 100644 --- a/stubs/sympy-stubs/core/singleton.pyi +++ b/stubs/sympy-stubs/core/singleton.pyi @@ -1,16 +1,18 @@ from typing import Literal from sympy.core.core import Registry +from sympy.core.sympify import sympify class SingletonRegistry(Registry): __slots__ = ... - __call__ = ... + @staticmethod + def __call__(a, locals=..., convert_xor=..., strict=..., rational=..., evaluate=...): ... def __init__(self) -> None: ... def register(self, cls) -> None: ... def __getattr__(self, name): ... def __repr__(self) -> Literal["S"]: ... -S = ... +S: SingletonRegistry class Singleton(type): def __init__(cls, *args, **kwargs) -> None: ... diff --git a/stubs/sympy-stubs/core/symbol.pyi b/stubs/sympy-stubs/core/symbol.pyi index 33d7a837..2472a891 100644 --- a/stubs/sympy-stubs/core/symbol.pyi +++ b/stubs/sympy-stubs/core/symbol.pyi @@ -1,3 +1,4 @@ +from random import Random as _Random from typing import Any, Literal from typing_extensions import Self @@ -18,11 +19,11 @@ def uniquely_named_symbol(xname, exprs=..., compare=..., modify=..., **assumptio _uniquely_named_symbol = ... class Symbol(AtomicExpr, Boolean): - is_comparable = ... - __slots__ = ... + is_comparable: bool + __slots__: tuple[str, ...] = ... name: str - is_Symbol = ... - is_symbol = ... + is_Symbol: bool + is_symbol: bool @property def kind(self) -> _NumberKind | _UndefinedKind: ... def __new__(cls, name, **assumptions): ... @@ -39,16 +40,16 @@ class Symbol(AtomicExpr, Boolean): def is_constant(self, *wrt, **flags) -> bool: ... @property def free_symbols(self) -> set[Self]: ... - - binary_symbols = ... + @property + def binary_symbols(self) -> set[Self]: ... def as_set(self): ... class Dummy(Symbol): - _count = ... - _prng = ... - _base_dummy_index = ... - __slots__ = ... - is_Dummy = ... + _count: int + _prng: _Random + _base_dummy_index: int + __slots__: tuple[str, ...] = ... + is_Dummy: bool def __new__(cls, name=..., dummy_index=..., **assumptions): ... def __getnewargs_ex__(self) -> tuple[tuple[str, Any], Any]: ... @cacheit diff --git a/stubs/sympy-stubs/crypto/crypto.pyi b/stubs/sympy-stubs/crypto/crypto.pyi index 488510df..d91bf7ac 100644 --- a/stubs/sympy-stubs/crypto/crypto.pyi +++ b/stubs/sympy-stubs/crypto/crypto.pyi @@ -11,9 +11,9 @@ class NonInvertibleCipherWarning(RuntimeWarning): def AZ(s=...) -> LiteralString | str | list[Any | str]: ... -bifid5 = ... -bifid6 = ... -bifid10 = ... +bifid5: str +bifid6: str +bifid10: str def padded_key(key, symbols) -> str: ... def check_and_join(phrase, symbols=..., filter=...) -> str: ... diff --git a/stubs/sympy-stubs/external/pythonmpq.pyi b/stubs/sympy-stubs/external/pythonmpq.pyi index 7fdbed76..2124c84b 100644 --- a/stubs/sympy-stubs/external/pythonmpq.pyi +++ b/stubs/sympy-stubs/external/pythonmpq.pyi @@ -11,7 +11,7 @@ _PyHASH_MODULUS = ... _PyHASH_INF = ... class PythonMPQ: - __slots__ = ... + __slots__: tuple[str, ...] = ... def __new__(cls, numerator, denominator=...) -> Self: ... def __int__(self) -> int: ... def __float__(self): ... diff --git a/stubs/sympy-stubs/functions/combinatorial/numbers.pyi b/stubs/sympy-stubs/functions/combinatorial/numbers.pyi index 46ecf789..e7e81a8f 100644 --- a/stubs/sympy-stubs/functions/combinatorial/numbers.pyi +++ b/stubs/sympy-stubs/functions/combinatorial/numbers.pyi @@ -3,9 +3,10 @@ from typing_extensions import Self from sympy.core.function import DefinedFunction, Function, UndefinedFunction from sympy.core.numbers import Float, Integer, Rational +from sympy.core.symbol import Symbol as _Symbol from sympy.series.order import Order -_sym = ... +_sym: _Symbol class carmichael(Function): @staticmethod diff --git a/stubs/sympy-stubs/functions/elementary/complexes.pyi b/stubs/sympy-stubs/functions/elementary/complexes.pyi index 68a54d7d..9f966f7a 100644 --- a/stubs/sympy-stubs/functions/elementary/complexes.pyi +++ b/stubs/sympy-stubs/functions/elementary/complexes.pyi @@ -10,19 +10,21 @@ from sympy.integrals.integrals import Integral from sympy.series.order import Order class re(Function): - args: tuple[Expr] - is_extended_real = ... - unbranched = ... - _singularities = ... + @property + def args(self) -> tuple[Expr]: ... + is_extended_real: bool + unbranched: bool + _singularities: bool @classmethod def eval(cls, arg) -> type[UndefinedFunction] | None: ... def as_real_imag(self, deep=..., **hints) -> tuple[Self, Any]: ... class im(Function): - args: tuple[Expr] - is_extended_real = ... - unbranched = ... - _singularities = ... + @property + def args(self) -> tuple[Expr]: ... + is_extended_real: bool + unbranched: bool + _singularities: bool @classmethod def eval(cls, arg) -> None: ... def as_real_imag(self, deep=..., **hints) -> tuple[Self, Any]: ... @@ -35,12 +37,13 @@ class sign(Function): def eval(cls, arg) -> sign | None: ... class Abs(Function): - args: tuple[Expr] - is_extended_real = ... - is_extended_negative = ... - is_extended_nonnegative = ... - unbranched = ... - _singularities = ... + @property + def args(self) -> tuple[Expr]: ... + is_extended_real: bool + is_extended_negative: bool + is_extended_nonnegative: bool + unbranched: bool + _singularities: bool def fdiff(self, argindex=...) -> type[UndefinedFunction]: ... @classmethod def eval(cls, arg): ... diff --git a/stubs/sympy-stubs/functions/elementary/exponential.pyi b/stubs/sympy-stubs/functions/elementary/exponential.pyi index b0c20520..43526ba8 100644 --- a/stubs/sympy-stubs/functions/elementary/exponential.pyi +++ b/stubs/sympy-stubs/functions/elementary/exponential.pyi @@ -6,7 +6,7 @@ from sympy.core.cache import cacheit from sympy.core.expr import Expr from sympy.core.function import Function, FunctionClass, UndefinedFunction from sympy.core.kind import Kind -from sympy.core.numbers import Integer +from sympy.core.numbers import ComplexInfinity as _ComplexInfinity, Integer, Zero as _Zero from sympy.series.order import Order class ExpBase(Function): @@ -42,8 +42,9 @@ class exp(ExpBase, metaclass=ExpMeta): def match_real_imag(expr) -> tuple[Any, Literal[0]] | tuple[Any, Any] | tuple[None, None]: ... class log(Function): - args: tuple[Expr] - _singularities = ... + @property + def args(self) -> tuple[Expr]: ... + _singularities: tuple[_Zero, _ComplexInfinity] def fdiff(self, argindex=...): ... def inverse(self, argindex=...) -> type[exp]: ... @classmethod diff --git a/stubs/sympy-stubs/functions/elementary/integers.pyi b/stubs/sympy-stubs/functions/elementary/integers.pyi new file mode 100644 index 00000000..4158b502 --- /dev/null +++ b/stubs/sympy-stubs/functions/elementary/integers.pyi @@ -0,0 +1,20 @@ +from sympy.core.expr import Expr +from sympy.core.function import DefinedFunction, Function + +class RoundFunction(DefinedFunction): + @property + def args(self) -> tuple[Expr]: ... + def __new__(cls, *args, **options) -> Expr: ... + @classmethod + def eval(cls, arg) -> Expr | None: ... + +class floor(RoundFunction): + _dir: int + +class ceiling(RoundFunction): + _dir: int + +class frac(Function): + def __new__(cls, *args, **options) -> Expr: ... + @classmethod + def eval(cls, arg) -> Expr | None: ... diff --git a/stubs/sympy-stubs/functions/elementary/miscellaneous.pyi b/stubs/sympy-stubs/functions/elementary/miscellaneous.pyi index fc302b53..ddf41408 100644 --- a/stubs/sympy-stubs/functions/elementary/miscellaneous.pyi +++ b/stubs/sympy-stubs/functions/elementary/miscellaneous.pyi @@ -3,22 +3,23 @@ from typing_extensions import Self from sympy.core import Function from sympy.core.expr import Expr from sympy.core.function import Application, Lambda +from sympy.core.numbers import Infinity as _Infinity, NegativeInfinity as _NegativeInfinity from sympy.core.operations import LatticeOp from sympy.core.power import Pow from sympy.core.singleton import Singleton -from sympy.core.symbol import Dummy +from sympy.core.symbol import Dummy, Dummy as _Dummy from sympy.functions.elementary.piecewise import Piecewise from sympy.functions.special.delta_functions import Heaviside from sympy.series.order import Order class IdentityFunction(Lambda, metaclass=Singleton): - _symbol = ... + _symbol: _Dummy @property def signature(self) -> tuple: ... @property def expr(self) -> Dummy: ... -Id = ... +Id: IdentityFunction def sqrt(arg, evaluate=...) -> Pow: ... def cbrt(arg, evaluate=...) -> Pow: ... @@ -26,6 +27,7 @@ def root(arg, n, k=..., evaluate=...) -> Order | Pow: ... def real_root(arg, n=..., evaluate=...) -> Piecewise: ... class MinMaxBase(Expr, LatticeOp): + is_commutative: bool def __new__(cls, *args, **assumptions) -> Self: ... def evalf(self, n=..., **options) -> Self: ... def n(self, *args, **kwargs) -> Self: ... @@ -58,13 +60,13 @@ class MinMaxBase(Expr, LatticeOp): _eval_is_zero = ... class Max(MinMaxBase, Application): - zero = ... - identity = ... + zero: _Infinity + identity: _NegativeInfinity def fdiff(self, argindex) -> Heaviside: ... class Min(MinMaxBase, Application): - zero = ... - identity = ... + zero: _NegativeInfinity + identity: _Infinity def fdiff(self, argindex) -> Heaviside: ... class Rem(Function): diff --git a/stubs/sympy-stubs/functions/elementary/piecewise.pyi b/stubs/sympy-stubs/functions/elementary/piecewise.pyi index 517d0848..9b179a83 100644 --- a/stubs/sympy-stubs/functions/elementary/piecewise.pyi +++ b/stubs/sympy-stubs/functions/elementary/piecewise.pyi @@ -4,8 +4,10 @@ from typing_extensions import Self from sympy.core import Function, Tuple from sympy.core.basic import Basic +from sympy.core.numbers import NaN as _NaN +from sympy.sets.fancysets import Naturals0 as _Naturals0 -Undefined = ... +Undefined: _NaN class ExprCondPair(Tuple): def __new__(cls, expr, cond) -> Self: ... @@ -18,35 +20,34 @@ class ExprCondPair(Tuple): def __iter__(self) -> Iterator[Basic]: ... class Piecewise(Function): - nargs = ... - is_Piecewise = ... + nargs: _Naturals0 + is_Piecewise: bool def __new__(cls, *args, **options) -> Self: ... @classmethod def eval(cls, *_args) -> Self | None: ... def doit(self, **hints) -> Self: ... def piecewise_integrate(self, x, **kwargs) -> Self: ... - - _eval_is_finite = ... - _eval_is_complex = ... - _eval_is_even = ... - _eval_is_imaginary = ... - _eval_is_integer = ... - _eval_is_irrational = ... - _eval_is_negative = ... - _eval_is_nonnegative = ... - _eval_is_nonpositive = ... - _eval_is_nonzero = ... - _eval_is_odd = ... - _eval_is_polar = ... - _eval_is_positive = ... - _eval_is_extended_real = ... - _eval_is_extended_positive = ... - _eval_is_extended_negative = ... - _eval_is_extended_nonzero = ... - _eval_is_extended_nonpositive = ... - _eval_is_extended_nonnegative = ... - _eval_is_real = ... - _eval_is_zero = ... + def _eval_is_finite(self) -> bool | None: ... + def _eval_is_complex(self) -> bool | None: ... + def _eval_is_even(self) -> bool | None: ... + def _eval_is_imaginary(self) -> bool | None: ... + def _eval_is_integer(self) -> bool | None: ... + def _eval_is_irrational(self) -> bool | None: ... + def _eval_is_negative(self) -> bool | None: ... + def _eval_is_nonnegative(self) -> bool | None: ... + def _eval_is_nonpositive(self) -> bool | None: ... + def _eval_is_nonzero(self) -> bool | None: ... + def _eval_is_odd(self) -> bool | None: ... + def _eval_is_polar(self) -> bool | None: ... + def _eval_is_positive(self) -> bool | None: ... + def _eval_is_extended_real(self) -> bool | None: ... + def _eval_is_extended_positive(self) -> bool | None: ... + def _eval_is_extended_negative(self) -> bool | None: ... + def _eval_is_extended_nonzero(self) -> bool | None: ... + def _eval_is_extended_nonpositive(self) -> bool | None: ... + def _eval_is_extended_nonnegative(self) -> bool | None: ... + def _eval_is_real(self) -> bool | None: ... + def _eval_is_zero(self) -> bool | None: ... def as_expr_set_pairs(self, domain=...) -> list[Any]: ... def piecewise_fold(expr, evaluate=...) -> Basic | Piecewise: ... diff --git a/stubs/sympy-stubs/functions/elementary/trigonometric.pyi b/stubs/sympy-stubs/functions/elementary/trigonometric.pyi index ff617883..92250879 100644 --- a/stubs/sympy-stubs/functions/elementary/trigonometric.pyi +++ b/stubs/sympy-stubs/functions/elementary/trigonometric.pyi @@ -6,7 +6,8 @@ from sympy.core.cache import cacheit from sympy.core.expr import Expr from sympy.core.function import Function, UndefinedFunction from sympy.core.logic import FuzzyBool -from sympy.core.mul import Mul +from sympy.core.mul import Mul, Mul as _Mul +from sympy.core.numbers import ImaginaryUnit as _ImaginaryUnit from sympy.functions.elementary.piecewise import Piecewise class TrigonometricFunction(Function): @@ -101,8 +102,7 @@ class asin(InverseTrigonometricFunction): @staticmethod @cacheit def taylor_term(n, x, *previous_terms): ... - - _eval_rewrite_as_tractable = ... + def _eval_rewrite_as_tractable(self, x, **kwargs) -> Expr: ... def inverse(self, argindex=...) -> type[sin]: ... class acos(InverseTrigonometricFunction): @@ -112,21 +112,20 @@ class acos(InverseTrigonometricFunction): @staticmethod @cacheit def taylor_term(n, x, *previous_terms): ... - - _eval_rewrite_as_tractable = ... + def _eval_rewrite_as_tractable(self, x, **kwargs) -> Expr: ... def inverse(self, argindex=...) -> type[cos]: ... class atan(InverseTrigonometricFunction): - args: tuple[Expr] - _singularities = ... + @property + def args(self) -> tuple[Expr]: ... + _singularities: tuple[_ImaginaryUnit, _Mul] def fdiff(self, argindex=...): ... @classmethod def eval(cls, arg) -> AccumBounds | Mul | None: ... @staticmethod @cacheit def taylor_term(n, x, *previous_terms): ... - - _eval_rewrite_as_tractable = ... + def _eval_rewrite_as_tractable(self, x, **kwargs) -> Expr: ... def inverse(self, argindex=...) -> type[tan]: ... class acot(InverseTrigonometricFunction): diff --git a/stubs/sympy-stubs/functions/special/bessel.pyi b/stubs/sympy-stubs/functions/special/bessel.pyi index be733667..ffc44e8a 100644 --- a/stubs/sympy-stubs/functions/special/bessel.pyi +++ b/stubs/sympy-stubs/functions/special/bessel.pyi @@ -5,7 +5,8 @@ from numpy import floating, ndarray as NDArray from sympy.core.basic import Basic from sympy.core.cache import cacheit from sympy.core.function import Function, UndefinedFunction -from sympy.core.numbers import Float +from sympy.core.numbers import Float, NegativeOne as _NegativeOne, One as _One +from sympy.sets.sets import FiniteSet as _FiniteSet class BesselBase(Function): @property @@ -17,36 +18,36 @@ class BesselBase(Function): def fdiff(self, argindex=...): ... class besselj(BesselBase): - _a = ... - _b = ... + _a: _One + _b: _One @classmethod def eval(cls, nu, z) -> type[UndefinedFunction] | None: ... class bessely(BesselBase): - _a = ... - _b = ... + _a: _One + _b: _One @classmethod def eval(cls, nu, z) -> None: ... class besseli(BesselBase): - _a = ... - _b = ... + _a: _NegativeOne + _b: _One @classmethod def eval(cls, nu, z) -> type[UndefinedFunction] | None: ... class besselk(BesselBase): - _a = ... - _b = ... + _a: _One + _b: _NegativeOne @classmethod def eval(cls, nu, z) -> type[UndefinedFunction] | None: ... class hankel1(BesselBase): - _a = ... - _b = ... + _a: _One + _b: _One class hankel2(BesselBase): - _a = ... - _b = ... + _a: _One + _b: _One def assume_integer_order(fn) -> _Wrapped[..., Any, ..., Any | None]: ... @@ -61,10 +62,10 @@ class yn(SphericalBesselBase): ... class SphericalHankelBase(SphericalBesselBase): ... class hn1(SphericalHankelBase): - _hankel_kind_sign = ... + _hankel_kind_sign: _One class hn2(SphericalHankelBase): - _hankel_kind_sign = ... + _hankel_kind_sign: _NegativeOne def jn_zeros(n, k, method=..., dps=...) -> list[Any | Float] | list[Any | NDArray[Any, Any] | tuple[Any, Any]]: ... @@ -72,7 +73,7 @@ class AiryBase(Function): def as_real_imag(self, deep=..., **hints) -> tuple[Any, Any]: ... class airyai(AiryBase): - nargs = ... + nargs: _FiniteSet unbranched = ... @classmethod def eval(cls, arg) -> None: ... @@ -82,7 +83,7 @@ class airyai(AiryBase): def taylor_term(n, x, *previous_terms): ... class airybi(AiryBase): - nargs = ... + nargs: _FiniteSet unbranched = ... @classmethod def eval(cls, arg) -> None: ... @@ -92,14 +93,14 @@ class airybi(AiryBase): def taylor_term(n, x, *previous_terms): ... class airyaiprime(AiryBase): - nargs = ... + nargs: _FiniteSet unbranched = ... @classmethod def eval(cls, arg) -> None: ... def fdiff(self, argindex=...): ... class airybiprime(AiryBase): - nargs = ... + nargs: _FiniteSet unbranched = ... @classmethod def eval(cls, arg) -> None: ... diff --git a/stubs/sympy-stubs/functions/special/beta_functions.pyi b/stubs/sympy-stubs/functions/special/beta_functions.pyi index 746668de..69893354 100644 --- a/stubs/sympy-stubs/functions/special/beta_functions.pyi +++ b/stubs/sympy-stubs/functions/special/beta_functions.pyi @@ -1,6 +1,7 @@ from typing_extensions import Self from sympy.core.function import Function, UndefinedFunction +from sympy.sets.sets import FiniteSet as _FiniteSet def betainc_mpmath_fix(a, b, x1, x2, reg=...): ... @@ -12,12 +13,12 @@ class beta(Function): def doit(self, **hints) -> Self | type[UndefinedFunction]: ... class betainc(Function): - nargs = ... + nargs: _FiniteSet unbranched = ... def fdiff(self, argindex): ... class betainc_regularized(Function): - nargs = ... + nargs: _FiniteSet unbranched = ... def __new__(cls, a, b, x1, x2) -> type[UndefinedFunction]: ... def fdiff(self, argindex): ... diff --git a/stubs/sympy-stubs/functions/special/error_functions.pyi b/stubs/sympy-stubs/functions/special/error_functions.pyi index 2254cb6f..cb21580d 100644 --- a/stubs/sympy-stubs/functions/special/error_functions.pyi +++ b/stubs/sympy-stubs/functions/special/error_functions.pyi @@ -4,6 +4,7 @@ from sympy.core.basic import Basic from sympy.core.cache import cacheit from sympy.core.function import Function, UndefinedFunction from sympy.core.mul import Mul +from sympy.core.numbers import ComplexInfinity as _ComplexInfinity, NegativeOne as _NegativeOne, One as _One, Zero as _Zero from sympy.functions.elementary.hyperbolic import cosh, sinh from sympy.functions.elementary.trigonometric import cos, sin @@ -106,19 +107,19 @@ class TrigonometricIntegral(Function): class Si(TrigonometricIntegral): _trigfunc = sin - _atzero = ... + _atzero: _Zero class Ci(TrigonometricIntegral): _trigfunc = cos - _atzero = ... + _atzero: _ComplexInfinity class Shi(TrigonometricIntegral): _trigfunc = sinh - _atzero = ... + _atzero: _Zero class Chi(TrigonometricIntegral): _trigfunc = cosh - _atzero = ... + _atzero: _ComplexInfinity class FresnelIntegral(Function): unbranched = ... @@ -131,14 +132,14 @@ class FresnelIntegral(Function): class fresnels(FresnelIntegral): _trigfunc = sin - _sign = ... + _sign: _NegativeOne @staticmethod @cacheit def taylor_term(n, x, *previous_terms): ... class fresnelc(FresnelIntegral): _trigfunc = cos - _sign = ... + _sign: _One @staticmethod @cacheit def taylor_term(n, x, *previous_terms): ... diff --git a/stubs/sympy-stubs/functions/special/polynomials.pyi b/stubs/sympy-stubs/functions/special/polynomials.pyi index 19600b71..55c37fb9 100644 --- a/stubs/sympy-stubs/functions/special/polynomials.pyi +++ b/stubs/sympy-stubs/functions/special/polynomials.pyi @@ -4,8 +4,9 @@ from sympy.concrete.summations import Sum from sympy.core.function import Function, UndefinedFunction from sympy.core.mul import Mul from sympy.core.relational import Equality, Ne, Relational +from sympy.core.symbol import Dummy as _Dummy -_x = ... +_x: _Dummy class OrthogonalPolynomial(Function): ... diff --git a/stubs/sympy-stubs/functions/special/spherical_harmonics.pyi b/stubs/sympy-stubs/functions/special/spherical_harmonics.pyi index 9e978a87..defd72b5 100644 --- a/stubs/sympy-stubs/functions/special/spherical_harmonics.pyi +++ b/stubs/sympy-stubs/functions/special/spherical_harmonics.pyi @@ -1,8 +1,9 @@ from typing import Any from sympy.core.function import Function, UndefinedFunction +from sympy.core.symbol import Dummy as _Dummy -_x = ... +_x: _Dummy class Ynm(Function): @classmethod diff --git a/stubs/sympy-stubs/geometry/entity.pyi b/stubs/sympy-stubs/geometry/entity.pyi index f5757499..ef6999fd 100644 --- a/stubs/sympy-stubs/geometry/entity.pyi +++ b/stubs/sympy-stubs/geometry/entity.pyi @@ -3,12 +3,13 @@ from typing_extensions import Self from sympy.core.basic import Basic from sympy.core.evalf import EvalfMixin +from sympy.core.symbol import Dummy as _Dummy from sympy.multipledispatch import dispatch from sympy.sets import Set from sympy.sets.sets import FiniteSet, Union ordering_of_classes = ... -T = ... +T: _Dummy class GeometryEntity(Basic, EvalfMixin): __slots__: tuple[str, ...] = ... diff --git a/stubs/sympy-stubs/holonomic/holonomic.pyi b/stubs/sympy-stubs/holonomic/holonomic.pyi index 777b20bc..1a5fdc66 100644 --- a/stubs/sympy-stubs/holonomic/holonomic.pyi +++ b/stubs/sympy-stubs/holonomic/holonomic.pyi @@ -1,6 +1,7 @@ from typing import Any from typing_extensions import Self +from sympy.core.symbol import Dummy as _Dummy from sympy.holonomic.recurrence import HolonomicSequence def DifferentialOperators(base, generator) -> tuple[DifferentialOperatorAlgebra, DifferentialOperator]: ... @@ -63,7 +64,7 @@ class HolonomicFunction: def from_hyper(func, x0=..., evalf=...) -> HolonomicFunction: ... def from_meijerg(func, x0=..., evalf=..., initcond=..., domain=...) -> HolonomicFunction: ... -x_1 = ... +x_1: _Dummy _lookup_table = ... domain_for_table = ... diff --git a/stubs/sympy-stubs/integrals/laplace.pyi b/stubs/sympy-stubs/integrals/laplace.pyi index e9a371ce..b2069472 100644 --- a/stubs/sympy-stubs/integrals/laplace.pyi +++ b/stubs/sympy-stubs/integrals/laplace.pyi @@ -6,6 +6,7 @@ from sympy.core.expr import Expr from sympy.core.function import UndefinedFunction from sympy.core.logic import And from sympy.core.mul import Mul +from sympy.core.symbol import Dummy as _Dummy from sympy.functions.elementary.miscellaneous import Max from sympy.integrals.transforms import IntegralTransform from sympy.series.order import Order @@ -22,8 +23,8 @@ def laplace_transform(f, t, s, legacy_matrix=..., **hints) -> tuple[MatrixBase, class InverseLaplaceTransform(IntegralTransform): _name = ... - _none_sentinel = ... - _c = ... + _none_sentinel: _Dummy + _c: _Dummy def __new__(cls, F, s, x, plane, **opts) -> type[UndefinedFunction]: ... @property def fundamental_plane(self) -> Basic | None: ... diff --git a/stubs/sympy-stubs/integrals/manualintegrate.pyi b/stubs/sympy-stubs/integrals/manualintegrate.pyi index c6fb7618..347b0b00 100644 --- a/stubs/sympy-stubs/integrals/manualintegrate.pyi +++ b/stubs/sympy-stubs/integrals/manualintegrate.pyi @@ -7,7 +7,7 @@ from sympy.core.cache import cacheit from sympy.core.expr import Expr from sympy.core.function import Derivative, UndefinedFunction from sympy.core.relational import Boolean -from sympy.core.symbol import Symbol, Wild +from sympy.core.symbol import Dummy as _Dummy, Symbol, Wild from sympy.functions.elementary.piecewise import Piecewise from sympy.tensor.array.array_derivatives import ArrayDerivative @@ -355,7 +355,7 @@ def orthogonal_poly_rule(integral) -> None: ... _special_function_patterns: list[tuple[type, Expr, Callable | None, tuple]] = ... _wilds = ... -_symbol = ... +_symbol: _Dummy def special_function_rule(integral) -> None: ... def nested_pow_rule(integral: IntegralInfo) -> Rule | None: ... @@ -420,7 +420,7 @@ def fallback_rule(integral) -> DontKnowRule: ... _integral_cache: dict[Expr, Expr | None] = ... _parts_u_cache: dict[Expr, int] = ... -_cache_dummy = ... +_cache_dummy: _Dummy def integral_steps(integrand, symbol, **options) -> DontKnowRule | tuple[Any, Any] | Rule: ... def manualintegrate(f, var) -> Piecewise | Expr: ... diff --git a/stubs/sympy-stubs/integrals/meijerint.pyi b/stubs/sympy-stubs/integrals/meijerint.pyi index 1bb90a5b..03e8e537 100644 --- a/stubs/sympy-stubs/integrals/meijerint.pyi +++ b/stubs/sympy-stubs/integrals/meijerint.pyi @@ -2,12 +2,12 @@ from collections.abc import Callable from typing import TypeVar from sympy.core.basic import Basic -from sympy.core.symbol import Dummy +from sympy.core.symbol import Dummy, Dummy as _Dummy from sympy.functions.elementary.piecewise import Piecewise _CallableT = TypeVar("_CallableT", bound=Callable) -z = ... +z: _Dummy def timeit(func: _CallableT) -> _CallableT: ... diff --git a/stubs/sympy-stubs/integrals/transforms.pyi b/stubs/sympy-stubs/integrals/transforms.pyi index 95d94d7a..e14cfd12 100644 --- a/stubs/sympy-stubs/integrals/transforms.pyi +++ b/stubs/sympy-stubs/integrals/transforms.pyi @@ -6,6 +6,7 @@ from sympy.core.basic import Basic from sympy.core.function import Function, UndefinedFunction from sympy.core.logic import And from sympy.core.relational import Equality, Ne, Relational +from sympy.core.symbol import Dummy as _Dummy from sympy.functions.elementary.trigonometric import cos, sin from sympy.integrals.integrals import Integral from sympy.series.order import Order @@ -39,8 +40,8 @@ _allowed = ... class InverseMellinTransform(IntegralTransform): _name = ... - _none_sentinel = ... - _c = ... + _none_sentinel: _Dummy + _c: _Dummy def __new__(cls, F, s, x, a, b, **opts) -> type[UndefinedFunction]: ... @property def fundamental_strip(self) -> tuple[Basic | None, Basic | None]: ... diff --git a/stubs/sympy-stubs/liealgebras/cartan_type.pyi b/stubs/sympy-stubs/liealgebras/cartan_type.pyi index 54e42afd..258d8641 100644 --- a/stubs/sympy-stubs/liealgebras/cartan_type.pyi +++ b/stubs/sympy-stubs/liealgebras/cartan_type.pyi @@ -13,7 +13,7 @@ from sympy.liealgebras.type_g import TypeG class CartanType_generator: def __call__(self, *args) -> TypeA | TypeB | TypeC | TypeD | TypeE | TypeF | TypeG | None: ... -CartanType = ... +CartanType: CartanType_generator class Standard_Cartan(Atom): def __new__(cls, series, n) -> Self: ... diff --git a/stubs/sympy-stubs/logic/boolalg.pyi b/stubs/sympy-stubs/logic/boolalg.pyi index 1a948364..742edd65 100644 --- a/stubs/sympy-stubs/logic/boolalg.pyi +++ b/stubs/sympy-stubs/logic/boolalg.pyi @@ -6,37 +6,39 @@ from sympy.core.basic import Basic from sympy.core.cache import cacheit from sympy.core.decorators import sympify_method_args, sympify_return from sympy.core.function import Application, Derivative +from sympy.core.kind import _BooleanKind from sympy.core.operations import LatticeOp from sympy.core.relational import Eq, Ne from sympy.core.singleton import Singleton from sympy.core.symbol import Symbol +from sympy.sets.fancysets import Naturals0 as _Naturals0 def as_Boolean(e) -> BooleanTrue | BooleanFalse | Symbol | Boolean: ... @sympify_method_args class Boolean(Basic): - __slots__ = ... - kind = ... + __slots__: tuple[str, ...] = ... + kind: _BooleanKind @sympify_return([("other", "Boolean")], NotImplemented) def __and__(self, other) -> And: ... - __rand__ = ... + __rand__ = __and__ @sympify_return([("other", "Boolean")], NotImplemented) def __or__(self, other) -> Or: ... - __ror__ = ... + __ror__ = __or__ def __invert__(self) -> Not: ... @sympify_return([("other", "Boolean")], NotImplemented) def __rshift__(self, other) -> Implies: ... @sympify_return([("other", "Boolean")], NotImplemented) def __lshift__(self, other) -> Implies: ... - __rrshift__ = ... - __rlshift__ = ... + __rrshift__ = __lshift__ + __rlshift__ = __rshift__ @sympify_return([("other", "Boolean")], NotImplemented) def __xor__(self, other) -> BooleanFalse | Not | Xor: ... - __rxor__ = ... + __rxor__ = __xor__ def equals(self, other) -> bool: ... def to_nnf(self, simplify=...) -> Self: ... def as_set(self): ... @@ -72,6 +74,7 @@ class BooleanAtom(Boolean): __ge__ = ... class BooleanTrue(BooleanAtom, metaclass=Singleton): + def __new__(cls) -> Self: ... def __bool__(self) -> Literal[True]: ... def __hash__(self) -> int: ... def __eq__(self, other) -> bool: ... @@ -80,6 +83,7 @@ class BooleanTrue(BooleanAtom, metaclass=Singleton): def as_set(self): ... class BooleanFalse(BooleanAtom, metaclass=Singleton): + def __new__(cls) -> Self: ... def __bool__(self) -> Literal[False]: ... def __hash__(self) -> int: ... def __eq__(self, other) -> bool: ... @@ -87,17 +91,17 @@ class BooleanFalse(BooleanAtom, metaclass=Singleton): def negated(self) -> BooleanTrue: ... def as_set(self): ... -true = ... -false = ... +true: BooleanTrue +false: BooleanFalse class BooleanFunction(Application, Boolean): - is_Boolean = ... + is_Boolean: bool def simplify(self, **kwargs): ... def __lt__(self, other) -> bool: ... - __le__ = ... - __ge__ = ... - __gt__ = ... + __le__ = __lt__ + __ge__ = __lt__ + __gt__ = __lt__ @classmethod def binary_check_and_simplify(cls, *args) -> list[Any | BooleanTrue | Basic | BooleanFalse | Symbol | Boolean]: ... def to_nnf(self, simplify=...) -> Self: ... @@ -105,18 +109,20 @@ class BooleanFunction(Application, Boolean): def diff(self, *symbols, **assumptions) -> Derivative: ... class And(LatticeOp, BooleanFunction): - zero = ... - identity = ... - nargs = ... + is_commutative: bool + zero: BooleanFalse + identity: BooleanTrue + nargs: _Naturals0 def to_anf(self, deep=...) -> Self: ... class Or(LatticeOp, BooleanFunction): - zero = ... - identity = ... + is_commutative: bool + zero: BooleanTrue + identity: BooleanFalse def to_anf(self, deep=...) -> BooleanFalse | Not | Xor: ... class Not(BooleanFunction): - is_Not = ... + is_Not: bool @classmethod def eval(cls, arg) -> BooleanFalse | BooleanTrue | None: ... def to_nnf(self, simplify=...) -> Self | Or | And: ... diff --git a/stubs/sympy-stubs/matrices/expressions/hadamard.pyi b/stubs/sympy-stubs/matrices/expressions/hadamard.pyi index 0d5a42ef..9d9ebcbf 100644 --- a/stubs/sympy-stubs/matrices/expressions/hadamard.pyi +++ b/stubs/sympy-stubs/matrices/expressions/hadamard.pyi @@ -6,7 +6,7 @@ from sympy.matrices.expressions.matexpr import MatrixExpr def hadamard_product(*matrices): ... class HadamardProduct(MatrixExpr): - is_HadamardProduct = ... + is_HadamardProduct: bool def __new__(cls, *args, evaluate=..., check=...) -> Self: ... @property def shape(self): ... diff --git a/stubs/sympy-stubs/matrices/expressions/inverse.pyi b/stubs/sympy-stubs/matrices/expressions/inverse.pyi index 5a67d48c..f22ee37f 100644 --- a/stubs/sympy-stubs/matrices/expressions/inverse.pyi +++ b/stubs/sympy-stubs/matrices/expressions/inverse.pyi @@ -1,11 +1,12 @@ from typing_extensions import Self from sympy.core.basic import Basic +from sympy.core.numbers import NegativeOne as _NegativeOne from sympy.matrices.expressions.matpow import MatPow class Inverse(MatPow): is_Inverse = ... - exp = ... + exp: _NegativeOne def __new__(cls, mat, exp=...) -> Self: ... @property def arg(self) -> Basic: ... diff --git a/stubs/sympy-stubs/matrices/expressions/kronecker.pyi b/stubs/sympy-stubs/matrices/expressions/kronecker.pyi index aaf1679d..14c24f2e 100644 --- a/stubs/sympy-stubs/matrices/expressions/kronecker.pyi +++ b/stubs/sympy-stubs/matrices/expressions/kronecker.pyi @@ -16,7 +16,7 @@ else: def kronecker_product(*matrices) -> NotImplementedType | GenericIdentity | Order | object | Identity: ... class KroneckerProduct(MatrixExpr): - is_KroneckerProduct = ... + is_KroneckerProduct: bool def __new__(cls, *args, check=...) -> ImmutableDenseMatrix | Identity | Self: ... @property def shape(self) -> tuple[Any, Any]: ... diff --git a/stubs/sympy-stubs/matrices/expressions/matadd.pyi b/stubs/sympy-stubs/matrices/expressions/matadd.pyi index 16bc7416..77ed84e8 100644 --- a/stubs/sympy-stubs/matrices/expressions/matadd.pyi +++ b/stubs/sympy-stubs/matrices/expressions/matadd.pyi @@ -2,11 +2,11 @@ from typing_extensions import Self from sympy.core.add import Add from sympy.matrices.expressions.matexpr import MatrixExpr -from sympy.matrices.expressions.special import GenericZeroMatrix +from sympy.matrices.expressions.special import GenericZeroMatrix, GenericZeroMatrix as _GenericZeroMatrix class MatAdd(MatrixExpr, Add): - is_MatAdd = ... - identity = ... + is_MatAdd: bool + identity: _GenericZeroMatrix def __new__(cls, *args, evaluate=..., check=..., _sympify=...) -> GenericZeroMatrix | MatAdd | Self: ... @property def shape(self): ... diff --git a/stubs/sympy-stubs/matrices/expressions/matexpr.pyi b/stubs/sympy-stubs/matrices/expressions/matexpr.pyi index 9a8357fa..33378134 100644 --- a/stubs/sympy-stubs/matrices/expressions/matexpr.pyi +++ b/stubs/sympy-stubs/matrices/expressions/matexpr.pyi @@ -1,6 +1,8 @@ from typing import Any, Callable, Literal from typing_extensions import Self +import numpy as np +from numpy.typing import DTypeLike from sympy.core.basic import Basic from sympy.core.decorators import _sympifyit, call_highest_priority from sympy.core.expr import Expr @@ -22,20 +24,20 @@ from sympy.series.order import Order class MatrixExpr(Expr): __slots__: tuple[str, ...] = ... - _iterable = ... - _op_priority = ... + _iterable: bool + _op_priority: float is_Matrix: bool = ... is_MatrixExpr: bool = ... is_Identity: FuzzyBool = ... - is_Inverse = ... - is_Transpose = ... - is_ZeroMatrix = ... - is_MatAdd = ... - is_MatMul = ... - is_commutative = ... - is_number = ... - is_symbol = ... - is_scalar = ... + is_Inverse: bool + is_Transpose: bool + is_ZeroMatrix: bool + is_MatAdd: bool + is_MatMul: bool + is_commutative: bool + is_number: bool + is_symbol: bool + is_scalar: bool kind: MatrixKind = ... def __new__(cls, *args, **kwargs) -> Self: ... @property @@ -100,7 +102,7 @@ class MatrixExpr(Expr): def __getitem__(self, key) -> MatrixSlice: ... def as_explicit(self) -> ImmutableDenseMatrix: ... def as_mutable(self) -> Matrix: ... - def __array__(self): ... + def __array__(self, dtype: DTypeLike = ..., copy: bool | None = ...) -> np.ndarray[Any, np.dtype[np.object_]]: ... def equals(self, other) -> bool: ... def canonicalize(self) -> Self: ... def as_coeff_mmul(self) -> tuple[Any, GenericIdentity | Any | Order | object | MatMul]: ... diff --git a/stubs/sympy-stubs/matrices/expressions/matmul.pyi b/stubs/sympy-stubs/matrices/expressions/matmul.pyi index e1884d2a..7e320545 100644 --- a/stubs/sympy-stubs/matrices/expressions/matmul.pyi +++ b/stubs/sympy-stubs/matrices/expressions/matmul.pyi @@ -5,12 +5,12 @@ from sympy.core.expr import Expr from sympy.core.mul import Mul from sympy.matrices.expressions.matadd import MatAdd from sympy.matrices.expressions.matexpr import MatrixExpr -from sympy.matrices.expressions.special import GenericIdentity, GenericZeroMatrix, ZeroMatrix +from sympy.matrices.expressions.special import GenericIdentity, GenericIdentity as _GenericIdentity, GenericZeroMatrix, ZeroMatrix from sympy.series.order import Order class MatMul(MatrixExpr, Mul): - is_MatMul = ... - identity = ... + is_MatMul: bool + identity: _GenericIdentity def __new__(cls, *args, evaluate=..., check=..., _sympify=...) -> GenericIdentity | Order | object | Self: ... @property def shape(self) -> tuple[Any, Any]: ... diff --git a/stubs/sympy-stubs/matrices/expressions/trace.pyi b/stubs/sympy-stubs/matrices/expressions/trace.pyi index bf1568e0..47b9e028 100644 --- a/stubs/sympy-stubs/matrices/expressions/trace.pyi +++ b/stubs/sympy-stubs/matrices/expressions/trace.pyi @@ -4,8 +4,8 @@ from sympy.core.basic import Basic from sympy.core.expr import Expr class Trace(Expr): - is_Trace = ... - is_commutative = ... + is_Trace: bool + is_commutative: bool def __new__(cls, mat) -> Self: ... @property def arg(self) -> Basic: ... diff --git a/stubs/sympy-stubs/matrices/expressions/transpose.pyi b/stubs/sympy-stubs/matrices/expressions/transpose.pyi index c1d29e0f..0167c72d 100644 --- a/stubs/sympy-stubs/matrices/expressions/transpose.pyi +++ b/stubs/sympy-stubs/matrices/expressions/transpose.pyi @@ -4,7 +4,7 @@ from sympy.core.basic import Basic from sympy.matrices.expressions.matexpr import MatrixExpr class Transpose(MatrixExpr): - is_Transpose = ... + is_Transpose: bool def doit(self, **hints) -> Any | Transpose: ... @property def arg(self) -> Basic: ... diff --git a/stubs/sympy-stubs/physics/matrices.pyi b/stubs/sympy-stubs/physics/matrices.pyi index 393ae9ab..f7fb61fd 100644 --- a/stubs/sympy-stubs/physics/matrices.pyi +++ b/stubs/sympy-stubs/physics/matrices.pyi @@ -1,11 +1,11 @@ from sympy.matrices import Matrix -from sympy.matrices.dense import MutableDenseMatrix +from sympy.matrices.dense import MutableDenseMatrix, MutableDenseMatrix as _MutableDenseMatrix from sympy.utilities.decorator import deprecated def msigma(i) -> MutableDenseMatrix: ... def pat_matrix(m, dx, dy, dz): ... def mgamma(mu, lower=...) -> MutableDenseMatrix: ... -minkowski_tensor = ... +minkowski_tensor: _MutableDenseMatrix def mdft(n) -> Matrix: ... diff --git a/stubs/sympy-stubs/physics/units/__init__.pyi b/stubs/sympy-stubs/physics/units/__init__.pyi index 8c3ed256..c89e4732 100644 --- a/stubs/sympy-stubs/physics/units/__init__.pyi +++ b/stubs/sympy-stubs/physics/units/__init__.pyi @@ -324,7 +324,7 @@ from sympy.physics.units.definitions.dimension_definitions import ( voltage, volume, ) -from sympy.physics.units.dimensions import Dimension, DimensionSystem +from sympy.physics.units.dimensions import Dimension, Dimension as _Dimension, DimensionSystem from sympy.physics.units.prefixes import ( atto, centi, @@ -359,10 +359,10 @@ from sympy.physics.units.unitsystem import UnitSystem from sympy.physics.units.util import convert_to Unit = Quantity -speed = ... -luminosity = ... -magnetic_flux_density = ... -amount = ... +speed: _Dimension +luminosity: _Dimension +magnetic_flux_density: _Dimension +amount: _Dimension def find_unit(quantity, unit_system=...) -> list[str]: ... diff --git a/stubs/sympy-stubs/physics/units/dimensions.pyi b/stubs/sympy-stubs/physics/units/dimensions.pyi index 7cfbc1f6..6c861d6e 100644 --- a/stubs/sympy-stubs/physics/units/dimensions.pyi +++ b/stubs/sympy-stubs/physics/units/dimensions.pyi @@ -16,12 +16,12 @@ class _QuantityMapper: def get_quantity_scale_factor(self, unit): ... class Dimension(Expr): - _op_priority = ... - _dimensional_dependencies = ... - is_commutative = ... - is_number = ... - is_positive = ... - is_real = ... + _op_priority: float + _dimensional_dependencies: dict[Dimension, Expr] + is_commutative: bool + is_number: bool + is_positive: bool + is_real: bool def __new__(cls, name, symbol=...) -> Self: ... @property def name(self): ... diff --git a/stubs/sympy-stubs/physics/units/prefixes.pyi b/stubs/sympy-stubs/physics/units/prefixes.pyi index ebc4bbe3..d401d2ca 100644 --- a/stubs/sympy-stubs/physics/units/prefixes.pyi +++ b/stubs/sympy-stubs/physics/units/prefixes.pyi @@ -21,31 +21,31 @@ class Prefix(Expr): def prefix_unit(unit, prefixes) -> list[Any]: ... -yotta = ... -zetta = ... -exa = ... -peta = ... -tera = ... -giga = ... -mega = ... -kilo = ... -hecto = ... -deca = ... -deci = ... -centi = ... -milli = ... -micro = ... -nano = ... -pico = ... -femto = ... -atto = ... -zepto = ... -yocto = ... -PREFIXES = ... -kibi = ... -mebi = ... -gibi = ... -tebi = ... -pebi = ... -exbi = ... -BIN_PREFIXES = ... +yotta: Prefix +zetta: Prefix +exa: Prefix +peta: Prefix +tera: Prefix +giga: Prefix +mega: Prefix +kilo: Prefix +hecto: Prefix +deca: Prefix +deci: Prefix +centi: Prefix +milli: Prefix +micro: Prefix +nano: Prefix +pico: Prefix +femto: Prefix +atto: Prefix +zepto: Prefix +yocto: Prefix +PREFIXES: dict[str, Prefix] +kibi: Prefix +mebi: Prefix +gibi: Prefix +tebi: Prefix +pebi: Prefix +exbi: Prefix +BIN_PREFIXES: dict[str, Prefix] diff --git a/stubs/sympy-stubs/physics/units/quantities.pyi b/stubs/sympy-stubs/physics/units/quantities.pyi index b692bcc9..64c3684b 100644 --- a/stubs/sympy-stubs/physics/units/quantities.pyi +++ b/stubs/sympy-stubs/physics/units/quantities.pyi @@ -6,12 +6,12 @@ from sympy.core.expr import AtomicExpr, Expr from sympy.physics.units.dimensions import Dimension class Quantity(AtomicExpr): - is_commutative = ... - is_real = ... - is_number = ... - is_nonzero = ... - is_physical_constant = ... - _diff_wrt = ... + is_commutative: bool + is_real: bool + is_number: bool + is_nonzero: bool + is_physical_constant: bool + _diff_wrt: bool def __new__( cls, name, @@ -40,4 +40,4 @@ class Quantity(AtomicExpr): def is_prefixed(self) -> bool: ... class PhysicalConstant(Quantity): - is_physical_constant = ... + is_physical_constant: bool diff --git a/stubs/sympy-stubs/physics/units/unitsystem.pyi b/stubs/sympy-stubs/physics/units/unitsystem.pyi index 2a3e8db0..7147752f 100644 --- a/stubs/sympy-stubs/physics/units/unitsystem.pyi +++ b/stubs/sympy-stubs/physics/units/unitsystem.pyi @@ -1,8 +1,6 @@ from sympy.core.expr import Expr -from sympy.core.function import UndefinedFunction from sympy.physics.units.dimensions import Dimension, _QuantityMapper from sympy.physics.units.quantities import Quantity -from sympy.series.order import Order class UnitSystem(_QuantityMapper): _unit_systems: dict[str, UnitSystem] = ... @@ -25,5 +23,5 @@ class UnitSystem(_QuantityMapper): def is_consistent(self): ... @property def derived_units(self) -> dict[Dimension, Quantity]: ... - def get_dimensional_expr(self, expr) -> Order | type[UndefinedFunction]: ... + def get_dimensional_expr(self, expr) -> Expr: ... def get_units_non_prefixed(self) -> set[Quantity]: ... diff --git a/stubs/sympy-stubs/polys/domains/expressionrawdomain.pyi b/stubs/sympy-stubs/polys/domains/expressionrawdomain.pyi index c16f8f5d..1c2920bb 100644 --- a/stubs/sympy-stubs/polys/domains/expressionrawdomain.pyi +++ b/stubs/sympy-stubs/polys/domains/expressionrawdomain.pyi @@ -1,6 +1,7 @@ from typing_extensions import Self from sympy.core import Expr +from sympy.core.numbers import One as _One, Zero as _Zero from sympy.polys.domains.characteristiczero import CharacteristicZero from sympy.polys.domains.field import Field from sympy.polys.domains.simpledomain import SimpleDomain @@ -11,8 +12,8 @@ from sympy.utilities import public class ExpressionRawDomain(Field, CharacteristicZero, SimpleDomain): is_EXRAW = ... dtype = Expr - zero = ... - one = ... + zero: _Zero + one: _One rep = ... has_assoc_Ring = ... has_assoc_Field = ... diff --git a/stubs/sympy-stubs/polys/domains/finitefield.pyi b/stubs/sympy-stubs/polys/domains/finitefield.pyi index 5ac23e74..d7828c3b 100644 --- a/stubs/sympy-stubs/polys/domains/finitefield.pyi +++ b/stubs/sympy-stubs/polys/domains/finitefield.pyi @@ -3,17 +3,20 @@ from typing_extensions import Self from sympy.core.numbers import Integer from sympy.polys.domains.field import Field +from sympy.polys.domains.integerring import IntegerRing as _IntegerRing from sympy.polys.domains.simpledomain import SimpleDomain class FiniteField(Field, SimpleDomain): - rep = ... - alias = ... - is_FF = ... - is_Numerical = ... - has_assoc_Ring = ... - has_assoc_Field = ... - dom = ... - mod = ... + rep: str + alias: str + is_FF: bool + is_Numerical: bool + has_assoc_Ring: bool + has_assoc_Field: bool + dom: _IntegerRing | None + mod: int | None + @property + def is_Field(self) -> bool: ... def __init__(self, mod, symmetric=...) -> None: ... def __hash__(self) -> int: ... def __eq__(self, other) -> bool: ... diff --git a/stubs/sympy-stubs/polys/domains/gaussiandomains.pyi b/stubs/sympy-stubs/polys/domains/gaussiandomains.pyi index 7fc7ee6a..912e6de6 100644 --- a/stubs/sympy-stubs/polys/domains/gaussiandomains.pyi +++ b/stubs/sympy-stubs/polys/domains/gaussiandomains.pyi @@ -1,5 +1,5 @@ import sys -from typing import Any, Literal +from typing import Any, ClassVar, Literal from typing_extensions import LiteralString, Self, TypeAlias, Unpack from sympy.polys.domains.domain import Domain @@ -98,9 +98,9 @@ class GaussianIntegerRing(GaussianDomain, Ring): class GaussianRationalField(GaussianDomain, Field): dom = ... dtype = GaussianRational - zero: GaussianInteger - one: GaussianInteger - imag_unit: GaussianInteger + zero: ClassVar[GaussianRational] + one: ClassVar[GaussianRational] + imag_unit: ClassVar[GaussianRational] units = ... rep = ... is_GaussianField = ... diff --git a/stubs/sympy-stubs/polys/domains/gmpyintegerring.pyi b/stubs/sympy-stubs/polys/domains/gmpyintegerring.pyi index 783582e4..6831d0a0 100644 --- a/stubs/sympy-stubs/polys/domains/gmpyintegerring.pyi +++ b/stubs/sympy-stubs/polys/domains/gmpyintegerring.pyi @@ -9,7 +9,7 @@ class GMPYIntegerRing(IntegerRing): zero: _GMPYInteger one: _GMPYInteger tp: type[_GMPYInteger] - alias = ... + alias: str def __init__(self) -> None: ... def to_sympy(self, a) -> Integer: ... def from_sympy(self, a) -> _GMPYInteger: ... diff --git a/stubs/sympy-stubs/polys/domains/pythonintegerring.pyi b/stubs/sympy-stubs/polys/domains/pythonintegerring.pyi index 4af331ed..dcf67a2c 100644 --- a/stubs/sympy-stubs/polys/domains/pythonintegerring.pyi +++ b/stubs/sympy-stubs/polys/domains/pythonintegerring.pyi @@ -9,7 +9,7 @@ class PythonIntegerRing(IntegerRing): dtype = PythonInteger zero = dtype(0) one = dtype(1) - alias = ... + alias: str def __init__(self) -> None: ... def to_sympy(self, a) -> Integer: ... def from_sympy(self, a) -> PythonInteger: ... diff --git a/stubs/sympy-stubs/polys/domains/pythonrational.pyi b/stubs/sympy-stubs/polys/domains/pythonrational.pyi index 582bccb9..20e93fec 100644 --- a/stubs/sympy-stubs/polys/domains/pythonrational.pyi +++ b/stubs/sympy-stubs/polys/domains/pythonrational.pyi @@ -1,5 +1,6 @@ from sympy.core.numbers import Integer, Rational +from sympy.external.pythonmpq import PythonMPQ -PythonRational = ... +PythonRational = PythonMPQ def sympify_pythonrational(arg) -> Rational | Integer: ... diff --git a/stubs/sympy-stubs/polys/monomials.pyi b/stubs/sympy-stubs/polys/monomials.pyi index 808b10fe..139bc82a 100644 --- a/stubs/sympy-stubs/polys/monomials.pyi +++ b/stubs/sympy-stubs/polys/monomials.pyi @@ -22,7 +22,7 @@ def monomial_deg(M) -> int: ... def term_div(a, b, domain) -> tuple[tuple[Any, ...], Any] | None: ... class MonomialOps: - def __init__(self, ngens) -> None: ... + def __new__(cls, ngens) -> Self: ... def mul(self): ... def pow(self): ... def mulpow(self): ... diff --git a/stubs/sympy-stubs/polys/polyclasses.pyi b/stubs/sympy-stubs/polys/polyclasses.pyi index e5563a26..48d769ee 100644 --- a/stubs/sympy-stubs/polys/polyclasses.pyi +++ b/stubs/sympy-stubs/polys/polyclasses.pyi @@ -19,7 +19,7 @@ def init_normal_DMP(rep, lev, dom) -> DMP: ... class DMP(PicklableWithSlots, CantSympify): __slots__ = ... - def __init__(self, rep, dom, lev=..., ring=...) -> None: ... + def __new__(cls, rep, dom, lev=...) -> Self: ... def __hash__(f) -> int: ... def unify( f, g @@ -265,7 +265,7 @@ def init_normal_ANP(rep, mod, dom) -> ANP: ... class ANP(PicklableWithSlots, CantSympify): __slots__ = ... - def __init__(self, rep, mod, dom) -> None: ... + def __new__(cls, rep, mod, dom) -> Self: ... def __hash__(f) -> int: ... def unify( f, g diff --git a/stubs/sympy-stubs/polys/polyquinticconst.pyi b/stubs/sympy-stubs/polys/polyquinticconst.pyi index 3e24177f..f8c9a537 100644 --- a/stubs/sympy-stubs/polys/polyquinticconst.pyi +++ b/stubs/sympy-stubs/polys/polyquinticconst.pyi @@ -1,8 +1,9 @@ from typing import Any +from sympy.core.symbol import Symbol as _Symbol from sympy.utilities import public -x = ... +x: _Symbol @public class PolyQuintic: diff --git a/stubs/sympy-stubs/polys/polyroots.pyi b/stubs/sympy-stubs/polys/polyroots.pyi index db666640..113b394f 100644 --- a/stubs/sympy-stubs/polys/polyroots.pyi +++ b/stubs/sympy-stubs/polys/polyroots.pyi @@ -1,9 +1,10 @@ from typing import Any +from sympy.core.symbol import Symbol as _Symbol from sympy.functions.elementary.piecewise import Piecewise from sympy.utilities import public -z = ... +z: _Symbol def roots_linear(f) -> list[Any]: ... def roots_quadratic(f) -> list[Any]: ... diff --git a/stubs/sympy-stubs/printing/printer.pyi b/stubs/sympy-stubs/printing/printer.pyi index 9d347fa5..5adb37cf 100644 --- a/stubs/sympy-stubs/printing/printer.pyi +++ b/stubs/sympy-stubs/printing/printer.pyi @@ -9,7 +9,7 @@ def printer_context(printer, **kwargs) -> Generator[None, Any, None]: ... class Printer: _global_settings: dict[str, Any] = ... _default_settings: dict[str, Any] = ... - printmethod: str = ... + printmethod: str | None = ... def __init__(self, settings=...) -> None: ... @classmethod def set_global_settings(cls, **settings) -> None: ... diff --git a/stubs/sympy-stubs/series/__init__.pyi b/stubs/sympy-stubs/series/__init__.pyi index ccea0018..0d829c08 100644 --- a/stubs/sympy-stubs/series/__init__.pyi +++ b/stubs/sympy-stubs/series/__init__.pyi @@ -7,10 +7,10 @@ from sympy.series.limits import Limit, limit from sympy.series.limitseq import difference_delta, limit_seq from sympy.series.order import Order from sympy.series.residues import residue -from sympy.series.sequences import SeqAdd, SeqFormula, SeqMul, SeqPer, sequence +from sympy.series.sequences import EmptySequence as _EmptySequence, SeqAdd, SeqFormula, SeqMul, SeqPer, sequence from sympy.series.series import series -EmptySequence = ... +EmptySequence: _EmptySequence O = Order __all__ = [ "Order", diff --git a/stubs/sympy-stubs/sets/__init__.pyi b/stubs/sympy-stubs/sets/__init__.pyi index 1a208028..822d2bbc 100644 --- a/stubs/sympy-stubs/sets/__init__.pyi +++ b/stubs/sympy-stubs/sets/__init__.pyi @@ -1,13 +1,24 @@ from sympy.core.singleton import S from sympy.sets.conditionset import ConditionSet from sympy.sets.contains import Contains -from sympy.sets.fancysets import ComplexRegion, ImageSet, Range +from sympy.sets.fancysets import ( + Complexes as _Complexes, + ComplexRegion, + ImageSet, + Integers as _Integers, + Naturals as _Naturals, + Naturals0 as _Naturals0, + Range, + Rationals as _Rationals, + Reals as _Reals, +) from sympy.sets.handlers.comparison import _eval_is_eq from sympy.sets.ordinals import OmegaPower, Ordinal, ord0 from sympy.sets.powerset import PowerSet from sympy.sets.sets import ( Complement, DisjointUnion, + EmptySet as _EmptySet, FiniteSet, Intersection, Interval, @@ -15,17 +26,18 @@ from sympy.sets.sets import ( Set, SymmetricDifference, Union, + UniversalSet as _UniversalSet, imageset, ) -Complexes = ... -EmptySet = ... -Integers = ... -Naturals = ... -Naturals0 = ... -Rationals = ... -Reals = ... -UniversalSet = ... +Complexes: _Complexes +EmptySet: _EmptySet +Integers: _Integers +Naturals: _Naturals +Naturals0: _Naturals0 +Rationals: _Rationals +Reals: _Reals +UniversalSet: _UniversalSet __all__ = [ "Set", "Interval", diff --git a/stubs/sympy-stubs/sets/conditionset.pyi b/stubs/sympy-stubs/sets/conditionset.pyi index 5aca7ab9..4a490646 100644 --- a/stubs/sympy-stubs/sets/conditionset.pyi +++ b/stubs/sympy-stubs/sets/conditionset.pyi @@ -2,9 +2,10 @@ from typing import Any from typing_extensions import Self from sympy.core.logic import And +from sympy.core.symbol import Dummy as _Dummy from sympy.sets.sets import Complement, FiniteSet, Intersection, Set, Union -adummy = ... +adummy: _Dummy class ConditionSet(Set): def __new__(cls, sym, condition, base_set=...) -> Set | FiniteSet | Intersection | Union | Complement | Self: ... diff --git a/stubs/sympy-stubs/sets/fancysets.pyi b/stubs/sympy-stubs/sets/fancysets.pyi index d9f2bd87..ff06a5b1 100644 --- a/stubs/sympy-stubs/sets/fancysets.pyi +++ b/stubs/sympy-stubs/sets/fancysets.pyi @@ -4,29 +4,36 @@ from typing_extensions import Self from sympy.core.basic import Basic from sympy.core.logic import And -from sympy.core.numbers import Integer, Rational +from sympy.core.numbers import ( + Infinity as _Infinity, + Integer, + NegativeInfinity as _NegativeInfinity, + One as _One, + Rational, + Zero as _Zero, +) from sympy.core.singleton import Singleton from sympy.sets.sets import FiniteSet, Interval, ProductSet, Set, Union class Rationals(Set, metaclass=Singleton): is_iterable = ... - _inf = ... - _sup = ... + _inf: _NegativeInfinity + _sup: _Infinity is_empty = ... is_finite_set = ... def __iter__(self) -> Generator[Any | Rational | Integer, Any, NoReturn]: ... class Naturals(Set, metaclass=Singleton): is_iterable = ... - _inf = ... - _sup = ... + _inf: _One + _sup: _Infinity is_empty = ... is_finite_set = ... def __iter__(self) -> Generator[Any, Any, NoReturn]: ... def as_relational(self, x) -> And: ... class Naturals0(Naturals): - _inf = ... + _inf: _Zero class Integers(Set, metaclass=Singleton): is_iterable = ... diff --git a/stubs/sympy-stubs/sets/handlers/comparison.pyi b/stubs/sympy-stubs/sets/handlers/comparison.pyi new file mode 100644 index 00000000..a8c0ce78 --- /dev/null +++ b/stubs/sympy-stubs/sets/handlers/comparison.pyi @@ -0,0 +1,3 @@ +from sympy.multipledispatch.dispatcher import Dispatcher + +_eval_is_eq: Dispatcher diff --git a/stubs/sympy-stubs/sets/ordinals.pyi b/stubs/sympy-stubs/sets/ordinals.pyi index ddbad337..9b1594d1 100644 --- a/stubs/sympy-stubs/sets/ordinals.pyi +++ b/stubs/sympy-stubs/sets/ordinals.pyi @@ -56,5 +56,5 @@ class OrdinalOmega(Ordinal): @property def terms(self) -> tuple[OmegaPower]: ... -ord0 = ... -omega = ... +ord0: OrdinalZero +omega: OrdinalOmega diff --git a/stubs/sympy-stubs/sets/sets.pyi b/stubs/sympy-stubs/sets/sets.pyi index bd8efca6..0439f08f 100644 --- a/stubs/sympy-stubs/sets/sets.pyi +++ b/stubs/sympy-stubs/sets/sets.pyi @@ -25,18 +25,18 @@ tfn = ... @sympify_method_args class Set(Basic, EvalfMixin): - __slots__ = ... - is_number = ... - is_iterable = ... - is_interval = ... - is_FiniteSet = ... - is_Interval = ... - is_ProductSet = ... - is_Union = ... + __slots__: tuple[str, ...] = ... + is_number: bool + is_iterable: bool + is_interval: bool + is_FiniteSet: bool + is_Interval: bool + is_ProductSet: bool + is_Union: bool is_Intersection: FuzzyBool = ... is_UniversalSet: FuzzyBool = ... is_Complement: FuzzyBool = ... - is_ComplexRegion = ... + is_ComplexRegion: bool is_empty: FuzzyBool = ... is_finite_set: FuzzyBool = ... @property @@ -91,7 +91,7 @@ class Set(Basic, EvalfMixin): def __contains__(self, other): ... class ProductSet(Set): - is_ProductSet = ... + is_ProductSet: bool def __new__(cls, *sets, **assumptions) -> FiniteSet | Self: ... @property def sets(self) -> tuple[Basic, ...]: ... @@ -108,7 +108,7 @@ class ProductSet(Set): def __bool__(self) -> bool: ... class Interval(Set): - is_Interval = ... + is_Interval: bool def __new__(cls, start, end, left_open=..., right_open=...) -> FiniteSet | Self: ... @property def start(self) -> Basic: ... @@ -203,10 +203,10 @@ class UniversalSet(Set, metaclass=Singleton): def as_relational(self, symbol) -> BooleanTrue: ... class FiniteSet(Set): - is_FiniteSet = ... - is_iterable = ... - is_empty = ... - is_finite_set = ... + is_FiniteSet: bool + is_iterable: bool + is_empty: bool + is_finite_set: bool def __new__(cls, *args, **kwargs) -> Self: ... def __iter__(self) -> Iterator[Basic]: ... @property diff --git a/stubs/sympy-stubs/simplify/hyperexpand.pyi b/stubs/sympy-stubs/simplify/hyperexpand.pyi index e6d0c64f..6395cbfd 100644 --- a/stubs/sympy-stubs/simplify/hyperexpand.pyi +++ b/stubs/sympy-stubs/simplify/hyperexpand.pyi @@ -3,6 +3,7 @@ from typing_extensions import Self from sympy.core import Expr from sympy.core.function import UndefinedFunction +from sympy.core.symbol import Dummy as _Dummy def add_formulae(formulae) -> None: ... def add_meijerg_formulae(formulae) -> None: ... @@ -30,7 +31,7 @@ class G_Function(Expr): @property def signature(self) -> tuple[int, int, int, int]: ... -_x = ... +_x: _Dummy class Formula: def __init__(self, func, z, res, symbols, B=..., C=..., M=...) -> None: ... diff --git a/stubs/sympy-stubs/simplify/powsimp.pyi b/stubs/sympy-stubs/simplify/powsimp.pyi index ae4142c4..b6feab5c 100644 --- a/stubs/sympy-stubs/simplify/powsimp.pyi +++ b/stubs/sympy-stubs/simplify/powsimp.pyi @@ -1,6 +1,7 @@ from sympy.core.basic import Basic +from sympy.core.symbol import Dummy as _Dummy def powsimp(expr, deep=..., combine=..., force=..., measure=...): ... def powdenest(eq, force=..., polar=...) -> bool | Basic: ... -_y = ... +_y: _Dummy diff --git a/stubs/sympy-stubs/solvers/__init__.pyi b/stubs/sympy-stubs/solvers/__init__.pyi index 71548427..0d99d426 100644 --- a/stubs/sympy-stubs/solvers/__init__.pyi +++ b/stubs/sympy-stubs/solvers/__init__.pyi @@ -1,8 +1,9 @@ from sympy.core.assumptions import check_assumptions, failing_assumptions from sympy.core.singleton import S +from sympy.sets.fancysets import Complexes as _Complexes from sympy.solvers.decompogen import decompogen from sympy.solvers.deutils import ode_order -from sympy.solvers.diophantine import diophantine +from sympy.solvers.diophantine.diophantine import diophantine from sympy.solvers.inequalities import ( reduce_abs_inequalities, reduce_abs_inequality, @@ -28,7 +29,7 @@ from sympy.solvers.solvers import ( ) from sympy.solvers.solveset import linear_eq_to_matrix, linsolve, nonlinsolve, solveset, substitution -Complexes = ... +Complexes: _Complexes __all__ = [ "solve", "solve_linear_system", diff --git a/stubs/sympy-stubs/stats/crv.pyi b/stubs/sympy-stubs/stats/crv.pyi index c696b491..503849f7 100644 --- a/stubs/sympy-stubs/stats/crv.pyi +++ b/stubs/sympy-stubs/stats/crv.pyi @@ -6,7 +6,7 @@ from sympy.core.cache import cacheit from sympy.core.function import Lambda from sympy.core.logic import And from sympy.core.relational import Relational -from sympy.sets.sets import Union +from sympy.sets.sets import Interval as _Interval, Union from sympy.stats.rv import ( ConditionalDomain, Distribution, @@ -41,7 +41,7 @@ class ContinuousDistribution(Distribution): def __call__(self, *args): ... class SingleContinuousDistribution(ContinuousDistribution, NamedArgsMixin): - set = ... + set: _Interval def __new__(cls, *args) -> Self: ... @staticmethod def check(*args) -> None: ... diff --git a/stubs/sympy-stubs/stats/crv_types.pyi b/stubs/sympy-stubs/stats/crv_types.pyi index 5e212ef5..1c674815 100644 --- a/stubs/sympy-stubs/stats/crv_types.pyi +++ b/stubs/sympy-stubs/stats/crv_types.pyi @@ -3,12 +3,14 @@ from typing_extensions import Self from sympy import Equality, FiniteSet, Integral, Interval, Ne, Piecewise, Sum from sympy.core.basic import Basic +from sympy.core.numbers import Infinity as _Infinity from sympy.core.relational import Relational +from sympy.sets.sets import Interval as _Interval from sympy.stats.crv import SingleContinuousDistribution from sympy.stats.joint_rv import JointRandomSymbol from sympy.stats.rv import RandomSymbol -oo = ... +oo: _Infinity __all__ = [ "ContinuousRV", "Arcsin", @@ -97,7 +99,7 @@ def Benini(name, alpha, beta, sigma) -> RandomSymbol: ... class BetaDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(alpha, beta) -> None: ... def pdf(self, x): ... @@ -106,7 +108,7 @@ def Beta(name, alpha, beta) -> RandomSymbol: ... class BetaNoncentralDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(alpha, beta, lamda) -> None: ... def pdf(self, x) -> Equality | Relational | Ne | Sum: ... @@ -118,7 +120,7 @@ class BetaPrimeDistribution(SingleContinuousDistribution): @staticmethod def check(alpha, beta) -> None: ... - set = ... + set: _Interval def pdf(self, x): ... def BetaPrime(name, alpha, beta) -> RandomSymbol: ... @@ -146,7 +148,7 @@ class ChiDistribution(SingleContinuousDistribution): @staticmethod def check(k) -> None: ... - set = ... + set: _Interval def pdf(self, x): ... def Chi(name, k) -> RandomSymbol: ... @@ -156,7 +158,7 @@ class ChiNoncentralDistribution(SingleContinuousDistribution): @staticmethod def check(k, l) -> None: ... - set = ... + set: _Interval def pdf(self, x): ... def ChiNoncentral(name, k, l) -> RandomSymbol: ... @@ -166,14 +168,14 @@ class ChiSquaredDistribution(SingleContinuousDistribution): @staticmethod def check(k) -> None: ... - set = ... + set: _Interval def pdf(self, x): ... def ChiSquared(name, k) -> RandomSymbol: ... class DagumDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(p, a, b) -> None: ... def pdf(self, x): ... @@ -183,7 +185,7 @@ def Erlang(name, k, l) -> RandomSymbol: ... class ExGaussianDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mean, std, rate) -> None: ... def pdf(self, x): ... @@ -192,7 +194,7 @@ def ExGaussian(name, mean, std, rate) -> RandomSymbol: ... class ExponentialDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(rate) -> None: ... def pdf(self, x): ... @@ -201,7 +203,7 @@ def Exponential(name, rate) -> RandomSymbol: ... class ExponentialPowerDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, alpha, beta) -> None: ... def pdf(self, x): ... @@ -210,7 +212,7 @@ def ExponentialPower(name, mu, alpha, beta) -> RandomSymbol: ... class FDistributionDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(d1, d2) -> None: ... def pdf(self, x): ... @@ -219,7 +221,7 @@ def FDistribution(name, d1, d2) -> RandomSymbol: ... class FisherZDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(d1, d2) -> None: ... def pdf(self, x): ... @@ -228,7 +230,7 @@ def FisherZ(name, d1, d2) -> RandomSymbol: ... class FrechetDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(a, s, m) -> None: ... def __new__(cls, a, s=..., m=...) -> Self: ... @@ -238,7 +240,7 @@ def Frechet(name, a, s=..., m=...) -> RandomSymbol: ... class GammaDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(k, theta) -> None: ... def pdf(self, x): ... @@ -247,7 +249,7 @@ def Gamma(name, k, theta) -> RandomSymbol: ... class GammaInverseDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(a, b) -> None: ... def pdf(self, x): ... @@ -256,7 +258,7 @@ def GammaInverse(name, a, b) -> RandomSymbol: ... class GumbelDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(beta, mu, minimum) -> None: ... def pdf(self, x) -> Piecewise: ... @@ -265,7 +267,7 @@ def Gumbel(name, beta, mu, minimum=...) -> RandomSymbol: ... class GompertzDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(b, eta) -> None: ... def pdf(self, x): ... @@ -274,7 +276,7 @@ def Gompertz(name, b, eta) -> RandomSymbol: ... class KumaraswamyDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(a, b) -> None: ... def pdf(self, x): ... @@ -283,7 +285,7 @@ def Kumaraswamy(name, a, b) -> RandomSymbol: ... class LaplaceDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, b) -> None: ... def pdf(self, x): ... @@ -302,7 +304,7 @@ def Levy(name, mu, c) -> RandomSymbol: ... class LogCauchyDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, sigma) -> None: ... def pdf(self, x): ... @@ -311,7 +313,7 @@ def LogCauchy(name, mu, sigma) -> RandomSymbol: ... class LogisticDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, s) -> None: ... def pdf(self, x): ... @@ -320,7 +322,7 @@ def Logistic(name, mu, s) -> RandomSymbol: ... class LogLogisticDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(alpha, beta) -> None: ... def pdf(self, x): ... @@ -330,7 +332,7 @@ def LogLogistic(name, alpha, beta) -> RandomSymbol: ... class LogitNormalDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, s) -> None: ... def pdf(self, x): ... @@ -339,7 +341,7 @@ def LogitNormal(name, mu, s) -> RandomSymbol: ... class LogNormalDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mean, std) -> None: ... def pdf(self, x): ... @@ -348,7 +350,7 @@ def LogNormal(name, mean, std) -> RandomSymbol: ... class LomaxDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(alpha, lamda) -> None: ... def pdf(self, x): ... @@ -357,7 +359,7 @@ def Lomax(name, alpha, lamda) -> RandomSymbol: ... class MaxwellDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(a) -> None: ... def pdf(self, x): ... @@ -374,7 +376,7 @@ def Moyal(name, mu, sigma) -> RandomSymbol: ... class NakagamiDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, omega) -> None: ... def pdf(self, x): ... @@ -443,7 +445,7 @@ def RaisedCosine(name, mu, s) -> RandomSymbol: ... class RayleighDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(sigma) -> None: ... def pdf(self, x): ... @@ -462,7 +464,7 @@ def Reciprocal(name, a, b) -> RandomSymbol: ... class ShiftedGompertzDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(b, eta) -> None: ... def pdf(self, x): ... @@ -471,7 +473,7 @@ def ShiftedGompertz(name, b, eta) -> RandomSymbol: ... class StudentTDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(nu) -> None: ... def pdf(self, x): ... @@ -521,7 +523,7 @@ def UniformSum(name, n) -> RandomSymbol: ... class VonMisesDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(mu, k) -> None: ... def pdf(self, x): ... @@ -530,7 +532,7 @@ def VonMises(name, mu, k) -> RandomSymbol: ... class WeibullDistribution(SingleContinuousDistribution): _argnames = ... - set = ... + set: _Interval @staticmethod def check(alpha, beta) -> None: ... def pdf(self, x): ... diff --git a/stubs/sympy-stubs/stats/drv.pyi b/stubs/sympy-stubs/stats/drv.pyi index aac95011..ab5b2792 100644 --- a/stubs/sympy-stubs/stats/drv.pyi +++ b/stubs/sympy-stubs/stats/drv.pyi @@ -6,6 +6,7 @@ from sympy.core.cache import cacheit from sympy.core.function import Lambda from sympy.core.logic import And from sympy.core.relational import Relational +from sympy.sets.fancysets import Integers as _Integers from sympy.sets.sets import Complement, Union from sympy.stats.rv import ( ConditionalDomain, @@ -24,7 +25,7 @@ class DiscreteDistribution(Distribution): def __call__(self, *args): ... class SingleDiscreteDistribution(DiscreteDistribution, NamedArgsMixin): - set = ... + set: _Integers def __new__(cls, *args) -> Self: ... @staticmethod def check(*args) -> None: ... diff --git a/stubs/sympy-stubs/stats/drv_types.pyi b/stubs/sympy-stubs/stats/drv_types.pyi index 770a7e14..95402e59 100644 --- a/stubs/sympy-stubs/stats/drv_types.pyi +++ b/stubs/sympy-stubs/stats/drv_types.pyi @@ -1,6 +1,7 @@ from typing_extensions import Self from sympy import Basic +from sympy.sets.fancysets import Integers as _Integers, Naturals as _Naturals, Naturals0 as _Naturals0 from sympy.stats.drv import SingleDiscreteDistribution from sympy.stats.rv import RandomSymbol @@ -20,7 +21,7 @@ def DiscreteRV(symbol, density, set=..., **kwargs) -> RandomSymbol: ... class FlorySchulzDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals @staticmethod def check(a) -> None: ... def pdf(self, k): ... @@ -29,7 +30,7 @@ def FlorySchulz(name, a) -> RandomSymbol: ... class GeometricDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals @staticmethod def check(p) -> None: ... def pdf(self, k): ... @@ -38,7 +39,7 @@ def Geometric(name, p) -> RandomSymbol: ... class HermiteDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals0 @staticmethod def check(a1, a2) -> None: ... def pdf(self, k): ... @@ -47,7 +48,7 @@ def Hermite(name, a1, a2) -> RandomSymbol: ... class LogarithmicDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals @staticmethod def check(p) -> None: ... def pdf(self, k): ... @@ -56,7 +57,7 @@ def Logarithmic(name, p) -> RandomSymbol: ... class NegativeBinomialDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals0 @staticmethod def check(r, p) -> None: ... def pdf(self, k): ... @@ -65,7 +66,7 @@ def NegativeBinomial(name, r, p) -> RandomSymbol: ... class PoissonDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals0 @staticmethod def check(lamda) -> None: ... def pdf(self, k): ... @@ -74,7 +75,7 @@ def Poisson(name, lamda) -> RandomSymbol: ... class SkellamDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Integers @staticmethod def check(mu1, mu2) -> None: ... def pdf(self, k): ... @@ -83,7 +84,7 @@ def Skellam(name, mu1, mu2) -> RandomSymbol: ... class YuleSimonDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals @staticmethod def check(rho) -> None: ... def pdf(self, k): ... @@ -92,7 +93,7 @@ def YuleSimon(name, rho) -> RandomSymbol: ... class ZetaDistribution(SingleDiscreteDistribution): _argnames = ... - set = ... + set: _Naturals @staticmethod def check(s) -> None: ... def pdf(self, k): ... diff --git a/stubs/sympy-stubs/stats/rv.pyi b/stubs/sympy-stubs/stats/rv.pyi index a15ef3b5..c4a572da 100644 --- a/stubs/sympy-stubs/stats/rv.pyi +++ b/stubs/sympy-stubs/stats/rv.pyi @@ -8,6 +8,7 @@ from sympy.core.expr import Expr from sympy.core.function import Lambda from sympy.core.logic import And from sympy.core.relational import Relational +from sympy.core.symbol import Symbol as _Symbol from sympy.matrices.expressions.matexpr import MatrixSymbol from sympy.series.order import Order from sympy.stats.compound_rv import CompoundPSpace @@ -21,7 +22,7 @@ from sympy.stats.symbolic_multivariate_probability import ExpectationMatrix from sympy.stats.symbolic_probability import Expectation, Probability from sympy.utilities.decorator import doctest_depends_on -x = ... +x: _Symbol def is_random(x: object) -> bool: ... diff --git a/stubs/sympy-stubs/stats/stochastic_process_types.pyi b/stubs/sympy-stubs/stats/stochastic_process_types.pyi index 5fd280f3..5ac82179 100644 --- a/stubs/sympy-stubs/stats/stochastic_process_types.pyi +++ b/stubs/sympy-stubs/stats/stochastic_process_types.pyi @@ -16,8 +16,8 @@ from sympy.logic.boolalg import Boolean from sympy.matrices.immutable import ImmutableMatrix from sympy.series.order import Order from sympy.sets.conditionset import ConditionSet -from sympy.sets.fancysets import Range -from sympy.sets.sets import FiniteSet +from sympy.sets.fancysets import Naturals0 as _Naturals0, Range, Reals as _Reals +from sympy.sets.sets import EmptySet as _EmptySet, FiniteSet, Interval as _Interval from sympy.stats.crv_types import GammaDistribution, NormalDistribution from sympy.stats.drv_types import PoissonDistribution from sympy.stats.frv_types import BernoulliDistribution @@ -28,7 +28,7 @@ from sympy.stats.symbolic_multivariate_probability import ExpectationMatrix from sympy.stats.symbolic_probability import Expectation, Probability from sympy.tensor.indexed import Indexed -EmptySet = ... +EmptySet: _EmptySet __all__ = [ "StochasticProcess", "DiscreteTimeStochasticProcess", @@ -44,7 +44,7 @@ __all__ = [ ] class StochasticProcess(Basic): - index_set = ... + index_set: _Reals def __new__(cls, sym, state_space=..., **kwargs) -> Self: ... @property def symbol(self) -> Basic: ... @@ -88,7 +88,7 @@ class MarkovProcess(StochasticProcess): def expectation(self, expr, condition=..., evaluate=..., **kwargs) -> ExpectationMatrix | Expectation | int: ... class DiscreteMarkovChain(DiscreteTimeStochasticProcess, MarkovProcess): - index_set = ... + index_set: _Naturals0 def __new__(cls, sym, state_space=..., trans_probs=...) -> Self: ... @property def transition_probabilities(self) -> Basic: ... @@ -109,7 +109,7 @@ class DiscreteMarkovChain(DiscreteTimeStochasticProcess, MarkovProcess): def sample(self) -> Generator[Basic, Any, None]: ... class ContinuousMarkovChain(ContinuousTimeStochasticProcess, MarkovProcess): - index_set = ... + index_set: _Reals def __new__(cls, sym, state_space=..., gen_mat=...) -> Self: ... @property def generator_matrix(self) -> Basic: ... @@ -118,7 +118,7 @@ class ContinuousMarkovChain(ContinuousTimeStochasticProcess, MarkovProcess): def limiting_distribution(self) -> Lambda | ImmutableMatrix | None: ... class BernoulliProcess(DiscreteTimeStochasticProcess): - index_set = ... + index_set: _Naturals0 def __new__(cls, sym, p, success=..., failure=...) -> Self: ... @property def symbol(self) -> Basic: ... @@ -145,7 +145,7 @@ class _SubstituteRV: ... def get_timerv_swaps(expr, condition) -> tuple[list[Any], dict[Any, Any]]: ... class CountingProcess(ContinuousTimeStochasticProcess): - index_set = ... + index_set: _Interval @property def symbol(self) -> Basic: ... def expectation( diff --git a/stubs/sympy-stubs/stubtest_allowlist.txt b/stubs/sympy-stubs/stubtest_allowlist.txt index 6e84c5f3..42b6e413 100644 --- a/stubs/sympy-stubs/stubtest_allowlist.txt +++ b/stubs/sympy-stubs/stubtest_allowlist.txt @@ -1,27 +1,24 @@ +# These modules have no stubs: mypy follows the runtime sources. Their conditional +# flint/gmpy/python definitions create synthetic "-redefinition" names that do not +# exist at runtime. Keep these exact entries limited to backend-selection artifacts. +sympy.external.gmpy.gcd-redefinition +sympy.external.gmpy.iroot-redefinition +sympy.external.gmpy.is_square-redefinition +sympy.external.gmpy.jacobi-redefinition +sympy.external.gmpy.lcm-redefinition +sympy.external.gmpy.sqrt-redefinition +sympy.external.gmpy.sqrtrem-redefinition +sympy.polys.domains.groundtypes.gcd-redefinition +sympy.polys.domains.groundtypes.gcdex-redefinition +sympy.polys.domains.groundtypes.lcm-redefinition +# The runtime-only iroot alias uses "x" for flint and "y" for the Python backend. +sympy.core.intfunc.iroot +sympy.external.gmpy.iroot +# mypy represents typing.Protocol as a special form, not its runtime metaclass. +sympy.polys.matrices._typing.Protocol + # TODO: Fix all these so stubs match implementation -sympy.Abs._singularities -sympy.Abs.args -sympy.Abs.is_extended_negative -sympy.Abs.is_extended_nonnegative -sympy.Abs.is_extended_real -sympy.Abs.unbranched -sympy.Add.__slots__ -sympy.Add._args_type -sympy.Add._eval_is_algebraic -sympy.Add._eval_is_antihermitian -sympy.Add._eval_is_commutative -sympy.Add._eval_is_complex -sympy.Add._eval_is_extended_real -sympy.Add._eval_is_finite -sympy.Add._eval_is_hermitian -sympy.Add._eval_is_integer -sympy.Add._eval_is_rational -sympy.Add._eval_is_real -sympy.Add.args -sympy.Add.is_Add sympy.Adjoint.is_Adjoint -sympy.Adjoint.is_commutative -sympy.AlgebraicField.dtype sympy.AlgebraicField.has_assoc_Field sympy.AlgebraicField.has_assoc_Ring sympy.AlgebraicField.is_Algebraic @@ -31,57 +28,13 @@ sympy.AlgebraicNumber.is_AlgebraicNumber sympy.AlgebraicNumber.is_algebraic sympy.AlgebraicNumber.is_number sympy.AlgebraicNumber.kind -sympy.And.is_commutative -sympy.AppliedPredicate.__slots__ sympy.Atom.__slots__ sympy.Atom.is_Atom sympy.AtomicExpr.__slots__ sympy.AtomicExpr.is_Atom sympy.AtomicExpr.is_number -sympy.Basic.__slots__ -sympy.Basic._constructor_postprocessor_mapping -sympy.Basic.is_Add -sympy.Basic.is_AlgebraicNumber -sympy.Basic.is_Atom -sympy.Basic.is_Boolean -sympy.Basic.is_Derivative -sympy.Basic.is_Dummy -sympy.Basic.is_Equality -sympy.Basic.is_Float -sympy.Basic.is_Function -sympy.Basic.is_Indexed -sympy.Basic.is_Integer -sympy.Basic.is_MatAdd -sympy.Basic.is_MatMul -sympy.Basic.is_Matrix -sympy.Basic.is_Mul -sympy.Basic.is_Not -sympy.Basic.is_Number -sympy.Basic.is_NumberSymbol -sympy.Basic.is_Order -sympy.Basic.is_Piecewise -sympy.Basic.is_Point -sympy.Basic.is_Poly -sympy.Basic.is_Pow -sympy.Basic.is_Rational -sympy.Basic.is_Relational -sympy.Basic.is_Symbol -sympy.Basic.is_Vector -sympy.Basic.is_Wild -sympy.Basic.is_commutative -sympy.Basic.is_extended_real -sympy.Basic.is_negative -sympy.Basic.is_number -sympy.Basic.is_real -sympy.Basic.is_symbol -sympy.Basic.is_zero -sympy.Basic.subs -sympy.BlockDiagMatrix.is_commutative -sympy.BlockMatrix.is_commutative sympy.CC sympy.CRootOf -sympy.Chi._trigfunc -sympy.Ci._trigfunc sympy.Complement.is_Complement sympy.ComplexField._default_precision sympy.ComplexField.dtype @@ -101,17 +54,13 @@ sympy.ConditionSet.condition sympy.ConditionSet.sym sympy.Contains sympy.Contains.eval -sympy.CosineTransform._kern sympy.CosineTransform._name sympy.Derivative.is_Derivative sympy.Determinant.doit sympy.Determinant.is_commutative -sympy.DiagMatrix.is_commutative sympy.DiagonalMatrix.arg -sympy.DiagonalMatrix.is_commutative sympy.DiagonalMatrix.shape sympy.DiagonalOf.arg -sympy.DiagonalOf.is_commutative sympy.DiracDelta.is_real sympy.Domain.has_CharacteristicZero sympy.Domain.has_assoc_Field @@ -137,24 +86,12 @@ sympy.Domain.is_Simple sympy.Domain.is_ZZ sympy.Domain.is_ZZ_I sympy.Domain.n -sympy.Dummy.__slots__ -sympy.Dummy._base_dummy_index -sympy.Dummy._count -sympy.Dummy._prng -sympy.Dummy.is_Dummy sympy.EPath.__slots__ sympy.EX sympy.EXRAW sympy.Ei._eval_rewrite_as_Chi sympy.Ei._eval_rewrite_as_Ci sympy.Ei._eval_rewrite_as_Shi -sympy.Equality.__slots__ -sympy.Equality.is_Equality -sympy.Equality.rel_op -sympy.Expr.__round__ -sympy.Expr._op_priority -sympy.Expr.compute_leading_term -sympy.Expr.is_scalar sympy.ExpressionDomain.Expression.__slots__ sympy.ExpressionDomain.dtype sympy.ExpressionDomain.has_assoc_Field @@ -163,45 +100,16 @@ sympy.ExpressionDomain.is_EX sympy.ExpressionDomain.rep sympy.FF sympy.FU -sympy.FiniteField.alias -sympy.FiniteField.dom -sympy.FiniteField.has_assoc_Field -sympy.FiniteField.has_assoc_Ring -sympy.FiniteField.is_FF -sympy.FiniteField.is_Field -sympy.FiniteField.is_Numerical -sympy.FiniteField.mod -sympy.FiniteField.rep -sympy.FiniteSet.is_FiniteSet -sympy.FiniteSet.is_empty -sympy.FiniteSet.is_finite_set -sympy.FiniteSet.is_iterable -sympy.Float.__slots__ -sympy.Float.is_Float -sympy.Float.is_commutative -sympy.Float.is_extended_real -sympy.Float.is_irrational -sympy.Float.is_number -sympy.Float.is_rational -sympy.Float.is_real sympy.FourierTransform._name sympy.FractionField.has_assoc_Field sympy.FractionField.has_assoc_Ring sympy.FractionField.is_Frac sympy.FunctionClass._new -sympy.FunctionMatrix.is_commutative sympy.GF -sympy.GMPYIntegerRing.alias sympy.GMPYRationalField.alias -sympy.GreaterThan.__slots__ -sympy.GreaterThan.rel_op -sympy.HadamardPower.is_commutative -sympy.HadamardProduct.is_HadamardProduct -sympy.HadamardProduct.is_commutative sympy.HankelTransform._name sympy.Heaviside.is_real sympy.Identity.is_Identity -sympy.Identity.is_commutative sympy.Idx._diff_wrt sympy.Idx.is_Atom sympy.Idx.is_finite @@ -213,10 +121,8 @@ sympy.ImageSet.lamda sympy.ImmutableDenseMatrix._class_priority sympy.ImmutableDenseMatrix._iterable sympy.ImmutableDenseMatrix._op_priority -sympy.ImmutableDenseMatrix.is_commutative sympy.ImmutableSparseMatrix._class_priority sympy.ImmutableSparseMatrix.is_Matrix -sympy.ImmutableSparseMatrix.is_commutative sympy.Indexed.is_Atom sympy.Indexed.is_Indexed sympy.Indexed.is_commutative @@ -224,15 +130,6 @@ sympy.Indexed.is_symbol sympy.IndexedBase.is_Atom sympy.IndexedBase.is_commutative sympy.IndexedBase.is_symbol -sympy.Integer.__slots__ -sympy.Integer.is_Integer -sympy.Integer.is_commutative -sympy.Integer.is_integer -sympy.Integer.is_number -sympy.Integer.is_rational -sympy.Integer.is_real -sympy.Integer.is_zero -sympy.Integer.q sympy.IntegerRing.alias sympy.IntegerRing.has_assoc_Field sympy.IntegerRing.has_assoc_Ring @@ -245,69 +142,30 @@ sympy.Integral.args sympy.Intersection.__new__ sympy.Intersection.is_Intersection sympy.Intersection.is_commutative -sympy.Interval.is_Interval sympy.Inverse.is_Inverse -sympy.Inverse.is_commutative -sympy.InverseCosineTransform._kern sympy.InverseCosineTransform._name sympy.InverseFourierTransform._name sympy.InverseHankelTransform._name sympy.InverseMellinTransform._name -sympy.InverseSineTransform._kern sympy.InverseSineTransform._name sympy.KroneckerDelta.is_integer -sympy.KroneckerProduct.is_KroneckerProduct -sympy.KroneckerProduct.is_commutative -sympy.Lambda.bound_symbols -sympy.Lambda.is_Function sympy.LambertW._singularities -sympy.LessThan.__slots__ -sympy.LessThan.rel_op sympy.LeviCivita.is_integer -sympy.MatAdd.is_MatAdd -sympy.MatAdd.is_commutative -sympy.MatMul.is_MatMul -sympy.MatMul.is_commutative -sympy.MatPow.is_commutative -sympy.MatrixExpr.__array__ -sympy.MatrixExpr._iterable -sympy.MatrixExpr._op_priority -sympy.MatrixExpr.is_Inverse -sympy.MatrixExpr.is_MatAdd -sympy.MatrixExpr.is_MatMul -sympy.MatrixExpr.is_Transpose -sympy.MatrixExpr.is_ZeroMatrix -sympy.MatrixExpr.is_commutative -sympy.MatrixExpr.is_number -sympy.MatrixExpr.is_scalar -sympy.MatrixExpr.is_symbol -sympy.MatrixPermute.is_commutative sympy.MatrixSlice.colslice -sympy.MatrixSlice.is_commutative sympy.MatrixSlice.parent sympy.MatrixSlice.rowslice sympy.MatrixSymbol._diff_wrt sympy.MatrixSymbol.is_commutative sympy.MatrixSymbol.is_symbol -sympy.Max.is_commutative sympy.MellinTransform._name -sympy.Min.is_commutative sympy.Mod.kind sympy.Monomial.__floordiv__ sympy.Monomial.__slots__ -sympy.Mul.__slots__ -sympy.Mul._args_type -sympy.Mul._eval_is_commutative -sympy.Mul._kind_dispatcher -sympy.Mul.args -sympy.Mul.is_Mul sympy.NDimArray._diff_wrt sympy.NDimArray.is_scalar -sympy.Not.is_Not sympy.Number.__slots__ sympy.Number._prec sympy.Number.is_Number -sympy.Number.is_commutative sympy.Number.is_number sympy.Number.kind sympy.NumberSymbol.__slots__ @@ -316,36 +174,11 @@ sympy.NumberSymbol.is_commutative sympy.NumberSymbol.is_finite sympy.NumberSymbol.is_number sympy.NumberSymbol.kind -sympy.OneMatrix.is_commutative sympy.Options.__order__ -sympy.Or.is_commutative sympy.Order.__slots__ sympy.Order.is_Order sympy.Ordinal.__repr__ sympy.PermutationMatrix._eval_adjoint -sympy.PermutationMatrix.is_commutative -sympy.Piecewise._eval_is_complex -sympy.Piecewise._eval_is_even -sympy.Piecewise._eval_is_extended_negative -sympy.Piecewise._eval_is_extended_nonnegative -sympy.Piecewise._eval_is_extended_nonpositive -sympy.Piecewise._eval_is_extended_nonzero -sympy.Piecewise._eval_is_extended_positive -sympy.Piecewise._eval_is_extended_real -sympy.Piecewise._eval_is_finite -sympy.Piecewise._eval_is_imaginary -sympy.Piecewise._eval_is_integer -sympy.Piecewise._eval_is_irrational -sympy.Piecewise._eval_is_negative -sympy.Piecewise._eval_is_nonnegative -sympy.Piecewise._eval_is_nonpositive -sympy.Piecewise._eval_is_nonzero -sympy.Piecewise._eval_is_odd -sympy.Piecewise._eval_is_polar -sympy.Piecewise._eval_is_positive -sympy.Piecewise._eval_is_real -sympy.Piecewise._eval_is_zero -sympy.Piecewise.is_Piecewise sympy.Point.is_Point sympy.Point2D._ambient_dimension sympy.Point3D._ambient_dimension @@ -360,19 +193,12 @@ sympy.Polygon.bisectors sympy.PolynomialRing.has_assoc_Field sympy.PolynomialRing.has_assoc_Ring sympy.PolynomialRing.is_Poly -sympy.Pow.__slots__ -sympy.Pow.args -sympy.Pow.is_Pow sympy.Predicate.is_Atom sympy.Product.__slots__ sympy.Product.function sympy.Product.limits sympy.Product.reverse_order -sympy.ProductSet.is_ProductSet sympy.PurePoly.is_commutative -sympy.PythonIntegerRing.alias -sympy.PythonRational -sympy.Q sympy.QQ sympy.QQ_I sympy.Quaternion._op_priority @@ -381,15 +207,6 @@ sympy.RR sympy.Range.start sympy.Range.step sympy.Range.stop -sympy.Rational.__radd__ -sympy.Rational.__rmul__ -sympy.Rational.__slots__ -sympy.Rational.is_Rational -sympy.Rational.is_commutative -sympy.Rational.is_integer -sympy.Rational.is_number -sympy.Rational.is_rational -sympy.Rational.is_real sympy.RationalField.alias sympy.RationalField.has_assoc_Field sympy.RationalField.has_assoc_Ring @@ -412,24 +229,11 @@ sympy.RegularPolygon.centroid sympy.Rem.kind sympy.RootOf.__slots__ sympy.RootSum.__slots__ -sympy.S sympy.SeqAdd.is_commutative sympy.SeqFormula.is_commutative sympy.SeqMul.is_commutative sympy.SeqPer.is_commutative -sympy.Set.__slots__ -sympy.Set.is_ComplexRegion -sympy.Set.is_FiniteSet -sympy.Set.is_Interval -sympy.Set.is_ProductSet -sympy.Set.is_Union -sympy.Set.is_interval -sympy.Set.is_iterable -sympy.Set.is_number -sympy.Shi._trigfunc -sympy.Si._trigfunc sympy.Sieve.__init__ -sympy.SineTransform._kern sympy.SineTransform._name sympy.SingularityFunction._eval_rewrite_as_DiracDelta sympy.SingularityFunction._eval_rewrite_as_HeavisideDiracDelta @@ -437,28 +241,12 @@ sympy.SingularityFunction.is_real sympy.StrPrinter._print_MatrixSymbol sympy.StrPrinter._print_RandomSymbol sympy.StrPrinter.printmethod -sympy.StrictGreaterThan.__slots__ -sympy.StrictGreaterThan.rel_op -sympy.StrictLessThan.__slots__ -sympy.StrictLessThan.rel_op sympy.Subs.bound_symbols sympy.Subs.n sympy.Sum.__slots__ sympy.Sum.limits -sympy.Symbol.__slots__ -sympy.Symbol.binary_symbols -sympy.Symbol.is_Symbol -sympy.Symbol.is_comparable -sympy.Symbol.is_symbol sympy.SymmetricDifference.is_SymmetricDifference -sympy.Trace.is_Trace -sympy.Trace.is_commutative -sympy.Transpose.is_Transpose -sympy.Transpose.is_commutative sympy.Triangle.is_similar -sympy.Tuple.__rmul__ -sympy.Unequality.__slots__ -sympy.Unequality.rel_op sympy.Union.is_Union sympy.Union.is_commutative sympy.Wild.__slots__ @@ -467,8 +255,6 @@ sympy.WildFunction.__init__ sympy.ZZ sympy.ZZ_I sympy.ZeroMatrix.is_ZeroMatrix -sympy.ZeroMatrix.is_commutative -sympy.acos._eval_rewrite_as_tractable sympy.acosh._eval_rewrite_as_tractable sympy.acot._eval_rewrite_as_tractable sympy.acot._singularities @@ -489,13 +275,8 @@ sympy.arg.is_finite sympy.arg.is_real sympy.asec._eval_rewrite_as_tractable sympy.asech._eval_rewrite_as_tractable -sympy.asin._eval_rewrite_as_tractable sympy.asinh._eval_rewrite_as_tractable -sympy.assumptions.AppliedPredicate.__slots__ sympy.assumptions.Predicate.is_Atom -sympy.assumptions.Q -sympy.assumptions.ask.Q -sympy.assumptions.assume.AppliedPredicate.__slots__ sympy.assumptions.assume.Predicate.is_Atom sympy.assumptions.assume.UndefinedPredicate.handler sympy.assumptions.assume.global_assumptions @@ -574,26 +355,6 @@ sympy.assumptions.predicates.sets.RealPredicate.handler sympy.assumptions.predicates.sets.RealPredicate.name sympy.assumptions.predicates.sets.TranscendentalPredicate.handler sympy.assumptions.predicates.sets.TranscendentalPredicate.name -sympy.assumptions.relation.equality.EqualityPredicate.handler -sympy.assumptions.relation.equality.EqualityPredicate.is_reflexive -sympy.assumptions.relation.equality.EqualityPredicate.is_symmetric -sympy.assumptions.relation.equality.EqualityPredicate.name -sympy.assumptions.relation.equality.GreaterThanPredicate.handler -sympy.assumptions.relation.equality.GreaterThanPredicate.is_reflexive -sympy.assumptions.relation.equality.GreaterThanPredicate.is_symmetric -sympy.assumptions.relation.equality.GreaterThanPredicate.name -sympy.assumptions.relation.equality.LessThanPredicate.handler -sympy.assumptions.relation.equality.LessThanPredicate.is_reflexive -sympy.assumptions.relation.equality.LessThanPredicate.is_symmetric -sympy.assumptions.relation.equality.LessThanPredicate.name -sympy.assumptions.relation.equality.StrictGreaterThanPredicate.handler -sympy.assumptions.relation.equality.StrictGreaterThanPredicate.is_reflexive -sympy.assumptions.relation.equality.StrictGreaterThanPredicate.is_symmetric -sympy.assumptions.relation.equality.StrictGreaterThanPredicate.name -sympy.assumptions.relation.equality.StrictLessThanPredicate.handler -sympy.assumptions.relation.equality.StrictLessThanPredicate.is_reflexive -sympy.assumptions.relation.equality.StrictLessThanPredicate.is_symmetric -sympy.assumptions.relation.equality.StrictLessThanPredicate.name sympy.assumptions.relation.equality.UnequalityPredicate.handler sympy.assumptions.relation.equality.UnequalityPredicate.is_reflexive sympy.assumptions.relation.equality.UnequalityPredicate.is_symmetric @@ -630,9 +391,6 @@ sympy.assumptions.wrapper.AssumptionsWrapper._eval_is_rational sympy.assumptions.wrapper.AssumptionsWrapper._eval_is_real sympy.assumptions.wrapper.AssumptionsWrapper._eval_is_transcendental sympy.assumptions.wrapper.AssumptionsWrapper._eval_is_zero -sympy.atan._eval_rewrite_as_tractable -sympy.atan._singularities -sympy.atan.args sympy.atanh._eval_rewrite_as_tractable sympy.bernoulli._cache sympy.bernoulli._highest @@ -650,25 +408,18 @@ sympy.categories.diagram_drawing.__doctest_requires__ sympy.chebyshevt._ortho_poly sympy.chebyshevu._ortho_poly sympy.codegen.Assignment.op -sympy.codegen.Attribute._construct_name sympy.codegen.Attribute._construct_parameters sympy.codegen.Attribute._fields sympy.codegen.Attribute.defaults sympy.codegen.CodeBlock._sympystr -sympy.codegen.Declaration._construct_variable sympy.codegen.Declaration._fields sympy.codegen.For._construct_target sympy.codegen.For._fields sympy.codegen.FunctionCall._construct_function_args -sympy.codegen.FunctionCall._construct_name sympy.codegen.FunctionCall._fields sympy.codegen.FunctionDefinition.__slots__ sympy.codegen.FunctionDefinition._fields sympy.codegen.FunctionPrototype.__slots__ -sympy.codegen.FunctionPrototype._construct_name -sympy.codegen.FunctionPrototype._construct_return_type -sympy.codegen.Print._construct_file -sympy.codegen.Print._construct_format_string sympy.codegen.Print._construct_print_args sympy.codegen.Print._fields sympy.codegen.Print.defaults @@ -686,7 +437,6 @@ sympy.codegen.While._construct_condition sympy.codegen.While._fields sympy.codegen.ast.AddAugmentedAssignment.binop sympy.codegen.ast.Assignment.op -sympy.codegen.ast.Attribute._construct_name sympy.codegen.ast.Attribute._construct_parameters sympy.codegen.ast.Attribute._fields sympy.codegen.ast.Attribute.defaults @@ -694,7 +444,6 @@ sympy.codegen.ast.CodeBlock._sympystr sympy.codegen.ast.CodegenAST.__slots__ sympy.codegen.ast.ComplexBaseType.__slots__ sympy.codegen.ast.ComplexType.__slots__ -sympy.codegen.ast.Declaration._construct_variable sympy.codegen.ast.Declaration._fields sympy.codegen.ast.DivAugmentedAssignment.binop sympy.codegen.ast.Element._construct_indices @@ -704,22 +453,15 @@ sympy.codegen.ast.Element._construct_symbol sympy.codegen.ast.Element._fields sympy.codegen.ast.Element.defaults sympy.codegen.ast.FloatBaseType.__slots__ -sympy.codegen.ast.FloatBaseType.cast_nocheck sympy.codegen.ast.FloatType.__slots__ -sympy.codegen.ast.FloatType._construct_nbits -sympy.codegen.ast.FloatType._construct_nexp -sympy.codegen.ast.FloatType._construct_nmant sympy.codegen.ast.FloatType._fields sympy.codegen.ast.For._construct_target sympy.codegen.ast.For._fields sympy.codegen.ast.FunctionCall._construct_function_args -sympy.codegen.ast.FunctionCall._construct_name sympy.codegen.ast.FunctionCall._fields sympy.codegen.ast.FunctionDefinition.__slots__ sympy.codegen.ast.FunctionDefinition._fields sympy.codegen.ast.FunctionPrototype.__slots__ -sympy.codegen.ast.FunctionPrototype._construct_name -sympy.codegen.ast.FunctionPrototype._construct_return_type sympy.codegen.ast.IntBaseType.__slots__ sympy.codegen.ast.IntBaseType.cast_nocheck sympy.codegen.ast.ModAugmentedAssignment.binop @@ -727,8 +469,6 @@ sympy.codegen.ast.MulAugmentedAssignment.binop sympy.codegen.ast.Node._construct_attrs sympy.codegen.ast.Node._fields sympy.codegen.ast.Pointer.__slots__ -sympy.codegen.ast.Print._construct_file -sympy.codegen.ast.Print._construct_format_string sympy.codegen.ast.Print._construct_print_args sympy.codegen.ast.Print._fields sympy.codegen.ast.Print.defaults @@ -736,7 +476,6 @@ sympy.codegen.ast.Return._construct_return sympy.codegen.ast.Return._fields sympy.codegen.ast.Scope._fields sympy.codegen.ast.SignedIntType.__slots__ -sympy.codegen.ast.Stream._construct_name sympy.codegen.ast.Stream._fields sympy.codegen.ast.String._fields sympy.codegen.ast.String.is_Atom @@ -745,7 +484,6 @@ sympy.codegen.ast.SubAugmentedAssignment.binop sympy.codegen.ast.Token._fields sympy.codegen.ast.Token._sympystr sympy.codegen.ast.Token.indented_args -sympy.codegen.ast.Type._construct_name sympy.codegen.ast.Type._fields sympy.codegen.ast.UnsignedIntType.__slots__ sympy.codegen.ast.Variable.__ge__ @@ -760,7 +498,6 @@ sympy.codegen.ast.Variable.defaults sympy.codegen.ast.While._construct_condition sympy.codegen.ast.While._fields sympy.codegen.ast._SizedIntType.__slots__ -sympy.codegen.ast._SizedIntType._construct_nbits sympy.codegen.ast._SizedIntType._fields sympy.codegen.ast.augassign_classes sympy.codegen.cfunctions.Cbrt._eval_rewrite_as_tractable @@ -771,16 +508,13 @@ sympy.codegen.cfunctions.hypot._eval_rewrite_as_tractable sympy.codegen.cfunctions.log10._eval_rewrite_as_tractable sympy.codegen.cfunctions.log1p._eval_rewrite_as_tractable sympy.codegen.cfunctions.log2._eval_rewrite_as_tractable -sympy.codegen.cnodes.Label._construct_name sympy.codegen.cnodes.Label._fields sympy.codegen.cnodes.Label.defaults sympy.codegen.cnodes.PostDecrement.nargs sympy.codegen.cnodes.PostIncrement.nargs sympy.codegen.cnodes.PreDecrement.nargs sympy.codegen.cnodes.PreIncrement.nargs -sympy.codegen.cnodes.goto._construct_label sympy.codegen.cnodes.goto._fields -sympy.codegen.cnodes.struct._construct_name sympy.codegen.cnodes.struct._fields sympy.codegen.cnodes.struct.defaults sympy.codegen.cnodes.union.__slots__ @@ -811,38 +545,20 @@ sympy.codegen.fnodes.ImpliedDoLoop._construct_step sympy.codegen.fnodes.ImpliedDoLoop._fields sympy.codegen.fnodes.ImpliedDoLoop.defaults sympy.codegen.fnodes.Module._construct_definitions -sympy.codegen.fnodes.Module._construct_name sympy.codegen.fnodes.Module._fields sympy.codegen.fnodes.Module.defaults sympy.codegen.fnodes.Program._construct_body -sympy.codegen.fnodes.Program._construct_name sympy.codegen.fnodes.Program._fields sympy.codegen.fnodes.Subroutine.__slots__ -sympy.codegen.fnodes.Subroutine._construct_name sympy.codegen.fnodes.Subroutine._construct_parameters sympy.codegen.fnodes.Subroutine._fields sympy.codegen.fnodes.SubroutineCall._construct_name sympy.codegen.fnodes.SubroutineCall._construct_subroutine_args sympy.codegen.fnodes.SubroutineCall._fields -sympy.codegen.fnodes._literal.is_commutative -sympy.codegen.fnodes._literal.is_extended_real -sympy.codegen.fnodes._literal.is_irrational -sympy.codegen.fnodes._literal.is_rational -sympy.codegen.fnodes._literal.is_real sympy.codegen.fnodes.literal_dp._decimals sympy.codegen.fnodes.literal_dp._token -sympy.codegen.fnodes.literal_dp.is_commutative -sympy.codegen.fnodes.literal_dp.is_extended_real -sympy.codegen.fnodes.literal_dp.is_irrational -sympy.codegen.fnodes.literal_dp.is_rational -sympy.codegen.fnodes.literal_dp.is_real sympy.codegen.fnodes.literal_sp._decimals sympy.codegen.fnodes.literal_sp._token -sympy.codegen.fnodes.literal_sp.is_commutative -sympy.codegen.fnodes.literal_sp.is_extended_real -sympy.codegen.fnodes.literal_sp.is_irrational -sympy.codegen.fnodes.literal_sp.is_rational -sympy.codegen.fnodes.literal_sp.is_real sympy.codegen.fnodes.product_._construct_array sympy.codegen.fnodes.product_._construct_dim sympy.codegen.fnodes.product_._fields @@ -856,8 +572,6 @@ sympy.codegen.fnodes.use._construct_only sympy.codegen.fnodes.use._construct_rename sympy.codegen.fnodes.use._fields sympy.codegen.fnodes.use.defaults -sympy.codegen.fnodes.use_rename._construct_local -sympy.codegen.fnodes.use_rename._construct_original sympy.codegen.fnodes.use_rename._fields sympy.codegen.pynodes.NumExprEvaluate._fields sympy.combinatorics.coset_table.CosetTable.__repr__ @@ -877,75 +591,17 @@ sympy.combinatorics.free_groups.FreeGroup.is_group sympy.combinatorics.free_groups.FreeGroupElement.__repr__ sympy.combinatorics.free_groups.FreeGroupElement._hash sympy.combinatorics.free_groups.FreeGroupElement.is_assoc_word -sympy.combinatorics.galois.S1TransitiveSubgroups.S1 -sympy.combinatorics.galois.S2TransitiveSubgroups.S2 -sympy.combinatorics.galois.S3TransitiveSubgroups.A3 -sympy.combinatorics.galois.S3TransitiveSubgroups.S3 -sympy.combinatorics.galois.S4TransitiveSubgroups.A4 -sympy.combinatorics.galois.S4TransitiveSubgroups.C4 -sympy.combinatorics.galois.S4TransitiveSubgroups.D4 -sympy.combinatorics.galois.S4TransitiveSubgroups.S4 -sympy.combinatorics.galois.S4TransitiveSubgroups.V -sympy.combinatorics.galois.S5TransitiveSubgroups.A5 -sympy.combinatorics.galois.S5TransitiveSubgroups.C5 -sympy.combinatorics.galois.S5TransitiveSubgroups.D5 -sympy.combinatorics.galois.S5TransitiveSubgroups.M20 -sympy.combinatorics.galois.S5TransitiveSubgroups.S5 -sympy.combinatorics.galois.S6TransitiveSubgroups.A4 -sympy.combinatorics.galois.S6TransitiveSubgroups.A4xC2 -sympy.combinatorics.galois.S6TransitiveSubgroups.A6 -sympy.combinatorics.galois.S6TransitiveSubgroups.C6 -sympy.combinatorics.galois.S6TransitiveSubgroups.D6 -sympy.combinatorics.galois.S6TransitiveSubgroups.G18 -sympy.combinatorics.galois.S6TransitiveSubgroups.G36m -sympy.combinatorics.galois.S6TransitiveSubgroups.G36p -sympy.combinatorics.galois.S6TransitiveSubgroups.G72 -sympy.combinatorics.galois.S6TransitiveSubgroups.PGL2F5 -sympy.combinatorics.galois.S6TransitiveSubgroups.PSL2F5 -sympy.combinatorics.galois.S6TransitiveSubgroups.S3 -sympy.combinatorics.galois.S6TransitiveSubgroups.S4m -sympy.combinatorics.galois.S6TransitiveSubgroups.S4p -sympy.combinatorics.galois.S6TransitiveSubgroups.S4xC2 -sympy.combinatorics.galois.S6TransitiveSubgroups.S6 -sympy.combinatorics.graycode.GrayCode._current -sympy.combinatorics.graycode.GrayCode._rank -sympy.combinatorics.graycode.GrayCode._skip sympy.combinatorics.group_constructs._af_new sympy.combinatorics.named_groups._af_new -sympy.combinatorics.partitions.IntegerPartition._dict -sympy.combinatorics.partitions.IntegerPartition._keys -sympy.combinatorics.partitions.Partition._partition -sympy.combinatorics.partitions.Partition._rank -sympy.combinatorics.pc_groups.PolycyclicGroup.is_group -sympy.combinatorics.pc_groups.PolycyclicGroup.is_solvable -sympy.combinatorics.perm_groups.PermutationGroup.is_group sympy.combinatorics.perm_groups._af_new sympy.combinatorics.perm_groups.rmul -sympy.combinatorics.permutations.Permutation._array_form -sympy.combinatorics.permutations.Permutation._cycle_structure -sympy.combinatorics.permutations.Permutation._cyclic_form -sympy.combinatorics.permutations.Permutation._rank -sympy.combinatorics.permutations.Permutation._size -sympy.combinatorics.permutations.Permutation.is_Permutation -sympy.combinatorics.permutations.Permutation.print_cyclic sympy.combinatorics.permutations._af_new -sympy.combinatorics.polyhedron.Polyhedron._edges -sympy.combinatorics.polyhedron.Polyhedron.vertices sympy.combinatorics.polyhedron.cube_faces sympy.combinatorics.polyhedron.dodecahedron_faces sympy.combinatorics.polyhedron.icosahedron_faces sympy.combinatorics.polyhedron.octahedron_faces sympy.combinatorics.polyhedron.rmul sympy.combinatorics.polyhedron.tetrahedron_faces -sympy.combinatorics.prufer.Prufer._nodes -sympy.combinatorics.prufer.Prufer._prufer_repr -sympy.combinatorics.prufer.Prufer._rank -sympy.combinatorics.prufer.Prufer._tree_repr -sympy.combinatorics.subsets.Subset._rank_binary -sympy.combinatorics.subsets.Subset._rank_graycode -sympy.combinatorics.subsets.Subset._rank_lex -sympy.combinatorics.subsets.Subset._subset -sympy.combinatorics.subsets.Subset._superset sympy.combinatorics.tensor_can.riemann_bsgs sympy.combinatorics.testutil.rmul sympy.concrete.Product.__slots__ @@ -968,20 +624,6 @@ sympy.concrete.summations.Sum.__slots__ sympy.concrete.summations.Sum.limits sympy.conftest sympy.conjugate._singularities -sympy.core.Add.__slots__ -sympy.core.Add._args_type -sympy.core.Add._eval_is_algebraic -sympy.core.Add._eval_is_antihermitian -sympy.core.Add._eval_is_commutative -sympy.core.Add._eval_is_complex -sympy.core.Add._eval_is_extended_real -sympy.core.Add._eval_is_finite -sympy.core.Add._eval_is_hermitian -sympy.core.Add._eval_is_integer -sympy.core.Add._eval_is_rational -sympy.core.Add._eval_is_real -sympy.core.Add.args -sympy.core.Add.is_Add sympy.core.AlgebraicNumber.__slots__ sympy.core.AlgebraicNumber.is_AlgebraicNumber sympy.core.AlgebraicNumber.is_algebraic @@ -992,190 +634,30 @@ sympy.core.Atom.is_Atom sympy.core.AtomicExpr.__slots__ sympy.core.AtomicExpr.is_Atom sympy.core.AtomicExpr.is_number -sympy.core.Basic.__slots__ -sympy.core.Basic._constructor_postprocessor_mapping -sympy.core.Basic.is_Add -sympy.core.Basic.is_AlgebraicNumber -sympy.core.Basic.is_Atom -sympy.core.Basic.is_Boolean -sympy.core.Basic.is_Derivative -sympy.core.Basic.is_Dummy -sympy.core.Basic.is_Equality -sympy.core.Basic.is_Float -sympy.core.Basic.is_Function -sympy.core.Basic.is_Indexed -sympy.core.Basic.is_Integer -sympy.core.Basic.is_MatAdd -sympy.core.Basic.is_MatMul -sympy.core.Basic.is_Matrix -sympy.core.Basic.is_Mul -sympy.core.Basic.is_Not -sympy.core.Basic.is_Number -sympy.core.Basic.is_NumberSymbol -sympy.core.Basic.is_Order -sympy.core.Basic.is_Piecewise -sympy.core.Basic.is_Point -sympy.core.Basic.is_Poly -sympy.core.Basic.is_Pow -sympy.core.Basic.is_Rational -sympy.core.Basic.is_Relational -sympy.core.Basic.is_Symbol -sympy.core.Basic.is_Vector -sympy.core.Basic.is_Wild -sympy.core.Basic.is_commutative -sympy.core.Basic.is_extended_real -sympy.core.Basic.is_negative -sympy.core.Basic.is_number -sympy.core.Basic.is_real -sympy.core.Basic.is_symbol -sympy.core.Basic.is_zero -sympy.core.Basic.subs -sympy.core.BooleanKind sympy.core.Derivative.is_Derivative -sympy.core.Dummy.__slots__ -sympy.core.Dummy._base_dummy_index -sympy.core.Dummy._count -sympy.core.Dummy._prng -sympy.core.Dummy.is_Dummy -sympy.core.Equality.__slots__ -sympy.core.Equality.is_Equality -sympy.core.Equality.rel_op -sympy.core.Expr.__round__ -sympy.core.Expr._op_priority -sympy.core.Expr.compute_leading_term -sympy.core.Expr.is_scalar -sympy.core.Float.__slots__ -sympy.core.Float.is_Float -sympy.core.Float.is_commutative -sympy.core.Float.is_extended_real -sympy.core.Float.is_irrational -sympy.core.Float.is_number -sympy.core.Float.is_rational -sympy.core.Float.is_real sympy.core.FunctionClass._new -sympy.core.GreaterThan.__slots__ -sympy.core.GreaterThan.rel_op -sympy.core.Integer.__slots__ -sympy.core.Integer.is_Integer -sympy.core.Integer.is_commutative -sympy.core.Integer.is_integer -sympy.core.Integer.is_number -sympy.core.Integer.is_rational -sympy.core.Integer.is_real -sympy.core.Integer.is_zero -sympy.core.Integer.q -sympy.core.Lambda.bound_symbols -sympy.core.Lambda.is_Function -sympy.core.LessThan.__slots__ -sympy.core.LessThan.rel_op sympy.core.Mod.kind -sympy.core.Mul.__slots__ -sympy.core.Mul._args_type -sympy.core.Mul._eval_is_commutative -sympy.core.Mul._kind_dispatcher -sympy.core.Mul.args -sympy.core.Mul.is_Mul sympy.core.Number.__slots__ sympy.core.Number._prec sympy.core.Number.is_Number -sympy.core.Number.is_commutative sympy.core.Number.is_number sympy.core.Number.kind -sympy.core.NumberKind sympy.core.NumberSymbol.__slots__ sympy.core.NumberSymbol.is_NumberSymbol sympy.core.NumberSymbol.is_commutative sympy.core.NumberSymbol.is_finite sympy.core.NumberSymbol.is_number sympy.core.NumberSymbol.kind -sympy.core.Pow.__slots__ -sympy.core.Pow.args -sympy.core.Pow.is_Pow -sympy.core.Rational.__radd__ -sympy.core.Rational.__rmul__ -sympy.core.Rational.__slots__ -sympy.core.Rational.is_Rational -sympy.core.Rational.is_commutative -sympy.core.Rational.is_integer -sympy.core.Rational.is_number -sympy.core.Rational.is_rational -sympy.core.Rational.is_real -sympy.core.S -sympy.core.StrictGreaterThan.__slots__ -sympy.core.StrictGreaterThan.rel_op -sympy.core.StrictLessThan.__slots__ -sympy.core.StrictLessThan.rel_op sympy.core.Subs.bound_symbols sympy.core.Subs.n -sympy.core.Symbol.__slots__ -sympy.core.Symbol.binary_symbols -sympy.core.Symbol.is_Symbol -sympy.core.Symbol.is_comparable -sympy.core.Symbol.is_symbol -sympy.core.Tuple.__rmul__ -sympy.core.UndefinedKind -sympy.core.Unequality.__slots__ -sympy.core.Unequality.rel_op sympy.core.Wild.__slots__ sympy.core.Wild.is_Wild sympy.core.WildFunction.__init__ -sympy.core.add.Add.__slots__ -sympy.core.add.Add._args_type -sympy.core.add.Add._eval_is_algebraic -sympy.core.add.Add._eval_is_antihermitian -sympy.core.add.Add._eval_is_commutative -sympy.core.add.Add._eval_is_complex -sympy.core.add.Add._eval_is_extended_real -sympy.core.add.Add._eval_is_finite -sympy.core.add.Add._eval_is_hermitian -sympy.core.add.Add._eval_is_integer -sympy.core.add.Add._eval_is_rational -sympy.core.add.Add._eval_is_real -sympy.core.add.Add.args -sympy.core.add.Add.is_Add sympy.core.add.add sympy.core.assumptions._assume_defined sympy.core.assumptions._assume_rules sympy.core.basic.Atom.__slots__ sympy.core.basic.Atom.is_Atom -sympy.core.basic.Basic.__slots__ -sympy.core.basic.Basic._constructor_postprocessor_mapping -sympy.core.basic.Basic.is_Add -sympy.core.basic.Basic.is_AlgebraicNumber -sympy.core.basic.Basic.is_Atom -sympy.core.basic.Basic.is_Boolean -sympy.core.basic.Basic.is_Derivative -sympy.core.basic.Basic.is_Dummy -sympy.core.basic.Basic.is_Equality -sympy.core.basic.Basic.is_Float -sympy.core.basic.Basic.is_Function -sympy.core.basic.Basic.is_Indexed -sympy.core.basic.Basic.is_Integer -sympy.core.basic.Basic.is_MatAdd -sympy.core.basic.Basic.is_MatMul -sympy.core.basic.Basic.is_Matrix -sympy.core.basic.Basic.is_Mul -sympy.core.basic.Basic.is_Not -sympy.core.basic.Basic.is_Number -sympy.core.basic.Basic.is_NumberSymbol -sympy.core.basic.Basic.is_Order -sympy.core.basic.Basic.is_Piecewise -sympy.core.basic.Basic.is_Point -sympy.core.basic.Basic.is_Poly -sympy.core.basic.Basic.is_Pow -sympy.core.basic.Basic.is_Rational -sympy.core.basic.Basic.is_Relational -sympy.core.basic.Basic.is_Symbol -sympy.core.basic.Basic.is_Vector -sympy.core.basic.Basic.is_Wild -sympy.core.basic.Basic.is_commutative -sympy.core.basic.Basic.is_extended_real -sympy.core.basic.Basic.is_negative -sympy.core.basic.Basic.is_number -sympy.core.basic.Basic.is_real -sympy.core.basic.Basic.is_symbol -sympy.core.basic.Basic.is_zero -sympy.core.basic.Basic.subs sympy.core.basic.preorder_traversal sympy.core.cache.CACHE sympy.core.cache.SYMPY_CACHE_SIZE @@ -1183,7 +665,6 @@ sympy.core.cache.USE_CACHE sympy.core.cache.clear_cache sympy.core.cache.print_cache sympy.core.cache.scs -sympy.core.containers.Tuple.__rmul__ sympy.core.core.Registry.__slots__ sympy.core.core.ordering_of_classes sympy.core.evalf @@ -1198,36 +679,20 @@ sympy.core.expr.Atom.is_Atom sympy.core.expr.AtomicExpr.__slots__ sympy.core.expr.AtomicExpr.is_Atom sympy.core.expr.AtomicExpr.is_number -sympy.core.expr.Expr.__round__ -sympy.core.expr.Expr._op_priority -sympy.core.expr.Expr.compute_leading_term -sympy.core.expr.Expr.is_scalar sympy.core.exprtools.Factors.__slots__ sympy.core.exprtools.Term.__slots__ sympy.core.function.Application.is_Function sympy.core.function.AppliedUndef.is_number sympy.core.function.Derivative.is_Derivative sympy.core.function.FunctionClass._new -sympy.core.function.Lambda.bound_symbols -sympy.core.function.Lambda.is_Function sympy.core.function.Subs.bound_symbols sympy.core.function.Subs.n -sympy.core.function.UndefinedFunction.__new__ sympy.core.function.WildFunction.__init__ sympy.core.function._undef_sage_helper -sympy.core.kind.BooleanKind -sympy.core.kind.NumberKind -sympy.core.kind.UndefinedKind sympy.core.logic.And.op_x_notx sympy.core.logic.Logic.__repr__ sympy.core.logic.Or.op_x_notx sympy.core.mod.Mod.kind -sympy.core.mul.Mul.__slots__ -sympy.core.mul.Mul._args_type -sympy.core.mul.Mul._eval_is_commutative -sympy.core.mul.Mul._kind_dispatcher -sympy.core.mul.Mul.args -sympy.core.mul.Mul.is_Mul sympy.core.mul.NC_Marker.is_Mul sympy.core.mul.NC_Marker.is_Number sympy.core.mul.NC_Marker.is_Order @@ -1273,14 +738,6 @@ sympy.core.numbers.Exp1.is_number sympy.core.numbers.Exp1.is_positive sympy.core.numbers.Exp1.is_real sympy.core.numbers.Exp1.is_transcendental -sympy.core.numbers.Float.__slots__ -sympy.core.numbers.Float.is_Float -sympy.core.numbers.Float.is_commutative -sympy.core.numbers.Float.is_extended_real -sympy.core.numbers.Float.is_irrational -sympy.core.numbers.Float.is_number -sympy.core.numbers.Float.is_rational -sympy.core.numbers.Float.is_real sympy.core.numbers.GoldenRatio.__slots__ sympy.core.numbers.GoldenRatio._eval_rewrite_as_sqrt sympy.core.numbers.GoldenRatio.is_algebraic @@ -1293,11 +750,7 @@ sympy.core.numbers.GoldenRatio.is_positive sympy.core.numbers.GoldenRatio.is_real sympy.core.numbers.GoldenRatio.is_transcendental sympy.core.numbers.Half.__slots__ -sympy.core.numbers.Half.is_commutative -sympy.core.numbers.Half.is_integer sympy.core.numbers.Half.is_number -sympy.core.numbers.Half.is_rational -sympy.core.numbers.Half.is_real sympy.core.numbers.Half.p sympy.core.numbers.Half.q sympy.core.numbers.ImaginaryUnit.__new__ @@ -1325,20 +778,7 @@ sympy.core.numbers.Infinity.is_extended_real sympy.core.numbers.Infinity.is_infinite sympy.core.numbers.Infinity.is_number sympy.core.numbers.Infinity.is_prime -sympy.core.numbers.Integer.__slots__ -sympy.core.numbers.Integer.is_Integer -sympy.core.numbers.Integer.is_commutative -sympy.core.numbers.Integer.is_integer -sympy.core.numbers.Integer.is_number -sympy.core.numbers.Integer.is_rational -sympy.core.numbers.Integer.is_real -sympy.core.numbers.Integer.is_zero -sympy.core.numbers.Integer.q sympy.core.numbers.IntegerConstant.__slots__ -sympy.core.numbers.IntegerConstant.is_commutative -sympy.core.numbers.IntegerConstant.is_integer -sympy.core.numbers.IntegerConstant.is_rational -sympy.core.numbers.IntegerConstant.is_real sympy.core.numbers.NaN.__ge__ sympy.core.numbers.NaN.__gt__ sympy.core.numbers.NaN.__le__ @@ -1375,17 +815,12 @@ sympy.core.numbers.NegativeInfinity.is_infinite sympy.core.numbers.NegativeInfinity.is_number sympy.core.numbers.NegativeInfinity.is_prime sympy.core.numbers.NegativeOne.__slots__ -sympy.core.numbers.NegativeOne.is_commutative -sympy.core.numbers.NegativeOne.is_integer sympy.core.numbers.NegativeOne.is_number -sympy.core.numbers.NegativeOne.is_rational -sympy.core.numbers.NegativeOne.is_real sympy.core.numbers.NegativeOne.p sympy.core.numbers.NegativeOne.q sympy.core.numbers.Number.__slots__ sympy.core.numbers.Number._prec sympy.core.numbers.Number.is_Number -sympy.core.numbers.Number.is_commutative sympy.core.numbers.Number.is_number sympy.core.numbers.Number.kind sympy.core.numbers.NumberSymbol.__slots__ @@ -1395,12 +830,8 @@ sympy.core.numbers.NumberSymbol.is_finite sympy.core.numbers.NumberSymbol.is_number sympy.core.numbers.NumberSymbol.kind sympy.core.numbers.One.__slots__ -sympy.core.numbers.One.is_commutative -sympy.core.numbers.One.is_integer sympy.core.numbers.One.is_number sympy.core.numbers.One.is_positive -sympy.core.numbers.One.is_rational -sympy.core.numbers.One.is_real sympy.core.numbers.One.p sympy.core.numbers.One.q sympy.core.numbers.Pi.__slots__ @@ -1413,20 +844,7 @@ sympy.core.numbers.Pi.is_number sympy.core.numbers.Pi.is_positive sympy.core.numbers.Pi.is_real sympy.core.numbers.Pi.is_transcendental -sympy.core.numbers.Rational.__radd__ -sympy.core.numbers.Rational.__rmul__ -sympy.core.numbers.Rational.__slots__ -sympy.core.numbers.Rational.is_Rational -sympy.core.numbers.Rational.is_commutative -sympy.core.numbers.Rational.is_integer -sympy.core.numbers.Rational.is_number -sympy.core.numbers.Rational.is_rational -sympy.core.numbers.Rational.is_real sympy.core.numbers.RationalConstant.__slots__ -sympy.core.numbers.RationalConstant.is_commutative -sympy.core.numbers.RationalConstant.is_integer -sympy.core.numbers.RationalConstant.is_rational -sympy.core.numbers.RationalConstant.is_real sympy.core.numbers.TribonacciConstant.__slots__ sympy.core.numbers.TribonacciConstant._eval_rewrite_as_sqrt sympy.core.numbers.TribonacciConstant.is_algebraic @@ -1439,14 +857,10 @@ sympy.core.numbers.TribonacciConstant.is_positive sympy.core.numbers.TribonacciConstant.is_real sympy.core.numbers.TribonacciConstant.is_transcendental sympy.core.numbers.Zero.__slots__ -sympy.core.numbers.Zero.is_commutative sympy.core.numbers.Zero.is_comparable -sympy.core.numbers.Zero.is_integer sympy.core.numbers.Zero.is_negative sympy.core.numbers.Zero.is_number sympy.core.numbers.Zero.is_positive -sympy.core.numbers.Zero.is_rational -sympy.core.numbers.Zero.is_real sympy.core.numbers.Zero.is_zero sympy.core.numbers.Zero.p sympy.core.numbers.Zero.q @@ -1461,9 +875,6 @@ sympy.core.numbers.sympify_mpq sympy.core.numbers.sympify_mpz sympy.core.operations.LatticeOp.is_commutative sympy.core.parameters.global_parameters -sympy.core.power.Pow.__slots__ -sympy.core.power.Pow.args -sympy.core.power.Pow.is_Pow sympy.core.power.integer_log sympy.core.power.integer_nthroot sympy.core.power.isqrt @@ -1478,60 +889,21 @@ sympy.core.random.rng sympy.core.random.sample sympy.core.random.shuffle sympy.core.random.uniform -sympy.core.relational.Boolean.__rand__ -sympy.core.relational.Boolean.__rlshift__ -sympy.core.relational.Boolean.__ror__ -sympy.core.relational.Boolean.__rrshift__ -sympy.core.relational.Boolean.__rxor__ -sympy.core.relational.Boolean.__slots__ -sympy.core.relational.Boolean.kind -sympy.core.relational.Equality.__slots__ -sympy.core.relational.Equality.is_Equality -sympy.core.relational.Equality.rel_op -sympy.core.relational.GreaterThan.__slots__ -sympy.core.relational.GreaterThan.rel_op -sympy.core.relational.LessThan.__slots__ -sympy.core.relational.LessThan.rel_op -sympy.core.relational.Relational.__slots__ -sympy.core.relational.Relational.is_Relational -sympy.core.relational.StrictGreaterThan.__slots__ -sympy.core.relational.StrictGreaterThan.rel_op -sympy.core.relational.StrictLessThan.__slots__ -sympy.core.relational.StrictLessThan.rel_op -sympy.core.relational.Unequality.__slots__ -sympy.core.relational.Unequality.rel_op sympy.core.relational._Greater.__slots__ sympy.core.relational._Inequality.__slots__ sympy.core.relational._Less.__slots__ -sympy.core.singleton.S -sympy.core.singleton.SingletonRegistry.__call__ sympy.core.singleton.SingletonRegistry.__slots__ -sympy.core.symbol.Dummy.__slots__ -sympy.core.symbol.Dummy._base_dummy_index -sympy.core.symbol.Dummy._count -sympy.core.symbol.Dummy._prng -sympy.core.symbol.Dummy.is_Dummy sympy.core.symbol.Str.__slots__ -sympy.core.symbol.Symbol.__slots__ -sympy.core.symbol.Symbol.binary_symbols -sympy.core.symbol.Symbol.is_Symbol -sympy.core.symbol.Symbol.is_comparable -sympy.core.symbol.Symbol.is_symbol sympy.core.symbol.Wild.__slots__ sympy.core.symbol.Wild.is_Wild sympy.core.symbol._range sympy.core.symbol._uniquely_named_symbol sympy.core.sympify.CantSympify.__slots__ sympy.core.sympify._external_converter -sympy.crypto.crypto.bifid10 -sympy.crypto.crypto.bifid5 -sympy.crypto.crypto.bifid6 sympy.crypto.crypto.char_morse sympy.crypto.crypto.morse_char sympy.csc._is_odd -sympy.csc._reciprocal_of sympy.csch._is_odd -sympy.csch._reciprocal_of sympy.denom sympy.diffgeom.BaseScalarField.is_commutative sympy.diffgeom.BaseVectorField.is_commutative @@ -1561,20 +933,9 @@ sympy.expint._eval_rewrite_as_Shi sympy.external.importtools.WARN_NOT_INSTALLED sympy.external.importtools.WARN_OLD_VERSION sympy.external.importtools._component_re -sympy.external.pythonmpq.PythonMPQ.__slots__ sympy.external.pythonmpq._PyHASH_INF sympy.external.pythonmpq._PyHASH_MODULUS sympy.factorial._small_swing -sympy.fresnelc._trigfunc -sympy.fresnels._trigfunc -sympy.functions.Abs._singularities -sympy.functions.Abs.args -sympy.functions.Abs.is_extended_negative -sympy.functions.Abs.is_extended_nonnegative -sympy.functions.Abs.is_extended_real -sympy.functions.Abs.unbranched -sympy.functions.Chi._trigfunc -sympy.functions.Ci._trigfunc sympy.functions.DiracDelta.is_real sympy.functions.Ei._eval_rewrite_as_Chi sympy.functions.Ei._eval_rewrite_as_Ci @@ -1583,37 +944,10 @@ sympy.functions.Heaviside.is_real sympy.functions.KroneckerDelta.is_integer sympy.functions.LambertW._singularities sympy.functions.LeviCivita.is_integer -sympy.functions.Max.is_commutative -sympy.functions.Min.is_commutative -sympy.functions.Piecewise._eval_is_complex -sympy.functions.Piecewise._eval_is_even -sympy.functions.Piecewise._eval_is_extended_negative -sympy.functions.Piecewise._eval_is_extended_nonnegative -sympy.functions.Piecewise._eval_is_extended_nonpositive -sympy.functions.Piecewise._eval_is_extended_nonzero -sympy.functions.Piecewise._eval_is_extended_positive -sympy.functions.Piecewise._eval_is_extended_real -sympy.functions.Piecewise._eval_is_finite -sympy.functions.Piecewise._eval_is_imaginary -sympy.functions.Piecewise._eval_is_integer -sympy.functions.Piecewise._eval_is_irrational -sympy.functions.Piecewise._eval_is_negative -sympy.functions.Piecewise._eval_is_nonnegative -sympy.functions.Piecewise._eval_is_nonpositive -sympy.functions.Piecewise._eval_is_nonzero -sympy.functions.Piecewise._eval_is_odd -sympy.functions.Piecewise._eval_is_polar -sympy.functions.Piecewise._eval_is_positive -sympy.functions.Piecewise._eval_is_real -sympy.functions.Piecewise._eval_is_zero -sympy.functions.Piecewise.is_Piecewise sympy.functions.Rem.kind -sympy.functions.Shi._trigfunc -sympy.functions.Si._trigfunc sympy.functions.SingularityFunction._eval_rewrite_as_DiracDelta sympy.functions.SingularityFunction._eval_rewrite_as_HeavisideDiracDelta sympy.functions.SingularityFunction.is_real -sympy.functions.acos._eval_rewrite_as_tractable sympy.functions.acosh._eval_rewrite_as_tractable sympy.functions.acot._eval_rewrite_as_tractable sympy.functions.acot._singularities @@ -1630,11 +964,7 @@ sympy.functions.arg.is_finite sympy.functions.arg.is_real sympy.functions.asec._eval_rewrite_as_tractable sympy.functions.asech._eval_rewrite_as_tractable -sympy.functions.asin._eval_rewrite_as_tractable sympy.functions.asinh._eval_rewrite_as_tractable -sympy.functions.atan._eval_rewrite_as_tractable -sympy.functions.atan._singularities -sympy.functions.atan.args sympy.functions.atanh._eval_rewrite_as_tractable sympy.functions.bernoulli._cache sympy.functions.bernoulli._highest @@ -1653,32 +983,16 @@ sympy.functions.combinatorial.numbers.bernoulli._highest sympy.functions.combinatorial.numbers.bernoulli.args sympy.functions.conjugate._singularities sympy.functions.csc._is_odd -sympy.functions.csc._reciprocal_of sympy.functions.csch._is_odd -sympy.functions.csch._reciprocal_of -sympy.functions.elementary.complexes.Abs._singularities -sympy.functions.elementary.complexes.Abs.args -sympy.functions.elementary.complexes.Abs.is_extended_negative -sympy.functions.elementary.complexes.Abs.is_extended_nonnegative -sympy.functions.elementary.complexes.Abs.is_extended_real -sympy.functions.elementary.complexes.Abs.unbranched sympy.functions.elementary.complexes.arg._singularities sympy.functions.elementary.complexes.arg.is_extended_real sympy.functions.elementary.complexes.arg.is_finite sympy.functions.elementary.complexes.arg.is_real sympy.functions.elementary.complexes.conjugate._singularities -sympy.functions.elementary.complexes.im._singularities -sympy.functions.elementary.complexes.im.args -sympy.functions.elementary.complexes.im.is_extended_real -sympy.functions.elementary.complexes.im.unbranched sympy.functions.elementary.complexes.polar_lift.is_comparable sympy.functions.elementary.complexes.polar_lift.is_polar sympy.functions.elementary.complexes.principal_branch.is_comparable sympy.functions.elementary.complexes.principal_branch.is_polar -sympy.functions.elementary.complexes.re._singularities -sympy.functions.elementary.complexes.re.args -sympy.functions.elementary.complexes.re.is_extended_real -sympy.functions.elementary.complexes.re.unbranched sympy.functions.elementary.complexes.sign._singularities sympy.functions.elementary.complexes.sign.is_complex sympy.functions.elementary.exponential.ExpBase._singularities @@ -1686,8 +1000,6 @@ sympy.functions.elementary.exponential.ExpBase.unbranched sympy.functions.elementary.exponential.LambertW._singularities sympy.functions.elementary.exponential.exp_polar.is_comparable sympy.functions.elementary.exponential.exp_polar.is_polar -sympy.functions.elementary.exponential.log._singularities -sympy.functions.elementary.exponential.log.args sympy.functions.elementary.hyperbolic.HyperbolicFunction.unbranched sympy.functions.elementary.hyperbolic.ReciprocalHyperbolicFunction._reciprocal_of sympy.functions.elementary.hyperbolic.acosh._eval_rewrite_as_tractable @@ -1697,12 +1009,8 @@ sympy.functions.elementary.hyperbolic.asech._eval_rewrite_as_tractable sympy.functions.elementary.hyperbolic.asinh._eval_rewrite_as_tractable sympy.functions.elementary.hyperbolic.atanh._eval_rewrite_as_tractable sympy.functions.elementary.hyperbolic.csch._is_odd -sympy.functions.elementary.hyperbolic.csch._reciprocal_of sympy.functions.elementary.hyperbolic.sech._is_even -sympy.functions.elementary.hyperbolic.sech._reciprocal_of sympy.functions.elementary.miscellaneous.IdentityFunction.__new__ -sympy.functions.elementary.miscellaneous.Max.is_commutative -sympy.functions.elementary.miscellaneous.Min.is_commutative sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_algebraic sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_antihermitian sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_commutative @@ -1729,48 +1037,18 @@ sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_rational sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_real sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_transcendental sympy.functions.elementary.miscellaneous.MinMaxBase._eval_is_zero -sympy.functions.elementary.miscellaneous.MinMaxBase.is_commutative sympy.functions.elementary.miscellaneous.Rem.kind -sympy.functions.elementary.piecewise.Piecewise._eval_is_complex -sympy.functions.elementary.piecewise.Piecewise._eval_is_even -sympy.functions.elementary.piecewise.Piecewise._eval_is_extended_negative -sympy.functions.elementary.piecewise.Piecewise._eval_is_extended_nonnegative -sympy.functions.elementary.piecewise.Piecewise._eval_is_extended_nonpositive -sympy.functions.elementary.piecewise.Piecewise._eval_is_extended_nonzero -sympy.functions.elementary.piecewise.Piecewise._eval_is_extended_positive -sympy.functions.elementary.piecewise.Piecewise._eval_is_extended_real -sympy.functions.elementary.piecewise.Piecewise._eval_is_finite -sympy.functions.elementary.piecewise.Piecewise._eval_is_imaginary -sympy.functions.elementary.piecewise.Piecewise._eval_is_integer -sympy.functions.elementary.piecewise.Piecewise._eval_is_irrational -sympy.functions.elementary.piecewise.Piecewise._eval_is_negative -sympy.functions.elementary.piecewise.Piecewise._eval_is_nonnegative -sympy.functions.elementary.piecewise.Piecewise._eval_is_nonpositive -sympy.functions.elementary.piecewise.Piecewise._eval_is_nonzero -sympy.functions.elementary.piecewise.Piecewise._eval_is_odd -sympy.functions.elementary.piecewise.Piecewise._eval_is_polar -sympy.functions.elementary.piecewise.Piecewise._eval_is_positive -sympy.functions.elementary.piecewise.Piecewise._eval_is_real -sympy.functions.elementary.piecewise.Piecewise._eval_is_zero -sympy.functions.elementary.piecewise.Piecewise.is_Piecewise sympy.functions.elementary.piecewise._blessed sympy.functions.elementary.trigonometric.ReciprocalTrigonometricFunction._reciprocal_of sympy.functions.elementary.trigonometric.ReciprocalTrigonometricFunction._singularities sympy.functions.elementary.trigonometric.TrigonometricFunction._singularities sympy.functions.elementary.trigonometric.TrigonometricFunction.unbranched -sympy.functions.elementary.trigonometric.acos._eval_rewrite_as_tractable sympy.functions.elementary.trigonometric.acot._eval_rewrite_as_tractable sympy.functions.elementary.trigonometric.acot._singularities sympy.functions.elementary.trigonometric.acsc._eval_rewrite_as_tractable sympy.functions.elementary.trigonometric.asec._eval_rewrite_as_tractable -sympy.functions.elementary.trigonometric.asin._eval_rewrite_as_tractable -sympy.functions.elementary.trigonometric.atan._eval_rewrite_as_tractable -sympy.functions.elementary.trigonometric.atan._singularities -sympy.functions.elementary.trigonometric.atan.args sympy.functions.elementary.trigonometric.csc._is_odd -sympy.functions.elementary.trigonometric.csc._reciprocal_of sympy.functions.elementary.trigonometric.sec._is_even -sympy.functions.elementary.trigonometric.sec._reciprocal_of sympy.functions.elementary.trigonometric.sinc._eval_is_finite sympy.functions.elementary.trigonometric.sinc._singularities sympy.functions.erf.as_real_imag @@ -1785,37 +1063,23 @@ sympy.functions.expint._eval_rewrite_as_Chi sympy.functions.expint._eval_rewrite_as_Ci sympy.functions.expint._eval_rewrite_as_Shi sympy.functions.factorial._small_swing -sympy.functions.fresnelc._trigfunc -sympy.functions.fresnels._trigfunc sympy.functions.gamma._singularities sympy.functions.gamma.unbranched sympy.functions.hermite._ortho_poly sympy.functions.hermite_prob._ortho_poly sympy.functions.hyper.is_commutative -sympy.functions.im._singularities -sympy.functions.im.args -sympy.functions.im.is_extended_real -sympy.functions.im.unbranched sympy.functions.laguerre._ortho_poly sympy.functions.legendre._ortho_poly sympy.functions.li._eval_rewrite_as_Chi sympy.functions.li._eval_rewrite_as_Ci -sympy.functions.log._singularities -sympy.functions.log.args sympy.functions.meijerg.is_commutative sympy.functions.multigamma.unbranched sympy.functions.polar_lift.is_comparable sympy.functions.polar_lift.is_polar sympy.functions.principal_branch.is_comparable sympy.functions.principal_branch.is_polar -sympy.functions.re._singularities -sympy.functions.re.args -sympy.functions.re.is_extended_real -sympy.functions.re.unbranched sympy.functions.sec._is_even -sympy.functions.sec._reciprocal_of sympy.functions.sech._is_even -sympy.functions.sech._reciprocal_of sympy.functions.sign._singularities sympy.functions.sign.is_complex sympy.functions.sinc._eval_is_finite @@ -1829,16 +1093,12 @@ sympy.functions.special.beta_functions.betainc.unbranched sympy.functions.special.beta_functions.betainc_regularized.unbranched sympy.functions.special.delta_functions.DiracDelta.is_real sympy.functions.special.delta_functions.Heaviside.is_real -sympy.functions.special.error_functions.Chi._trigfunc -sympy.functions.special.error_functions.Ci._trigfunc sympy.functions.special.error_functions.Ei._eval_rewrite_as_Chi sympy.functions.special.error_functions.Ei._eval_rewrite_as_Ci sympy.functions.special.error_functions.Ei._eval_rewrite_as_Shi sympy.functions.special.error_functions.FresnelIntegral._eval_is_finite sympy.functions.special.error_functions.FresnelIntegral.as_real_imag sympy.functions.special.error_functions.FresnelIntegral.unbranched -sympy.functions.special.error_functions.Shi._trigfunc -sympy.functions.special.error_functions.Si._trigfunc sympy.functions.special.error_functions.erf.as_real_imag sympy.functions.special.error_functions.erf.unbranched sympy.functions.special.error_functions.erfc.as_real_imag @@ -1848,8 +1108,6 @@ sympy.functions.special.error_functions.erfi.unbranched sympy.functions.special.error_functions.expint._eval_rewrite_as_Chi sympy.functions.special.error_functions.expint._eval_rewrite_as_Ci sympy.functions.special.error_functions.expint._eval_rewrite_as_Shi -sympy.functions.special.error_functions.fresnelc._trigfunc -sympy.functions.special.error_functions.fresnels._trigfunc sympy.functions.special.error_functions.li._eval_rewrite_as_Chi sympy.functions.special.error_functions.li._eval_rewrite_as_Ci sympy.functions.special.gamma_functions.gamma._singularities @@ -1932,25 +1190,17 @@ sympy.hyper.is_commutative sympy.igrevlex sympy.igrlex sympy.ilex -sympy.im._singularities -sympy.im.args -sympy.im.is_extended_real -sympy.im.unbranched -sympy.integrals.CosineTransform._kern sympy.integrals.CosineTransform._name sympy.integrals.FourierTransform._name sympy.integrals.HankelTransform._name sympy.integrals.Integral.__slots__ sympy.integrals.Integral.args -sympy.integrals.InverseCosineTransform._kern sympy.integrals.InverseCosineTransform._name sympy.integrals.InverseFourierTransform._name sympy.integrals.InverseHankelTransform._name sympy.integrals.InverseMellinTransform._name -sympy.integrals.InverseSineTransform._kern sympy.integrals.InverseSineTransform._name sympy.integrals.MellinTransform._name -sympy.integrals.SineTransform._kern sympy.integrals.SineTransform._name sympy.integrals.heurisch.BesselTable.diffs sympy.integrals.heurisch.BesselTable.has @@ -1988,19 +1238,15 @@ sympy.integrals.prde.eye sympy.integrals.prde.zeros sympy.integrals.risch.DecrementLevel.__slots__ sympy.integrals.risch.DifferentialExtension.__slots__ -sympy.integrals.transforms.CosineTransform._kern sympy.integrals.transforms.CosineTransform._name sympy.integrals.transforms.FourierTransform._name sympy.integrals.transforms.HankelTransform._name -sympy.integrals.transforms.InverseCosineTransform._kern sympy.integrals.transforms.InverseCosineTransform._name sympy.integrals.transforms.InverseFourierTransform._name sympy.integrals.transforms.InverseHankelTransform._name sympy.integrals.transforms.InverseMellinTransform._name -sympy.integrals.transforms.InverseSineTransform._kern sympy.integrals.transforms.InverseSineTransform._name sympy.integrals.transforms.MellinTransform._name -sympy.integrals.transforms.SineTransform._kern sympy.integrals.transforms.SineTransform._name sympy.integrals.transforms._allowed sympy.integrals.transforms._noconds @@ -2019,22 +1265,8 @@ sympy.legendre_symbol sympy.lex sympy.li._eval_rewrite_as_Chi sympy.li._eval_rewrite_as_Ci -sympy.liealgebras.cartan_type.CartanType -sympy.log._singularities -sympy.log.args -sympy.logic.And.is_commutative -sympy.logic.Not.is_Not -sympy.logic.Or.is_commutative sympy.logic.algorithms.dpll2.SATSolver.__init__ sympy.logic.algorithms.dpll2.dpll_satisfiable -sympy.logic.boolalg.And.is_commutative -sympy.logic.boolalg.Boolean.__rand__ -sympy.logic.boolalg.Boolean.__rlshift__ -sympy.logic.boolalg.Boolean.__ror__ -sympy.logic.boolalg.Boolean.__rrshift__ -sympy.logic.boolalg.Boolean.__rxor__ -sympy.logic.boolalg.Boolean.__slots__ -sympy.logic.boolalg.Boolean.kind sympy.logic.boolalg.BooleanAtom.__add__ sympy.logic.boolalg.BooleanAtom.__ge__ sympy.logic.boolalg.BooleanAtom.__gt__ @@ -2054,186 +1286,64 @@ sympy.logic.boolalg.BooleanAtom._eval_power sympy.logic.boolalg.BooleanAtom._op_priority sympy.logic.boolalg.BooleanAtom.is_Atom sympy.logic.boolalg.BooleanAtom.is_Boolean -sympy.logic.boolalg.BooleanFalse.__new__ -sympy.logic.boolalg.BooleanFunction.__ge__ -sympy.logic.boolalg.BooleanFunction.__gt__ -sympy.logic.boolalg.BooleanFunction.__le__ -sympy.logic.boolalg.BooleanFunction.is_Boolean sympy.logic.boolalg.BooleanGates -sympy.logic.boolalg.BooleanTrue.__new__ -sympy.logic.boolalg.Not.is_Not -sympy.logic.boolalg.Or.is_commutative sympy.logic.boolalg.integer_to_term sympy.logic.inference.satisfiable sympy.logic.satisfiable sympy.matrices.Adjoint.is_Adjoint -sympy.matrices.Adjoint.is_commutative -sympy.matrices.BlockDiagMatrix.is_commutative -sympy.matrices.BlockMatrix.is_commutative sympy.matrices.Determinant.doit sympy.matrices.Determinant.is_commutative -sympy.matrices.DiagMatrix.is_commutative sympy.matrices.DiagonalMatrix.arg -sympy.matrices.DiagonalMatrix.is_commutative sympy.matrices.DiagonalMatrix.shape sympy.matrices.DiagonalOf.arg -sympy.matrices.DiagonalOf.is_commutative -sympy.matrices.FunctionMatrix.is_commutative -sympy.matrices.HadamardPower.is_commutative -sympy.matrices.HadamardProduct.is_HadamardProduct -sympy.matrices.HadamardProduct.is_commutative sympy.matrices.Identity.is_Identity -sympy.matrices.Identity.is_commutative sympy.matrices.ImmutableDenseMatrix._class_priority sympy.matrices.ImmutableDenseMatrix._iterable sympy.matrices.ImmutableDenseMatrix._op_priority -sympy.matrices.ImmutableDenseMatrix.is_commutative sympy.matrices.ImmutableSparseMatrix._class_priority sympy.matrices.ImmutableSparseMatrix.is_Matrix -sympy.matrices.ImmutableSparseMatrix.is_commutative sympy.matrices.Inverse.is_Inverse -sympy.matrices.Inverse.is_commutative -sympy.matrices.KroneckerProduct.is_KroneckerProduct -sympy.matrices.KroneckerProduct.is_commutative -sympy.matrices.MatAdd.is_MatAdd -sympy.matrices.MatAdd.is_commutative -sympy.matrices.MatMul.is_MatMul -sympy.matrices.MatMul.is_commutative -sympy.matrices.MatPow.is_commutative -sympy.matrices.MatrixExpr.__array__ -sympy.matrices.MatrixExpr._iterable -sympy.matrices.MatrixExpr._op_priority -sympy.matrices.MatrixExpr.is_Inverse -sympy.matrices.MatrixExpr.is_MatAdd -sympy.matrices.MatrixExpr.is_MatMul -sympy.matrices.MatrixExpr.is_Transpose -sympy.matrices.MatrixExpr.is_ZeroMatrix -sympy.matrices.MatrixExpr.is_commutative -sympy.matrices.MatrixExpr.is_number -sympy.matrices.MatrixExpr.is_scalar -sympy.matrices.MatrixExpr.is_symbol -sympy.matrices.MatrixPermute.is_commutative sympy.matrices.MatrixSet.is_empty sympy.matrices.MatrixSlice.colslice -sympy.matrices.MatrixSlice.is_commutative sympy.matrices.MatrixSlice.parent sympy.matrices.MatrixSlice.rowslice sympy.matrices.MatrixSymbol._diff_wrt sympy.matrices.MatrixSymbol.is_commutative sympy.matrices.MatrixSymbol.is_symbol -sympy.matrices.OneMatrix.is_commutative sympy.matrices.PermutationMatrix._eval_adjoint -sympy.matrices.PermutationMatrix.is_commutative -sympy.matrices.Trace.is_Trace -sympy.matrices.Trace.is_commutative -sympy.matrices.Transpose.is_Transpose -sympy.matrices.Transpose.is_commutative sympy.matrices.ZeroMatrix.is_ZeroMatrix -sympy.matrices.ZeroMatrix.is_commutative sympy.matrices.dense.DenseMatrix._class_priority sympy.matrices.dense.DenseMatrix._op_priority sympy.matrices.expressions.Adjoint.is_Adjoint -sympy.matrices.expressions.Adjoint.is_commutative -sympy.matrices.expressions.BlockDiagMatrix.is_commutative -sympy.matrices.expressions.BlockMatrix.is_commutative -sympy.matrices.expressions.CompanionMatrix.is_commutative sympy.matrices.expressions.Determinant.doit sympy.matrices.expressions.Determinant.is_commutative -sympy.matrices.expressions.DiagMatrix.is_commutative sympy.matrices.expressions.DiagonalMatrix.arg -sympy.matrices.expressions.DiagonalMatrix.is_commutative sympy.matrices.expressions.DiagonalMatrix.shape sympy.matrices.expressions.DiagonalOf.arg -sympy.matrices.expressions.DiagonalOf.is_commutative -sympy.matrices.expressions.FunctionMatrix.is_commutative -sympy.matrices.expressions.HadamardPower.is_commutative -sympy.matrices.expressions.HadamardProduct.is_HadamardProduct -sympy.matrices.expressions.HadamardProduct.is_commutative sympy.matrices.expressions.Identity.is_Identity -sympy.matrices.expressions.Identity.is_commutative sympy.matrices.expressions.Inverse.is_Inverse -sympy.matrices.expressions.Inverse.is_commutative -sympy.matrices.expressions.KroneckerProduct.is_KroneckerProduct -sympy.matrices.expressions.KroneckerProduct.is_commutative -sympy.matrices.expressions.MatAdd.is_MatAdd -sympy.matrices.expressions.MatAdd.is_commutative -sympy.matrices.expressions.MatMul.is_MatMul -sympy.matrices.expressions.MatMul.is_commutative -sympy.matrices.expressions.MatPow.is_commutative -sympy.matrices.expressions.MatrixExpr.__array__ -sympy.matrices.expressions.MatrixExpr._iterable -sympy.matrices.expressions.MatrixExpr._op_priority -sympy.matrices.expressions.MatrixExpr.is_Inverse -sympy.matrices.expressions.MatrixExpr.is_MatAdd -sympy.matrices.expressions.MatrixExpr.is_MatMul -sympy.matrices.expressions.MatrixExpr.is_Transpose -sympy.matrices.expressions.MatrixExpr.is_ZeroMatrix -sympy.matrices.expressions.MatrixExpr.is_commutative -sympy.matrices.expressions.MatrixExpr.is_number -sympy.matrices.expressions.MatrixExpr.is_scalar -sympy.matrices.expressions.MatrixExpr.is_symbol -sympy.matrices.expressions.MatrixPermute.is_commutative sympy.matrices.expressions.MatrixSet.is_empty sympy.matrices.expressions.MatrixSlice.colslice -sympy.matrices.expressions.MatrixSlice.is_commutative sympy.matrices.expressions.MatrixSlice.parent sympy.matrices.expressions.MatrixSlice.rowslice sympy.matrices.expressions.MatrixSymbol._diff_wrt sympy.matrices.expressions.MatrixSymbol.is_commutative sympy.matrices.expressions.MatrixSymbol.is_symbol -sympy.matrices.expressions.OneMatrix.is_commutative sympy.matrices.expressions.PermutationMatrix._eval_adjoint -sympy.matrices.expressions.PermutationMatrix.is_commutative -sympy.matrices.expressions.Trace.is_Trace -sympy.matrices.expressions.Trace.is_commutative -sympy.matrices.expressions.Transpose.is_Transpose -sympy.matrices.expressions.Transpose.is_commutative sympy.matrices.expressions.ZeroMatrix.is_ZeroMatrix -sympy.matrices.expressions.ZeroMatrix.is_commutative sympy.matrices.expressions.adjoint.Adjoint.is_Adjoint -sympy.matrices.expressions.adjoint.Adjoint.is_commutative -sympy.matrices.expressions.applyfunc.ElementwiseApplyFunction.is_commutative -sympy.matrices.expressions.blockmatrix.BlockDiagMatrix.is_commutative -sympy.matrices.expressions.blockmatrix.BlockMatrix.is_commutative -sympy.matrices.expressions.companion.CompanionMatrix.is_commutative sympy.matrices.expressions.determinant.Determinant.doit sympy.matrices.expressions.determinant.Determinant.is_commutative -sympy.matrices.expressions.diagonal.DiagMatrix.is_commutative sympy.matrices.expressions.diagonal.DiagonalMatrix.arg -sympy.matrices.expressions.diagonal.DiagonalMatrix.is_commutative sympy.matrices.expressions.diagonal.DiagonalMatrix.shape sympy.matrices.expressions.diagonal.DiagonalOf.arg -sympy.matrices.expressions.diagonal.DiagonalOf.is_commutative -sympy.matrices.expressions.factorizations.EigenValues.is_commutative -sympy.matrices.expressions.factorizations.EigenVectors.is_commutative sympy.matrices.expressions.factorizations.Factorization.arg -sympy.matrices.expressions.factorizations.Factorization.is_commutative sympy.matrices.expressions.factorizations.Factorization.shape -sympy.matrices.expressions.factorizations.LofCholesky.is_commutative -sympy.matrices.expressions.factorizations.LofLU.is_commutative -sympy.matrices.expressions.factorizations.QofQR.is_commutative -sympy.matrices.expressions.factorizations.RofQR.is_commutative -sympy.matrices.expressions.factorizations.SofSVD.is_commutative -sympy.matrices.expressions.factorizations.UofCholesky.is_commutative -sympy.matrices.expressions.factorizations.UofLU.is_commutative -sympy.matrices.expressions.factorizations.UofSVD.is_commutative -sympy.matrices.expressions.factorizations.VofSVD.is_commutative -sympy.matrices.expressions.fourier.DFT.is_commutative sympy.matrices.expressions.fourier.DFT.n sympy.matrices.expressions.fourier.DFT.shape -sympy.matrices.expressions.fourier.IDFT.is_commutative -sympy.matrices.expressions.funcmatrix.FunctionMatrix.is_commutative -sympy.matrices.expressions.hadamard.HadamardPower.is_commutative -sympy.matrices.expressions.hadamard.HadamardProduct.is_HadamardProduct -sympy.matrices.expressions.hadamard.HadamardProduct.is_commutative sympy.matrices.expressions.inverse.Inverse.is_Inverse -sympy.matrices.expressions.inverse.Inverse.is_commutative -sympy.matrices.expressions.kronecker.KroneckerProduct.is_KroneckerProduct -sympy.matrices.expressions.kronecker.KroneckerProduct.is_commutative sympy.matrices.expressions.kronecker.canonicalize sympy.matrices.expressions.kronecker.rules -sympy.matrices.expressions.matadd.MatAdd.is_MatAdd -sympy.matrices.expressions.matadd.MatAdd.is_commutative sympy.matrices.expressions.matadd.canonicalize sympy.matrices.expressions.matadd.factor_of sympy.matrices.expressions.matadd.matrix_of @@ -2244,54 +1354,24 @@ sympy.matrices.expressions.matexpr.MatrixElement.is_commutative sympy.matrices.expressions.matexpr.MatrixElement.is_symbol sympy.matrices.expressions.matexpr.MatrixElement.j sympy.matrices.expressions.matexpr.MatrixElement.parent -sympy.matrices.expressions.matexpr.MatrixExpr.__array__ -sympy.matrices.expressions.matexpr.MatrixExpr._iterable -sympy.matrices.expressions.matexpr.MatrixExpr._op_priority -sympy.matrices.expressions.matexpr.MatrixExpr.is_Inverse -sympy.matrices.expressions.matexpr.MatrixExpr.is_MatAdd -sympy.matrices.expressions.matexpr.MatrixExpr.is_MatMul -sympy.matrices.expressions.matexpr.MatrixExpr.is_Transpose -sympy.matrices.expressions.matexpr.MatrixExpr.is_ZeroMatrix -sympy.matrices.expressions.matexpr.MatrixExpr.is_commutative -sympy.matrices.expressions.matexpr.MatrixExpr.is_number -sympy.matrices.expressions.matexpr.MatrixExpr.is_scalar -sympy.matrices.expressions.matexpr.MatrixExpr.is_symbol sympy.matrices.expressions.matexpr.MatrixSymbol._diff_wrt sympy.matrices.expressions.matexpr.MatrixSymbol.is_commutative sympy.matrices.expressions.matexpr.MatrixSymbol.is_symbol -sympy.matrices.expressions.matmul.MatMul.is_MatMul -sympy.matrices.expressions.matmul.MatMul.is_commutative sympy.matrices.expressions.matmul.canonicalize sympy.matrices.expressions.matmul.rules -sympy.matrices.expressions.matpow.MatPow.is_commutative -sympy.matrices.expressions.permutation.MatrixPermute.is_commutative sympy.matrices.expressions.permutation.PermutationMatrix._eval_adjoint -sympy.matrices.expressions.permutation.PermutationMatrix.is_commutative sympy.matrices.expressions.sets.MatrixSet.is_empty sympy.matrices.expressions.slice.MatrixSlice.colslice -sympy.matrices.expressions.slice.MatrixSlice.is_commutative sympy.matrices.expressions.slice.MatrixSlice.parent sympy.matrices.expressions.slice.MatrixSlice.rowslice -sympy.matrices.expressions.special.GenericIdentity.is_commutative -sympy.matrices.expressions.special.GenericZeroMatrix.is_commutative sympy.matrices.expressions.special.Identity.is_Identity -sympy.matrices.expressions.special.Identity.is_commutative -sympy.matrices.expressions.special.OneMatrix.is_commutative sympy.matrices.expressions.special.ZeroMatrix.is_ZeroMatrix -sympy.matrices.expressions.special.ZeroMatrix.is_commutative -sympy.matrices.expressions.trace.Trace.is_Trace -sympy.matrices.expressions.trace.Trace.is_commutative -sympy.matrices.expressions.transpose.Transpose.is_Transpose -sympy.matrices.expressions.transpose.Transpose.is_commutative sympy.matrices.immutable.ImmutableDenseMatrix._class_priority sympy.matrices.immutable.ImmutableDenseMatrix._iterable sympy.matrices.immutable.ImmutableDenseMatrix._op_priority -sympy.matrices.immutable.ImmutableDenseMatrix.is_commutative sympy.matrices.immutable.ImmutableRepMatrix.__hash__ -sympy.matrices.immutable.ImmutableRepMatrix.is_commutative sympy.matrices.immutable.ImmutableSparseMatrix._class_priority sympy.matrices.immutable.ImmutableSparseMatrix.is_Matrix -sympy.matrices.immutable.ImmutableSparseMatrix.is_commutative sympy.matrices.kind.mat_mat_mul sympy.matrices.kind.num_mat_mul sympy.matrices.repmatrix.MutableRepMatrix.is_zero @@ -2377,38 +1457,8 @@ sympy.physics.control.lti.SISOLinearTimeInvariant._is_SISO sympy.physics.control.lti.Series.__radd__ sympy.physics.control.lti.TransferFunction.__rmul__ sympy.physics.control.lti.TransferFunction.__rtruediv__ -sympy.physics.units.Dimension._dimensional_dependencies -sympy.physics.units.Dimension._op_priority -sympy.physics.units.Dimension.is_commutative -sympy.physics.units.Dimension.is_number -sympy.physics.units.Dimension.is_positive -sympy.physics.units.Dimension.is_real -sympy.physics.units.Quantity._diff_wrt -sympy.physics.units.Quantity.is_commutative -sympy.physics.units.Quantity.is_nonzero -sympy.physics.units.Quantity.is_number -sympy.physics.units.Quantity.is_physical_constant -sympy.physics.units.Quantity.is_real -sympy.physics.units.dimensions.Dimension._dimensional_dependencies -sympy.physics.units.dimensions.Dimension._op_priority -sympy.physics.units.dimensions.Dimension.is_commutative -sympy.physics.units.dimensions.Dimension.is_number -sympy.physics.units.dimensions.Dimension.is_positive -sympy.physics.units.dimensions.Dimension.is_real -sympy.physics.units.prefixes.BIN_PREFIXES -sympy.physics.units.prefixes.PREFIXES sympy.physics.units.prefixes.Prefix._op_priority sympy.physics.units.prefixes.Prefix.is_commutative -sympy.physics.units.quantities.PhysicalConstant.is_commutative -sympy.physics.units.quantities.PhysicalConstant.is_nonzero -sympy.physics.units.quantities.PhysicalConstant.is_physical_constant -sympy.physics.units.quantities.PhysicalConstant.is_real -sympy.physics.units.quantities.Quantity._diff_wrt -sympy.physics.units.quantities.Quantity.is_commutative -sympy.physics.units.quantities.Quantity.is_nonzero -sympy.physics.units.quantities.Quantity.is_number -sympy.physics.units.quantities.Quantity.is_physical_constant -sympy.physics.units.quantities.Quantity.is_real sympy.plot_backends sympy.plotting.intervalmath.interval.__radd__ sympy.plotting.intervalmath.interval.__rmul__ @@ -2470,7 +1520,6 @@ sympy.plotting.pygletplot.plot_window sympy.plotting.pygletplot.util sympy.polar_lift.is_comparable sympy.polar_lift.is_polar -sympy.polys.AlgebraicField.dtype sympy.polys.AlgebraicField.has_assoc_Field sympy.polys.AlgebraicField.has_assoc_Ring sympy.polys.AlgebraicField.is_Algebraic @@ -2522,20 +1571,10 @@ sympy.polys.ExpressionDomain.has_assoc_Ring sympy.polys.ExpressionDomain.is_EX sympy.polys.ExpressionDomain.rep sympy.polys.FF -sympy.polys.FiniteField.alias -sympy.polys.FiniteField.dom -sympy.polys.FiniteField.has_assoc_Field -sympy.polys.FiniteField.has_assoc_Ring -sympy.polys.FiniteField.is_FF -sympy.polys.FiniteField.is_Field -sympy.polys.FiniteField.is_Numerical -sympy.polys.FiniteField.mod -sympy.polys.FiniteField.rep sympy.polys.FractionField.has_assoc_Field sympy.polys.FractionField.has_assoc_Ring sympy.polys.FractionField.is_Frac sympy.polys.GF -sympy.polys.GMPYIntegerRing.alias sympy.polys.GMPYRationalField.alias sympy.polys.IntegerRing.alias sympy.polys.IntegerRing.has_assoc_Field @@ -2557,8 +1596,6 @@ sympy.polys.PolynomialRing.has_assoc_Field sympy.polys.PolynomialRing.has_assoc_Ring sympy.polys.PolynomialRing.is_Poly sympy.polys.PurePoly.is_commutative -sympy.polys.PythonIntegerRing.alias -sympy.polys.PythonRational sympy.polys.QQ sympy.polys.QQ_I sympy.polys.RR @@ -2591,23 +1628,19 @@ sympy.polys.agca.extensions.ExtensionElement.inverse sympy.polys.agca.extensions.ExtensionElement.parent sympy.polys.agca.extensions.ExtensionElement.to_ground sympy.polys.agca.extensions.MonogenicFiniteExtension.__repr__ -sympy.polys.agca.extensions.MonogenicFiniteExtension.dtype sympy.polys.agca.extensions.MonogenicFiniteExtension.has_CharacteristicZero sympy.polys.agca.extensions.MonogenicFiniteExtension.is_FiniteExtension sympy.polys.agca.homomorphisms.ModuleHomomorphism.__rmul__ sympy.polys.agca.ideals.Ideal.__radd__ sympy.polys.agca.ideals.Ideal.__rmul__ -sympy.polys.agca.modules.FreeModule.dtype sympy.polys.agca.modules.Module.__rmul__ sympy.polys.agca.modules.ModuleElement.__radd__ sympy.polys.agca.modules.ModuleElement.__rmul__ -sympy.polys.agca.modules.QuotientModule.dtype sympy.polys.agca.modules.SubModule.__radd__ sympy.polys.agca.modules._subs0 sympy.polys.agca.modules._subs1 sympy.polys.densebasic.dmp_LC sympy.polys.densebasic.dmp_TC -sympy.polys.domains.AlgebraicField.dtype sympy.polys.domains.AlgebraicField.has_assoc_Field sympy.polys.domains.AlgebraicField.has_assoc_Ring sympy.polys.domains.AlgebraicField.is_Algebraic @@ -2654,20 +1687,10 @@ sympy.polys.domains.ExpressionDomain.has_assoc_Ring sympy.polys.domains.ExpressionDomain.is_EX sympy.polys.domains.ExpressionDomain.rep sympy.polys.domains.FF -sympy.polys.domains.FiniteField.alias -sympy.polys.domains.FiniteField.dom -sympy.polys.domains.FiniteField.has_assoc_Field -sympy.polys.domains.FiniteField.has_assoc_Ring -sympy.polys.domains.FiniteField.is_FF -sympy.polys.domains.FiniteField.is_Field -sympy.polys.domains.FiniteField.is_Numerical -sympy.polys.domains.FiniteField.mod -sympy.polys.domains.FiniteField.rep sympy.polys.domains.FractionField.has_assoc_Field sympy.polys.domains.FractionField.has_assoc_Ring sympy.polys.domains.FractionField.is_Frac sympy.polys.domains.GF -sympy.polys.domains.GMPYIntegerRing.alias sympy.polys.domains.GMPYRationalField.alias sympy.polys.domains.IntegerRing.alias sympy.polys.domains.IntegerRing.has_assoc_Field @@ -2679,8 +1702,6 @@ sympy.polys.domains.IntegerRing.rep sympy.polys.domains.PolynomialRing.has_assoc_Field sympy.polys.domains.PolynomialRing.has_assoc_Ring sympy.polys.domains.PolynomialRing.is_Poly -sympy.polys.domains.PythonIntegerRing.alias -sympy.polys.domains.PythonRational sympy.polys.domains.QQ sympy.polys.domains.QQ_I sympy.polys.domains.RR @@ -2701,7 +1722,6 @@ sympy.polys.domains.RealField.is_RR sympy.polys.domains.RealField.rep sympy.polys.domains.ZZ sympy.polys.domains.ZZ_I -sympy.polys.domains.algebraicfield.AlgebraicField.dtype sympy.polys.domains.algebraicfield.AlgebraicField.has_assoc_Field sympy.polys.domains.algebraicfield.AlgebraicField.has_assoc_Ring sympy.polys.domains.algebraicfield.AlgebraicField.is_Algebraic @@ -2752,7 +1772,6 @@ sympy.polys.domains.expressiondomain.ExpressionDomain.is_EX sympy.polys.domains.expressiondomain.ExpressionDomain.rep sympy.polys.domains.expressiondomain.eflags sympy.polys.domains.expressionrawdomain.EXRAW -sympy.polys.domains.expressionrawdomain.ExpressionRawDomain.dtype sympy.polys.domains.expressionrawdomain.ExpressionRawDomain.has_assoc_Field sympy.polys.domains.expressionrawdomain.ExpressionRawDomain.has_assoc_Ring sympy.polys.domains.expressionrawdomain.ExpressionRawDomain.is_EXRAW @@ -2760,15 +1779,6 @@ sympy.polys.domains.expressionrawdomain.ExpressionRawDomain.rep sympy.polys.domains.field.Field.is_Field sympy.polys.domains.field.Field.is_PID sympy.polys.domains.finitefield.FF -sympy.polys.domains.finitefield.FiniteField.alias -sympy.polys.domains.finitefield.FiniteField.dom -sympy.polys.domains.finitefield.FiniteField.has_assoc_Field -sympy.polys.domains.finitefield.FiniteField.has_assoc_Ring -sympy.polys.domains.finitefield.FiniteField.is_FF -sympy.polys.domains.finitefield.FiniteField.is_Field -sympy.polys.domains.finitefield.FiniteField.is_Numerical -sympy.polys.domains.finitefield.FiniteField.mod -sympy.polys.domains.finitefield.FiniteField.rep sympy.polys.domains.finitefield.GF sympy.polys.domains.fractionfield.FractionField.has_assoc_Field sympy.polys.domains.fractionfield.FractionField.has_assoc_Ring @@ -2782,7 +1792,6 @@ sympy.polys.domains.gaussiandomains.GaussianElement.__rmul__ sympy.polys.domains.gaussiandomains.GaussianElement.__slots__ sympy.polys.domains.gaussiandomains.GaussianInteger.base sympy.polys.domains.gaussiandomains.GaussianIntegerRing.dom -sympy.polys.domains.gaussiandomains.GaussianIntegerRing.dtype sympy.polys.domains.gaussiandomains.GaussianIntegerRing.has_CharacteristicZero sympy.polys.domains.gaussiandomains.GaussianIntegerRing.is_GaussianRing sympy.polys.domains.gaussiandomains.GaussianIntegerRing.is_PID @@ -2791,7 +1800,6 @@ sympy.polys.domains.gaussiandomains.GaussianIntegerRing.rep sympy.polys.domains.gaussiandomains.GaussianIntegerRing.units sympy.polys.domains.gaussiandomains.GaussianRational.base sympy.polys.domains.gaussiandomains.GaussianRationalField.dom -sympy.polys.domains.gaussiandomains.GaussianRationalField.dtype sympy.polys.domains.gaussiandomains.GaussianRationalField.has_CharacteristicZero sympy.polys.domains.gaussiandomains.GaussianRationalField.is_GaussianField sympy.polys.domains.gaussiandomains.GaussianRationalField.is_QQ_I @@ -2799,7 +1807,6 @@ sympy.polys.domains.gaussiandomains.GaussianRationalField.rep sympy.polys.domains.gaussiandomains.GaussianRationalField.units sympy.polys.domains.gaussiandomains.QQ_I sympy.polys.domains.gaussiandomains.ZZ_I -sympy.polys.domains.gmpyintegerring.GMPYIntegerRing.alias sympy.polys.domains.gmpyrationalfield.GMPYRationalField.alias sympy.polys.domains.integerring.IntegerRing.alias sympy.polys.domains.integerring.IntegerRing.has_assoc_Field @@ -2813,12 +1820,9 @@ sympy.polys.domains.modularinteger.ModularInteger.__slots__ sympy.polys.domains.mpelements.ComplexElement.__slots__ sympy.polys.domains.mpelements.RealElement.__slots__ sympy.polys.domains.mpelements.new -sympy.polys.domains.old_fractionfield.FractionField.dtype sympy.polys.domains.old_fractionfield.FractionField.has_assoc_Field sympy.polys.domains.old_fractionfield.FractionField.has_assoc_Ring sympy.polys.domains.old_fractionfield.FractionField.is_Frac -sympy.polys.domains.old_polynomialring.GeneralizedPolynomialRing.dtype -sympy.polys.domains.old_polynomialring.GlobalPolynomialRing.dtype sympy.polys.domains.old_polynomialring.GlobalPolynomialRing.is_Poly sympy.polys.domains.old_polynomialring.PolynomialRingBase.default_order sympy.polys.domains.old_polynomialring.PolynomialRingBase.has_assoc_Field @@ -2826,8 +1830,6 @@ sympy.polys.domains.old_polynomialring.PolynomialRingBase.has_assoc_Ring sympy.polys.domains.polynomialring.PolynomialRing.has_assoc_Field sympy.polys.domains.polynomialring.PolynomialRing.has_assoc_Ring sympy.polys.domains.polynomialring.PolynomialRing.is_Poly -sympy.polys.domains.pythonintegerring.PythonIntegerRing.alias -sympy.polys.domains.pythonrational.PythonRational sympy.polys.domains.pythonrationalfield.PythonRationalField.alias sympy.polys.domains.pythonrationalfield.PythonRationalField.dtype sympy.polys.domains.pythonrationalfield.PythonRationalField.one @@ -2888,7 +1890,6 @@ sympy.polys.matrices.sdm.SDM.diag sympy.polys.matrices.sdm.SDM.fmt sympy.polys.monomials.Monomial.__floordiv__ sympy.polys.monomials.Monomial.__slots__ -sympy.polys.monomials.MonomialOps.__new__ sympy.polys.numberfields.modules.ModuleElement.__radd__ sympy.polys.numberfields.modules.ModuleElement.__rmul__ sympy.polys.numberfields.modules.Submodule.__radd__ @@ -2910,7 +1911,6 @@ sympy.polys.orderings.igrevlex sympy.polys.orderings.igrlex sympy.polys.orderings.ilex sympy.polys.orderings.lex -sympy.polys.polyclasses.ANP.__new__ sympy.polys.polyclasses.ANP.__slots__ sympy.polys.polyclasses.ANP.exquo sympy.polys.polyclasses.ANP.per @@ -2921,7 +1921,6 @@ sympy.polys.polyclasses.DMF.new sympy.polys.polyclasses.DMF.one sympy.polys.polyclasses.DMF.per sympy.polys.polyclasses.DMF.zero -sympy.polys.polyclasses.DMP.__new__ sympy.polys.polyclasses.DMP.__slots__ sympy.polys.polyclasses.DMP.from_monoms_coeffs sympy.polys.polyclasses.DMP.one @@ -3320,7 +2319,6 @@ sympy.printing.pretty.pretty_symbology.unicode_warnings sympy.printing.pretty.stringpict.prettyForm.simpleFunctions sympy.printing.pretty.stringpict.stringPict.LINE sympy.printing.preview.__doctest_requires__ -sympy.printing.printer.Printer.printmethod sympy.printing.pycode.AbstractPythonCodePrinter._default_settings sympy.printing.pycode.AbstractPythonCodePrinter._kc sympy.printing.pycode.AbstractPythonCodePrinter._kf @@ -3385,15 +2383,9 @@ sympy.printing.tensorflow.TensorflowPrinter.mapping sympy.printing.tensorflow.TensorflowPrinter.printmethod sympy.printing.tensorflow.tensorflow sympy.quadratic_congruence -sympy.re._singularities -sympy.re.args -sympy.re.is_extended_real -sympy.re.unbranched sympy.satisfiable sympy.sec._is_even -sympy.sec._reciprocal_of sympy.sech._is_even -sympy.sech._reciprocal_of sympy.series.Order.__slots__ sympy.series.Order.is_Order sympy.series.SeqAdd.is_commutative @@ -3421,30 +2413,15 @@ sympy.sets.ConditionSet.condition sympy.sets.ConditionSet.sym sympy.sets.Contains sympy.sets.Contains.eval -sympy.sets.FiniteSet.is_FiniteSet -sympy.sets.FiniteSet.is_empty -sympy.sets.FiniteSet.is_finite_set -sympy.sets.FiniteSet.is_iterable sympy.sets.ImageSet.base_sets sympy.sets.ImageSet.lamda sympy.sets.Intersection.__new__ sympy.sets.Intersection.is_Intersection sympy.sets.Intersection.is_commutative -sympy.sets.Interval.is_Interval sympy.sets.Ordinal.__repr__ -sympy.sets.ProductSet.is_ProductSet sympy.sets.Range.start sympy.sets.Range.step sympy.sets.Range.stop -sympy.sets.Set.__slots__ -sympy.sets.Set.is_ComplexRegion -sympy.sets.Set.is_FiniteSet -sympy.sets.Set.is_Interval -sympy.sets.Set.is_ProductSet -sympy.sets.Set.is_Union -sympy.sets.Set.is_interval -sympy.sets.Set.is_iterable -sympy.sets.Set.is_number sympy.sets.SymmetricDifference.is_SymmetricDifference sympy.sets.Union.is_Union sympy.sets.Union.is_commutative @@ -3489,24 +2466,9 @@ sympy.sets.sets.EmptySet.__new__ sympy.sets.sets.EmptySet.is_FiniteSet sympy.sets.sets.EmptySet.is_empty sympy.sets.sets.EmptySet.is_finite_set -sympy.sets.sets.FiniteSet.is_FiniteSet -sympy.sets.sets.FiniteSet.is_empty -sympy.sets.sets.FiniteSet.is_finite_set -sympy.sets.sets.FiniteSet.is_iterable sympy.sets.sets.Intersection.__new__ sympy.sets.sets.Intersection.is_Intersection sympy.sets.sets.Intersection.is_commutative -sympy.sets.sets.Interval.is_Interval -sympy.sets.sets.ProductSet.is_ProductSet -sympy.sets.sets.Set.__slots__ -sympy.sets.sets.Set.is_ComplexRegion -sympy.sets.sets.Set.is_FiniteSet -sympy.sets.sets.Set.is_Interval -sympy.sets.sets.Set.is_ProductSet -sympy.sets.sets.Set.is_Union -sympy.sets.sets.Set.is_interval -sympy.sets.sets.Set.is_iterable -sympy.sets.sets.Set.is_number sympy.sets.sets.SymmetricDifference.is_SymmetricDifference sympy.sets.sets.Union.is_Union sympy.sets.sets.Union.is_commutative @@ -3645,13 +2607,11 @@ sympy.solvers.solvers.multi_inverses sympy.solvers.solveset.invert_complex sympy.stats.ContinuousDistributionHandmade._argnames sympy.stats.Covariance._eval_rewrite_as_Sum -sympy.stats.CrossCovarianceMatrix.is_commutative sympy.stats.Dirichlet sympy.stats.DiscreteDistributionHandmade._argnames sympy.stats.E sympy.stats.Expectation._eval_rewrite_as_Sum sympy.stats.Expectation.evaluate_sum -sympy.stats.ExpectationMatrix.is_commutative sympy.stats.H sympy.stats.P sympy.stats.Probability._eval_rewrite_as_Sum @@ -3660,7 +2620,6 @@ sympy.stats.StochasticStateSpaceOf.state_index sympy.stats.TransitionMatrixOf.matrix sympy.stats.TransitionMatrixOf.process sympy.stats.Variance._eval_rewrite_as_Sum -sympy.stats.VarianceMatrix.is_commutative sympy.stats.Wald sympy.stats.crv.ContinuousDomain.is_Continuous sympy.stats.crv.ContinuousPSpace.is_Continuous @@ -3814,9 +2773,6 @@ sympy.stats.stochastic_process_types.StochasticStateSpaceOf.process sympy.stats.stochastic_process_types.StochasticStateSpaceOf.state_index sympy.stats.stochastic_process_types.TransitionMatrixOf.matrix sympy.stats.stochastic_process_types.TransitionMatrixOf.process -sympy.stats.symbolic_multivariate_probability.CrossCovarianceMatrix.is_commutative -sympy.stats.symbolic_multivariate_probability.ExpectationMatrix.is_commutative -sympy.stats.symbolic_multivariate_probability.VarianceMatrix.is_commutative sympy.stats.symbolic_probability.Covariance._eval_rewrite_as_Sum sympy.stats.symbolic_probability.Expectation._eval_rewrite_as_Sum sympy.stats.symbolic_probability.Expectation.evaluate_sum @@ -3840,9 +2796,6 @@ sympy.tensor.NDimArray.is_scalar sympy.tensor.array.NDimArray._diff_wrt sympy.tensor.array.NDimArray.is_scalar sympy.tensor.array.array_derivatives.ArrayDerivative.is_scalar -sympy.tensor.array.expressions.array_expressions.ArrayElement._diff_wrt -sympy.tensor.array.expressions.array_expressions.ArrayElement.is_commutative -sympy.tensor.array.expressions.array_expressions.ArrayElement.is_symbol sympy.tensor.array.expressions.array_expressions._ArgE.__repr__ sympy.tensor.array.expressions.array_expressions._IndPos.__repr__ sympy.tensor.array.ndim_array.ImmutableNDimArray._op_priority diff --git a/stubs/sympy-stubs/tensor/array/expressions/array_expressions.pyi b/stubs/sympy-stubs/tensor/array/expressions/array_expressions.pyi index 54a7ba15..82bbba8b 100644 --- a/stubs/sympy-stubs/tensor/array/expressions/array_expressions.pyi +++ b/stubs/sympy-stubs/tensor/array/expressions/array_expressions.pyi @@ -22,9 +22,9 @@ class ArraySymbol(_ArrayExpr): def as_explicit(self) -> ImmutableDenseNDimArray: ... class ArrayElement(Expr): - _diff_wrt = ... - is_symbol = ... - is_commutative = ... + _diff_wrt: bool + is_symbol: bool + is_commutative: bool def __new__(cls, name, indices) -> Self: ... @property def name(self) -> Basic: ... diff --git a/stubs/sympy-stubs/tensor/tensor.pyi b/stubs/sympy-stubs/tensor/tensor.pyi index a8821c49..cf63bbbc 100644 --- a/stubs/sympy-stubs/tensor/tensor.pyi +++ b/stubs/sympy-stubs/tensor/tensor.pyi @@ -8,6 +8,7 @@ from sympy import ImmutableDenseNDimArray, ImmutableSparseNDimArray, Indexed, Mu from sympy.combinatorics.permutations import Perm from sympy.core import Basic, Expr from sympy.core.containers import Tuple +from sympy.core.numbers import One as _One from sympy.core.operations import AssocOp from sympy.core.sympify import CantSympify from sympy.matrices import Matrix @@ -342,7 +343,7 @@ class Tensor(TensExpr): def contract_delta(self, metric) -> Self: ... class TensMul(TensExpr, AssocOp): - identity = ... + identity: _One _index_structure: _IndexStructure = ... def __new__(cls, *args, **kw_args) -> Self: ... diff --git a/stubs/sympy-stubs/utilities/decorator.pyi b/stubs/sympy-stubs/utilities/decorator.pyi index 403f4ffd..f6e224d4 100644 --- a/stubs/sympy-stubs/utilities/decorator.pyi +++ b/stubs/sympy-stubs/utilities/decorator.pyi @@ -1,6 +1,8 @@ from functools import _Wrapped from types import FunctionType -from typing import Any, Callable +from typing import Any, Callable, TypeVar + +_T = TypeVar("_T") def threaded_factory(func, use_add) -> _Wrapped[..., Any, ..., Any]: ... def threaded(func) -> _Wrapped[..., Any, ..., Any]: ... @@ -12,7 +14,7 @@ class no_attrs_in_subclass: def __get__(self, instance, owner=...) -> Any: ... def doctest_depends_on(exe=..., modules=..., disable_viewers=..., python_version=...) -> Callable[..., type[Any] | Any]: ... -def public(obj) -> type: ... +def public(obj: _T) -> _T: ... def memoize_property(propfunc) -> property: ... def deprecated( message, *, deprecated_since_version, active_deprecations_target, stacklevel=... diff --git a/stubs/vispy/gloo/gl/_constants.pyi b/stubs/vispy/gloo/gl/_constants.pyi index 2fe0e59e..38199404 100644 --- a/stubs/vispy/gloo/gl/_constants.pyi +++ b/stubs/vispy/gloo/gl/_constants.pyi @@ -1,6 +1,17 @@ -class Enum(int): - def __new__(cls, name, value): ... - def __repr__(self): ... +import sys +from typing_extensions import disjoint_base + +# Variable-sized builtin subclasses have different layouts before Python 3.12. +if sys.version_info >= (3, 12): + class Enum(int): + def __new__(cls, name, value): ... + def __repr__(self): ... + +else: + @disjoint_base + class Enum(int): + def __new__(cls, name, value): ... + def __repr__(self): ... GL_ACTIVE_ATTRIBUTES = ... GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = ... diff --git a/stubs/vispy/scene/events.pyi b/stubs/vispy/scene/events.pyi index 1975643d..ac7db3d2 100644 --- a/stubs/vispy/scene/events.pyi +++ b/stubs/vispy/scene/events.pyi @@ -2,6 +2,7 @@ # Distributed under the (new) BSD License. See LICENSE.txt for more info. from ..util.event import Event +from ..util.keys import Key class SceneMouseEvent(Event): def __init__(self, event, visual): ... @@ -20,5 +21,7 @@ class SceneMouseEvent(Event): @property def buttons(self): ... @property + def modifiers(self) -> tuple[Key, ...]: ... + @property def delta(self): ... def copy(self): ... diff --git a/stubs/vispy/stubtest_allowlist.txt b/stubs/vispy/stubtest_allowlist.txt index 9751a191..a449d4e3 100644 --- a/stubs/vispy/stubtest_allowlist.txt +++ b/stubs/vispy/stubtest_allowlist.txt @@ -17,6 +17,7 @@ vispy.app.tests.test_backends vispy.app.tests.test_canvas vispy.app.tests.test_context vispy.app.tests.test_qt +vispy.app.tests.test_qt_mouse_buttons vispy.app.tests.test_simultaneous vispy.color.BaseColormap.bad_color vispy.color.BaseColormap.high_color @@ -83,6 +84,7 @@ vispy.scene.node.Node.set_picking vispy.scene.tests vispy.scene.tests.test_canvas vispy.scene.tests.test_node +vispy.scene.tests.test_viewbox vispy.scene.tests.test_visuals vispy.scene.visuals.__all__ vispy.scene.visuals.InstancedMesh @@ -129,6 +131,7 @@ vispy.visuals.Visual.pop_gl_state vispy.visuals.Visual.push_gl_state vispy.visuals.Visual.push_gl_state_update vispy.visuals._scalable_textures._ScaledTextureMixin.set_data +vispy.visuals.conftest vispy.visuals.filters.WireframeFilter.on_data_updated vispy.visuals.filters.base_filter.PrimitivePickingFilter vispy.visuals.filters.markers diff --git a/stubs/vispy/util/fonts/_vispy_fonts.pyi b/stubs/vispy/util/fonts/_vispy_fonts.pyi index 107c8de6..418ecb87 100644 --- a/stubs/vispy/util/fonts/_vispy_fonts.pyi +++ b/stubs/vispy/util/fonts/_vispy_fonts.pyi @@ -3,7 +3,10 @@ # Distributed under the (new) BSD License. See LICENSE.txt for more info. # ----------------------------------------------------------------------------- +from os import PathLike + # List the vispy fonts made available online _vispy_fonts = ... def _get_vispy_font_filename(face, bold, italic): ... +def register_vispy_font(path: str | PathLike[str], face: str, bold: bool, italic: bool) -> None: ... diff --git a/stubs/vispy/visuals/graphs/util.pyi b/stubs/vispy/visuals/graphs/util.pyi index 84d5c24f..32032278 100644 --- a/stubs/vispy/visuals/graphs/util.pyi +++ b/stubs/vispy/visuals/graphs/util.pyi @@ -3,6 +3,7 @@ import numpy as np +def issparse(obj: object) -> bool: ... def _get_edges(adjacency_mat): ... def _sparse_get_edges(adjacency_mat): ... def _ndarray_get_edges(adjacency_mat): ... diff --git a/stubs/vispy/visuals/line/line.pyi b/stubs/vispy/visuals/line/line.pyi index d8d91bb2..fd937b3f 100644 --- a/stubs/vispy/visuals/line/line.pyi +++ b/stubs/vispy/visuals/line/line.pyi @@ -30,12 +30,17 @@ class LineVisual(CompoundVisual): connect: str | ArrayLike = "strip", method: str = "gl", antialias: bool = False, + line_caps: tuple[str, str] = ("round", "round"), ): ... @property def join_types(self): ... @property def cap_types(self): ... @property + def line_caps(self) -> tuple[str, str]: ... + @line_caps.setter + def line_caps(self, line_caps: tuple[str, str]) -> None: ... + @property def antialias(self): ... @antialias.setter def antialias(self, aa): ... diff --git a/stubs/vispy/visuals/markers.pyi b/stubs/vispy/visuals/markers.pyi index 6fd3bb00..7b8e7f54 100644 --- a/stubs/vispy/visuals/markers.pyi +++ b/stubs/vispy/visuals/markers.pyi @@ -92,6 +92,10 @@ class MarkersVisual(Visual): @scaling.setter def scaling(self, value): ... @property + def canvas_size_limits(self) -> tuple[float | None, float | None] | list[float | None] | None: ... + @canvas_size_limits.setter + def canvas_size_limits(self, value: tuple[float | None, float | None] | list[float | None] | None) -> None: ... + @property def antialias(self): ... @antialias.setter def antialias(self, value): ... diff --git a/stubs/vispy/visuals/text/text.pyi b/stubs/vispy/visuals/text/text.pyi index 0335aa49..1ec2e4f1 100644 --- a/stubs/vispy/visuals/text/text.pyi +++ b/stubs/vispy/visuals/text/text.pyi @@ -35,7 +35,7 @@ _VERTEX_SHADER: str = ... _FRAGMENT_SHADER: str = ... -def _text_to_vbo(text, font, anchor_x, anchor_y, lowres_size): ... +def _text_to_vbo(text, font, anchor_x, anchor_y, lowres_size, line_height: float): ... class TextVisual(Visual): _shaders: dict = ... @@ -48,6 +48,7 @@ class TextVisual(Visual): italic: bool = False, face: str = "OpenSans", font_size: float = 12, + line_height: float = 1.1, pos=[0, 0, 0], rotation: float = 0.0, anchor_x: str = "center", @@ -55,6 +56,7 @@ class TextVisual(Visual): method: str = "cpu", font_manager: Any | None = None, depth_test: bool = False, + scaling: bool = False, ): ... @property def text(self): ... @@ -69,6 +71,14 @@ class TextVisual(Visual): @font_size.setter def font_size(self, size): ... @property + def line_height(self) -> float: ... + @line_height.setter + def line_height(self, height: float) -> None: ... + @property + def scaling(self) -> bool: ... + @scaling.setter + def scaling(self, value: bool) -> None: ... + @property def color(self): ... @color.setter def color(self, color): ... diff --git a/tests/skimage/test_estimation.py b/tests/skimage/test_estimation.py new file mode 100644 index 00000000..e496f19e --- /dev/null +++ b/tests/skimage/test_estimation.py @@ -0,0 +1,132 @@ +from __future__ import annotations + +import sys +import warnings +from typing_extensions import assert_type + +import numpy as np +from skimage.measure import CircleModel, EllipseModel, LineModelND +from skimage.transform import ( + AffineTransform, + EssentialMatrixTransform, + EuclideanTransform, + FundamentalMatrixTransform, + PiecewiseAffineTransform, + PolynomialTransform, + ProjectiveTransform, + SimilarityTransform, +) + + +def test_legacy_estimation() -> None: + angles = np.linspace(0, 2 * np.pi, 20, endpoint=False) + points = np.column_stack((3 * np.cos(angles), 2 * np.sin(angles))) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", FutureWarning) + circle = CircleModel() + ellipse = EllipseModel() + line = LineModelND() + assert circle.estimate(points) + assert line.estimate(np.array([[0, 0], [1, 1], [2, 2]])) + np.testing.assert_allclose(line.predict_y([0, 1]), [0, 1], atol=1e-14) + assert circle.predict_xy(angles).shape == points.shape + assert ellipse.predict_xy(angles, params=(0, 0, 3, 2, 0)).shape == points.shape + + +if sys.version_info >= (3, 11): + from skimage._shared.utils import FailedEstimation, FailedEstimationAccessError + from skimage.measure import RansacModelProtocol + + def check_single_array_protocol( + model: RansacModelProtocol[np.ndarray], model_class: type[RansacModelProtocol[np.ndarray]], data: np.ndarray + ) -> None: + model.residuals(data) + model_class.from_estimate(data) + model.residuals(data, data) # type: ignore[call-arg] + model_class.from_estimate(data, data) # type: ignore[call-arg] + + def check_two_array_protocol( + model: RansacModelProtocol[np.ndarray, np.ndarray], + model_class: type[RansacModelProtocol[np.ndarray, np.ndarray]], + data: np.ndarray, + ) -> None: + model.residuals(data, data) + model_class.from_estimate(data, data) + model.residuals(data) # type: ignore[call-arg] + model_class.from_estimate(data) # type: ignore[call-arg] + + def check_model_protocols( + circle: CircleModel, + ellipse: EllipseModel, + line: LineModelND, + affine: AffineTransform, + similarity: SimilarityTransform, + data: np.ndarray, + ) -> None: + model: RansacModelProtocol = circle + model = affine + assert isinstance(model, RansacModelProtocol) + check_single_array_protocol(circle, CircleModel, data) + check_single_array_protocol(ellipse, EllipseModel, data) + check_single_array_protocol(line, LineModelND, data) + check_two_array_protocol(affine, AffineTransform, data) + check_two_array_protocol(similarity, SimilarityTransform, data) + + def test_explicit_model_construction() -> None: + circle = CircleModel(center=(1, 2), radius=3) + ellipse = EllipseModel(center=(1, 2), axis_lengths=(3, 4), theta=0) + line = LineModelND(origin=(0, 0), direction=(1, 1)) + np.testing.assert_allclose(circle.predict_xy([0]), [[4, 2]]) + np.testing.assert_allclose(ellipse.predict_xy([0]), [[4, 2]]) + np.testing.assert_allclose(line.predict_y([0, 1]), [0, 1]) + assert isinstance(circle, RansacModelProtocol) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", FutureWarning) + np.testing.assert_allclose(circle.params, [1, 2, 3]) + np.testing.assert_allclose(ellipse.params, [1, 2, 3, 4, 0]) + origin, direction = line.params + assert origin is not None + assert direction is not None + np.testing.assert_allclose(origin, [0, 0]) + np.testing.assert_allclose(direction, [1, 1]) + + def test_model_from_estimate() -> None: + angles = np.linspace(0, 2 * np.pi, 20, endpoint=False) + circle_points = np.column_stack((np.cos(angles), np.sin(angles))) + circle = CircleModel.from_estimate(circle_points) + assert_type(circle, CircleModel | FailedEstimation) + assert isinstance(circle, CircleModel) + assert circle.radius is not None + np.testing.assert_allclose(circle.radius, 1) + ellipse = EllipseModel.from_estimate(np.array([[0, 0], [1, 1]])) + assert_type(ellipse, EllipseModel | FailedEstimation) + assert isinstance(ellipse, FailedEstimation) + assert not ellipse + line = LineModelND.from_estimate(np.array([[0, 0], [1, 1], [2, 2]])) + assert_type(line, LineModelND | FailedEstimation) + assert isinstance(line, LineModelND) + + failure = CircleModel.from_estimate(np.ones((3, 2))) + assert isinstance(failure, FailedEstimation) + assert_type(bool(failure), bool) + assert not failure + assert failure.message + assert failure.error_cls is FailedEstimationAccessError + + def test_transform_from_estimate() -> None: + src = np.array([[0, 0], [1, 0], [1, 1], [0, 1], [2, 0], [2, 1], [0, 2], [1, 2]], dtype=float) + affine = AffineTransform.from_estimate(src=src, dst=src, weights=np.ones(len(src))) + assert_type(affine, AffineTransform | FailedEstimation) + assert isinstance(affine, AffineTransform) + similarity = SimilarityTransform.from_estimate(src=src, dst=src) + assert_type(similarity, SimilarityTransform | FailedEstimation) + assert isinstance(similarity, SimilarityTransform) + assert isinstance(ProjectiveTransform.from_estimate(src, src), ProjectiveTransform) + assert isinstance(EuclideanTransform.from_estimate(src, src), EuclideanTransform) + assert isinstance(PiecewiseAffineTransform.from_estimate(src, src), PiecewiseAffineTransform) + assert isinstance(PolynomialTransform.from_estimate(src, src), PolynomialTransform) + assert isinstance(EssentialMatrixTransform.from_estimate(src, src), EssentialMatrixTransform) + assert isinstance(FundamentalMatrixTransform.from_estimate(src, src), FundamentalMatrixTransform) + assert_type(AffineTransform.identity(), AffineTransform) + assert_type(SimilarityTransform.identity(), SimilarityTransform) + assert_type(PolynomialTransform.identity(), PolynomialTransform) diff --git a/tests/sklearn/cython_constructors_tests.py b/tests/sklearn/cython_constructors_tests.py new file mode 100644 index 00000000..748ed66c --- /dev/null +++ b/tests/sklearn/cython_constructors_tests.py @@ -0,0 +1,22 @@ +from typing_extensions import assert_type + +from numpy import ndarray +from sklearn.tree._splitter import Splitter +from sklearn.tree._tree import BestFirstTreeBuilder, DepthFirstTreeBuilder +from sklearn.utils._seq_dataset import ArrayDataset32, ArrayDataset64, CSRDataset32, CSRDataset64 + + +class DatasetSubclass(ArrayDataset64): ... + + +def check_dataset_constructors(X: ndarray, y: ndarray, weights: ndarray, indptr: ndarray, indices: ndarray) -> None: + assert_type(ArrayDataset32(X, y, weights), ArrayDataset32) + assert_type(ArrayDataset64(X, y, weights, seed=2), ArrayDataset64) + assert_type(CSRDataset32(X, indptr, indices, y, weights), CSRDataset32) + assert_type(CSRDataset64(X, indptr, indices, y, weights, seed=2), CSRDataset64) + assert_type(DatasetSubclass(X, y, weights), DatasetSubclass) + + +def check_tree_builder_constructors(splitter: Splitter) -> None: + assert_type(DepthFirstTreeBuilder(splitter, 2, 1, 0.0, 10, 0.0), DepthFirstTreeBuilder) + assert_type(BestFirstTreeBuilder(splitter, 2, 1, 0.0, 10, 20, 0.0), BestFirstTreeBuilder) diff --git a/tests/sympy/sympy_tests.py b/tests/sympy/sympy_tests.py new file mode 100644 index 00000000..c096086b --- /dev/null +++ b/tests/sympy/sympy_tests.py @@ -0,0 +1,196 @@ +from typing import Any +from typing_extensions import assert_type + +import numpy as np +from sympy import ( + Add, + And, + Basic, + Catalan, + E, + EmptySequence, + EmptySet, + Expr, + I, + Integers, + Lambda, + MatAdd, + MatMul, + Mul, + Naturals0, + Or, + Pow, + S, + Symbol, + false, + nan, + oo, + pi, + true, + zoo, +) +from sympy.codegen.ast import Attribute, FloatType, SignedIntType, float64, int32, pointer_const +from sympy.codegen.fnodes import intent_in +from sympy.combinatorics import cube +from sympy.combinatorics.polyhedron import Polyhedron +from sympy.core import pi as core_pi +from sympy.core.containers import Tuple +from sympy.core.decorators import _sympifyit, call_highest_priority, sympify_method_args, sympify_return +from sympy.core.numbers import ( + Catalan as CatalanNumber, + ComplexInfinity, + Exp1, + Float, + ImaginaryUnit, + Infinity, + Integer, + NaN, + Pi, + Rational, +) +from sympy.core.singleton import SingletonRegistry +from sympy.functions.elementary.complexes import Abs, im, re +from sympy.functions.elementary.exponential import log +from sympy.functions.elementary.integers import RoundFunction, ceiling, floor, frac +from sympy.functions.elementary.trigonometric import atan +from sympy.logic.boolalg import Boolean, BooleanFalse, BooleanTrue +from sympy.matrices.expressions.matexpr import MatrixExpr +from sympy.matrices.expressions.special import GenericIdentity, GenericZeroMatrix +from sympy.physics.units import kilo +from sympy.physics.units.prefixes import PREFIXES, Prefix +from sympy.physics.units.unitsystem import UnitSystem +from sympy.polys.domains.gaussiandomains import GaussianRational, GaussianRationalField +from sympy.polys.domains.pythonrational import PythonRational +from sympy.polys.monomials import MonomialOps +from sympy.polys.polyclasses import ANP, DMP +from sympy.series.sequences import EmptySequence as EmptySequenceType +from sympy.sets.fancysets import Integers as IntegersType, Naturals0 as Naturals0Type +from sympy.sets.sets import EmptySet as EmptySetType, FiniteSet, Interval +from sympy.stats.crv_types import BetaDistribution +from sympy.utilities.decorator import public + +assert_type(S, SingletonRegistry) +S(1) +S(a=1) +S(1, locals={}) +S(a=1, locals={}, convert_xor=False, strict=True, rational=True, evaluate=False) +assert_type(pi, Pi) +assert_type(core_pi, Pi) +assert_type(E, Exp1) +assert_type(I, ImaginaryUnit) +assert_type(oo, Infinity) +assert_type(zoo, ComplexInfinity) +assert_type(nan, NaN) +assert_type(Catalan, CatalanNumber) +assert_type(true, BooleanTrue) +assert_type(false, BooleanFalse) +assert_type(EmptySet, EmptySetType) +assert_type(EmptySequence, EmptySequenceType) +assert_type(Integers, IntegersType) +assert_type(Naturals0, Naturals0Type) +assert_type(And.identity, BooleanTrue) +assert_type(And.zero, BooleanFalse) +assert_type(Or.identity, BooleanFalse) +assert_type(Or.zero, BooleanTrue) +assert_type(And.nargs, FiniteSet | Naturals0Type) +assert_type(MatAdd.identity, GenericZeroMatrix) +assert_type(MatMul.identity, GenericIdentity) +assert_type(kilo, Prefix) +assert_type(PREFIXES["k"], Prefix) +assert_type(pointer_const, Attribute) +assert_type(intent_in, Attribute) +assert_type(float64, FloatType) +assert_type(int32, SignedIntType) +assert_type(cube, Polyhedron) +assert_type(BetaDistribution.set, Interval) +assert_type(GaussianRationalField.zero, GaussianRational) +assert_type(GaussianRationalField.one, GaussianRational) +assert_type(GaussianRationalField.imag_unit, GaussianRational) +assert_type(MonomialOps(2), MonomialOps) +assert_type(BooleanTrue(), BooleanTrue) +assert_type(BooleanFalse(), BooleanFalse) + + +def check_singleton_required_argument() -> None: + S() # type: ignore[call-arg] + + +def check_methods( + basic: Basic, + add: Add, + mul: Mul, + power: Pow, + symbol: Symbol, + polyhedron: Polyhedron, + matrix: MatrixExpr, + rational: Rational, + elements: Tuple, + units: UnitSystem, +) -> None: + assert_type(basic.is_real, bool | None) + assert_type(basic.is_commutative, bool | None) + assert_type(add.args, tuple[Expr, ...]) + assert_type(mul.args, tuple[Expr, ...]) + assert_type(power.args, tuple[Expr, Expr]) + assert_type(symbol.binary_symbols, set[Symbol]) + assert_type(polyhedron.vertices, tuple[Any, ...] | Basic) + assert_type(rational.__radd__(rational), Rational | Integer | Float) + assert_type(elements.__rmul__(2), Tuple) + assert_type(units.get_dimensional_expr(basic), Expr) + assert_type(matrix.__array__(dtype=object, copy=True), np.ndarray[Any, np.dtype[np.object_]]) + basic.subs(arg1={symbol: pi}) + basic.subs(arg1=symbol, arg2=pi) + PythonRational(1, 2) + DMP([1, 0], object()) + ANP([1], [1, 0, 1], object()) + + +def check_read_only(basic: Basic, add: Add, mul: Mul, power: Pow, rounded: RoundFunction) -> None: + basic.is_real = True # type: ignore[misc] + basic.is_commutative = False # type: ignore[misc] + add.args = () # type: ignore[misc] + mul.args = () # type: ignore[misc] + power.args = (pi, pi) # type: ignore[misc] + rounded.args = (pi,) # type: ignore[misc] + + +def check_expression_properties( + absolute: Abs, real: re, imaginary: im, logarithm: log, arctangent: atan, function: Lambda, boolean: Boolean +) -> None: + assert_type(absolute.args, tuple[Expr]) + assert_type(real.args, tuple[Expr]) + assert_type(imaginary.args, tuple[Expr]) + assert_type(logarithm.args, tuple[Expr]) + assert_type(arctangent.args, tuple[Expr]) + assert_type(function.bound_symbols, tuple[Any, ...]) + boolean.__rand__(true) + boolean.__ror__(false) + boolean.__rxor__(true) + boolean.__rlshift__(false) + boolean.__rrshift__(true) + rounded: list[Expr] = [floor(pi), ceiling(pi), frac(pi)] + assert_type(rounded, list[Expr]) + + +@call_highest_priority("__radd__") +def priority_method(left: Rational, right: Rational) -> Rational: + return left + + +@_sympifyit("right", NotImplemented) +def sympified_method(left: Rational, right: Rational) -> Rational: + return left + + +@sympify_method_args +class Sympified: + @sympify_return([("other", "Sympified")], NotImplemented) + def method(self, other: "Sympified") -> int: + return 1 + + +assert_type(priority_method(Integer(1), Integer(2)), Rational) +assert_type(sympified_method(Integer(1), Integer(2)), Rational) +assert_type(Sympified().method(Sympified()), int) +assert_type(public(priority_method)(Integer(1), Integer(2)), Rational) +assert_type(public(Sympified)().method(Sympified()), int) diff --git a/tests/vispy/visuals_tests.py b/tests/vispy/visuals_tests.py new file mode 100644 index 00000000..7efbb8e1 --- /dev/null +++ b/tests/vispy/visuals_tests.py @@ -0,0 +1,23 @@ +from typing_extensions import assert_type + +from vispy.scene.events import SceneMouseEvent +from vispy.util.keys import Key +from vispy.visuals import LineVisual, MarkersVisual, TextVisual + + +def check_visual_properties(text: TextVisual, line: LineVisual, markers: MarkersVisual, event: SceneMouseEvent) -> None: + assert_type(text.line_height, float) + assert_type(text.scaling, bool) + assert_type(line.line_caps, tuple[str, str]) + assert_type(markers.canvas_size_limits, tuple[float | None, float | None] | list[float | None] | None) + assert_type(event.modifiers, tuple[Key, ...]) + + text.line_height = 1.5 + text.scaling = True + line.line_caps = ("round", "square") + markers.canvas_size_limits = (None, 20.0) + markers.canvas_size_limits = [5.0, None] + markers.canvas_size_limits = None + + assert_type(TextVisual("multiline\ntext", line_height=1.5, scaling=True), TextVisual) + assert_type(LineVisual(method="agg", line_caps=("round", "square")), LineVisual)