nox-uv 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
nox_uv/__init__.py CHANGED
@@ -1,8 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- from collections.abc import Sequence
3
+ from collections.abc import Callable, Sequence
4
4
  import functools
5
- from typing import Any, Callable, TypeVar
5
+ from typing import Any, TypeVar
6
6
 
7
7
  import nox
8
8
 
@@ -25,16 +25,14 @@ def session(
25
25
  uv_extras: Sequence[str] = (),
26
26
  uv_all_extras: bool = False,
27
27
  uv_all_groups: bool = False,
28
- ) -> Callable[..., R]:
29
- """Drop-in replacement for the :func:`nox.session` decorator.
30
-
31
- Use this decorator instead of ``@nox.session``. Session functions are passed
32
- :class:`Session` instead of :class:`nox.sessions.Session`; otherwise, the
33
- decorators work exactly the same.
28
+ **kwargs: dict[str, Any],
29
+ ) -> Callable[..., Callable[..., R]]:
30
+ """Drop-in replacement for the :func:`nox.session` decorator to add support for `uv`.
34
31
 
35
32
  Args:
36
33
  args: Positional arguments are forwarded to ``nox.session``.
37
- kwargs: Keyword arguments are forwarded to ``nox.session``.
34
+ kwargs: Keyword arguments are forwarded to ``nox.session``. Used to catch any future
35
+ arguments of nox.session that aren't explicitely captured in nox_uv.session.
38
36
 
39
37
  Returns:
40
38
  The decorated session function.
@@ -54,12 +52,11 @@ def session(
54
52
  uv_extras=uv_extras,
55
53
  uv_all_extras=uv_all_extras,
56
54
  uv_all_groups=uv_all_groups,
55
+ **kwargs,
57
56
  ) # type: ignore
58
57
 
59
58
  [function] = args
60
59
 
61
- is_uv = venv_backend == "uv"
62
-
63
60
  # Create the `uv sync` command
64
61
  sync_cmd = ["uv", "sync", "--no-default-groups"]
65
62
 
@@ -79,7 +76,7 @@ def session(
79
76
 
80
77
  @functools.wraps(function)
81
78
  def wrapper(s: nox.Session, *_args: Any, **_kwargs: Any) -> None:
82
- if is_uv:
79
+ if s.venv_backend == "uv":
83
80
  env: dict[str, Any] = {"UV_PROJECT_ENVIRONMENT": s.virtualenv.location}
84
81
 
85
82
  # UV called from Nox does not respect the Python version set in the Nox session.
@@ -103,4 +100,5 @@ def session(
103
100
  tags=tags,
104
101
  default=default,
105
102
  requires=requires,
103
+ **kwargs,
106
104
  )
@@ -1,13 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nox-uv
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: Facilitate nox integration with uv for Python projects
5
5
  Project-URL: Homepage, https://github.com/dantebben/nox-uv
6
6
  Author-email: Dan Tebben <dantebben@gmail.com>
7
7
  License-Expression: MIT
8
8
  License-File: LICENSE.txt
9
- Requires-Python: <3.14,>=3.9
9
+ Requires-Python: >=3.10
10
10
  Requires-Dist: nox>=2025.2.9
11
+ Provides-Extra: doc
12
+ Requires-Dist: mkdocs; extra == 'doc'
13
+ Provides-Extra: plot
14
+ Requires-Dist: plotly; extra == 'plot'
11
15
  Description-Content-Type: text/markdown
12
16
 
13
17
  ## Intro
@@ -20,7 +24,7 @@ with the [uv](https://docs.astral.sh/uv/) package manager.
20
24
 
21
25
  To use, import `session` from `nox-uv` in your `nox-file`.
22
26
 
23
- **NOTE**: All `@session(...)` parameters are keyword-only, no positional parameters are allowed.
27
+ **NOTE**: All `@session(...)` parameters are keywords only, no positional parameters are allowed.
24
28
 
25
29
  **NOTE**: The `default_groups` defined in `pyproject.toml` are _not_ installed by default. The
26
30
  user must explicitly list the desired groups in the `uv_groups` parameter.
@@ -0,0 +1,6 @@
1
+ nox_uv/__init__.py,sha256=eh9dTo-E9s59XvbWuctYw6jclZhK38CR8CincSBrrgU,2969
2
+ nox_uv/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ nox_uv-0.2.0.dist-info/METADATA,sha256=gUGuU5-DqGrYtgO4GVD9cmIE0W4s3BitbR47IvQI6R0,1328
4
+ nox_uv-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
5
+ nox_uv-0.2.0.dist-info/licenses/LICENSE.txt,sha256=iTZ5ALF1isnM6Ey9Tjom0XIGBBysArB0I2NHZ9a-b8I,1067
6
+ nox_uv-0.2.0.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- nox_uv/__init__.py,sha256=z--lgqfIK0Gct163ynH9As7uRbcYNimDWiRUzJ4nljQ,2961
2
- nox_uv/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- nox_uv-0.1.0.dist-info/METADATA,sha256=cB7mMOq9UKdTh1yYgv0cvcwYYTQFADDKGE-ZF84b9ag,1214
4
- nox_uv-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
5
- nox_uv-0.1.0.dist-info/licenses/LICENSE.txt,sha256=iTZ5ALF1isnM6Ey9Tjom0XIGBBysArB0I2NHZ9a-b8I,1067
6
- nox_uv-0.1.0.dist-info/RECORD,,
File without changes