nox-uv 0.6.3__tar.gz → 0.7.1__tar.gz
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-0.6.3 → nox_uv-0.7.1}/PKG-INFO +6 -3
- {nox_uv-0.6.3 → nox_uv-0.7.1}/README.md +5 -2
- {nox_uv-0.6.3 → nox_uv-0.7.1}/pyproject.toml +17 -32
- {nox_uv-0.6.3 → nox_uv-0.7.1}/src/nox_uv/__init__.py +14 -0
- {nox_uv-0.6.3 → nox_uv-0.7.1}/LICENSE.txt +0 -0
- {nox_uv-0.6.3 → nox_uv-0.7.1}/src/nox_uv/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nox-uv
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Facilitate nox integration with uv for Python projects
|
|
5
5
|
Keywords: nox,uv
|
|
6
6
|
Author: Dan Tebben
|
|
@@ -121,7 +121,7 @@ def lint(s: Session) -> None:
|
|
|
121
121
|
|
|
122
122
|
> [!NOTE]
|
|
123
123
|
> The `default_groups` defined in `pyproject.toml` are _not_ installed by default. The
|
|
124
|
-
> user must explicitly list the desired groups in the `uv_groups` parameter.
|
|
124
|
+
> user must explicitly list the desired groups in the `uv_groups` parameter.
|
|
125
125
|
|
|
126
126
|
### Added parameters
|
|
127
127
|
|
|
@@ -130,12 +130,15 @@ def lint(s: Session) -> None:
|
|
|
130
130
|
- `uv_only_groups`: list of `uv` _only-groups_ to include. Prevents installation of project
|
|
131
131
|
_dependencies_
|
|
132
132
|
- `uv_all_extras`: boolean to install all _optional-dependencies_ from `pyproject.toml`
|
|
133
|
+
- `uv_no_extras`: list of extras to exclude during install of `uv_all_extras`
|
|
133
134
|
- `uv_all_groups`: boolean to install all _dependency-groups_
|
|
135
|
+
- `uv_no_groups`: list of groups to exclude during install of `uv_all_groups`
|
|
134
136
|
- `uv_no_install_project`: boolean to not install the current project
|
|
135
137
|
- `uv_sync_locked`: boolean to validate that `uv.lock` is up to date
|
|
138
|
+
- `uv_quiet`: boolean to silence `uv sync` command
|
|
136
139
|
|
|
137
140
|
|
|
138
141
|
## Inspiration
|
|
139
142
|
|
|
140
|
-
This is heavily influenced by, but much more limited than,
|
|
143
|
+
This is heavily influenced by, but much more limited than,
|
|
141
144
|
[nox-poetry](https://nox-poetry.readthedocs.io).
|
|
@@ -91,7 +91,7 @@ def lint(s: Session) -> None:
|
|
|
91
91
|
|
|
92
92
|
> [!NOTE]
|
|
93
93
|
> The `default_groups` defined in `pyproject.toml` are _not_ installed by default. The
|
|
94
|
-
> user must explicitly list the desired groups in the `uv_groups` parameter.
|
|
94
|
+
> user must explicitly list the desired groups in the `uv_groups` parameter.
|
|
95
95
|
|
|
96
96
|
### Added parameters
|
|
97
97
|
|
|
@@ -100,12 +100,15 @@ def lint(s: Session) -> None:
|
|
|
100
100
|
- `uv_only_groups`: list of `uv` _only-groups_ to include. Prevents installation of project
|
|
101
101
|
_dependencies_
|
|
102
102
|
- `uv_all_extras`: boolean to install all _optional-dependencies_ from `pyproject.toml`
|
|
103
|
+
- `uv_no_extras`: list of extras to exclude during install of `uv_all_extras`
|
|
103
104
|
- `uv_all_groups`: boolean to install all _dependency-groups_
|
|
105
|
+
- `uv_no_groups`: list of groups to exclude during install of `uv_all_groups`
|
|
104
106
|
- `uv_no_install_project`: boolean to not install the current project
|
|
105
107
|
- `uv_sync_locked`: boolean to validate that `uv.lock` is up to date
|
|
108
|
+
- `uv_quiet`: boolean to silence `uv sync` command
|
|
106
109
|
|
|
107
110
|
|
|
108
111
|
## Inspiration
|
|
109
112
|
|
|
110
|
-
This is heavily influenced by, but much more limited than,
|
|
113
|
+
This is heavily influenced by, but much more limited than,
|
|
111
114
|
[nox-poetry](https://nox-poetry.readthedocs.io).
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "nox-uv"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.7.1"
|
|
4
4
|
description = "Facilitate nox integration with uv for Python projects"
|
|
5
5
|
keywords = ["nox", "uv"]
|
|
6
6
|
readme = "README.md"
|
|
7
|
-
authors = [
|
|
8
|
-
{ name = "Dan Tebben", email = "dantebben@gmail.com" }
|
|
9
|
-
]
|
|
7
|
+
authors = [{ name = "Dan Tebben", email = "dantebben@gmail.com" }]
|
|
10
8
|
license = "MIT"
|
|
11
9
|
license-files = ["LICENSE.txt"]
|
|
12
10
|
classifiers = [
|
|
@@ -27,9 +25,7 @@ classifiers = [
|
|
|
27
25
|
]
|
|
28
26
|
|
|
29
27
|
requires-python = ">=3.9"
|
|
30
|
-
dependencies = [
|
|
31
|
-
"nox>=2025.05.01",
|
|
32
|
-
]
|
|
28
|
+
dependencies = ["nox>=2025.05.01"]
|
|
33
29
|
|
|
34
30
|
[project.urls]
|
|
35
31
|
Homepage = "https://github.com/dantebben/nox-uv"
|
|
@@ -41,18 +37,13 @@ requires = ["uv_build>=0.9.0,<0.10.0"]
|
|
|
41
37
|
build-backend = "uv_build"
|
|
42
38
|
|
|
43
39
|
[dependency-groups]
|
|
44
|
-
lint = [
|
|
45
|
-
"ruff>=0.9.7",
|
|
46
|
-
]
|
|
40
|
+
lint = ["ruff>=0.9.7"]
|
|
47
41
|
test = [
|
|
48
42
|
"pytest>=8.4.0",
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"coverage==7.10.7",
|
|
52
|
-
]
|
|
53
|
-
type_check = [
|
|
54
|
-
"mypy>=1.15.0",
|
|
43
|
+
# TODO: Remove this upper bound when CoverageWarnings are fixed.
|
|
44
|
+
"pytest-cov<7",
|
|
55
45
|
]
|
|
46
|
+
type_check = ["mypy>=1.15.0"]
|
|
56
47
|
|
|
57
48
|
[tool.uv]
|
|
58
49
|
default-groups = "all"
|
|
@@ -70,25 +61,22 @@ src = ["src"]
|
|
|
70
61
|
|
|
71
62
|
[tool.ruff.lint]
|
|
72
63
|
select = [
|
|
73
|
-
"F",
|
|
74
|
-
"E",
|
|
75
|
-
"I",
|
|
76
|
-
"N",
|
|
77
|
-
"UP",
|
|
64
|
+
"F", # pyflakes
|
|
65
|
+
"E", # pycodestyle
|
|
66
|
+
"I", # isort
|
|
67
|
+
"N", # pep8-naming
|
|
68
|
+
"UP", # pyupgrade
|
|
78
69
|
"RUF", # ruff
|
|
79
|
-
"B",
|
|
80
|
-
"C4",
|
|
70
|
+
"B", # flake8-bugbear
|
|
71
|
+
"C4", # flake8-comprehensions
|
|
81
72
|
"ISC", # flake8-implicit-str-concat
|
|
82
73
|
"PIE", # flake8-pie
|
|
83
|
-
"PT",
|
|
74
|
+
"PT", # flake-pytest-style
|
|
84
75
|
"PTH", # flake8-use-pathlib
|
|
85
76
|
"SIM", # flake8-simplify
|
|
86
77
|
"TID", # flake8-tidy-imports
|
|
87
78
|
]
|
|
88
|
-
extend-ignore = [
|
|
89
|
-
"RUF005",
|
|
90
|
-
"RUF012",
|
|
91
|
-
]
|
|
79
|
+
extend-ignore = ["RUF005", "RUF012"]
|
|
92
80
|
unfixable = [
|
|
93
81
|
# Disable removing unused imports by default and only enable within nox so editors don't delete
|
|
94
82
|
# unused imports while the user is in the middle of editing a file on save.
|
|
@@ -104,10 +92,7 @@ split-on-trailing-comma = false
|
|
|
104
92
|
ban-relative-imports = "all"
|
|
105
93
|
|
|
106
94
|
[tool.pytest.ini_options]
|
|
107
|
-
addopts = [
|
|
108
|
-
"--strict-config",
|
|
109
|
-
"--strict-markers",
|
|
110
|
-
]
|
|
95
|
+
addopts = ["--strict-config", "--strict-markers"]
|
|
111
96
|
xfail_strict = true
|
|
112
97
|
filterwarnings = ["error"]
|
|
113
98
|
|
|
@@ -25,9 +25,12 @@ def session(
|
|
|
25
25
|
uv_extras: Sequence[str] = (),
|
|
26
26
|
uv_only_groups: Sequence[str] = (),
|
|
27
27
|
uv_all_extras: bool = False,
|
|
28
|
+
uv_no_extras: Sequence[str] = (),
|
|
28
29
|
uv_all_groups: bool = False,
|
|
30
|
+
uv_no_groups: Sequence[str] = (),
|
|
29
31
|
uv_no_install_project: bool = False,
|
|
30
32
|
uv_sync_locked: bool = True,
|
|
33
|
+
uv_quiet: bool = False,
|
|
31
34
|
**kwargs: dict[str, Any],
|
|
32
35
|
) -> Callable[..., Callable[..., R]]:
|
|
33
36
|
"""Drop-in replacement for the :func:`nox.session` decorator to add support for `uv`.
|
|
@@ -54,10 +57,13 @@ def session(
|
|
|
54
57
|
uv_groups=uv_groups,
|
|
55
58
|
uv_extras=uv_extras,
|
|
56
59
|
uv_all_extras=uv_all_extras,
|
|
60
|
+
uv_no_extras=uv_no_extras,
|
|
57
61
|
uv_all_groups=uv_all_groups,
|
|
62
|
+
uv_no_groups=uv_no_groups,
|
|
58
63
|
uv_only_groups=uv_only_groups,
|
|
59
64
|
uv_no_install_project=uv_no_install_project,
|
|
60
65
|
uv_sync_locked=uv_sync_locked,
|
|
66
|
+
uv_quiet=uv_quiet,
|
|
61
67
|
**kwargs,
|
|
62
68
|
) # type: ignore
|
|
63
69
|
|
|
@@ -71,6 +77,10 @@ def session(
|
|
|
71
77
|
if uv_sync_locked:
|
|
72
78
|
sync_cmd.append("--locked")
|
|
73
79
|
|
|
80
|
+
# Silence uv command
|
|
81
|
+
if uv_quiet:
|
|
82
|
+
sync_cmd.append("--quiet")
|
|
83
|
+
|
|
74
84
|
# Add the groups
|
|
75
85
|
extended_cmd.extend([f"--group={g}" for g in uv_groups])
|
|
76
86
|
|
|
@@ -82,9 +92,13 @@ def session(
|
|
|
82
92
|
|
|
83
93
|
if uv_all_groups:
|
|
84
94
|
extended_cmd.append("--all-groups")
|
|
95
|
+
# Add the no-group(s)
|
|
96
|
+
extended_cmd.extend([f"--no-group={g}" for g in uv_no_groups])
|
|
85
97
|
|
|
86
98
|
if uv_all_extras:
|
|
87
99
|
extended_cmd.append("--all-extras")
|
|
100
|
+
# Add the no-extra(s)
|
|
101
|
+
extended_cmd.extend([f"--no-extra={e}" for e in uv_no_extras])
|
|
88
102
|
|
|
89
103
|
if uv_no_install_project:
|
|
90
104
|
extended_cmd.append("--no-install-project")
|
|
File without changes
|
|
File without changes
|