python-update-checker 0.10.0__tar.gz → 0.12.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.
Files changed (25) hide show
  1. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/PKG-INFO +14 -10
  2. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/README.md +9 -9
  3. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/pyproject.toml +10 -4
  4. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/pyproject.toml.orig +10 -4
  5. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/__init__.py +1 -1
  6. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/uvlock.py +11 -7
  7. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/data/uv.lock +6 -1
  8. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/test_uv_lock.py +1 -0
  9. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/.gitignore +0 -0
  10. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/.ruff.toml +0 -0
  11. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/Makefile +0 -0
  12. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/scripts/install_dev.sh +0 -0
  13. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/cli.py +0 -0
  14. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/dependencies.py +0 -0
  15. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/logging.py +0 -0
  16. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/pyprojecttoml.py +0 -0
  17. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/src/puc/requirementstxt.py +0 -0
  18. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/__init__.py +0 -0
  19. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/data/other-requirements.txt +0 -0
  20. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/data/pyproject.toml +0 -0
  21. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/data/pyproject_compatible.toml +0 -0
  22. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/data/requirements.txt +0 -0
  23. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/test_latest.py +0 -0
  24. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/test_pyproject_toml.py +0 -0
  25. {python_update_checker-0.10.0 → python_update_checker-0.12.0}/tests/test_requirements_txt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-update-checker
3
- Version: 0.10.0
3
+ Version: 0.12.0
4
4
  License-Expression: GPL-3.0-only
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Environment :: Console
@@ -14,6 +14,10 @@ Classifier: Programming Language :: Python :: 3.14
14
14
  Classifier: Topic :: Software Development :: Build Tools
15
15
  Requires-Dist: packaging>=26.1
16
16
  Requires-Python: >=3.11
17
+ Project-URL: Changelog, https://github.com/wummel/python-update-checker/blob/main/CHANGELOG.md
18
+ Project-URL: Homepage, https://github.com/wummel/python-update-checker
19
+ Project-URL: Issues, https://github.com/wummel/python-update-checker/issues
20
+ Project-URL: Repository, https://github.com/wummel/python-update-checker.git
17
21
  Description-Content-Type: text/markdown
18
22
 
19
23
  # python-update-checker
@@ -29,6 +33,15 @@ when developing applications.
29
33
  See [https://github.com/astral-sh/uv/issues/6794] for a discussion
30
34
  about different pinning strategies.
31
35
 
36
+ ## Quickstart
37
+
38
+ ```bash
39
+ # update dependencies in pyproject.toml to the latest version
40
+ uvx --from python-update-checker puc --exclude-newer="7 days" update pyproject.toml
41
+ # install updated dependencies in virtual environment
42
+ uv sync
43
+ ```
44
+
32
45
  ## Features
33
46
 
34
47
  * updates pinned dependencies, ignores unpinned dependencies
@@ -43,15 +56,6 @@ about different pinning strategies.
43
56
  * (limited) support for environment markers, ie. `"pywin32==311; os_name=='nt'"`
44
57
  * runs on Linux, MacOS and Windows platforms
45
58
 
46
- ## Quickstart
47
-
48
- ```bash
49
- # update dependencies in pyproject.toml to the latest version
50
- uvx --from python-update-checker puc --exclude-newer="1 day" update pyproject.toml
51
- # install updated dependencies in virtual environment
52
- uv sync
53
- ```
54
-
55
59
  ## Examples
56
60
 
57
61
  ```bash
@@ -11,6 +11,15 @@ when developing applications.
11
11
  See [https://github.com/astral-sh/uv/issues/6794] for a discussion
12
12
  about different pinning strategies.
13
13
 
14
+ ## Quickstart
15
+
16
+ ```bash
17
+ # update dependencies in pyproject.toml to the latest version
18
+ uvx --from python-update-checker puc --exclude-newer="7 days" update pyproject.toml
19
+ # install updated dependencies in virtual environment
20
+ uv sync
21
+ ```
22
+
14
23
  ## Features
15
24
 
16
25
  * updates pinned dependencies, ignores unpinned dependencies
@@ -25,15 +34,6 @@ about different pinning strategies.
25
34
  * (limited) support for environment markers, ie. `"pywin32==311; os_name=='nt'"`
26
35
  * runs on Linux, MacOS and Windows platforms
27
36
 
28
- ## Quickstart
29
-
30
- ```bash
31
- # update dependencies in pyproject.toml to the latest version
32
- uvx --from python-update-checker puc --exclude-newer="1 day" update pyproject.toml
33
- # install updated dependencies in virtual environment
34
- uv sync
35
- ```
36
-
37
37
  ## Examples
38
38
 
39
39
  ```bash
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-update-checker"
3
- version = "0.10.0"
3
+ version = "0.12.0"
4
4
  readme = "README.md"
5
5
  requires-python = ">=3.11"
6
6
  license = "GPL-3.0-only"
@@ -19,6 +19,12 @@ classifiers = [
19
19
  dependencies = ["packaging>=26.1"]
20
20
  license_files = ["COPYING"]
21
21
 
22
+ [project.urls]
23
+ Changelog = "https://github.com/wummel/python-update-checker/blob/main/CHANGELOG.md"
24
+ Homepage = "https://github.com/wummel/python-update-checker"
25
+ Issues = "https://github.com/wummel/python-update-checker/issues"
26
+ Repository = "https://github.com/wummel/python-update-checker.git"
27
+
22
28
  [project.scripts]
23
29
  puc = "puc:cli.main"
24
30
 
@@ -28,9 +34,9 @@ dev = [
28
34
  "pytest==9.1.1",
29
35
  "ruff==0.16.5",
30
36
  "rumdl==0.2.62",
31
- "tombi==1.4.1",
37
+ "tombi==1.5.0",
32
38
  "ty==0.0.75",
33
- "zizmor==1.29.0",
39
+ "zizmor==1.30.0",
34
40
  ]
35
41
 
36
42
  [build-system]
@@ -39,7 +45,7 @@ build-backend = "uv_build"
39
45
 
40
46
  [tool.project]
41
47
  python_version_dev = "3.14.7"
42
- uv_version_dev = "0.12.9"
48
+ uv_version_dev = "0.12.10"
43
49
 
44
50
  [tool.uv.build-backend]
45
51
  module-name = "puc"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-update-checker"
3
- version = "0.10.0"
3
+ version = "0.12.0"
4
4
  readme = "README.md"
5
5
  requires-python = ">=3.11"
6
6
  license = "GPL-3.0-only"
@@ -25,6 +25,12 @@ license_files = [
25
25
  "COPYING",
26
26
  ]
27
27
 
28
+ [project.urls]
29
+ Changelog = "https://github.com/wummel/python-update-checker/blob/main/CHANGELOG.md"
30
+ Homepage = "https://github.com/wummel/python-update-checker"
31
+ Issues = "https://github.com/wummel/python-update-checker/issues"
32
+ Repository = "https://github.com/wummel/python-update-checker.git"
33
+
28
34
  [project.scripts]
29
35
  puc = "puc:cli.main"
30
36
 
@@ -40,11 +46,11 @@ dev = [
40
46
  # Markdown style checking and formatting
41
47
  "rumdl==0.2.62",
42
48
  # reformat toml files
43
- "tombi==1.4.1",
49
+ "tombi==1.5.0",
44
50
  # for python type checking
45
51
  "ty==0.0.75",
46
52
  # for auditing github actions
47
- "zizmor==1.29.0",
53
+ "zizmor==1.30.0",
48
54
  ]
49
55
 
50
56
  [build-system]
@@ -54,7 +60,7 @@ build-backend = "uv_build"
54
60
  [tool.project]
55
61
  # pin versions of Python and uv for development
56
62
  python_version_dev = "3.14.7"
57
- uv_version_dev = "0.12.9"
63
+ uv_version_dev = "0.12.10"
58
64
 
59
65
  [tool.uv.build-backend]
60
66
  module-name = "puc"
@@ -2,4 +2,4 @@
2
2
  # Copyright: GPL-v3
3
3
  """module file"""
4
4
 
5
- __version__ = "0.10.0"
5
+ __version__ = "0.12.0"
@@ -46,10 +46,6 @@ def handle_uv_lock(
46
46
  if name is None:
47
47
  logger.warning(f"missing name in package {uvpackage}")
48
48
  continue
49
- version = uvpackage.get("version", None)
50
- if version is None:
51
- logger.warning(f"missing version in package {uvpackage}")
52
- continue
53
49
  # respect package filter
54
50
  if packages and canonicalize_name(name) not in packages:
55
51
  logger.info(f"skip filtered package {name!r}")
@@ -57,16 +53,24 @@ def handle_uv_lock(
57
53
  if exclude_packages and canonicalize_name(name) in exclude_packages:
58
54
  logger.info(f"skip excluded package {name!r}")
59
55
  continue
60
- # skip virtual packages (ie. the project itself)
56
+ # check package source for skip reasons
61
57
  source = uvpackage.get("source", {})
62
- # skip virtual packages (ie. the project itself)
63
58
  if "virtual" in source:
59
+ # skip virtual packages (ie. the project itself)
64
60
  logger.info(f"skip virtual package {name!r}")
65
61
  continue
66
- # skip editable packages
67
62
  if "editable" in source:
63
+ # skip editable packages
68
64
  logger.info(f"skip editable package {name!r}")
69
65
  continue
66
+ if "path" in source:
67
+ # skip local packages provided by file path
68
+ logger.info(f"skip path package {name!r}")
69
+ continue
70
+ version = uvpackage.get("version", None)
71
+ if version is None:
72
+ logger.warning(f"missing version in package {uvpackage}")
73
+ continue
70
74
  updatable += update_uvlock_dependency(
71
75
  name,
72
76
  version,
@@ -58,7 +58,6 @@ source = { virtual = "." }
58
58
 
59
59
  [[package]]
60
60
  name = "imabellend"
61
- version = "1.1.1"
62
61
  source = { editable = "." }
63
62
 
64
63
  [[package]]
@@ -69,3 +68,9 @@ sdist = { url = "https://files.pythonhosted.org/packages/47/d5/853561de49fae38c5
69
68
  wheels = [
70
69
  { url = "https://files.pythonhosted.org/packages/2c/55/87280a994d6a2d2647c65e12abbc997ed49835794366153c04c4d9304d76/ty-0.0.29-py3-none-win_arm64.whl", hash = "sha256:f9794bbd1bb3ce13f78c191d0c89ae4c63f52c12b6daa0c6fe220b90d019d12c", size = 10428165, upload-time = "2026-04-05T15:01:34.665Z" },
71
70
  ]
71
+
72
+ [[package]]
73
+ name = "superfragilicous"
74
+ version = "1"
75
+ source = { path = "third_party/superfragilicous-1.tar.gz" }
76
+ dependencies = [ ]
@@ -45,6 +45,7 @@ class UvLockTest(unittest.TestCase):
45
45
  self.assertIn("skip virtual package 'imadoofus'", output)
46
46
  self.assertIn("skip editable package 'imabellend'", output)
47
47
  self.assertIn("skip excluded package 'fragilicous'", output)
48
+ self.assertIn("skip path package 'superfragilicous'", output)
48
49
 
49
50
  @needs_program('uv')
50
51
  def test_uvlock_check_package(self):