pdfdancer-client-python 0.2.17__tar.gz → 0.2.19__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.
Potentially problematic release.
This version of pdfdancer-client-python might be problematic. Click here for more details.
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/.github/workflows/ci.yml +1 -1
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/.gitignore +1 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/PKG-INFO +18 -18
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/README.md +16 -16
- pdfdancer_client_python-0.2.19/TODO.md +4 -0
- pdfdancer_client_python-0.2.19/docs/openapi.yml +2446 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/pyproject.toml +2 -2
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/__init__.py +9 -1
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/exceptions.py +3 -3
- pdfdancer_client_python-0.2.19/src/pdfdancer/fingerprint.py +121 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/models.py +243 -27
- pdfdancer_client_python-0.2.19/src/pdfdancer/path_builder.py +557 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/pdfdancer_v1.py +868 -129
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/types.py +7 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer_client_python.egg-info/PKG-INFO +18 -18
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer_client_python.egg-info/SOURCES.txt +13 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer_client_python.egg-info/requires.txt +1 -1
- pdfdancer_client_python-0.2.19/test.sh +543 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/__init__.py +2 -2
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/pdf_assertions.py +184 -4
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_acroform.py +18 -18
- pdfdancer_client_python-0.2.19/tests/e2e/test_bezier_builder.py +251 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_context_manager.py +75 -73
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_form_x_objects.py +5 -5
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_image.py +14 -14
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_line.py +24 -24
- pdfdancer_client_python-0.2.19/tests/e2e/test_line_builder.py +255 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_new_pdf.py +23 -23
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_page.py +8 -8
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_paragraph.py +87 -87
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_path.py +14 -14
- pdfdancer_client_python-0.2.19/tests/e2e/test_path_builder.py +449 -0
- pdfdancer_client_python-0.2.19/tests/e2e/test_path_comprehensive.py +558 -0
- pdfdancer_client_python-0.2.19/tests/e2e/test_pdfdancer.py +47 -0
- pdfdancer_client_python-0.2.19/tests/e2e/test_snapshot.py +257 -0
- pdfdancer_client_python-0.2.19/tests/test_anonymous_token.py +192 -0
- pdfdancer_client_python-0.2.19/tests/test_fingerprint.py +114 -0
- pdfdancer_client_python-0.2.19/tests/test_path_models.py +275 -0
- pdfdancer_client_python-0.2.19/update-api-spec.sh +3 -0
- pdfdancer_client_python-0.2.17/docs/openapi.yml +0 -1190
- pdfdancer_client_python-0.2.17/tests/e2e/test_pdfdancer.py +0 -33
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/.claude/commands/discuss.md +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/CLAUDE.md +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/LICENSE +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/NOTICE +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/release.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/setup.cfg +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/image_builder.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer/paragraph_builder.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer_client_python.egg-info/dependency_links.txt +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/src/pdfdancer_client_python.egg-info/top_level.txt +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/__init__.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/conftest.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/e2e/test_positioning.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/DancingScript-Regular.ttf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/Empty.pdf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/JetBrainsMono-Regular.ttf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/ObviouslyAwesome.pdf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/basic-paths.pdf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/form-xobject-example.pdf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/logo-80.png +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/fixtures/mixed-form-types.pdf +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/test_models.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/test_openapi_compliance.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/test_pdf_object_equality.py +0 -0
- {pdfdancer_client_python-0.2.17 → pdfdancer_client_python-0.2.19}/tests/test_standard_fonts.py +0 -0
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
venv/bin/pip install -e ".[dev]"
|
|
33
33
|
|
|
34
34
|
- name: Run tests
|
|
35
|
-
run: PDFDANCER_BASE_URL=https://api
|
|
35
|
+
run: PDFDANCER_BASE_URL=https://api-staging.pdfdancer.com PDFDANCER_TOKEN=42 venv/bin/python -m pytest tests/ -v --maxfail=3
|
|
36
36
|
|
|
37
37
|
- name: Build distribution packages
|
|
38
38
|
run: venv/bin/python -m build
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pdfdancer-client-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.19
|
|
4
4
|
Summary: Python client for PDFDancer API
|
|
5
5
|
Author-email: "The Famous Cat Ltd." <hi@thefamouscat.com>
|
|
6
6
|
License:
|
|
@@ -219,7 +219,7 @@ Requires-Python: >=3.10
|
|
|
219
219
|
Description-Content-Type: text/markdown
|
|
220
220
|
License-File: LICENSE
|
|
221
221
|
License-File: NOTICE
|
|
222
|
-
Requires-Dist:
|
|
222
|
+
Requires-Dist: httpx[http2]>=0.27.0
|
|
223
223
|
Requires-Dist: pydantic>=1.8.0
|
|
224
224
|
Requires-Dist: typing-extensions>=4.0.0
|
|
225
225
|
Requires-Dist: python-dotenv>=0.19.0
|
|
@@ -357,11 +357,9 @@ with helpers such as `delete()`, `move_to(x, y)`, or `edit()` depending on the o
|
|
|
357
357
|
## Configuration
|
|
358
358
|
|
|
359
359
|
- Set `PDFDANCER_TOKEN` for authentication (preferred for local development and CI).
|
|
360
|
-
- Override the API host with `PDFDANCER_BASE_URL` (e.g., sandbox environments).
|
|
361
|
-
- Tune HTTP read timeouts via the `timeout` argument on `PDFDancer.open()` and `PDFDancer.new()
|
|
362
|
-
-
|
|
363
|
-
environment variables such as `PDFDANCER_POOL_CONNECTIONS`, `PDFDANCER_POOL_MAXSIZE`,
|
|
364
|
-
`PDFDANCER_RETRY_TOTAL`, and `PDFDANCER_TRUST_ENV=true` (if you want to honour system proxy settings).
|
|
360
|
+
- Override the API host with `PDFDANCER_BASE_URL` (e.g., sandbox or local environments). Defaults to `https://api.pdfdancer.com`.
|
|
361
|
+
- Tune HTTP read timeouts via the `timeout` argument on `PDFDancer.open()` and `PDFDancer.new()` (default: 30 seconds).
|
|
362
|
+
- For testing against self-signed certificates, call `pdfdancer.set_ssl_verify(False)` to temporarily disable TLS verification.
|
|
365
363
|
|
|
366
364
|
## Error Handling
|
|
367
365
|
|
|
@@ -413,14 +411,13 @@ You should see `(venv)` in your terminal prompt indicating the virtual environme
|
|
|
413
411
|
# Install the package in editable mode with development dependencies
|
|
414
412
|
pip install -e ".[dev]"
|
|
415
413
|
|
|
416
|
-
# Alternatively, install dependencies
|
|
414
|
+
# Alternatively, install runtime dependencies only:
|
|
417
415
|
# pip install -e .
|
|
418
|
-
# pip install -r requirements-dev.txt
|
|
419
416
|
```
|
|
420
417
|
|
|
421
418
|
This installs:
|
|
422
419
|
- The `pdfdancer` package in editable mode (changes reflect immediately)
|
|
423
|
-
- Development
|
|
420
|
+
- Development tooling including `pytest`, `pytest-cov`, `pytest-mock`, `black`, `isort`, `flake8`, `mypy`, `build`, and `twine`.
|
|
424
421
|
|
|
425
422
|
#### 4. Configure API Token
|
|
426
423
|
|
|
@@ -452,7 +449,7 @@ pytest tests/test_models.py -v
|
|
|
452
449
|
pytest tests/e2e/ -v
|
|
453
450
|
```
|
|
454
451
|
|
|
455
|
-
All
|
|
452
|
+
All tests should pass if everything is set up correctly.
|
|
456
453
|
|
|
457
454
|
### Common Development Tasks
|
|
458
455
|
|
|
@@ -500,14 +497,15 @@ python release.py
|
|
|
500
497
|
#### Code Quality
|
|
501
498
|
|
|
502
499
|
```bash
|
|
503
|
-
#
|
|
504
|
-
|
|
500
|
+
# Format code
|
|
501
|
+
black src tests
|
|
502
|
+
isort src tests
|
|
505
503
|
|
|
506
|
-
#
|
|
507
|
-
|
|
504
|
+
# Lint
|
|
505
|
+
flake8 src tests
|
|
508
506
|
|
|
509
|
-
#
|
|
510
|
-
|
|
507
|
+
# Type checking
|
|
508
|
+
mypy src/pdfdancer/
|
|
511
509
|
```
|
|
512
510
|
|
|
513
511
|
### Project Structure
|
|
@@ -527,8 +525,10 @@ pdfdancer-client-python/_main/
|
|
|
527
525
|
│ ├── e2e/ # End-to-end integration tests
|
|
528
526
|
│ └── fixtures/ # Test fixtures and sample PDFs
|
|
529
527
|
├── docs/ # Documentation
|
|
528
|
+
├── dist/ # Build artifacts (created after packaging)
|
|
529
|
+
├── logs/ # Local execution logs (ignored in VCS)
|
|
530
530
|
├── pyproject.toml # Project metadata and dependencies
|
|
531
|
-
├──
|
|
531
|
+
├── release.py # Helper for publishing releases
|
|
532
532
|
└── README.md # This file
|
|
533
533
|
```
|
|
534
534
|
|
|
@@ -120,11 +120,9 @@ with helpers such as `delete()`, `move_to(x, y)`, or `edit()` depending on the o
|
|
|
120
120
|
## Configuration
|
|
121
121
|
|
|
122
122
|
- Set `PDFDANCER_TOKEN` for authentication (preferred for local development and CI).
|
|
123
|
-
- Override the API host with `PDFDANCER_BASE_URL` (e.g., sandbox environments).
|
|
124
|
-
- Tune HTTP read timeouts via the `timeout` argument on `PDFDancer.open()` and `PDFDancer.new()
|
|
125
|
-
-
|
|
126
|
-
environment variables such as `PDFDANCER_POOL_CONNECTIONS`, `PDFDANCER_POOL_MAXSIZE`,
|
|
127
|
-
`PDFDANCER_RETRY_TOTAL`, and `PDFDANCER_TRUST_ENV=true` (if you want to honour system proxy settings).
|
|
123
|
+
- Override the API host with `PDFDANCER_BASE_URL` (e.g., sandbox or local environments). Defaults to `https://api.pdfdancer.com`.
|
|
124
|
+
- Tune HTTP read timeouts via the `timeout` argument on `PDFDancer.open()` and `PDFDancer.new()` (default: 30 seconds).
|
|
125
|
+
- For testing against self-signed certificates, call `pdfdancer.set_ssl_verify(False)` to temporarily disable TLS verification.
|
|
128
126
|
|
|
129
127
|
## Error Handling
|
|
130
128
|
|
|
@@ -176,14 +174,13 @@ You should see `(venv)` in your terminal prompt indicating the virtual environme
|
|
|
176
174
|
# Install the package in editable mode with development dependencies
|
|
177
175
|
pip install -e ".[dev]"
|
|
178
176
|
|
|
179
|
-
# Alternatively, install dependencies
|
|
177
|
+
# Alternatively, install runtime dependencies only:
|
|
180
178
|
# pip install -e .
|
|
181
|
-
# pip install -r requirements-dev.txt
|
|
182
179
|
```
|
|
183
180
|
|
|
184
181
|
This installs:
|
|
185
182
|
- The `pdfdancer` package in editable mode (changes reflect immediately)
|
|
186
|
-
- Development
|
|
183
|
+
- Development tooling including `pytest`, `pytest-cov`, `pytest-mock`, `black`, `isort`, `flake8`, `mypy`, `build`, and `twine`.
|
|
187
184
|
|
|
188
185
|
#### 4. Configure API Token
|
|
189
186
|
|
|
@@ -215,7 +212,7 @@ pytest tests/test_models.py -v
|
|
|
215
212
|
pytest tests/e2e/ -v
|
|
216
213
|
```
|
|
217
214
|
|
|
218
|
-
All
|
|
215
|
+
All tests should pass if everything is set up correctly.
|
|
219
216
|
|
|
220
217
|
### Common Development Tasks
|
|
221
218
|
|
|
@@ -263,14 +260,15 @@ python release.py
|
|
|
263
260
|
#### Code Quality
|
|
264
261
|
|
|
265
262
|
```bash
|
|
266
|
-
#
|
|
267
|
-
|
|
263
|
+
# Format code
|
|
264
|
+
black src tests
|
|
265
|
+
isort src tests
|
|
268
266
|
|
|
269
|
-
#
|
|
270
|
-
|
|
267
|
+
# Lint
|
|
268
|
+
flake8 src tests
|
|
271
269
|
|
|
272
|
-
#
|
|
273
|
-
|
|
270
|
+
# Type checking
|
|
271
|
+
mypy src/pdfdancer/
|
|
274
272
|
```
|
|
275
273
|
|
|
276
274
|
### Project Structure
|
|
@@ -290,8 +288,10 @@ pdfdancer-client-python/_main/
|
|
|
290
288
|
│ ├── e2e/ # End-to-end integration tests
|
|
291
289
|
│ └── fixtures/ # Test fixtures and sample PDFs
|
|
292
290
|
├── docs/ # Documentation
|
|
291
|
+
├── dist/ # Build artifacts (created after packaging)
|
|
292
|
+
├── logs/ # Local execution logs (ignored in VCS)
|
|
293
293
|
├── pyproject.toml # Project metadata and dependencies
|
|
294
|
-
├──
|
|
294
|
+
├── release.py # Helper for publishing releases
|
|
295
295
|
└── README.md # This file
|
|
296
296
|
```
|
|
297
297
|
|