pdfdancer-client-python 0.2.7__tar.gz → 0.2.8__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.7/src/pdfdancer_client_python.egg-info → pdfdancer_client_python-0.2.8}/PKG-INFO +1 -1
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/pyproject.toml +1 -1
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/pdfdancer_v1.py +2 -2
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8/src/pdfdancer_client_python.egg-info}/PKG-INFO +1 -1
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer_client_python.egg-info/SOURCES.txt +1 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_paragraph.py +1 -1
- pdfdancer_client_python-0.2.8/tests/e2e/test_pdfdancer.py +33 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/.github/workflows/ci.yml +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/.gitignore +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/CLAUDE.md +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/README.md +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/docs/openapi.yml +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/release.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/requirements-dev.txt +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/requirements.txt +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/setup.cfg +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/__init__.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/exceptions.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/image_builder.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/models.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/paragraph_builder.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/types.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer_client_python.egg-info/dependency_links.txt +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer_client_python.egg-info/requires.txt +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer_client_python.egg-info/top_level.txt +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/__init__.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/conftest.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/__init__.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_acroform.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_form_x_objects.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_image.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_line.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_page.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_path.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/DancingScript-Regular.ttf +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/JetBrainsMono-Regular.ttf +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/ObviouslyAwesome.pdf +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/basic-paths.pdf +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/form-xobject-example.pdf +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/logo-80.png +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/mixed-form-types.pdf +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/test_authentication.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/test_models.py +0 -0
- {pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/test_openapi_compliance.py +0 -0
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/pdfdancer_v1.py
RENAMED
|
@@ -779,7 +779,7 @@ class PDFDancer:
|
|
|
779
779
|
|
|
780
780
|
# Document Operations
|
|
781
781
|
|
|
782
|
-
def
|
|
782
|
+
def get_bytes(self) -> bytes:
|
|
783
783
|
"""
|
|
784
784
|
Downloads the current state of the PDF document with all modifications applied.
|
|
785
785
|
|
|
@@ -804,7 +804,7 @@ class PDFDancer:
|
|
|
804
804
|
raise ValidationException("File path cannot be null or empty")
|
|
805
805
|
|
|
806
806
|
try:
|
|
807
|
-
pdf_data = self.
|
|
807
|
+
pdf_data = self.get_bytes()
|
|
808
808
|
output_path = Path(file_path)
|
|
809
809
|
|
|
810
810
|
# Create parent directories if they don't exist
|
|
@@ -32,6 +32,7 @@ tests/e2e/test_line.py
|
|
|
32
32
|
tests/e2e/test_page.py
|
|
33
33
|
tests/e2e/test_paragraph.py
|
|
34
34
|
tests/e2e/test_path.py
|
|
35
|
+
tests/e2e/test_pdfdancer.py
|
|
35
36
|
tests/fixtures/DancingScript-Regular.ttf
|
|
36
37
|
tests/fixtures/JetBrainsMono-Regular.ttf
|
|
37
38
|
tests/fixtures/ObviouslyAwesome.pdf
|
|
@@ -161,7 +161,7 @@ def test_add_paragraph_with_custom_font3():
|
|
|
161
161
|
with PDFDancer.open(pdf_path, token=token, base_url=base_url, timeout=30.0) as pdf:
|
|
162
162
|
pdf.new_paragraph() \
|
|
163
163
|
.text("Awesomely\nObvious!") \
|
|
164
|
-
.font_file(
|
|
164
|
+
.font_file(ttf_path, 24) \
|
|
165
165
|
.line_spacing(1.8) \
|
|
166
166
|
.color(Color(0, 0, 255)) \
|
|
167
167
|
.at(0, 300.1, 500) \
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
from e2e import _require_env_and_fixture
|
|
6
|
+
from pdfdancer import PDFDancer, ValidationException, HttpClientException
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def test_env_vars():
|
|
10
|
+
base_url, _, pdf_path = _require_env_and_fixture("ObviouslyAwesome.pdf")
|
|
11
|
+
os.environ.pop("PDFDANCER_TOKEN", None)
|
|
12
|
+
|
|
13
|
+
with pytest.raises(ValidationException) as exc_info:
|
|
14
|
+
with PDFDancer.open(pdf_path, base_url=base_url) as pdf:
|
|
15
|
+
pass
|
|
16
|
+
assert "Missing PDFDancer API token. Pass a token via the `token` argument or set the PDFDANCER_TOKEN environment variable." == str(
|
|
17
|
+
exc_info.value)
|
|
18
|
+
|
|
19
|
+
os.environ["PDFDANCER_TOKEN"] = "42"
|
|
20
|
+
with PDFDancer.open(pdf_path, base_url=base_url) as pdf:
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
os.environ["PDFDANCER_BASE_URL"] = "http://www.google.com"
|
|
24
|
+
with pytest.raises(HttpClientException) as exc_info:
|
|
25
|
+
with PDFDancer.open(pdf_path) as pdf:
|
|
26
|
+
pass
|
|
27
|
+
|
|
28
|
+
os.environ["PDFDANCER_BASE_URL"] = "https://api.pdfdancer.com"
|
|
29
|
+
with pytest.raises(ValidationException) as exc_info:
|
|
30
|
+
with PDFDancer.open(pdf_path) as pdf:
|
|
31
|
+
pass
|
|
32
|
+
assert "Authentication with the PDFDancer API failed. Confirm that your API token is valid, has not expired" in str(
|
|
33
|
+
exc_info.value)
|
|
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
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/image_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/src/pdfdancer/paragraph_builder.py
RENAMED
|
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
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/e2e/test_form_x_objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/ObviouslyAwesome.pdf
RENAMED
|
File without changes
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/basic-paths.pdf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/fixtures/mixed-form-types.pdf
RENAMED
|
File without changes
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/test_authentication.py
RENAMED
|
File without changes
|
|
File without changes
|
{pdfdancer_client_python-0.2.7 → pdfdancer_client_python-0.2.8}/tests/test_openapi_compliance.py
RENAMED
|
File without changes
|