sqlalchemy-cloudflare-d1 0.3.9__tar.gz → 0.3.11__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.
Files changed (35) hide show
  1. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/CHANGELOG.md +24 -0
  2. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/PKG-INFO +1 -1
  3. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/workers/src/entry.py +669 -0
  4. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/workers/uv.lock +1 -1
  5. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/pyproject.toml +1 -1
  6. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/src/sqlalchemy_cloudflare_d1/__init__.py +3 -1
  7. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/src/sqlalchemy_cloudflare_d1/compiler.py +64 -38
  8. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/src/sqlalchemy_cloudflare_d1/connection.py +30 -26
  9. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/src/sqlalchemy_cloudflare_d1/dialect.py +191 -21
  10. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/src/sqlalchemy_cloudflare_d1/dialect_async.py +31 -39
  11. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/integration/test_restapi_integration.py +398 -0
  12. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/integration/test_worker_integration.py +166 -0
  13. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/unit/test_dialect.py +121 -0
  14. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/uv.lock +1 -1
  15. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/.github/DEVELOPMENT.md +0 -0
  16. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/.github/workflows/ci.yml +0 -0
  17. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/.github/workflows/release.yml +0 -0
  18. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/.gitignore +0 -0
  19. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/.pre-commit-config.yaml +0 -0
  20. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/.python-version +0 -0
  21. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/LICENSE +0 -0
  22. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/Makefile +0 -0
  23. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/README.md +0 -0
  24. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/assets/d1-logo.png +0 -0
  25. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/assets/sqlalchemy-logo.png +0 -0
  26. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/restapi/example.py +0 -0
  27. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/workers/README.md +0 -0
  28. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/workers/db_init.sql +0 -0
  29. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/workers/pyproject.toml +0 -0
  30. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/examples/workers/wrangler.jsonc +0 -0
  31. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/src/sqlalchemy_cloudflare_d1/py.typed +0 -0
  32. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/__init__.py +0 -0
  33. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/conftest.py +0 -0
  34. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/integration/test_base_url_integration.py +0 -0
  35. {sqlalchemy_cloudflare_d1-0.3.9 → sqlalchemy_cloudflare_d1-0.3.11}/tests/test_utils.py +0 -0
@@ -13,6 +13,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
13
  ### Fixed
14
14
 
15
15
 
16
+ ## [0.3.11]
17
+
18
+ ### Added
19
+
20
+ - Added REST API and Worker integration coverage for composite primary key DDL and constraint reflection
21
+
22
+ ### Fixed
23
+
24
+ - Fixed composite primary key DDL emitting duplicate `PRIMARY KEY` clauses, which D1 rejects with `SQLITE_ERROR`
25
+ - Fixed foreign key reflection to include SQLAlchemy's expected `referred_schema` key
26
+ - Implemented unique constraint reflection for D1 tables, including inline and named table-level unique constraints
27
+
28
+
29
+ ## [0.3.10]
30
+
31
+ ### Added
32
+
33
+ - `UUID` and `Enum` column type support ([#24](https://github.com/CollierKing/sqlalchemy-cloudflare-d1/issues/24))
34
+ - Added `D1UUID` type processor that converts `uuid.UUID` objects to hyphenated strings on bind and parses them back on result; supports UUID as primary key and nullable columns
35
+ - Added `D1Enum` type processor that converts Python `enum.Enum` objects to their string values on bind and reconstructs them on result; supports both string-value enums and Python enum classes
36
+ - Both types store as `TEXT` in D1 (SQLite-compatible)
37
+ - Works in both REST API and Worker modes
38
+
39
+
16
40
  ## [0.3.9]
17
41
 
18
42
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlalchemy-cloudflare-d1
3
- Version: 0.3.9
3
+ Version: 0.3.11
4
4
  Summary: A SQLAlchemy dialect for Cloudflare's D1 Serverless SQLite Database
5
5
  Project-URL: Homepage, https://github.com/collierking/sqlalchemy-cloudflare-d1
6
6
  Project-URL: Repository, https://github.com/collierking/sqlalchemy-cloudflare-d1