pdfdancer-client-python 0.3.3__tar.gz → 0.3.5__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.
- pdfdancer_client_python-0.3.5/.claude/commands/implement-new-api-features.md +8 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/CLAUDE.md +1 -1
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/PKG-INFO +7 -7
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/README.md +6 -6
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/docs/api-schemas/v0.yml +1661 -1463
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/docs/api-schemas/v1.yml +228 -682
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/pyproject.toml +1 -1
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/__init__.py +8 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/models.py +118 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/pdfdancer_v1.py +41 -9
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/types.py +147 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer_client_python.egg-info/PKG-INFO +7 -7
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer_client_python.egg-info/SOURCES.txt +2 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/test.sh +10 -6
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/__init__.py +3 -2
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/pdf_assertions.py +266 -1
- pdfdancer_client_python-0.3.5/tests/e2e/test_image_transform.py +564 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_path_comprehensive.py +9 -8
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_pdfdancer.py +8 -2
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_redact.py +9 -7
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_anonymous_token.py +25 -5
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/.claude/commands/discuss.md +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/.flake8 +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/.github/workflows/ci.yml +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/.github/workflows/daily-tests.yml +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/.gitignore +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/LICENSE +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/NOTICE +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/TODO.md +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/check.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/media/logo-orange-512h.webp +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/media/logo-orange-60h.webp +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/release.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/setup.cfg +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/exceptions.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/fingerprint.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/image_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/page_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/paragraph_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/path_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer/text_line_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer_client_python.egg-info/dependency_links.txt +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer_client_python.egg-info/requires.txt +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/src/pdfdancer_client_python.egg-info/top_level.txt +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/__init__.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/conftest.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_acroform.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_bezier_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_context_manager.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_form_x_objects.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_image.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_line.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_line_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_new_pdf.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_page.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_paragraph.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_path.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_path_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_path_builder_rectangle.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_positioning.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_rectangle_builder.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_singular_selection.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_snapshot.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/e2e/test_text_line_edit.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/DancingScript-Regular.ttf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/Empty.pdf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/JetBrainsMono-Regular.ttf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/Showcase.pdf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/basic-paths.pdf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/form-xobject-example.pdf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/logo-80.png +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/fixtures/mixed-form-types.pdf +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_fingerprint.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_models.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_openapi_compliance.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_path_models.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_pdf_object_equality.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_rate_limit.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/tests/test_standard_fonts.py +0 -0
- {pdfdancer_client_python-0.3.3 → pdfdancer_client_python-0.3.5}/update-api-spec.sh +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Check the updates in docs/api-schemas (use diff).
|
|
2
|
+
Analyze which new features are available in the api. Ignore anything backoffice related, like tenant management, api keys management or similar.
|
|
3
|
+
We are interested in PDF features.
|
|
4
|
+
For each change you encounter:
|
|
5
|
+
- analyze the current implementation and tests
|
|
6
|
+
- make a plan how to fully support the new api feature including e2e tests
|
|
7
|
+
- Show me a brief summary of what you found and what your plan is
|
|
8
|
+
- Wait for my approval
|
|
@@ -95,7 +95,7 @@ pdf.save("output.pdf")
|
|
|
95
95
|
### Initialization
|
|
96
96
|
|
|
97
97
|
```python
|
|
98
|
-
# Open existing PDF with token from env var
|
|
98
|
+
# Open existing PDF with token from env var PDFDANCER_API_TOKEN
|
|
99
99
|
pdf = PDFDancer.open(pdf_data="document.pdf")
|
|
100
100
|
|
|
101
101
|
# Open with explicit token
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pdfdancer-client-python
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.5
|
|
4
4
|
Summary: Python client for PDFDancer API
|
|
5
5
|
Author-email: "The Famous Cat Ltd." <hi@thefamouscat.com>
|
|
6
6
|
License:
|
|
@@ -289,7 +289,7 @@ from pdfdancer import Color, PDFDancer, StandardFonts
|
|
|
289
289
|
|
|
290
290
|
with PDFDancer.open(
|
|
291
291
|
pdf_data=Path("input.pdf"),
|
|
292
|
-
token="your-api-token", # optional when
|
|
292
|
+
token="your-api-token", # optional when PDFDANCER_API_TOKEN is set
|
|
293
293
|
base_url="https://api.pdfdancer.com",
|
|
294
294
|
) as pdf:
|
|
295
295
|
# Locate and update an existing paragraph
|
|
@@ -443,7 +443,7 @@ with PDFDancer.open("confidential.pdf") as pdf:
|
|
|
443
443
|
|
|
444
444
|
## Configuration
|
|
445
445
|
|
|
446
|
-
- Set `
|
|
446
|
+
- Set `PDFDANCER_API_TOKEN` for authentication (preferred). `PDFDANCER_TOKEN` is also supported for backwards compatibility.
|
|
447
447
|
- Override the API host with `PDFDANCER_BASE_URL` (e.g., sandbox or local environments). Defaults to `https://api.pdfdancer.com`.
|
|
448
448
|
- Tune HTTP read timeouts via the `timeout` argument on `PDFDancer.open()` and `PDFDancer.new()` (default: 30 seconds).
|
|
449
449
|
- For testing against self-signed certificates, call `pdfdancer.set_ssl_verify(False)` to temporarily disable TLS verification.
|
|
@@ -513,13 +513,13 @@ Set your PDFDancer API token as an environment variable:
|
|
|
513
513
|
|
|
514
514
|
```bash
|
|
515
515
|
# On macOS/Linux:
|
|
516
|
-
export
|
|
516
|
+
export PDFDANCER_API_TOKEN="your-api-token-here"
|
|
517
517
|
|
|
518
518
|
# On Windows (Command Prompt):
|
|
519
|
-
set
|
|
519
|
+
set PDFDANCER_API_TOKEN=your-api-token-here
|
|
520
520
|
|
|
521
521
|
# On Windows (PowerShell):
|
|
522
|
-
$env:
|
|
522
|
+
$env:PDFDANCER_API_TOKEN="your-api-token-here"
|
|
523
523
|
```
|
|
524
524
|
|
|
525
525
|
For permanent configuration, add this to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.).
|
|
@@ -651,7 +651,7 @@ pip install -e .
|
|
|
651
651
|
|
|
652
652
|
#### Test Failures
|
|
653
653
|
|
|
654
|
-
- Ensure `
|
|
654
|
+
- Ensure `PDFDANCER_API_TOKEN` is set for e2e tests
|
|
655
655
|
- Check network connectivity to the PDFDancer API
|
|
656
656
|
- Verify you're using Python 3.10 or higher
|
|
657
657
|
|
|
@@ -50,7 +50,7 @@ from pdfdancer import Color, PDFDancer, StandardFonts
|
|
|
50
50
|
|
|
51
51
|
with PDFDancer.open(
|
|
52
52
|
pdf_data=Path("input.pdf"),
|
|
53
|
-
token="your-api-token", # optional when
|
|
53
|
+
token="your-api-token", # optional when PDFDANCER_API_TOKEN is set
|
|
54
54
|
base_url="https://api.pdfdancer.com",
|
|
55
55
|
) as pdf:
|
|
56
56
|
# Locate and update an existing paragraph
|
|
@@ -204,7 +204,7 @@ with PDFDancer.open("confidential.pdf") as pdf:
|
|
|
204
204
|
|
|
205
205
|
## Configuration
|
|
206
206
|
|
|
207
|
-
- Set `
|
|
207
|
+
- Set `PDFDANCER_API_TOKEN` for authentication (preferred). `PDFDANCER_TOKEN` is also supported for backwards compatibility.
|
|
208
208
|
- Override the API host with `PDFDANCER_BASE_URL` (e.g., sandbox or local environments). Defaults to `https://api.pdfdancer.com`.
|
|
209
209
|
- Tune HTTP read timeouts via the `timeout` argument on `PDFDancer.open()` and `PDFDancer.new()` (default: 30 seconds).
|
|
210
210
|
- For testing against self-signed certificates, call `pdfdancer.set_ssl_verify(False)` to temporarily disable TLS verification.
|
|
@@ -274,13 +274,13 @@ Set your PDFDancer API token as an environment variable:
|
|
|
274
274
|
|
|
275
275
|
```bash
|
|
276
276
|
# On macOS/Linux:
|
|
277
|
-
export
|
|
277
|
+
export PDFDANCER_API_TOKEN="your-api-token-here"
|
|
278
278
|
|
|
279
279
|
# On Windows (Command Prompt):
|
|
280
|
-
set
|
|
280
|
+
set PDFDANCER_API_TOKEN=your-api-token-here
|
|
281
281
|
|
|
282
282
|
# On Windows (PowerShell):
|
|
283
|
-
$env:
|
|
283
|
+
$env:PDFDANCER_API_TOKEN="your-api-token-here"
|
|
284
284
|
```
|
|
285
285
|
|
|
286
286
|
For permanent configuration, add this to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.).
|
|
@@ -412,7 +412,7 @@ pip install -e .
|
|
|
412
412
|
|
|
413
413
|
#### Test Failures
|
|
414
414
|
|
|
415
|
-
- Ensure `
|
|
415
|
+
- Ensure `PDFDANCER_API_TOKEN` is set for e2e tests
|
|
416
416
|
- Check network connectivity to the PDFDancer API
|
|
417
417
|
- Verify you're using Python 3.10 or higher
|
|
418
418
|
|