From 81b49a1573f767d8822de2de6f71a1635f3684ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:34:21 +0000 Subject: [PATCH 1/4] Bump pytest from 7.2.1 to 7.2.2 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.2.1 to 7.2.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.2.1...7.2.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 00a2beae..cf437a24 100644 --- a/poetry.lock +++ b/poetry.lock @@ -829,14 +829,14 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] [[package]] name = "pytest" -version = "7.2.1" +version = "7.2.2" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, - {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, + {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, + {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, ] [package.dependencies] From cdfd4d4c9e4bda21524e0c75c55e6244c99ac6a9 Mon Sep 17 00:00:00 2001 From: Thomas M Kehrenberg Date: Fri, 17 Mar 2023 15:14:48 +0100 Subject: [PATCH 2/4] Remove the implementation of @deprecated (#206) --- poetry.lock | 12 ---- pyproject.toml | 25 +++----- ranzen/decorators.py | 95 ++-------------------------- ranzen/misc.py | 6 +- ranzen/torch/loss.py | 2 +- ranzen/torch/optimizers/adafactor.py | 14 ++-- ranzen/torch/optimizers/lamb.py | 2 +- ranzen/torch/optimizers/sam.py | 2 +- ranzen/torch/schedulers.py | 8 ++- ranzen/torch/utils.py | 4 +- ranzen/types.py | 7 +- tests/decorator_test.py | 43 +++++++------ 12 files changed, 63 insertions(+), 157 deletions(-) diff --git a/poetry.lock b/poetry.lock index cf437a24..b412d876 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1009,18 +1009,6 @@ files = [ {file = "setproctitle-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7f2719a398e1a2c01c2a63bf30377a34d0b6ef61946ab9cf4d550733af8f1ef1"}, {file = "setproctitle-1.3.2-cp310-cp310-win32.whl", hash = "sha256:e425be62524dc0c593985da794ee73eb8a17abb10fe692ee43bb39e201d7a099"}, {file = "setproctitle-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:e85e50b9c67854f89635a86247412f3ad66b132a4d8534ac017547197c88f27d"}, - {file = "setproctitle-1.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a97d51c17d438cf5be284775a322d57b7ca9505bb7e118c28b1824ecaf8aeaa"}, - {file = "setproctitle-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:587c7d6780109fbd8a627758063d08ab0421377c0853780e5c356873cdf0f077"}, - {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d17c8bd073cbf8d141993db45145a70b307385b69171d6b54bcf23e5d644de"}, - {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e932089c35a396dc31a5a1fc49889dd559548d14cb2237adae260382a090382e"}, - {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e4f8f12258a8739c565292a551c3db62cca4ed4f6b6126664e2381acb4931bf"}, - {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:570d255fd99c7f14d8f91363c3ea96bd54f8742275796bca67e1414aeca7d8c3"}, - {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a8e0881568c5e6beff91ef73c0ec8ac2a9d3ecc9edd6bd83c31ca34f770910c4"}, - {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4bba3be4c1fabf170595b71f3af46c6d482fbe7d9e0563999b49999a31876f77"}, - {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:37ece938110cab2bb3957e3910af8152ca15f2b6efdf4f2612e3f6b7e5459b80"}, - {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db684d6bbb735a80bcbc3737856385b55d53f8a44ce9b46e9a5682c5133a9bf7"}, - {file = "setproctitle-1.3.2-cp311-cp311-win32.whl", hash = "sha256:ca58cd260ea02759238d994cfae844fc8b1e206c684beb8f38877dcab8451dfc"}, - {file = "setproctitle-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:88486e6cce2a18a033013d17b30a594f1c5cb42520c49c19e6ade40b864bb7ff"}, {file = "setproctitle-1.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:92c626edc66169a1b09e9541b9c0c9f10488447d8a2b1d87c8f0672e771bc927"}, {file = "setproctitle-1.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710e16fa3bade3b026907e4a5e841124983620046166f355bbb84be364bf2a02"}, {file = "setproctitle-1.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f29b75e86260b0ab59adb12661ef9f113d2f93a59951373eb6d68a852b13e83"}, diff --git a/pyproject.toml b/pyproject.toml index 504788b1..b2555e71 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,7 +60,7 @@ readme="README.md" # more groups with the --without option: ``poetry install --without torch``. [tool.poetry.dependencies] python = ">=3.8.0,<3.12" -typing-extensions = ">=4.4.0" +typing-extensions = ">=4.5.0" [tool.poetry.group.wandb.dependencies] pandas = { version = "^1.5.0" } @@ -86,21 +86,16 @@ darglint = "^1.8.0" pandas-stubs = ">=1.4.3.220718" [tool.pyright] -exclude = ["**/node_modules", "**/__pycache__", "**/.*"] -typeCheckingMode = "basic" +typeCheckingMode = "strict" pythonVersion = "3.8" -reportUnusedImport = "error" -reportDuplicateImport = "error" -reportIncompatibleVariableOverride = "error" -reportOverlappingOverload = "error" -reportUntypedNamedTuple = "error" -reportConstantRedefinition = "warning" -reportMissingImports = "error" -reportMissingTypeStubs = "warning" -reportUnusedVariable = "warning" -strictListInference = true -strictSetInference = true -strictParameterNoneValue = true +reportUnknownArgumentType = "none" +reportUnknownMemberType = "none" +reportUnknownVariableType = "none" +reportUnknownParameterType = "none" +reportMissingTypeArgument = "none" +reportUnnecessaryIsInstance = "none" +reportPrivateImportUsage = "none" +reportPrivateUsage = "warning" reportUnnecessaryTypeIgnoreComment = "warning" [tool.ruff] diff --git a/ranzen/decorators.py b/ranzen/decorators.py index 8b39f031..b0bf38fa 100644 --- a/ranzen/decorators.py +++ b/ranzen/decorators.py @@ -1,21 +1,12 @@ """Decorator functions.""" from __future__ import annotations from enum import Enum -from functools import partial -import inspect -from typing import Any, Callable, Protocol, TypeVar, cast, get_type_hints, overload +from typing import Any, Callable, Protocol, TypeVar, get_type_hints +from typing_extensions import deprecated -from loguru import logger -import wrapt # pyright: ignore +import wrapt # type: ignore -from ranzen.misc import some - -__all__ = [ - "deprecated", - "enum_name_str", - "implements", - "parsable", -] +__all__ = ["enum_name_str", "implements", "parsable"] _T = TypeVar("_T") @@ -27,82 +18,7 @@ def __call__(self, __x: _T) -> _T: ... -# Remember which deprecation warnings have been printed already. -_PRINTED_WARNING = {} - - -@overload -def deprecated( - wrapped: _F, - /, - *, - version: str | None = ..., - explanation: str | None = ..., -) -> _F: - ... - - -@overload -def deprecated( - wrapped: None = ..., - /, - *, - version: str | None = ..., - explanation: str | None = ..., -) -> IdentityFunction: - ... - - -def deprecated( - wrapped: _F | None = None, - /, - *, - version: str | None = None, - explanation: str | None = None, -) -> _F | IdentityFunction: - """ - Decorator which can be used for indicating that a function/class is deprecated and going to be removed. - Tracks down which function/class printed the warning and will print it only once per call. - - :param wrapped: Function/class to be marked as deprecated. - :param version: Version in which the function/class will be removed.. - :param explanation: Additional explanation, e.g. "Please, ``use another_function`` instead." . - - :returns: Function/class wrapped with a deprecation warning. - """ - - if wrapped is None: - return partial(deprecated, version=version, explanation=explanation) - - @wrapt.decorator - def wrapper(wrapped: _F, *args: Any, **kwargs: Any) -> _F: # pyright: ignore - # Check if we already warned about the given function/class. - if wrapped.__name__ not in _PRINTED_WARNING.keys(): - # Add to list so we won't log it again. - _PRINTED_WARNING[wrapped.__name__] = True - - # Prepare the warning message. - entity_name = "Class" if inspect.isclass(wrapped) else "Function" - msg = f"{entity_name} '{wrapped.__name__}' is deprecated" - - # Optionally, add version and explanation. - if some(version): - msg = f"{msg} and will be removed in version {version}" - - msg = f"{msg}." - if some(explanation): - msg = f"{msg} {explanation}" - - # Display the deprecated warning. - logger.warning(msg) - - # Call the function/initialise the class. - return cast(_F, wrapped) - - return wrapper(wrapped) - - -@deprecated(explanation="Use 'typing_extensions.override' instead.") +@deprecated("Use 'typing_extensions.override' instead.") class implements: # pylint: disable=invalid-name """Mark a function as implementing an interface. @@ -139,6 +55,7 @@ def parsable(func: _F) -> _F: E = TypeVar("E", bound=Enum) +@deprecated("Use `StrEnum` instead.") def enum_name_str(enum_class: type[E]) -> type[E]: """Patch the __str__ method of an enum so that it returns the name.""" # use the original __str__ method as __repr__ diff --git a/ranzen/misc.py b/ranzen/misc.py index 1749d634..77e84bd2 100644 --- a/ranzen/misc.py +++ b/ranzen/misc.py @@ -159,13 +159,13 @@ def __new__(cls: Type[_S], *values: str) -> _S: raise TypeError("errors must be a string, not %r" % (values[2])) value = str(*values) member = str.__new__(cls, value) - member._value_ = value - return member + member._value_ = value # pyright: ignore + return member # pyright: ignore def __str__(self) -> str: return str.__str__(self) - def _generate_next_value_( + def _generate_next_value_( # type: ignore name: str, start: int, # pyright: ignore count: int, # pyright: ignore diff --git a/ranzen/torch/loss.py b/ranzen/torch/loss.py index ca55b183..623a9c23 100644 --- a/ranzen/torch/loss.py +++ b/ranzen/torch/loss.py @@ -271,7 +271,7 @@ def reduction(self, value: ReductionType | str) -> None: value = str_to_enum(str_=value, enum=ReductionType) self._reduction = value - def forward( + def forward( # pyright: ignore self, input: Tensor, *, diff --git a/ranzen/torch/optimizers/adafactor.py b/ranzen/torch/optimizers/adafactor.py index f7f54a7d..4dd30686 100644 --- a/ranzen/torch/optimizers/adafactor.py +++ b/ranzen/torch/optimizers/adafactor.py @@ -102,32 +102,34 @@ def __init__( ) super().__init__(params, defaults) - def _get_lr(self, param_group: ParamGroup, param_state) -> float: + def _get_lr(self, param_group: ParamGroup, param_state: ParamState) -> float: rel_step_sz = param_group["lr"] if param_group["relative_step"]: min_step = 1e-6 * param_state["step"] if param_group["warmup_init"] else 1e-2 rel_step_sz = min(min_step, 1.0 / math.sqrt(param_state["step"])) param_scale = 1.0 if param_group["multiply_by_parameter_scale"]: - param_scale = max(param_group["eps"][1], param_state["rms"]) + param_scale = max(param_group["eps"][1], param_state["rms"]) # type: ignore return param_scale * rel_step_sz - def _get_options(self, param_group: ParamGroup, param_shape: Sequence[int]): + def _get_options( + self, param_group: ParamGroup, param_shape: Sequence[int] + ) -> tuple[bool, bool]: factored = len(param_shape) >= 2 use_first_moment = param_group["beta1"] is not None return factored, use_first_moment def _rms(self, tensor: Tensor) -> Tensor: - return tensor.norm(p=2) / (tensor.numel() ** 0.5) # type: ignore + return tensor.norm(p=2) / (tensor.numel() ** 0.5) # pyright: ignore - def _approx_sq_grad(self, *, exp_avg_sq_row: Tensor, exp_avg_sq_col: Tensor): + def _approx_sq_grad(self, *, exp_avg_sq_row: Tensor, exp_avg_sq_col: Tensor) -> Tensor: r_factor = ( (exp_avg_sq_row / exp_avg_sq_row.mean(dim=-1, keepdim=True)).rsqrt_().unsqueeze(-1) ) c_factor = exp_avg_sq_col.unsqueeze(-2).rsqrt() return torch.mul(r_factor, c_factor) - def step(self, closure: LossClosure | None = None) -> Tensor | None: + def step(self, closure: LossClosure | None = None) -> Tensor | None: # type: ignore """Performs a single optimization step. :param closure: A closure that reevaluates the model and returns the loss. :returns: loss returned by the closure if ``closure`` is not ``None`` else ``None``. diff --git a/ranzen/torch/optimizers/lamb.py b/ranzen/torch/optimizers/lamb.py index 3614ff11..05716ab4 100644 --- a/ranzen/torch/optimizers/lamb.py +++ b/ranzen/torch/optimizers/lamb.py @@ -68,7 +68,7 @@ def __init__( super().__init__(params=params, defaults=defaults) # type: ignore @override - def step(self, closure: LossClosure | None = None) -> Tensor | None: + def step(self, closure: LossClosure | None = None) -> Tensor | None: # type: ignore r"""Performs a single optimization step. :param closure: A closure that reevaluates the model and returns the loss. diff --git a/ranzen/torch/optimizers/sam.py b/ranzen/torch/optimizers/sam.py index 1dae8458..836e5b80 100644 --- a/ranzen/torch/optimizers/sam.py +++ b/ranzen/torch/optimizers/sam.py @@ -99,7 +99,7 @@ def _second_step(self, zero_grad: bool = False) -> None: @torch.no_grad() @override - def step(self, closure: LossClosure) -> Tensor: + def step(self, closure: LossClosure) -> Tensor: # type: ignore r"""Performs a single optimization step. :param closure: A closure that reevaluates the model and returns the loss. diff --git a/ranzen/torch/schedulers.py b/ranzen/torch/schedulers.py index 4616794d..a6a17fc5 100644 --- a/ranzen/torch/schedulers.py +++ b/ranzen/torch/schedulers.py @@ -41,7 +41,7 @@ def __init__( super().__init__(optimizer=optimizer, last_epoch=last_epoch) @override - def get_lr(self) -> list[float]: + def get_lr(self) -> list[float]: # type: ignore """ Get the learning rate of each parameter group. @@ -135,7 +135,7 @@ def scheduler(self) -> Union[LinearWarmupLR, CosineAnnealingLR]: return self._scheduler @override - def get_lr(self) -> list[float]: + def get_lr(self) -> list[float]: # type: ignore """ Get the learning rate of each parameter group. @@ -304,7 +304,9 @@ def __post_init__(self) -> None: if self.warmup_steps == 0: self.step_size = 0 # type: ignore else: - self.step_size = (self.end_val / self.start_val) ** (1 / self.warmup_steps) # type: ignore + self.step_size = (self.end_val / self.start_val) ** ( # pyright: ignore + 1 / self.warmup_steps + ) @override def _update(self, value: T) -> T: diff --git a/ranzen/torch/utils.py b/ranzen/torch/utils.py index 55e84281..12757e22 100644 --- a/ranzen/torch/utils.py +++ b/ranzen/torch/utils.py @@ -37,8 +37,8 @@ def random_seed(seed_value: int, *, use_cuda: bool) -> None: if use_cuda: torch.cuda.manual_seed(seed_value) torch.cuda.manual_seed_all(seed_value) - torch.backends.cudnn.deterministic = True # type: ignore - torch.backends.cudnn.benchmark = False # type: ignore + torch.backends.cudnn.deterministic = True # pyright: ignore + torch.backends.cudnn.benchmark = False # pyright: ignore T = TypeVar("T") diff --git a/ranzen/types.py b/ranzen/types.py index 70f17f0c..5e9475c7 100644 --- a/ranzen/types.py +++ b/ranzen/types.py @@ -3,12 +3,7 @@ from typing import Any, ClassVar, TypedDict, TypeVar, get_type_hints from typing_extensions import Protocol, Self, TypeGuard, runtime_checkable -__all__ = [ - "Addable", - "DataclassInstance", - "Sized", - "is_td_instance", -] +__all__ = ["Addable", "DataclassInstance", "Sized", "is_td_instance"] T_co = TypeVar("T_co", covariant=True) diff --git a/tests/decorator_test.py b/tests/decorator_test.py index 54404052..48ce72f8 100644 --- a/tests/decorator_test.py +++ b/tests/decorator_test.py @@ -2,24 +2,30 @@ from __future__ import annotations from enum import Enum, auto from typing import List, Union +from typing_extensions import deprecated import pytest -from ranzen import deprecated, enum_name_str, parsable +from ranzen import enum_name_str, parsable # pyright: ignore -@pytest.mark.parametrize("explanation", [None, "All things that have form eventually decay."]) -@pytest.mark.parametrize("version", [None, "4.2"]) -def test_deprecated(explanation: str | None, version: str | None) -> None: - @deprecated(explanation=explanation, version=version) - class Foo: # pyright: ignore +@pytest.mark.parametrize("explanation", ["All things that have form eventually decay."]) +def test_deprecated(explanation: str) -> None: + @deprecated(explanation) + class Foo: def __init__(self) -> None: ... - @deprecated(explanation=explanation, version=version) - def foo() -> None: # pyright: ignore + with pytest.deprecated_call(): + Foo() # pyright: ignore + + @deprecated(explanation) + def foo() -> None: ... + with pytest.deprecated_call(): + foo() # pyright: ignore + def test_parsable() -> None: class Foo: # pyright: ignore @@ -44,19 +50,20 @@ def __init__(self, a: int, b: int | float, c: List[str]): # pyright: ignore ... -@enum_name_str -class Stage(Enum): - """An enum for the stage of model-development.""" +def test_enum_str() -> None: + with pytest.deprecated_call(): - fit = auto() - """fitting stage""" - validate = auto() - """validation stage""" - test = auto() - """testing stage""" + @enum_name_str # pyright: ignore + class Stage(Enum): + """An enum for the stage of model-development.""" + fit = auto() + """fitting stage""" + validate = auto() + """validation stage""" + test = auto() + """testing stage""" -def test_enum_str() -> None: for stage in Stage: assert f"{stage}" == stage.name assert f"{stage!r}" == f"Stage.{stage.name}" From aed299ac29cea4ec36fc1bf8302192fe44889e82 Mon Sep 17 00:00:00 2001 From: Thomas MK Date: Fri, 17 Mar 2023 15:32:34 +0100 Subject: [PATCH 3/4] Convert all poetry groups back to extras --- .github/workflows/ci.yml | 2 +- pyproject.toml | 38 ++++++++++++++++++++------------------ ranzen/decorators.py | 2 -- tests/optimizers_test.py | 2 +- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c8a13e1..9daa731e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,7 +92,7 @@ jobs: # ---------------------------------------------- - name: Install dependencies if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction --no-root + run: poetry install --no-interaction --no-root -E all # ---------------------------------------------- # ----- install and run pyright ----- diff --git a/pyproject.toml b/pyproject.toml index b2555e71..7b41ce8a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ extra_standard_library = ["dataclasses", "__future__", "typing_extensions"] line_length = 88 profile = "black" force_sort_within_sections = "True" -classes = ["MISSING"] +classes = ["MISSING", "LAMB", "SAM"] [tool.poetry] name = "ranzen" @@ -51,32 +51,34 @@ classifiers=[ "Typing :: Typed", ] keywords=["typing", "python"] -repository="https://github.com/predictive-analytics-lab/ranzen" +repository="https://github.com/wearepal/ranzen" readme="README.md" -# By default, dependencies across all non-optional groups will be installed when executing poetry install. -# If you only want to install the default, non-grouped dependencies (aka the main group), you can -# do so with the --only option: ``poetry install --only main``. Equally, you can exclude one or -# more groups with the --without option: ``poetry install --without torch``. [tool.poetry.dependencies] python = ">=3.8.0,<3.12" typing-extensions = ">=4.5.0" -[tool.poetry.group.wandb.dependencies] -pandas = { version = "^1.5.0" } -wandb = { version= ">=0.12,<0.14" } +# wandb dependencies +pandas = { version = "^1.5.0", optional = true } +wandb = { version= ">=0.12,<0.14", optional = true } -[tool.poetry.group.logging.dependencies] -wrapt = "^1.14.1" -loguru = "^0.6.0" +# logging dependencies +loguru = { version = "^0.6.0", optional = true } -[tool.poetry.group.torch.dependencies] -torch = { version = ">=1.12.1" } -numpy = { version = "^1.23.2" } +# torch dependencies +torch = { version = ">=1.12.1", optional = true } +numpy = { version = "^1.23.2", optional = true } -[tool.poetry.group.hydra.dependencies] -hydra-core = { version = "^1.3.0" } -neoconfigen = { version = ">=2.3.3" } +# hydra dependencies +hydra-core = { version = "^1.3.0", optional = true } +neoconfigen = { version = ">=2.3.3", optional = true } + +[tool.poetry.extras] +wandb = ["pandas", "wandb"] +logging = ["loguru"] +torch = ["torch", "numpy"] +hydra = ["hydra-core", "neoconfigen"] +all = ["hydra-core", "loguru", "neoconfigen", "numpy", "pandas", "torch", "wandb"] [tool.poetry.group.dev.dependencies] black = "^23.1" diff --git a/ranzen/decorators.py b/ranzen/decorators.py index b0bf38fa..9a374d44 100644 --- a/ranzen/decorators.py +++ b/ranzen/decorators.py @@ -4,8 +4,6 @@ from typing import Any, Callable, Protocol, TypeVar, get_type_hints from typing_extensions import deprecated -import wrapt # type: ignore - __all__ = ["enum_name_str", "implements", "parsable"] diff --git a/tests/optimizers_test.py b/tests/optimizers_test.py index 0b63f9b1..e9da5ff8 100644 --- a/tests/optimizers_test.py +++ b/tests/optimizers_test.py @@ -5,7 +5,7 @@ from torch import Tensor from torch.optim import AdamW -from ranzen.torch.optimizers import LAMB, SAM, Adafactor +from ranzen.torch.optimizers import Adafactor, LAMB, SAM @pytest.mark.parametrize("debias", [True, False]) From 3a4b226df9b15e11950cbc82ee24789dd839e200 Mon Sep 17 00:00:00 2001 From: Thomas MK Date: Fri, 17 Mar 2023 14:35:47 +0000 Subject: [PATCH 4/4] Regenerate lock file --- poetry.lock | 276 ++++++++++++++++++++-------------------------------- 1 file changed, 105 insertions(+), 171 deletions(-) diff --git a/poetry.lock b/poetry.lock index b412d876..35de1cc2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,11 +1,11 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. [[package]] name = "antlr4-python3-runtime" version = "4.9.3" description = "ANTLR 4.9.3 runtime for Python 3.7" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, @@ -15,8 +15,8 @@ files = [ name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, @@ -96,8 +96,8 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.6" files = [ {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, @@ -108,8 +108,8 @@ files = [ name = "charset-normalizer" version = "3.0.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "charset-normalizer-3.0.1.tar.gz", hash = "sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f"}, @@ -206,7 +206,7 @@ files = [ name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "dev" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -221,7 +221,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "dev" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -245,8 +245,8 @@ files = [ name = "docker-pycreds" version = "0.4.0" description = "Python bindings for the docker credentials store API" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "docker-pycreds-0.4.0.tar.gz", hash = "sha256:6ce3270bcaf404cc4c3e27e4b6c70d3521deae82fb508767870fdbf772d584d4"}, @@ -275,8 +275,8 @@ test = ["pytest (>=6)"] name = "gitdb" version = "4.0.10" description = "Git Object Database" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, @@ -290,8 +290,8 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.30" description = "GitPython is a python library used to interact with Git repositories" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "GitPython-3.1.30-py3-none-any.whl", hash = "sha256:cd455b0000615c60e286208ba540271af9fe531fa6a87cc590a7298785ab2882"}, @@ -305,8 +305,8 @@ gitdb = ">=4.0.1,<5" name = "hydra-core" version = "1.3.2" description = "A framework for elegantly configuring complex applications" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "hydra-core-1.3.2.tar.gz", hash = "sha256:8a878ed67216997c3e9d88a8e72e7b4767e81af37afb4ea3334b269a4390a824"}, @@ -323,8 +323,8 @@ packaging = "*" name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.5" files = [ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, @@ -335,8 +335,8 @@ files = [ name = "importlib-resources" version = "5.10.2" description = "Read resources from Python packages" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "importlib_resources-5.10.2-py3-none-any.whl", hash = "sha256:7d543798b0beca10b6a01ac7cafda9f822c54db9e8376a6bf57e0cbd74d486b6"}, @@ -384,8 +384,8 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jinja2" version = "2.11.3" description = "A very fast and expressive template engine." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, @@ -402,8 +402,8 @@ i18n = ["Babel (>=0.8)"] name = "loguru" version = "0.6.0" description = "Python logging made (stupidly) simple" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.5" files = [ {file = "loguru-0.6.0-py3-none-any.whl", hash = "sha256:4e2414d534a2ab57573365b3e6d0234dfb1d84b68b7f3b948e6fb743860a77c3"}, @@ -421,8 +421,8 @@ dev = ["Sphinx (>=4.1.1)", "black (>=19.10b0)", "colorama (>=0.3.4)", "docutils name = "markupsafe" version = "2.0.1" description = "Safely add untrusted strings to HTML/XML markup." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.6" files = [ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, @@ -500,7 +500,7 @@ files = [ name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "dev" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -512,8 +512,8 @@ files = [ name = "neoconfigen" version = "2.3.3" description = "A fork of hydra-core's configen with extended type-compatibility." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.8,<4.0" files = [ {file = "neoconfigen-2.3.3-py3-none-any.whl", hash = "sha256:e9f3040baefb380b12b6f65d52525bc6b0a330c1446f5161fa85483e1062e5b0"}, @@ -530,8 +530,8 @@ typing-inspect = ">=0.7.1,<0.8.0" name = "numpy" version = "1.24.2" description = "Fundamental package for array computing in Python" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.8" files = [ {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, @@ -568,8 +568,8 @@ files = [ name = "nvidia-cublas-cu11" version = "11.10.3.66" description = "CUBLAS native runtime libraries" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3" files = [ {file = "nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl", hash = "sha256:d32e4d75f94ddfb93ea0a5dda08389bcc65d8916a25cb9f37ac89edaeed3bded"}, @@ -584,8 +584,8 @@ wheel = "*" name = "nvidia-cuda-nvrtc-cu11" version = "11.7.99" description = "NVRTC native runtime libraries" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3" files = [ {file = "nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl", hash = "sha256:9f1562822ea264b7e34ed5930567e89242d266448e936b85bc97a3370feabb03"}, @@ -601,8 +601,8 @@ wheel = "*" name = "nvidia-cuda-runtime-cu11" version = "11.7.99" description = "CUDA Runtime native Libraries" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3" files = [ {file = "nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl", hash = "sha256:cc768314ae58d2641f07eac350f40f99dcb35719c4faff4bc458a7cd2b119e31"}, @@ -617,8 +617,8 @@ wheel = "*" name = "nvidia-cudnn-cu11" version = "8.5.0.96" description = "cuDNN runtime libraries" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3" files = [ {file = "nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl", hash = "sha256:402f40adfc6f418f9dae9ab402e773cfed9beae52333f6d86ae3107a1b9527e7"}, @@ -633,8 +633,8 @@ wheel = "*" name = "omegaconf" version = "2.3.0" description = "A flexible configuration library" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.6" files = [ {file = "omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b"}, @@ -649,7 +649,7 @@ PyYAML = ">=5.1.0" name = "packaging" version = "23.0" description = "Core utilities for Python packages" -category = "dev" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -661,8 +661,8 @@ files = [ name = "pandas" version = "1.5.3" description = "Powerful data structures for data analysis, time series, and statistics" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.8" files = [ {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, @@ -737,8 +737,8 @@ files = [ name = "pathtools" version = "0.1.2" description = "File system general utilities" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "pathtools-0.1.2.tar.gz", hash = "sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0"}, @@ -780,8 +780,8 @@ testing = ["pytest", "pytest-benchmark"] name = "protobuf" version = "4.21.12" description = "" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "protobuf-4.21.12-cp310-abi3-win32.whl", hash = "sha256:b135410244ebe777db80298297a97fbb4c862c881b4403b71bac9d4107d61fd1"}, @@ -804,8 +804,8 @@ files = [ name = "psutil" version = "5.9.4" description = "Cross-platform lib for process and system monitoring in Python." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, @@ -855,8 +855,8 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2. name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, @@ -870,8 +870,8 @@ six = ">=1.5" name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, @@ -882,8 +882,8 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.6" files = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, @@ -932,8 +932,8 @@ files = [ name = "requests" version = "2.28.2" description = "Python HTTP for Humans." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7, <4" files = [ {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, @@ -954,8 +954,8 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "sentry-sdk" version = "1.14.0" description = "Python client for Sentry (https://sentry.io)" -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "sentry-sdk-1.14.0.tar.gz", hash = "sha256:273fe05adf052b40fd19f6d4b9a5556316807246bd817e5e3482930730726bb0"}, @@ -993,8 +993,8 @@ tornado = ["tornado (>=5)"] name = "setproctitle" version = "1.3.2" description = "A Python module to customize the process title" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "setproctitle-1.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:288943dec88e178bb2fd868adf491197cc0fc8b6810416b1c6775e686bab87fe"}, @@ -1009,6 +1009,18 @@ files = [ {file = "setproctitle-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7f2719a398e1a2c01c2a63bf30377a34d0b6ef61946ab9cf4d550733af8f1ef1"}, {file = "setproctitle-1.3.2-cp310-cp310-win32.whl", hash = "sha256:e425be62524dc0c593985da794ee73eb8a17abb10fe692ee43bb39e201d7a099"}, {file = "setproctitle-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:e85e50b9c67854f89635a86247412f3ad66b132a4d8534ac017547197c88f27d"}, + {file = "setproctitle-1.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a97d51c17d438cf5be284775a322d57b7ca9505bb7e118c28b1824ecaf8aeaa"}, + {file = "setproctitle-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:587c7d6780109fbd8a627758063d08ab0421377c0853780e5c356873cdf0f077"}, + {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d17c8bd073cbf8d141993db45145a70b307385b69171d6b54bcf23e5d644de"}, + {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e932089c35a396dc31a5a1fc49889dd559548d14cb2237adae260382a090382e"}, + {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e4f8f12258a8739c565292a551c3db62cca4ed4f6b6126664e2381acb4931bf"}, + {file = "setproctitle-1.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:570d255fd99c7f14d8f91363c3ea96bd54f8742275796bca67e1414aeca7d8c3"}, + {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a8e0881568c5e6beff91ef73c0ec8ac2a9d3ecc9edd6bd83c31ca34f770910c4"}, + {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4bba3be4c1fabf170595b71f3af46c6d482fbe7d9e0563999b49999a31876f77"}, + {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:37ece938110cab2bb3957e3910af8152ca15f2b6efdf4f2612e3f6b7e5459b80"}, + {file = "setproctitle-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db684d6bbb735a80bcbc3737856385b55d53f8a44ce9b46e9a5682c5133a9bf7"}, + {file = "setproctitle-1.3.2-cp311-cp311-win32.whl", hash = "sha256:ca58cd260ea02759238d994cfae844fc8b1e206c684beb8f38877dcab8451dfc"}, + {file = "setproctitle-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:88486e6cce2a18a033013d17b30a594f1c5cb42520c49c19e6ade40b864bb7ff"}, {file = "setproctitle-1.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:92c626edc66169a1b09e9541b9c0c9f10488447d8a2b1d87c8f0672e771bc927"}, {file = "setproctitle-1.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710e16fa3bade3b026907e4a5e841124983620046166f355bbb84be364bf2a02"}, {file = "setproctitle-1.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f29b75e86260b0ab59adb12661ef9f113d2f93a59951373eb6d68a852b13e83"}, @@ -1066,8 +1078,8 @@ test = ["pytest"] name = "setuptools" version = "67.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "setuptools-67.1.0-py3-none-any.whl", hash = "sha256:a7687c12b444eaac951ea87a9627c4f904ac757e7abdc5aac32833234af90378"}, @@ -1083,8 +1095,8 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, @@ -1095,8 +1107,8 @@ files = [ name = "smmap" version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.6" files = [ {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, @@ -1119,8 +1131,8 @@ files = [ name = "torch" version = "1.13.1" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7.0" files = [ {file = "torch-1.13.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:fd12043868a34a8da7d490bf6db66991108b00ffbeecb034228bfcbbd4197143"}, @@ -1184,8 +1196,8 @@ files = [ name = "typing-inspect" version = "0.7.1" description = "Runtime inspection utilities for typing module." -category = "dev" -optional = false +category = "main" +optional = true python-versions = "*" files = [ {file = "typing_inspect-0.7.1-py2-none-any.whl", hash = "sha256:b1f56c0783ef0f25fb064a01be6e5407e54cf4a4bf4f3ba3fe51e0bd6dcea9e5"}, @@ -1201,8 +1213,8 @@ typing-extensions = ">=3.7.4" name = "urllib3" version = "1.26.14" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ {file = "urllib3-1.26.14-py2.py3-none-any.whl", hash = "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"}, @@ -1218,8 +1230,8 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "wandb" version = "0.13.11" description = "A CLI and library for interacting with the Weights and Biases API." -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.6" files = [ {file = "wandb-0.13.11-py3-none-any.whl", hash = "sha256:e584ac7fb0097fba8a030d5aedc5fea157286aba69a2e6e6e689b794155fcc8f"}, @@ -1260,8 +1272,8 @@ sweeps = ["sweeps (>=0.2.0)"] name = "wheel" version = "0.38.4" description = "A built-package format for Python" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "wheel-0.38.4-py3-none-any.whl", hash = "sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8"}, @@ -1275,8 +1287,8 @@ test = ["pytest (>=3.0.0)"] name = "win32-setctime" version = "1.1.0" description = "A small Python utility to set file creation time on Windows" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.5" files = [ {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, @@ -1286,97 +1298,12 @@ files = [ [package.extras] dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] -[[package]] -name = "wrapt" -version = "1.15.0" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, - {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, - {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, - {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, - {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, - {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, - {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, - {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, - {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, - {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, - {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, - {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, - {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, - {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, - {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, - {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, - {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, - {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, - {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, -] - [[package]] name = "zipp" version = "3.12.1" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" -optional = false +category = "main" +optional = true python-versions = ">=3.7" files = [ {file = "zipp-3.12.1-py3-none-any.whl", hash = "sha256:6c4fe274b8f85ec73c37a8e4e3fa00df9fb9335da96fb789e3b96b318e5097b3"}, @@ -1387,7 +1314,14 @@ files = [ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +[extras] +all = ["hydra-core", "loguru", "neoconfigen", "numpy", "pandas", "torch", "wandb"] +hydra = ["hydra-core", "neoconfigen"] +logging = ["loguru"] +torch = ["numpy", "torch"] +wandb = ["pandas", "wandb"] + [metadata] lock-version = "2.0" python-versions = ">=3.8.0,<3.12" -content-hash = "830a3a75fb96705e96a36e1494d190c9a85f6fcd228b3a23e25ffcb60132ab17" +content-hash = "5fce3744bcb90449484c7a1c275fec6b7e820a444da47d44907c3848d4f5aa51"