pixxio-client 0.4.2__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.
- pixxio_client-0.4.2/CHANGELOG.md +130 -0
- pixxio_client-0.4.2/LICENSE +21 -0
- pixxio_client-0.4.2/MANIFEST.in +3 -0
- pixxio_client-0.4.2/PKG-INFO +649 -0
- pixxio_client-0.4.2/README.md +609 -0
- pixxio_client-0.4.2/pixxio_client/__init__.py +272 -0
- pixxio_client-0.4.2/pixxio_client/_base.py +1056 -0
- pixxio_client-0.4.2/pixxio_client/collections.py +385 -0
- pixxio_client-0.4.2/pixxio_client/directlinks.py +296 -0
- pixxio_client-0.4.2/pixxio_client/directories.py +248 -0
- pixxio_client-0.4.2/pixxio_client/downloadformats.py +39 -0
- pixxio_client-0.4.2/pixxio_client/exceptions.py +480 -0
- pixxio_client-0.4.2/pixxio_client/externalshares.py +328 -0
- pixxio_client-0.4.2/pixxio_client/files.py +869 -0
- pixxio_client-0.4.2/pixxio_client/filestates.py +38 -0
- pixxio_client-0.4.2/pixxio_client/jobs.py +264 -0
- pixxio_client-0.4.2/pixxio_client/keywords.py +127 -0
- pixxio_client-0.4.2/pixxio_client/licensereleases.py +152 -0
- pixxio_client-0.4.2/pixxio_client/licenses.py +133 -0
- pixxio_client-0.4.2/pixxio_client/metadata.py +224 -0
- pixxio_client-0.4.2/pixxio_client/modelreleases.py +206 -0
- pixxio_client-0.4.2/pixxio_client/models.py +162 -0
- pixxio_client-0.4.2/pixxio_client/permissiongroups.py +38 -0
- pixxio_client-0.4.2/pixxio_client/pixxio_types.py +87 -0
- pixxio_client-0.4.2/pixxio_client/portals.py +144 -0
- pixxio_client-0.4.2/pixxio_client/properties.py +159 -0
- pixxio_client-0.4.2/pixxio_client/propertyreleases.py +212 -0
- pixxio_client-0.4.2/pixxio_client/synonyms.py +82 -0
- pixxio_client-0.4.2/pixxio_client/uploadlinks.py +292 -0
- pixxio_client-0.4.2/pixxio_client/users.py +177 -0
- pixxio_client-0.4.2/pixxio_client/variantstacks.py +117 -0
- pixxio_client-0.4.2/pixxio_client/webhook_middleware.py +378 -0
- pixxio_client-0.4.2/pixxio_client/webhook_parser.py +532 -0
- pixxio_client-0.4.2/pixxio_client.egg-info/PKG-INFO +649 -0
- pixxio_client-0.4.2/pixxio_client.egg-info/SOURCES.txt +41 -0
- pixxio_client-0.4.2/pixxio_client.egg-info/dependency_links.txt +1 -0
- pixxio_client-0.4.2/pixxio_client.egg-info/requires.txt +5 -0
- pixxio_client-0.4.2/pixxio_client.egg-info/top_level.txt +1 -0
- pixxio_client-0.4.2/publish_pypi.ps1 +78 -0
- pixxio_client-0.4.2/pyproject.toml +3 -0
- pixxio_client-0.4.2/requirements-release.txt +3 -0
- pixxio_client-0.4.2/setup.cfg +4 -0
- pixxio_client-0.4.2/setup.py +47 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
> **Maintenance note:** this log was not kept current between `0.1` and `0.3`. The
|
|
9
|
+
> `0.4.0`–`0.4.2` and `Unreleased` sections were reconstructed from git history in
|
|
10
|
+
> October 2026; the `0.1` and `0.2` sections are retrospective summaries because no
|
|
11
|
+
> per-release record was ever written for them.
|
|
12
|
+
|
|
13
|
+
## [Unreleased]
|
|
14
|
+
|
|
15
|
+
## [0.4.2] - 2026-10-14
|
|
16
|
+
|
|
17
|
+
First public PyPI release. Includes the earlier internal `0.4.2` changes and the
|
|
18
|
+
public-release preparation below.
|
|
19
|
+
|
|
20
|
+
### Security
|
|
21
|
+
- Removed all hardcoded credentials from the repository ahead of the open-source release:
|
|
22
|
+
- Test modules read the API key and host from `PIXXIO_TEST_API_KEY` / `PIXXIO_TEST_HOST` through `tests/credentials.py`.
|
|
23
|
+
- Example scripts take credentials from `PIXXIO_API_KEY` / `PIXXIO_HOST` and fail with a clear message when neither the CLI flag nor the environment provides them.
|
|
24
|
+
- `webhook_stub` requires `PIXXIO_WEBHOOK_SECRET` instead of falling back to a built-in signing secret.
|
|
25
|
+
- Redacted the `applicationKey` values captured in `event_json_examples/` fixtures.
|
|
26
|
+
- Replaced demo credentials in `docs/TEST_ENVIRONMENT.md` with placeholders.
|
|
27
|
+
- Anonymized personal data in `event_json_examples/` fixtures and the webhook docs: real user logins, display names and internal user IDs became `demo_*` placeholders.
|
|
28
|
+
- Removed internal hostnames: test and example hosts now come from `PIXXIO_TEST_HOST` / `PIXXIO_HOST` with no defaults, captured host headers in fixtures were replaced with `webhook.example.com`, and deployment docs use placeholders.
|
|
29
|
+
- Added `.env.example` documenting every supported environment variable.
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
- Added the MIT `LICENSE` file and declared `python_requires >= 3.10` in `setup.py`.
|
|
33
|
+
- Added a PEP 517 build configuration, PyPI README/Markdown description, repository and documentation links, search keywords, and SPDX MIT license metadata.
|
|
34
|
+
- Added `publish_pypi.ps1` and `requirements-release.txt` for validated wheel/source builds and PyPI uploads using an encrypted local Windows credential; Forgejo publishing remains unchanged.
|
|
35
|
+
- Real-world InDesign examples: `examples/analyze_indd_links_com.py`, `apply_pixxio_labels_to_indd.py`, `build_pixxio_image_mapping_csv.py`, `download_collection_assets.py` and `upload_changed_indd_files.py`.
|
|
36
|
+
- Webhook payload fixtures in `event_json_examples/` covering file, direct link, metadata, keyword, language, file state, collection, external share, marked-user and license events.
|
|
37
|
+
- `AGENTS.md` documentation contracts for the repository root and each major folder.
|
|
38
|
+
- `.vscode/settings.json` workspace settings and `diagnose_failing_files.py` helper.
|
|
39
|
+
- `tests/credentials.py` shared credential lookup and a complete `tests/README.md` inventory.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- Parameterized `webhook_stub/docker-compose.yml` through a local `.env` (`PIXXIO_WEBHOOK_SECRET`, `STUB_HOST`, `STUB_NETWORK`) and added `webhook_stub/.env.example`; dropped the obsolete compose `version` key.
|
|
43
|
+
- Rewrote `README.md` against the current API surface: all 27 resource classes, payload builders, webhooks, and complete documentation/example/test indexes.
|
|
44
|
+
- Pointed installation, development, repository and issue links at the public GitHub repository and documented installation from PyPI.
|
|
45
|
+
- Anchored the `.gitignore` test patterns to the repository root so the test suite under `tests/` is no longer ignored in Git; distribution archives contain the library rather than the repository tests.
|
|
46
|
+
- Documented the Python 3.10+ requirement (the `metadata` module uses PEP 604 union syntax).
|
|
47
|
+
- Added `pywin32` to `requirements.txt`.
|
|
48
|
+
- Turned `docs/README.md` into a real documentation index.
|
|
49
|
+
|
|
50
|
+
### Removed
|
|
51
|
+
- Removed the internal push helper script from version control; it is now covered by the `push_*.bat` entry in `.gitignore`.
|
|
52
|
+
- Trimmed `.github/copilot-instructions.md` down to a pointer at the root `AGENTS.md`.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- List requests no longer send pagination parameters to endpoints that do not support them.
|
|
57
|
+
- `ReadOnlyResourceBase` gained opt-out pagination handling through the `_paged` flag.
|
|
58
|
+
- Disabled pagination for `DownloadFormat`, `FileState`, `LicenseRelease`, `ModelRelease`, `Portal` and `PropertyRelease`.
|
|
59
|
+
|
|
60
|
+
## [0.4.1] - 2026-05-04
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
- Refactored response field handling in the file convert path so conversion requests no longer carry an unsupported `responseFields` parameter.
|
|
64
|
+
|
|
65
|
+
### Documentation
|
|
66
|
+
- Expanded `docs/API_REFERENCE.md` and `docs/DEVELOPER_GUIDE.md` with builder usage for collections and the newer resources.
|
|
67
|
+
- Updated `examples/basic_usage.py` to the builder-based API.
|
|
68
|
+
|
|
69
|
+
## [0.4.0] - 2026-04-29
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- Fluent payload builders plus `list()`, `create()` and `update()` convenience methods across the CRUD resources: `Collection`, `DirectLink`, `Directory`, `ExternalShare`, `File`, `License`, `LicenseRelease`, `Model`, `ModelRelease`, `Property`, `PropertyRelease`, `UploadLink`, `User` and `VariantStack`.
|
|
73
|
+
- `FileDeleteBuilder` and `File.delete()`.
|
|
74
|
+
- `CollectionDeleteBuilder` and `Collection.delete()`.
|
|
75
|
+
- Job helpers: `Job.get_status()`, `Job.abort()`, `wait_for_completion()` and `async_wait_for_completion()`.
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
- Reworked response handling in `File` and improved metadata option processing.
|
|
79
|
+
- Improved docstrings across the resource modules.
|
|
80
|
+
|
|
81
|
+
## [0.3] - 2026-04-23
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
- Prevented automatic `responseFields` injection on specialized GET endpoints that do not support it.
|
|
85
|
+
- Added a shared base opt-out mechanism and applied it to:
|
|
86
|
+
- `File.download()` convert endpoints
|
|
87
|
+
- `Directory.get_tree()`
|
|
88
|
+
- `Keyword.download()` CSV endpoint
|
|
89
|
+
- `Synonym.get_columns()`
|
|
90
|
+
- `PortalPage.get()` and `PortalUser.get()`
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
- Focused unit tests for response field injection behavior in `tests/response_fields_injection_checks.py`.
|
|
94
|
+
- Method-specific response field filtering (`GET_LIST` / `GET_SINGLE`).
|
|
95
|
+
- Webhook parser support for metadata field truncate, keyword added and keyword removed events.
|
|
96
|
+
- `_ResponseObject` string formatting, `to_dict()`, and graceful handling of missing attributes.
|
|
97
|
+
|
|
98
|
+
### Documentation
|
|
99
|
+
- Added developer guidance for specialized endpoint response field behavior.
|
|
100
|
+
- Added error handling notes for response field parameter mismatches.
|
|
101
|
+
|
|
102
|
+
## [0.2] - 2025-11-12
|
|
103
|
+
|
|
104
|
+
### Added
|
|
105
|
+
- Webhook parser (`pixxio_client/webhook_parser.py`) built around the generalized `EventData` model, plus `pixxio_client/webhook_middleware.py`.
|
|
106
|
+
- PIXXIO webhook stub application for local receiver testing, with Docker support, event storage and a web interface.
|
|
107
|
+
- HMAC-SHA256 webhook signature verification.
|
|
108
|
+
- `File.upload_url_and_wait()` for uploading an asset from a remote URL.
|
|
109
|
+
- `FileUpdateBuilder`, `FileUploadBuilder` and `File.update()`.
|
|
110
|
+
- Metadata value builders with field validation, bulk add/replace/remove and selection option lookup.
|
|
111
|
+
- Per-method response field filtering for `File`.
|
|
112
|
+
|
|
113
|
+
### Changed
|
|
114
|
+
- Added pagination support to `ReadOnlyResourceBase` and the metadata resources.
|
|
115
|
+
- Introduced query parameter transformation helpers.
|
|
116
|
+
- Consolidated all documentation under `docs/` and added the webhook guides in `docs/webhook/`.
|
|
117
|
+
|
|
118
|
+
### Fixed
|
|
119
|
+
- `CustomMetadata` and `StandardMetadata` now inherit from `ResourceBase`.
|
|
120
|
+
- Corrected package discovery in `setup.py`.
|
|
121
|
+
- The JSON `Accept` header is now sent with requests.
|
|
122
|
+
|
|
123
|
+
## [0.1] - 2025-10-02
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
- Initial release: `Client` and `Authentication`, `ReadOnlyResourceBase`, `ResourceBase`, `ResourceUploadMixin` and `ResourceJobMixin`.
|
|
127
|
+
- Resource classes for all endpoints: files, collections, users, directories, jobs, keywords, licenses, license releases, models, model releases, properties, property releases, variant stacks, upload links, direct links, external shares, portals, file states, download formats, permission groups and metadata.
|
|
128
|
+
- Custom exception hierarchy for HTTP status codes and business logic errors.
|
|
129
|
+
- OpenAPI-derived type hints, README, API reference and developer documentation.
|
|
130
|
+
- Example scripts and an integration test suite.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 everleah
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|