ferro-orm 0.2.0__tar.gz → 0.2.1__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.
- ferro_orm-0.2.1/.github/ISSUE_TEMPLATE/bug_report.md +43 -0
- ferro_orm-0.2.1/.github/ISSUE_TEMPLATE/feature_request.md +37 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/workflows/publish-docs.yml +2 -1
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.gitignore +2 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/CHANGELOG.md +48 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/Cargo.lock +330 -229
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/Cargo.toml +1 -1
- ferro_orm-0.2.1/DOCS_COMPLETE.md +226 -0
- ferro_orm-0.2.1/DOCS_RESTRUCTURE_SUMMARY.md +213 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/PKG-INFO +1 -1
- ferro_orm-0.2.1/docs/TEST_RESULTS.md +208 -0
- ferro_orm-0.2.1/docs/api/fields.md +21 -0
- ferro_orm-0.2.1/docs/api/model.md +29 -0
- ferro_orm-0.2.1/docs/api/query.md +24 -0
- ferro_orm-0.2.1/docs/api/relationships.md +28 -0
- ferro_orm-0.2.1/docs/api/transactions.md +36 -0
- ferro_orm-0.2.1/docs/api/utilities.md +75 -0
- ferro_orm-0.2.1/docs/changelog.md +36 -0
- ferro_orm-0.2.1/docs/coming-soon.md +514 -0
- ferro_orm-0.2.1/docs/concepts/architecture.md +330 -0
- ferro_orm-0.2.1/docs/concepts/identity-map.md +285 -0
- ferro_orm-0.2.1/docs/concepts/performance.md +221 -0
- ferro_orm-0.2.1/docs/concepts/type-safety.md +159 -0
- ferro_orm-0.2.1/docs/faq.md +255 -0
- ferro_orm-0.2.1/docs/getting-started/installation.md +90 -0
- ferro_orm-0.2.1/docs/getting-started/next-steps.md +159 -0
- ferro_orm-0.2.1/docs/getting-started/tutorial.md +388 -0
- ferro_orm-0.2.1/docs/guide/database.md +266 -0
- ferro_orm-0.2.1/docs/guide/migrations.md +411 -0
- ferro_orm-0.2.1/docs/guide/models-and-fields.md +184 -0
- ferro_orm-0.2.1/docs/guide/mutations.md +461 -0
- ferro_orm-0.2.1/docs/guide/queries.md +329 -0
- ferro_orm-0.2.1/docs/guide/relationships.md +332 -0
- ferro_orm-0.2.1/docs/guide/transactions.md +357 -0
- ferro_orm-0.2.1/docs/howto/multiple-databases.md +74 -0
- ferro_orm-0.2.1/docs/howto/pagination.md +353 -0
- ferro_orm-0.2.1/docs/howto/soft-deletes.md +86 -0
- ferro_orm-0.2.1/docs/howto/testing.md +123 -0
- ferro_orm-0.2.1/docs/howto/timestamps.md +57 -0
- ferro_orm-0.2.1/docs/index.md +142 -0
- ferro_orm-0.2.1/docs/migration-sqlalchemy.md +150 -0
- ferro_orm-0.2.1/docs/stylesheets/extra.css +27 -0
- ferro_orm-0.2.1/docs/why-ferro.md +206 -0
- ferro_orm-0.2.1/mkdocs.yml +161 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/pyproject.toml +2 -2
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/scripts/demo_queries.py +3 -3
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/__init__.py +2 -2
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/fields.py +35 -24
- ferro_orm-0.2.1/src/ferro/metaclass.py +391 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/models.py +9 -0
- ferro_orm-0.2.1/src/ferro/query/__init__.py +6 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/query/builder.py +2 -2
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/relations/__init__.py +15 -13
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/relations/descriptors.py +22 -24
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/conftest.py +4 -3
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_alembic_bridge.py +4 -4
- ferro_orm-0.2.1/tests/test_auto_migrate.py +78 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_crud.py +25 -25
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_docs_examples.py +3 -0
- ferro_orm-0.2.1/tests/test_documentation_features.py +830 -0
- ferro_orm-0.2.1/tests/test_metaclass_internals.py +340 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_one_to_one.py +2 -2
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_relationship_engine.py +76 -11
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_schema_constraints.py +8 -6
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/uv.lock +1 -1
- ferro_orm-0.2.0/docs/api/core-models.md +0 -6
- ferro_orm-0.2.0/docs/api/field-metadata.md +0 -17
- ferro_orm-0.2.0/docs/api/global-functions.md +0 -21
- ferro_orm-0.2.0/docs/api/query-builder.md +0 -11
- ferro_orm-0.2.0/docs/api.md +0 -10
- ferro_orm-0.2.0/docs/connection.md +0 -48
- ferro_orm-0.2.0/docs/fields.md +0 -80
- ferro_orm-0.2.0/docs/index.md +0 -3
- ferro_orm-0.2.0/docs/migrations.md +0 -52
- ferro_orm-0.2.0/docs/models.md +0 -64
- ferro_orm-0.2.0/docs/queries.md +0 -89
- ferro_orm-0.2.0/docs/relations.md +0 -85
- ferro_orm-0.2.0/docs/transactions.md +0 -57
- ferro_orm-0.2.0/mkdocs.yml +0 -104
- ferro_orm-0.2.0/src/ferro/metaclass.py +0 -216
- ferro_orm-0.2.0/src/ferro/query/__init__.py +0 -6
- ferro_orm-0.2.0/tests/test_auto_migrate.py +0 -37
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/PERMISSIONS.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/PYPI_CHECKLIST.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/PYPI_SETUP.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/generated/wheels.generated.yml +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/pull_request_template.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/workflows/ci.yml +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/workflows/packaging-smoke.yml +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/workflows/publish.yml +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.github/workflows/release.yml +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.pre-commit-config.yaml +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/.python-version +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/CONTRIBUTING.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/LICENSE +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/README.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/docs/contributing.md +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/justfile +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/connection.rs +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/_core.pyi +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/base.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/migrations/__init__.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/migrations/alembic.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/py.typed +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/query/nodes.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/ferro/state.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/lib.rs +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/operations.rs +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/query.rs +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/schema.rs +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/src/state.rs +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_aggregation.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_alembic_autogenerate.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_alembic_type_mapping.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_bulk_update.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_connection.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_constraints.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_deletion.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_field_wrapper.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_helpers.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_hydration.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_metadata.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_models.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_query_builder.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_refresh.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_schema.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_string_search.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_structural_types.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_temporal_types.py +0 -0
- {ferro_orm-0.2.0 → ferro_orm-0.2.1}/tests/test_transactions.py +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report a bug or unexpected behavior
|
|
4
|
+
title: "`bug` "
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: Ox54
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
<!-- Brief description of the bug. -->
|
|
13
|
+
|
|
14
|
+
## Environment
|
|
15
|
+
|
|
16
|
+
- **Ferro version:** <!-- e.g. 0.1.0 or git commit -->
|
|
17
|
+
- **Python version:**
|
|
18
|
+
- **OS:** <!-- e.g. macOS 14, Ubuntu 22.04 -->
|
|
19
|
+
- **Database:** <!-- e.g. SQLite 3.43, PostgreSQL 15 -->
|
|
20
|
+
|
|
21
|
+
## Steps to reproduce
|
|
22
|
+
|
|
23
|
+
1.
|
|
24
|
+
2.
|
|
25
|
+
3.
|
|
26
|
+
|
|
27
|
+
## Expected behavior
|
|
28
|
+
|
|
29
|
+
<!-- What should happen. -->
|
|
30
|
+
|
|
31
|
+
## Actual behavior
|
|
32
|
+
|
|
33
|
+
<!-- What actually happens. Include error messages or tracebacks if relevant. -->
|
|
34
|
+
|
|
35
|
+
## Minimal example (optional)
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
# Minimal code that reproduces the issue
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Additional context
|
|
42
|
+
|
|
43
|
+
<!-- Logs, screenshots, or other details that might help. -->
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest a new feature or enhancement for Ferro
|
|
4
|
+
title: "`feat` "
|
|
5
|
+
labels: feature
|
|
6
|
+
assignees: Ox54
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
<!-- One or two sentences describing the feature and why it would be useful. -->
|
|
13
|
+
|
|
14
|
+
## Current state
|
|
15
|
+
|
|
16
|
+
**Status:** <!-- e.g. Not implemented / Partially implemented -->
|
|
17
|
+
|
|
18
|
+
<!-- If partially implemented, list what works and what does not. -->
|
|
19
|
+
|
|
20
|
+
**Documentation references:**
|
|
21
|
+
- <!-- e.g. docs/coming-soon.md, docs/guide/queries.md (lines X–Y) -->
|
|
22
|
+
|
|
23
|
+
**Current workaround:** <!-- How can users achieve this today, if at all? -->
|
|
24
|
+
|
|
25
|
+
## Proposed API (examples)
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
# Example of how the feature would be used
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
<!-- Describe how this would integrate with the existing API (query builder, models, etc.). -->
|
|
32
|
+
|
|
33
|
+
## Acceptance criteria
|
|
34
|
+
|
|
35
|
+
- [ ]
|
|
36
|
+
- [ ]
|
|
37
|
+
- [ ] Docs updated (e.g. remove from Coming Soon, add to relevant guide).
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
name: Publish Docs
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
+
workflow_dispatch:
|
|
4
5
|
workflow_call:
|
|
5
6
|
inputs:
|
|
6
7
|
ref:
|
|
@@ -41,7 +42,7 @@ jobs:
|
|
|
41
42
|
|
|
42
43
|
- name: Build MkDocs site
|
|
43
44
|
run: |
|
|
44
|
-
uv run mkdocs build
|
|
45
|
+
uv run --no-sync mkdocs build
|
|
45
46
|
|
|
46
47
|
- name: Upload Pages artifact
|
|
47
48
|
uses: actions/upload-pages-artifact@v3
|
|
@@ -1,6 +1,54 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v0.2.1 (2026-04-20)
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
- Defer annotations resolution
|
|
9
|
+
([`edd39ab`](https://github.com/syn54x/ferro-orm/commit/edd39abdec7b34410040394d430fd30833e02aee))
|
|
10
|
+
|
|
11
|
+
### Chores
|
|
12
|
+
|
|
13
|
+
- Update patch_tags in pyproject.toml to include refactor
|
|
14
|
+
([`36c29a7`](https://github.com/syn54x/ferro-orm/commit/36c29a71f0f95845d50d1dd6fdbc14b2c4b20ac2))
|
|
15
|
+
|
|
16
|
+
### Continuous Integration
|
|
17
|
+
|
|
18
|
+
- Fix release & mkdocs publish workflows
|
|
19
|
+
([`630dc7c`](https://github.com/syn54x/ferro-orm/commit/630dc7cea32da02602acc037e1d8da722d3fb593))
|
|
20
|
+
|
|
21
|
+
### Documentation
|
|
22
|
+
|
|
23
|
+
- Restructure documentation following Diátaxis framework
|
|
24
|
+
([`b3c2cde`](https://github.com/syn54x/ferro-orm/commit/b3c2cde1d0bde589ad0f08a34002202bca81e5e5))
|
|
25
|
+
|
|
26
|
+
- Update BackRef references and enhance field documentation
|
|
27
|
+
([`baf73ba`](https://github.com/syn54x/ferro-orm/commit/baf73ba03abd554ca8159bc718aa1785b08691ae))
|
|
28
|
+
|
|
29
|
+
- Update model field annotations to support optional back references
|
|
30
|
+
([`2044896`](https://github.com/syn54x/ferro-orm/commit/20448966854d33e64c03a97831f640af279e93b4))
|
|
31
|
+
|
|
32
|
+
### Refactoring
|
|
33
|
+
|
|
34
|
+
- Enhance model relationship descriptors and improve field handling
|
|
35
|
+
([`6275ebb`](https://github.com/syn54x/ferro-orm/commit/6275ebb9be3ce7a419fb84c381c0a90eec22a5e9))
|
|
36
|
+
|
|
37
|
+
- Modularize metaclass __new__ method for easier testing and maintenance
|
|
38
|
+
([`e514b95`](https://github.com/syn54x/ferro-orm/commit/e514b950cb94e333418f7bd556b8e5b48bf7298e))
|
|
39
|
+
|
|
40
|
+
- Rename BackRelationship to BackRef and add back_ref to Field
|
|
41
|
+
([`d24d32d`](https://github.com/syn54x/ferro-orm/commit/d24d32d3402b51cb738ac2a2c8f396b98d4de632))
|
|
42
|
+
|
|
43
|
+
- Update demo_queries to use BackRef instead of BackRelationship
|
|
44
|
+
([`51799ad`](https://github.com/syn54x/ferro-orm/commit/51799adc1a0b90f937cab7651cf8276f53a16100))
|
|
45
|
+
|
|
46
|
+
### Testing
|
|
47
|
+
|
|
48
|
+
- Update references from BackRelationship to BackRef in test files
|
|
49
|
+
([`60a1d87`](https://github.com/syn54x/ferro-orm/commit/60a1d87d88fe93996dc0b479c75d40aad3ff143b))
|
|
50
|
+
|
|
51
|
+
|
|
4
52
|
## v0.2.0 (2026-02-14)
|
|
5
53
|
|
|
6
54
|
### Chores
|