nox-uv 0.6.2__tar.gz → 0.7.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nox-uv
3
- Version: 0.6.2
3
+ Version: 0.7.0
4
4
  Summary: Facilitate nox integration with uv for Python projects
5
5
  Keywords: nox,uv
6
6
  Author: Dan Tebben
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Classifier: Topic :: Software Development :: Testing
22
23
  Classifier: Typing :: Typed
23
24
  Requires-Dist: nox>=2025.5.1
@@ -97,7 +98,7 @@ options.default_venv_backend = "uv"
97
98
 
98
99
 
99
100
  @session(
100
- python=["3.10", "3.11", "3.12", "3.13"],
101
+ python=["3.10", "3.11", "3.12", "3.13", "3.14"],
101
102
  uv_groups=["test"],
102
103
  )
103
104
  def test(s: Session) -> None:
@@ -129,7 +130,9 @@ def lint(s: Session) -> None:
129
130
  - `uv_only_groups`: list of `uv` _only-groups_ to include. Prevents installation of project
130
131
  _dependencies_
131
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`
132
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`
133
136
  - `uv_no_install_project`: boolean to not install the current project
134
137
  - `uv_sync_locked`: boolean to validate that `uv.lock` is up to date
135
138
 
@@ -68,7 +68,7 @@ options.default_venv_backend = "uv"
68
68
 
69
69
 
70
70
  @session(
71
- python=["3.10", "3.11", "3.12", "3.13"],
71
+ python=["3.10", "3.11", "3.12", "3.13", "3.14"],
72
72
  uv_groups=["test"],
73
73
  )
74
74
  def test(s: Session) -> None:
@@ -100,7 +100,9 @@ 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
106
108
 
@@ -1,12 +1,10 @@
1
1
  [project]
2
2
  name = "nox-uv"
3
- version = "0.6.2"
3
+ version = "0.7.0"
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 = [
@@ -21,14 +19,13 @@ classifiers = [
21
19
  "Programming Language :: Python :: 3.11",
22
20
  "Programming Language :: Python :: 3.12",
23
21
  "Programming Language :: Python :: 3.13",
22
+ "Programming Language :: Python :: 3.14",
24
23
  "Topic :: Software Development :: Testing",
25
24
  "Typing :: Typed",
26
25
  ]
27
26
 
28
27
  requires-python = ">=3.9"
29
- dependencies = [
30
- "nox>=2025.05.01",
31
- ]
28
+ dependencies = ["nox>=2025.05.01"]
32
29
 
33
30
  [project.urls]
34
31
  Homepage = "https://github.com/dantebben/nox-uv"
@@ -36,20 +33,17 @@ Repository = "https://github.com/dantebben/nox-uv"
36
33
  Issues = "https://github.com/dantebben/nox-uv/issues"
37
34
 
38
35
  [build-system]
39
- requires = ["uv_build>=0.8.4,<0.9.0"]
36
+ requires = ["uv_build>=0.9.0,<0.10.0"]
40
37
  build-backend = "uv_build"
41
38
 
42
39
  [dependency-groups]
43
- lint = [
44
- "ruff>=0.9.7",
45
- ]
40
+ lint = ["ruff>=0.9.7"]
46
41
  test = [
47
42
  "pytest>=8.4.0",
48
- "pytest-cov>=6.0.0",
49
- ]
50
- type_check = [
51
- "mypy>=1.15.0",
43
+ # TODO: Remove this upper bound when CoverageWarnings are fixed.
44
+ "pytest-cov<7",
52
45
  ]
46
+ type_check = ["mypy>=1.15.0"]
53
47
 
54
48
  [tool.uv]
55
49
  default-groups = "all"
@@ -67,25 +61,22 @@ src = ["src"]
67
61
 
68
62
  [tool.ruff.lint]
69
63
  select = [
70
- "F", # pyflakes
71
- "E", # pycodestyle
72
- "I", # isort
73
- "N", # pep8-naming
74
- "UP", # pyupgrade
64
+ "F", # pyflakes
65
+ "E", # pycodestyle
66
+ "I", # isort
67
+ "N", # pep8-naming
68
+ "UP", # pyupgrade
75
69
  "RUF", # ruff
76
- "B", # flake8-bugbear
77
- "C4", # flake8-comprehensions
70
+ "B", # flake8-bugbear
71
+ "C4", # flake8-comprehensions
78
72
  "ISC", # flake8-implicit-str-concat
79
73
  "PIE", # flake8-pie
80
- "PT", # flake-pytest-style
74
+ "PT", # flake-pytest-style
81
75
  "PTH", # flake8-use-pathlib
82
76
  "SIM", # flake8-simplify
83
77
  "TID", # flake8-tidy-imports
84
78
  ]
85
- extend-ignore = [
86
- "RUF005",
87
- "RUF012",
88
- ]
79
+ extend-ignore = ["RUF005", "RUF012"]
89
80
  unfixable = [
90
81
  # Disable removing unused imports by default and only enable within nox so editors don't delete
91
82
  # unused imports while the user is in the middle of editing a file on save.
@@ -101,10 +92,7 @@ split-on-trailing-comma = false
101
92
  ban-relative-imports = "all"
102
93
 
103
94
  [tool.pytest.ini_options]
104
- addopts = [
105
- "--strict-config",
106
- "--strict-markers",
107
- ]
95
+ addopts = ["--strict-config", "--strict-markers"]
108
96
  xfail_strict = true
109
97
  filterwarnings = ["error"]
110
98
 
@@ -25,7 +25,9 @@ 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,
31
33
  **kwargs: dict[str, Any],
@@ -54,7 +56,9 @@ def session(
54
56
  uv_groups=uv_groups,
55
57
  uv_extras=uv_extras,
56
58
  uv_all_extras=uv_all_extras,
59
+ uv_no_extras=uv_no_extras,
57
60
  uv_all_groups=uv_all_groups,
61
+ uv_no_groups=uv_no_groups,
58
62
  uv_only_groups=uv_only_groups,
59
63
  uv_no_install_project=uv_no_install_project,
60
64
  uv_sync_locked=uv_sync_locked,
@@ -82,9 +86,13 @@ def session(
82
86
 
83
87
  if uv_all_groups:
84
88
  extended_cmd.append("--all-groups")
89
+ # Add the no-group(s)
90
+ extended_cmd.extend([f"--no-group={g}" for g in uv_no_groups])
85
91
 
86
92
  if uv_all_extras:
87
93
  extended_cmd.append("--all-extras")
94
+ # Add the no-extra(s)
95
+ extended_cmd.extend([f"--no-extra={e}" for e in uv_no_extras])
88
96
 
89
97
  if uv_no_install_project:
90
98
  extended_cmd.append("--no-install-project")
File without changes
File without changes