python-update-checker 0.12.0__tar.gz → 1.1.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.12.0 → python_update_checker-1.1.0}/PKG-INFO +2 -2
  2. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/pyproject.toml +2 -2
  3. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/pyproject.toml.orig +2 -2
  4. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/__init__.py +1 -1
  5. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/cli.py +5 -3
  6. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/pyprojecttoml.py +1 -0
  7. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/requirementstxt.py +5 -1
  8. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/data/requirements.txt +2 -0
  9. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/.gitignore +0 -0
  10. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/.ruff.toml +0 -0
  11. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/Makefile +0 -0
  12. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/README.md +0 -0
  13. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/scripts/install_dev.sh +0 -0
  14. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/dependencies.py +0 -0
  15. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/logging.py +0 -0
  16. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/src/puc/uvlock.py +0 -0
  17. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/__init__.py +0 -0
  18. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/data/other-requirements.txt +0 -0
  19. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/data/pyproject.toml +0 -0
  20. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/data/pyproject_compatible.toml +0 -0
  21. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/data/uv.lock +0 -0
  22. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/test_latest.py +0 -0
  23. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/test_pyproject_toml.py +0 -0
  24. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/test_requirements_txt.py +0 -0
  25. {python_update_checker-0.12.0 → python_update_checker-1.1.0}/tests/test_uv_lock.py +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-update-checker
3
- Version: 0.12.0
3
+ Version: 1.1.0
4
4
  License-Expression: GPL-3.0-only
5
- Classifier: Development Status :: 4 - Beta
5
+ Classifier: Development Status :: 5 - Production/Stable
6
6
  Classifier: Environment :: Console
7
7
  Classifier: Intended Audience :: Developers
8
8
  Classifier: Operating System :: OS Independent
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "python-update-checker"
3
- version = "0.12.0"
3
+ version = "1.1.0"
4
4
  readme = "README.md"
5
5
  requires-python = ">=3.11"
6
6
  license = "GPL-3.0-only"
7
7
  classifiers = [
8
- "Development Status :: 4 - Beta",
8
+ "Development Status :: 5 - Production/Stable",
9
9
  "Environment :: Console",
10
10
  "Intended Audience :: Developers",
11
11
  "Operating System :: OS Independent",
@@ -1,12 +1,12 @@
1
1
  [project]
2
2
  name = "python-update-checker"
3
- version = "0.12.0"
3
+ version = "1.1.0"
4
4
  readme = "README.md"
5
5
  requires-python = ">=3.11"
6
6
  license = "GPL-3.0-only"
7
7
  # https://pypi.org/classifiers/
8
8
  classifiers = [
9
- "Development Status :: 4 - Beta",
9
+ "Development Status :: 5 - Production/Stable",
10
10
  "Environment :: Console",
11
11
  "Intended Audience :: Developers",
12
12
  "Operating System :: OS Independent",
@@ -2,4 +2,4 @@
2
2
  # Copyright: GPL-v3
3
3
  """module file"""
4
4
 
5
- __version__ = "0.12.0"
5
+ __version__ = "1.1.0"
@@ -138,9 +138,11 @@ def handle_dependency_file(dep_file: str, optargs, constraint_file):
138
138
  """Check a dependency file for updates."""
139
139
  if not os.path.isfile(dep_file):
140
140
  usage(f"file {dep_file} not found or not a regular file")
141
- # limit to 1MB to prevent denial-of-service
142
- if os.stat(dep_file).st_size > 1024 * 1014:
143
- usage(f"file {dep_file} is >1 MB")
141
+ # limit to 10 MB as a sanity check
142
+ size_bytes = os.stat(dep_file).st_size
143
+ if size_bytes > 10 * 1024 * 1014:
144
+ size_mb = size_bytes / 1024 / 1024
145
+ usage(f"file {dep_file} is too large ({size_mb:.2f} MB)")
144
146
  dep_file_normalized = os.path.basename(dep_file).lower()
145
147
  if optargs.packages:
146
148
  packages = [canonicalize_name(name) for name in optargs.packages]
@@ -48,6 +48,7 @@ def handle_pyproject_toml(
48
48
  logger.warning(f"no project defined in {pyproject_path}")
49
49
  return updatable
50
50
  projectname = project.get("name", None)
51
+ logger.debug(f"found project name {projectname}")
51
52
  # project dependencies
52
53
  if "dependencies" in project:
53
54
  updatable += update_pyproject_dependencies(
@@ -59,7 +59,11 @@ def handle_requirements_txt(
59
59
  output.write(line)
60
60
  base_dir = os.path.dirname(requirements_txt_path)
61
61
  requirements_txt_child = os.path.join(base_dir, pkg_req)
62
- if os.path.abspath(requirements_txt_child) not in handled_files:
62
+ if not os.path.isfile(requirements_txt_child):
63
+ logger.warning(
64
+ f"requirements file {requirements_txt_path} references non-existing requirements file {requirements_txt_child!r}"
65
+ )
66
+ elif os.path.abspath(requirements_txt_child) not in handled_files:
63
67
  updatable += handle_requirements_txt(
64
68
  requirements_txt_child,
65
69
  command,
@@ -24,6 +24,8 @@ urllib3 @ https://example.com/urllib3/urllib3/archive/refs/tags/1.26.8.zip
24
24
  # It is possible to refer to other requirement files or constraints files.
25
25
  -r other-requirements.txt
26
26
  -c constraints.txt
27
+ # non-existing requirement
28
+ -r imadoofus.txt
27
29
 
28
30
  # refer to specific local distribution paths
29
31
  ./downloads/numpy-1.9.2-cp34-none-win32.whl