PyPDFForm 4.8.2__tar.gz → 4.8.3__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 (86) hide show
  1. {pypdfform-4.8.2 → pypdfform-4.8.3}/PKG-INFO +6 -6
  2. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/__init__.py +1 -1
  3. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/common.py +10 -6
  4. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/create.py +9 -1
  5. pypdfform-4.8.3/PyPDFForm/cli/entry.py +37 -0
  6. pypdfform-4.8.2/PyPDFForm/cli/__init__.py → pypdfform-4.8.3/PyPDFForm/cli/root.py +0 -3
  7. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/update.py +10 -3
  8. pypdfform-4.8.3/PyPDFForm/lib/assets/__init__.py +0 -0
  9. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/PKG-INFO +6 -6
  10. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/SOURCES.txt +2 -0
  11. pypdfform-4.8.3/PyPDFForm.egg-info/entry_points.txt +2 -0
  12. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/requires.txt +5 -5
  13. {pypdfform-4.8.2 → pypdfform-4.8.3}/pyproject.toml +6 -6
  14. pypdfform-4.8.2/PyPDFForm.egg-info/entry_points.txt +0 -2
  15. {pypdfform-4.8.2 → pypdfform-4.8.3}/LICENSE +0 -0
  16. {pypdfform-4.8.2/PyPDFForm/cli/schemas → pypdfform-4.8.3/PyPDFForm/cli}/__init__.py +0 -0
  17. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/inspect.py +0 -0
  18. {pypdfform-4.8.2/PyPDFForm/lib → pypdfform-4.8.3/PyPDFForm/cli/schemas}/__init__.py +0 -0
  19. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/schemas/create.py +0 -0
  20. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/schemas/update.py +0 -0
  21. {pypdfform-4.8.2/PyPDFForm/lib/assets → pypdfform-4.8.3/PyPDFForm/lib}/__init__.py +0 -0
  22. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/adapter.py +0 -0
  23. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/__init__.py +0 -0
  24. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/base.py +0 -0
  25. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/link.py +0 -0
  26. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/stamp.py +0 -0
  27. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/text.py +0 -0
  28. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/text_markup.py +0 -0
  29. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/assets/bedrock.py +0 -0
  30. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/assets/blank.py +0 -0
  31. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/constants.py +0 -0
  32. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/coordinate.py +0 -0
  33. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/deprecation.py +0 -0
  34. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/egress.py +0 -0
  35. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/filler.py +0 -0
  36. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/font.py +0 -0
  37. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/hooks.py +0 -0
  38. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/image.py +0 -0
  39. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/__init__.py +0 -0
  40. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/base.py +0 -0
  41. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/checkbox.py +0 -0
  42. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/dropdown.py +0 -0
  43. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/image.py +0 -0
  44. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/radio.py +0 -0
  45. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/signature.py +0 -0
  46. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/text.py +0 -0
  47. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/patterns.py +0 -0
  48. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/__init__.py +0 -0
  49. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/circle.py +0 -0
  50. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/ellipse.py +0 -0
  51. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/image.py +0 -0
  52. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/line.py +0 -0
  53. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/rect.py +0 -0
  54. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/text.py +0 -0
  55. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/template.py +0 -0
  56. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/types.py +0 -0
  57. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/utils.py +0 -0
  58. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/watermark.py +0 -0
  59. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/__init__.py +0 -0
  60. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/base.py +0 -0
  61. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/checkbox.py +0 -0
  62. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/dropdown.py +0 -0
  63. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/image.py +0 -0
  64. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/radio.py +0 -0
  65. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/signature.py +0 -0
  66. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/text.py +0 -0
  67. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/wrapper.py +0 -0
  68. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/dependency_links.txt +0 -0
  69. {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/top_level.txt +0 -0
  70. {pypdfform-4.8.2 → pypdfform-4.8.3}/README.md +0 -0
  71. {pypdfform-4.8.2 → pypdfform-4.8.3}/setup.cfg +0 -0
  72. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_bulk_create_fields.py +0 -0
  73. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_create_widget.py +0 -0
  74. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_draw_elements.py +0 -0
  75. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_dropdown.py +0 -0
  76. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_extract_middleware_attributes.py +0 -0
  77. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_fill_max_length_text_field.py +0 -0
  78. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_font_widths.py +0 -0
  79. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_functional.py +0 -0
  80. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_generate_appearance_streams.py +0 -0
  81. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_js.py +0 -0
  82. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_need_appearances.py +0 -0
  83. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_paragraph.py +0 -0
  84. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_signature.py +0 -0
  85. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_use_full_widget_name.py +0 -0
  86. {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_widget_attr_trigger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyPDFForm
3
- Version: 4.8.2
3
+ Version: 4.8.3
4
4
  Summary: The Python library for PDF forms.
5
5
  Author: Jinge Li
6
6
  License-Expression: MIT
@@ -20,18 +20,18 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
20
  Requires-Python: >=3.10
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: cryptography<47.0.0,>=46.0.3
23
+ Requires-Dist: cryptography<48.0.0,>=47.0.0
24
24
  Requires-Dist: fonttools<5.0.0,>=4.62.1
25
- Requires-Dist: pikepdf<11.0.0,>=10.5.0
25
+ Requires-Dist: pikepdf<11.0.0,>=10.5.1
26
26
  Requires-Dist: pillow<13.0.0,>=12.2.0
27
27
  Requires-Dist: pypdf<7.0.0,>=6.10.1
28
28
  Requires-Dist: reportlab<5.0.0,>=4.4.6
29
29
  Provides-Extra: cli
30
- Requires-Dist: typer<1.0.0,>=0.24.1; extra == "cli"
30
+ Requires-Dist: typer<1.0.0,>=0.25.0; extra == "cli"
31
31
  Requires-Dist: jsonschema<5.0.0,>=4.26.0; extra == "cli"
32
32
  Provides-Extra: dev
33
33
  Requires-Dist: black<27.0.0,>=26.3.1; extra == "dev"
34
- Requires-Dist: coverage<8.0.0,>=7.12.0; extra == "dev"
34
+ Requires-Dist: coverage<8.0.0,>=7.13.5; extra == "dev"
35
35
  Requires-Dist: isort<9.0.0,>=8.0.1; extra == "dev"
36
36
  Requires-Dist: mike<3.0.0,>=2.1.3; extra == "dev"
37
37
  Requires-Dist: mkdocs<2.0.0,>=1.6.1; extra == "dev"
@@ -41,7 +41,7 @@ Requires-Dist: pylint<5.0.0,>=4.0.5; extra == "dev"
41
41
  Requires-Dist: pyright<2.0.0,>=1.1.407; extra == "dev"
42
42
  Requires-Dist: pytest<10.0.0,>=9.0.3; extra == "dev"
43
43
  Requires-Dist: requests<3.0.0,>=2.33.1; extra == "dev"
44
- Requires-Dist: ruff<1.0.0,>=0.14.6; extra == "dev"
44
+ Requires-Dist: ruff<1.0.0,>=0.15.12; extra == "dev"
45
45
  Dynamic: license-file
46
46
 
47
47
  <p align="center"><img src="https://github.com/chinapandaman/PyPDFForm/raw/master/docs/img/logo.png"></p>
@@ -22,7 +22,7 @@ PyPDFForm aims to simplify PDF form manipulation, making it accessible to develo
22
22
 
23
23
  import logging
24
24
 
25
- __version__ = "4.8.2"
25
+ __version__ = "4.8.3"
26
26
 
27
27
  from .lib.annotations import Annotations
28
28
  from .lib.assets.blank import BlankPage
@@ -77,10 +77,10 @@ def json_file_option(help_text: str):
77
77
  )
78
78
 
79
79
 
80
- def _cli_bad_parameter(
80
+ def cli_bad_parameter(
81
81
  message: str,
82
82
  param_hint: str,
83
- cause: BaseException,
83
+ cause: BaseException | None = None,
84
84
  ) -> NoReturn:
85
85
  """
86
86
  Raises a Typer input error with a stable CLI message.
@@ -88,11 +88,15 @@ def _cli_bad_parameter(
88
88
  Args:
89
89
  message (str): Error message to display to the CLI user.
90
90
  param_hint (str): CLI parameter associated with the error.
91
- cause (BaseException): Original exception that caused the CLI error.
91
+ cause (BaseException, optional): Original exception that caused the CLI
92
+ error. Defaults to None.
92
93
 
93
94
  Raises:
94
95
  typer.BadParameter: Raised with the provided message and parameter hint.
95
96
  """
97
+ if cause is None:
98
+ raise typer.BadParameter(message, param_hint=param_hint)
99
+
96
100
  raise typer.BadParameter(message, param_hint=param_hint) from cause
97
101
 
98
102
 
@@ -129,7 +133,7 @@ def load_json_file(data: Path, schema: dict, param_hint: str) -> Any:
129
133
  with open(data, "r", encoding="utf-8") as f:
130
134
  input_data = json.load(f)
131
135
  except (OSError, json.JSONDecodeError) as exc:
132
- _cli_bad_parameter(
136
+ cli_bad_parameter(
133
137
  f"Invalid JSON file: {exc}",
134
138
  param_hint=param_hint,
135
139
  cause=exc,
@@ -140,7 +144,7 @@ def load_json_file(data: Path, schema: dict, param_hint: str) -> Any:
140
144
  except ValidationError as exc:
141
145
  error_path = _validation_error_path(exc)
142
146
  location = f" at {error_path}" if error_path else ""
143
- _cli_bad_parameter(
147
+ cli_bad_parameter(
144
148
  f"Invalid JSON file{location}: {exc.message}",
145
149
  param_hint=param_hint,
146
150
  cause=exc,
@@ -167,7 +171,7 @@ def get_widget(wrapper: PdfWrapper, field: str, param_hint: str) -> Widget:
167
171
  try:
168
172
  return wrapper.widgets[field]
169
173
  except KeyError as exc:
170
- _cli_bad_parameter(
174
+ cli_bad_parameter(
171
175
  f"Form field '{field}' does not exist.",
172
176
  param_hint=param_hint,
173
177
  cause=exc,
@@ -17,7 +17,8 @@ import typer
17
17
  from .. import (Annotations, BlankPage, Fields, PdfArray, PdfWrapper,
18
18
  RawElements)
19
19
  from .common import (INPUT_PDF, OPTIONAL_OUTPUT_PDF, REQUIRED_OUTPUT_PDF,
20
- create_elements_from_file, json_file_option)
20
+ cli_bad_parameter, create_elements_from_file,
21
+ json_file_option)
21
22
  from .schemas.create import ANNOTATION_SCHEMA, FIELD_SCHEMA, RAW_SCHEMA
22
23
 
23
24
  create_cli = typer.Typer(
@@ -94,6 +95,13 @@ def extract(
94
95
  ] = None,
95
96
  ) -> None:
96
97
  """Extract pages from an existing PDF."""
98
+ if start is not None and end is not None and start > end:
99
+ message = "End page must be greater than or equal to start page."
100
+ cli_bad_parameter(
101
+ message,
102
+ param_hint="--end",
103
+ )
104
+
97
105
  PdfWrapper(str(pdf), **ctx.obj).pages[slice((start or 1) - 1, end)].write(output)
98
106
 
99
107
 
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Console script entry point for the optional PyPDFForm CLI.
4
+
5
+ The CLI implementation depends on the optional ``cli`` extra. This lightweight
6
+ wrapper lets the ``pypdfform`` command fail with installation guidance instead
7
+ of an import traceback when those optional dependencies are absent.
8
+ """
9
+
10
+ import importlib
11
+ import sys
12
+
13
+ CLI_DEPENDENCIES = {"jsonschema", "typer"}
14
+ CLI_INSTALL_HINT = "pip install 'PyPDFForm[cli]'"
15
+
16
+
17
+ def main() -> None:
18
+ """
19
+ Run the PyPDFForm CLI.
20
+
21
+ Raises:
22
+ SystemExit: Raised with exit code 1 when optional CLI dependencies are
23
+ missing.
24
+ """
25
+ try:
26
+ cli_module = importlib.import_module("PyPDFForm.cli.root")
27
+ except ModuleNotFoundError as exc:
28
+ if exc.name in CLI_DEPENDENCIES:
29
+ print(
30
+ "PyPDFForm CLI dependencies are not installed. "
31
+ f"Install them with: {CLI_INSTALL_HINT}",
32
+ file=sys.stderr,
33
+ )
34
+ raise SystemExit(1) from None
35
+ raise
36
+
37
+ getattr(cli_module, "cli_app")()
@@ -165,6 +165,3 @@ def fill(
165
165
  input_data[k] = input_data[k]["path"]
166
166
 
167
167
  obj.fill(input_data, flatten=flatten).write(output or pdf)
168
-
169
-
170
- __all__ = ["cli_app"]
@@ -17,9 +17,9 @@ import typer
17
17
 
18
18
  from .. import PdfWrapper
19
19
  from ..lib.constants import PdfVersion
20
- from .common import (FIELD_NAME, INPUT_PDF, OPTIONAL_OUTPUT_PDF, get_widget,
21
- handle_font_registration, json_file_option,
22
- load_json_file)
20
+ from .common import (FIELD_NAME, INPUT_PDF, OPTIONAL_OUTPUT_PDF,
21
+ cli_bad_parameter, get_widget, handle_font_registration,
22
+ json_file_option, load_json_file)
23
23
  from .schemas.update import FIELD_SCHEMA, RENAME_SCHEMA
24
24
 
25
25
  update_cli = typer.Typer(
@@ -125,6 +125,13 @@ def rename(
125
125
  output: OPTIONAL_OUTPUT_PDF = None,
126
126
  ) -> None:
127
127
  """Rename form fields from JSON."""
128
+ if ctx.obj.get("use_full_widget_name"):
129
+ cli_bad_parameter(
130
+ "Renaming form fields is not supported when "
131
+ "--use-full-widget-name is enabled.",
132
+ param_hint="--use-full-widget-name",
133
+ )
134
+
128
135
  input_data = load_json_file(data, RENAME_SCHEMA, "--file")
129
136
 
130
137
  obj = PdfWrapper(str(pdf), **ctx.obj)
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyPDFForm
3
- Version: 4.8.2
3
+ Version: 4.8.3
4
4
  Summary: The Python library for PDF forms.
5
5
  Author: Jinge Li
6
6
  License-Expression: MIT
@@ -20,18 +20,18 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
20
  Requires-Python: >=3.10
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: cryptography<47.0.0,>=46.0.3
23
+ Requires-Dist: cryptography<48.0.0,>=47.0.0
24
24
  Requires-Dist: fonttools<5.0.0,>=4.62.1
25
- Requires-Dist: pikepdf<11.0.0,>=10.5.0
25
+ Requires-Dist: pikepdf<11.0.0,>=10.5.1
26
26
  Requires-Dist: pillow<13.0.0,>=12.2.0
27
27
  Requires-Dist: pypdf<7.0.0,>=6.10.1
28
28
  Requires-Dist: reportlab<5.0.0,>=4.4.6
29
29
  Provides-Extra: cli
30
- Requires-Dist: typer<1.0.0,>=0.24.1; extra == "cli"
30
+ Requires-Dist: typer<1.0.0,>=0.25.0; extra == "cli"
31
31
  Requires-Dist: jsonschema<5.0.0,>=4.26.0; extra == "cli"
32
32
  Provides-Extra: dev
33
33
  Requires-Dist: black<27.0.0,>=26.3.1; extra == "dev"
34
- Requires-Dist: coverage<8.0.0,>=7.12.0; extra == "dev"
34
+ Requires-Dist: coverage<8.0.0,>=7.13.5; extra == "dev"
35
35
  Requires-Dist: isort<9.0.0,>=8.0.1; extra == "dev"
36
36
  Requires-Dist: mike<3.0.0,>=2.1.3; extra == "dev"
37
37
  Requires-Dist: mkdocs<2.0.0,>=1.6.1; extra == "dev"
@@ -41,7 +41,7 @@ Requires-Dist: pylint<5.0.0,>=4.0.5; extra == "dev"
41
41
  Requires-Dist: pyright<2.0.0,>=1.1.407; extra == "dev"
42
42
  Requires-Dist: pytest<10.0.0,>=9.0.3; extra == "dev"
43
43
  Requires-Dist: requests<3.0.0,>=2.33.1; extra == "dev"
44
- Requires-Dist: ruff<1.0.0,>=0.14.6; extra == "dev"
44
+ Requires-Dist: ruff<1.0.0,>=0.15.12; extra == "dev"
45
45
  Dynamic: license-file
46
46
 
47
47
  <p align="center"><img src="https://github.com/chinapandaman/PyPDFForm/raw/master/docs/img/logo.png"></p>
@@ -11,7 +11,9 @@ PyPDFForm.egg-info/top_level.txt
11
11
  PyPDFForm/cli/__init__.py
12
12
  PyPDFForm/cli/common.py
13
13
  PyPDFForm/cli/create.py
14
+ PyPDFForm/cli/entry.py
14
15
  PyPDFForm/cli/inspect.py
16
+ PyPDFForm/cli/root.py
15
17
  PyPDFForm/cli/update.py
16
18
  PyPDFForm/cli/schemas/__init__.py
17
19
  PyPDFForm/cli/schemas/create.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ pypdfform = PyPDFForm.cli.entry:main
@@ -1,17 +1,17 @@
1
- cryptography<47.0.0,>=46.0.3
1
+ cryptography<48.0.0,>=47.0.0
2
2
  fonttools<5.0.0,>=4.62.1
3
- pikepdf<11.0.0,>=10.5.0
3
+ pikepdf<11.0.0,>=10.5.1
4
4
  pillow<13.0.0,>=12.2.0
5
5
  pypdf<7.0.0,>=6.10.1
6
6
  reportlab<5.0.0,>=4.4.6
7
7
 
8
8
  [cli]
9
- typer<1.0.0,>=0.24.1
9
+ typer<1.0.0,>=0.25.0
10
10
  jsonschema<5.0.0,>=4.26.0
11
11
 
12
12
  [dev]
13
13
  black<27.0.0,>=26.3.1
14
- coverage<8.0.0,>=7.12.0
14
+ coverage<8.0.0,>=7.13.5
15
15
  isort<9.0.0,>=8.0.1
16
16
  mike<3.0.0,>=2.1.3
17
17
  mkdocs<2.0.0,>=1.6.1
@@ -21,4 +21,4 @@ pylint<5.0.0,>=4.0.5
21
21
  pyright<2.0.0,>=1.1.407
22
22
  pytest<10.0.0,>=9.0.3
23
23
  requests<3.0.0,>=2.33.1
24
- ruff<1.0.0,>=0.14.6
24
+ ruff<1.0.0,>=0.15.12
@@ -25,9 +25,9 @@ classifiers = [
25
25
  ]
26
26
  requires-python = ">=3.10"
27
27
  dependencies = [
28
- "cryptography>=46.0.3,<47.0.0",
28
+ "cryptography>=47.0.0,<48.0.0",
29
29
  "fonttools>=4.62.1,<5.0.0",
30
- "pikepdf>=10.5.0,<11.0.0",
30
+ "pikepdf>=10.5.1,<11.0.0",
31
31
  "pillow>=12.2.0,<13.0.0",
32
32
  "pypdf>=6.10.1,<7.0.0",
33
33
  "reportlab>=4.4.6,<5.0.0",
@@ -38,10 +38,10 @@ Homepage = "https://github.com/chinapandaman/PyPDFForm"
38
38
  Documentation = "https://chinapandaman.github.io/PyPDFForm/"
39
39
 
40
40
  [project.optional-dependencies]
41
- cli = ["typer>=0.24.1,<1.0.0", "jsonschema>=4.26.0,<5.0.0"]
41
+ cli = ["typer>=0.25.0,<1.0.0", "jsonschema>=4.26.0,<5.0.0"]
42
42
  dev = [
43
43
  "black>=26.3.1,<27.0.0",
44
- "coverage>=7.12.0,<8.0.0",
44
+ "coverage>=7.13.5,<8.0.0",
45
45
  "isort>=8.0.1,<9.0.0",
46
46
  "mike>=2.1.3,<3.0.0",
47
47
  "mkdocs>=1.6.1,<2.0.0",
@@ -51,11 +51,11 @@ dev = [
51
51
  "pyright>=1.1.407,<2.0.0",
52
52
  "pytest>=9.0.3,<10.0.0",
53
53
  "requests>=2.33.1,<3.0.0",
54
- "ruff>=0.14.6,<1.0.0",
54
+ "ruff>=0.15.12,<1.0.0",
55
55
  ]
56
56
 
57
57
  [project.scripts]
58
- pypdfform = "PyPDFForm.cli:cli_app"
58
+ pypdfform = "PyPDFForm.cli.entry:main"
59
59
 
60
60
  [tool.coverage.run]
61
61
  include = ["PyPDFForm/*"]
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- pypdfform = PyPDFForm.cli:cli_app
File without changes
File without changes
File without changes
File without changes