Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/release-notes/3984.chore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove compatibility helper for passing parameters positionally {smaller}`P Angerer`
2 changes: 0 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ dependencies = [
"fast-array-utils[accel,sparse]>=1.2.1",
"h5py>=3.11",
"joblib",
"legacy-api-wrap>=1.5", # for positional API deprecations
"matplotlib>=3.9",
"natsort",
"networkx>=2.8.8",
Expand Down Expand Up @@ -214,7 +213,6 @@ lint.pylint.max-args = 10
lint.pylint.max-positional-args = 5

[tool.ruff.lint.flake8-tidy-imports.banned-api]
"legacy_api_wrap.legacy_api".msg = "Use scanpy._compat.old_positionals instead"
"numba.jit".msg = "Use `scanpy._compat.njit` instead"
"numba.njit".msg = "Use `scanpy._compat.njit` instead"
"numpy.bool".msg = "Use `np.bool_` instead for numpy>=1.24<2 compatibility"
Expand Down
14 changes: 1 addition & 13 deletions src/scanpy/_compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from pathlib import Path
from typing import TYPE_CHECKING, Literal, cast, overload

import legacy_api_wrap
from packaging.version import Version
from scipy import sparse

Expand All @@ -26,7 +25,6 @@
"deprecated",
"fullname",
"njit",
"old_positionals",
"pkg_metadata",
"pkg_version",
"warn",
Expand Down Expand Up @@ -79,17 +77,7 @@ def pkg_version(package: str) -> Version:


# File prefixes for us and decorators we use
_FILE_PREFIXES: tuple[str, ...] = (
str(Path(__file__).parent),
str(Path(legacy_api_wrap.__file__).parent),
)


old_positionals = partial(
legacy_api_wrap.legacy_api, # noqa: TID251
category=FutureWarning,
skip_file_prefixes=_FILE_PREFIXES,
)
_FILE_PREFIXES: tuple[str, ...] = (str(Path(__file__).parent),)


# we’re not using _FILE_PREFIXES here,
Expand Down
16 changes: 1 addition & 15 deletions src/scanpy/_settings/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from typing import TYPE_CHECKING, Literal, get_args

from .. import logging
from .._compat import deprecated, old_positionals
from .._compat import deprecated
from .._singleton import SingletonMeta, documenting
from ..logging import _RootLogger, _set_log_file, _set_log_level
from .verbosity import Verbosity
Expand Down Expand Up @@ -334,20 +334,6 @@ def categories_to_ignore(cls, categories_to_ignore: Iterable[str]) -> None:
def set_figure_params(cls, *args, **kwargs) -> None:
cls._set_figure_params(*args, **kwargs)

@old_positionals(
"scanpy",
"dpi",
"dpi_save",
"frameon",
"vector_friendly",
"fontsize",
"figsize",
"color_map",
"format",
"facecolor",
"transparent",
"ipython_format",
)
def _set_figure_params( # noqa: PLR0913
cls,
*,
Expand Down
5 changes: 1 addition & 4 deletions src/scanpy/datasets/_datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from anndata import AnnData, OldFormatWarning

from .. import _utils
from .._compat import deprecated, old_positionals
from .._compat import deprecated
from .._settings import settings
from .._utils._doctests import doctest_internet, doctest_needs
from ..readwrite import read, read_h5ad, read_visium
Expand Down Expand Up @@ -54,9 +54,6 @@
HERE = Path(__file__).parent


@old_positionals(
"n_variables", "n_centers", "cluster_std", "n_observations", "random_state"
)
def blobs(
*,
n_variables: int = 11,
Expand Down
19 changes: 0 additions & 19 deletions src/scanpy/external/exporting.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
from fast_array_utils.stats import mean_var
from pandas.api.types import CategoricalDtype

from .._compat import old_positionals
from .._utils import NeighborsView

if TYPE_CHECKING:
Expand All @@ -25,14 +24,6 @@
__all__ = ["cellbrowser", "spring_project"]


@old_positionals(
"subplot_name",
"cell_groupings",
"custom_color_tracks",
"total_counts_key",
"neighbors_key",
"overwrite",
)
def spring_project( # noqa: PLR0912, PLR0915
adata: AnnData,
project_dir: Path | str,
Expand Down Expand Up @@ -472,16 +463,6 @@ def _export_paga_to_spring(adata, paga_coords, outpath) -> None:
Path(outpath).write_text(json.dumps(paga_data, indent=4))


@old_positionals(
"embedding_keys",
"annot_keys",
"cluster_field",
"nb_marker",
"skip_matrix",
"html_dir",
"port",
"do_debug",
)
def cellbrowser( # noqa: PLR0913
adata: AnnData,
data_dir: Path | str,
Expand Down
14 changes: 1 addition & 13 deletions src/scanpy/external/pl.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import matplotlib.pyplot as plt
import numpy as np

from .._compat import deprecated, old_positionals
from .._compat import deprecated
from .._utils import _doc_params
from .._utils._doctests import doctest_needs
from ..plotting import _scrublet, _utils, embedding
Expand Down Expand Up @@ -162,7 +162,6 @@ def harmony_timeseries(
return axes


@old_positionals("c", "cmap", "linewidth", "edgecolor", "axes", "colorbar", "s")
def sam(
adata: AnnData,
projection: str | np.ndarray = "X_umap",
Expand Down Expand Up @@ -257,17 +256,6 @@ def sam(
return axes


@old_positionals(
"no_bins",
"smoothing_factor",
"min_delta",
"show_variance",
"figsize",
"return_fig",
"show",
"save",
"ax",
)
@_doc_params(show_save_ax=doc_show_save_ax)
def wishbone_marker_trajectory( # noqa: PLR0913
adata: AnnData,
Expand Down
2 changes: 0 additions & 2 deletions src/scanpy/external/pp/_bbknn.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

from typing import TYPE_CHECKING

from ..._compat import old_positionals
from ..._utils._doctests import doctest_needs

if TYPE_CHECKING:
Expand All @@ -12,7 +11,6 @@
from sklearn.metrics import DistanceMetric


@old_positionals("batch_key", "use_rep", "approx", "use_annoy", "metric", "copy")
@doctest_needs("bbknn")
def bbknn( # noqa: PLR0913
adata: AnnData,
Expand Down
27 changes: 0 additions & 27 deletions src/scanpy/external/pp/_dca.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
from types import MappingProxyType
from typing import TYPE_CHECKING

from ..._compat import old_positionals

if TYPE_CHECKING:
from collections.abc import Mapping, Sequence
from typing import Any, Literal
Expand All @@ -16,31 +14,6 @@
type _AEType = Literal["zinb-conddisp", "zinb", "nb-conddisp", "nb"]


@old_positionals(
"ae_type",
"normalize_per_cell",
"scale",
"log1p",
"hidden_size",
"hidden_dropout",
"batchnorm",
"activation",
"init",
"network_kwds",
"epochs",
"reduce_lr",
"early_stop",
"batch_size",
"optimizer",
"random_state",
"threads",
"learning_rate",
"verbose",
"training_kwds",
"return_model",
"return_info",
"copy",
)
def dca( # noqa: PLR0913
adata: AnnData,
mode: Literal["denoise", "latent"] = "denoise",
Expand Down
2 changes: 0 additions & 2 deletions src/scanpy/external/pp/_harmony_integrate.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import numpy as np

from ..._compat import old_positionals
from ..._utils._doctests import doctest_needs

if TYPE_CHECKING:
Expand All @@ -15,7 +14,6 @@
from anndata import AnnData


@old_positionals("basis", "adjusted_basis")
@doctest_needs("harmonypy")
def harmony_integrate(
adata: AnnData,
Expand Down
4 changes: 0 additions & 4 deletions src/scanpy/external/pp/_hashsolo.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
import pandas as pd
from scipy.stats import norm

from ..._compat import old_positionals
from ..._utils import check_nonnegative_integers
from ..._utils._doctests import doctest_skip

Expand Down Expand Up @@ -292,9 +291,6 @@ def _calculate_bayes_rule(
}


@old_positionals(
"priors", "pre_existing_clusters", "number_of_noise_barcodes", "inplace"
)
@doctest_skip("Illustrative but not runnable doctest code")
def hashsolo(
adata: AnnData,
Expand Down
4 changes: 0 additions & 4 deletions src/scanpy/external/pp/_scanorama_integrate.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,12 @@

import numpy as np

from ..._compat import old_positionals
from ..._utils._doctests import doctest_needs

if TYPE_CHECKING:
from anndata import AnnData


@old_positionals(
"basis", "adjusted_basis", "knn", "sigma", "approx", "alpha", "batch_size"
)
@doctest_needs("scanorama")
def scanorama_integrate(
adata: AnnData,
Expand Down
2 changes: 0 additions & 2 deletions src/scanpy/external/tl/_harmony_timeseries.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@
import pandas as pd

from ... import logging as logg
from ..._compat import old_positionals
from ..._utils._doctests import doctest_needs

if TYPE_CHECKING:
from anndata import AnnData


@old_positionals("n_neighbors", "n_components", "n_jobs", "copy")
@doctest_needs("harmony")
def harmony_timeseries(
adata: AnnData,
Expand Down
22 changes: 0 additions & 22 deletions src/scanpy/external/tl/_palantir.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,12 @@
import pandas as pd

from ... import logging as logg
from ..._compat import old_positionals
from ..._utils._doctests import doctest_needs

if TYPE_CHECKING:
from anndata import AnnData


@old_positionals(
"n_components",
"knn",
"alpha",
"use_adjacency_matrix",
"distances_key",
"n_eigs",
"impute_data",
"n_steps",
"copy",
)
@doctest_needs("palantir")
def palantir(
adata: AnnData,
Expand Down Expand Up @@ -254,16 +242,6 @@ def palantir(
return adata if copy else None


@old_positionals(
"ms_data",
"terminal_states",
"knn",
"num_waypoints",
"n_jobs",
"scale_components",
"use_early_cell_as_start",
"max_iterations",
)
def palantir_results(
adata: AnnData,
early_cell: str,
Expand Down
16 changes: 0 additions & 16 deletions src/scanpy/external/tl/_phate.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from typing import TYPE_CHECKING

from ... import logging as logg
from ..._compat import old_positionals
from ..._settings import settings
from ..._utils._doctests import doctest_needs

Expand All @@ -17,21 +16,6 @@
from ..._utils.random import _LegacyRandom


@old_positionals(
"k",
"a",
"n_landmark",
"t",
"gamma",
"n_pca",
"knn_dist",
"mds_dist",
"mds",
"n_jobs",
"random_state",
"verbose",
"copy",
)
@doctest_needs("phate")
def phate( # noqa: PLR0913
adata: AnnData,
Expand Down
Loading
Loading