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.
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PKG-INFO +6 -6
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/__init__.py +1 -1
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/common.py +10 -6
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/create.py +9 -1
- pypdfform-4.8.3/PyPDFForm/cli/entry.py +37 -0
- pypdfform-4.8.2/PyPDFForm/cli/__init__.py → pypdfform-4.8.3/PyPDFForm/cli/root.py +0 -3
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/update.py +10 -3
- pypdfform-4.8.3/PyPDFForm/lib/assets/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/PKG-INFO +6 -6
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/SOURCES.txt +2 -0
- pypdfform-4.8.3/PyPDFForm.egg-info/entry_points.txt +2 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/requires.txt +5 -5
- {pypdfform-4.8.2 → pypdfform-4.8.3}/pyproject.toml +6 -6
- pypdfform-4.8.2/PyPDFForm.egg-info/entry_points.txt +0 -2
- {pypdfform-4.8.2 → pypdfform-4.8.3}/LICENSE +0 -0
- {pypdfform-4.8.2/PyPDFForm/cli/schemas → pypdfform-4.8.3/PyPDFForm/cli}/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/inspect.py +0 -0
- {pypdfform-4.8.2/PyPDFForm/lib → pypdfform-4.8.3/PyPDFForm/cli/schemas}/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/schemas/create.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/cli/schemas/update.py +0 -0
- {pypdfform-4.8.2/PyPDFForm/lib/assets → pypdfform-4.8.3/PyPDFForm/lib}/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/adapter.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/base.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/link.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/stamp.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/text.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/annotations/text_markup.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/assets/bedrock.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/assets/blank.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/constants.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/coordinate.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/deprecation.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/egress.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/filler.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/font.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/hooks.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/image.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/base.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/checkbox.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/dropdown.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/image.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/radio.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/signature.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/middleware/text.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/patterns.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/circle.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/ellipse.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/image.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/line.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/rect.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/raw/text.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/template.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/types.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/utils.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/watermark.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/__init__.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/base.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/checkbox.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/dropdown.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/image.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/radio.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/signature.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/widgets/text.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm/lib/wrapper.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/dependency_links.txt +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/PyPDFForm.egg-info/top_level.txt +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/README.md +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/setup.cfg +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_bulk_create_fields.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_create_widget.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_draw_elements.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_dropdown.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_extract_middleware_attributes.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_fill_max_length_text_field.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_font_widths.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_functional.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_generate_appearance_streams.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_js.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_need_appearances.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_paragraph.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_signature.py +0 -0
- {pypdfform-4.8.2 → pypdfform-4.8.3}/tests/test_use_full_widget_name.py +0 -0
- {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.
|
|
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<
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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>
|
|
@@ -77,10 +77,10 @@ def json_file_option(help_text: str):
|
|
|
77
77
|
)
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
def
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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")()
|
|
@@ -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,
|
|
21
|
-
|
|
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.
|
|
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<
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
cryptography<
|
|
1
|
+
cryptography<48.0.0,>=47.0.0
|
|
2
2
|
fonttools<5.0.0,>=4.62.1
|
|
3
|
-
pikepdf<11.0.0,>=10.5.
|
|
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.
|
|
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.
|
|
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.
|
|
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>=
|
|
28
|
+
"cryptography>=47.0.0,<48.0.0",
|
|
29
29
|
"fonttools>=4.62.1,<5.0.0",
|
|
30
|
-
"pikepdf>=10.5.
|
|
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.
|
|
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.
|
|
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.
|
|
54
|
+
"ruff>=0.15.12,<1.0.0",
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
[project.scripts]
|
|
58
|
-
pypdfform = "PyPDFForm.cli:
|
|
58
|
+
pypdfform = "PyPDFForm.cli.entry:main"
|
|
59
59
|
|
|
60
60
|
[tool.coverage.run]
|
|
61
61
|
include = ["PyPDFForm/*"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|