d3vyce
9268b576b4
feat: add M2M helpers ( #247 )
2026-04-12 18:46:57 +02:00
d3vyce
863e6ce6e9
feat: add get_field_by_attr fixtures helper ( #245 )
2026-04-12 17:12:08 +02:00
d3vyce
c7397faea4
feat: auto eager-load relationships in register_fixtures ( #243 )
2026-04-12 17:04:44 +02:00
d3vyce
2a49814818
feat: normalize enum facet values to member names and accept name strings in filter_by ( #235 )
2026-04-07 11:42:24 +02:00
d3vyce
54decaf3e1
fix: coerce plain int values to enum member when filtering on IntEnum column ( #231 )
2026-04-07 10:43:01 +02:00
d3vyce
8bed96f4bf
fix: apply default_load_options after create() and update() to prevent MissingGreenlet on relationship access ( #229 )
2026-04-04 20:47:05 +02:00
d3vyce
74d15e13bc
feat: support relation tuples in order_fields for cross-table sorting ( #227 )
...
* feat: support relation tuples in order_fields for cross-table sorting
* docs: update crud module
2026-04-04 17:00:14 +02:00
d3vyce
e38d8d2d4f
feat: expose sort_columns in paginated response ( #225 )
2026-04-04 14:46:36 +02:00
d3vyce
e388e26858
fix: widen JoinType to accept aliased and polymorphic targets ( #221 )
2026-04-02 22:58:52 +02:00
d3vyce
04da241294
fix: coerce string values to bool for Boolean facet field filtering ( #219 )
2026-04-02 22:58:07 +02:00
d3vyce
bbe63edc46
Version 3.0.0 ( #201 )
...
* chore: remove deprecated code
* docs: update v3 migration guide
* fix: pytest warnings
* Version 3.0.0
* fix: docs workflows
2026-04-02 11:21:31 +02:00
d3vyce
0b17c77dee
fix: deduplicate relationship joins when searchable_fields and facet_fields reference the same model ( #217 )
2026-04-02 11:09:26 +02:00
d3vyce
32059dcb02
feat: consolidate *_params dependencies into per-paginate-style methods with feature toggles ( #209 )
2026-04-01 20:53:14 +02:00
d3vyce
f027981e80
feat: add search_column parameter and search_columns response field for targeted search ( #207 )
2026-04-01 18:10:56 +02:00
d3vyce
5c1487c24a
fix: suppress UPDATE callbacks for objects deleted in the same transaction ( #205 )
2026-03-31 21:40:18 +02:00
d3vyce
ebaa61525f
fix: handle boolean and ARRAY column types in filter_by facet filtering ( #203 )
2026-03-31 21:36:54 +02:00
d3vyce
0b3f097012
fix: batch insert normalizes away omitted nullable columns ( #198 )
2026-03-30 18:50:05 +02:00
d3vyce
1890d696bf
feat: rework async event system ( #196 )
...
* feat: rework async event system
* docs: add v3 migration guide
* feat: add cache
* enhancements
2026-03-30 18:24:36 +02:00
d3vyce
f5afbbe37f
fix: snapshot nullable columns correctly in WatchedFieldsMixin callback ( #194 )
2026-03-28 18:47:06 +01:00
d3vyce
f4698bea8a
fix: normalize batch insert rows to prevent silent data loss for nullable columns ( #192 )
2026-03-27 19:20:41 +01:00
d3vyce
5215b921ae
fix: facet keys always use full relation chain ( #190 )
2026-03-27 18:56:58 +01:00
9dad59e25d
tests: close generator instead of session in test_get_db_yields_async_session
2026-03-26 16:09:44 -04:00
d3vyce
29326ab532
perf: batch insert fixtures ( #188 )
2026-03-26 20:29:25 +01:00
d3vyce
04afef7e33
feat(fixtures): fixtures multi-variant contexts, custom Enum support, and context-filtered loading ( #187 )
2026-03-26 20:19:41 +01:00
d3vyce
666c621fda
fix: create_db_session commits via real transaction, not savepoint ( #184 )
2026-03-26 19:57:40 +01:00
dependabot[bot]
65d0b0e0b1
⬆ Bump ty from 0.0.23 to 0.0.25 ( #178 )
...
* ⬆ Bump ty from 0.0.23 to 0.0.25
Bumps [ty](https://github.com/astral-sh/ty ) from 0.0.23 to 0.0.25.
- [Release notes](https://github.com/astral-sh/ty/releases )
- [Changelog](https://github.com/astral-sh/ty/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ty/compare/0.0.23...0.0.25 )
---
updated-dependencies:
- dependency-name: ty
dependency-version: 0.0.25
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
* fix: ty warnings
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: d3vyce <nicolas.sudres@proton.me >
2026-03-26 12:57:29 +01:00
d3vyce
b4eb4c1ca9
fix: force auto-begin in create_db_dependency so lock_tables always uses savepoints ( #176 )
2026-03-25 19:26:28 +01:00
d3vyce
b5e6dfe6fe
refactor: test suite cleanup and simplification ( #174 )
2026-03-24 20:38:35 +01:00
d3vyce
6981c33dc8
fix: inherit @watch field filter from parent classes via MRO traversal ( #170 )
2026-03-23 19:08:17 +01:00
d3vyce
0c7a99039c
fix: await any awaitable callback return value, not only coroutines ( #168 )
2026-03-23 18:58:48 +01:00
d3vyce
bcb5b0bfda
fix: suppress on_create/on_delete for objects created and deleted within the same transaction ( #166 )
2026-03-23 18:51:28 +01:00
d3vyce
db6c7a565f
feat: add offset_params, cursor_params and paginate_params FastAPI dependency factories ( #162 )
2026-03-21 16:44:11 +01:00
d3vyce
f0223ebde4
feat: add pages computed field to OffsetPagination schema ( #159 )
2026-03-21 15:24:11 +01:00
d3vyce
f8c9bf69fe
feat: add include_total flag to offset pagination to skip COUNT query ( #158 )
2026-03-21 15:16:22 +01:00
d3vyce
fc9cd1f034
fix: resolve MissingGreenlet error when accessing self attributes in WatchedFieldsMixin callbacks ( #154 )
2026-03-20 20:52:11 +01:00
d3vyce
f82225f995
feat: add WatchedFieldsMixin ( #148 )
...
* feat/add WatchedFieldsMixin and watch_fields decorator for field-change monitoring
* docs: add WatchedFieldsMixin
* feat: add on_event, on_create and on_delete
* docs: update README
2026-03-19 19:19:33 +01:00
d3vyce
2e9c6c0c90
feat: support Annotated[AsyncSession, Depends(...)] in PathDependency and BodyDependency ( #146 )
2026-03-18 20:10:58 +01:00
d3vyce
fd7269a372
refactor: CursorDirection enum, cursor value parsing and __class_getitem__ caching ( #144 )
2026-03-15 17:48:50 +01:00
d3vyce
c863744012
feat: PaginatedResponse[T] as discriminated union annotation ( #142 )
2026-03-15 17:41:33 +01:00
d3vyce
aedcbf4e04
feat: add UUIDv7Mixin ( #140 )
2026-03-14 20:41:46 +01:00
d3vyce
19c013bdec
feat: unified paginate() endpoint with typed pagination responses ( #134 )
...
* feat: unified paginate() endpoint with typed pagination responses
* docs: unified paginate() endpoint
* fix: add tests
2026-03-14 20:23:20 +01:00
d3vyce
0fb00d44da
fix: prev_cursor does not navigate backward ( #136 )
2026-03-14 17:18:53 +01:00
d3vyce
19232d3436
feat: add AsyncCrud subclass style and base_class param to CrudFactory ( #132 )
2026-03-12 22:46:51 +01:00
d3vyce
26d649791f
feat: auto-include primary key in CrudFactory searchable_fields ( #130 )
2026-03-12 20:21:32 +01:00
d3vyce
e4250a9910
feat: bring first() to parity with get()/get_or_none() — add with_for_update and schema support ( #123 )
2026-03-10 19:34:18 +01:00
d3vyce
4800941934
fix: cascade delete M2M association rows via ORM session ( #121 )
2026-03-10 19:18:16 +01:00
d3vyce
a3245d50f0
docs: clarify metrics module usage ( #117 )
2026-03-09 17:17:11 +01:00
d3vyce
baebf022f6
feat: move db related function from pytest to db module ( #119 )
2026-03-09 17:15:50 +01:00
d3vyce
432e0722e0
refactor: remove deprecated parameter and function/cleanup code ( #101 )
...
* refactor: remove deprecated parameter and function
* refactor: centralize type aliases in types.py and simplify crud layer
* test: add missing tests for fixtures/utils.py
* refactor: simplify and deduplicate across crud, metrics, cli, and
exceptions
* docs: fix old Paginate references
* docs: add migration + fix icon
* docs: update README/migration to v2
2026-03-04 17:19:38 +01:00
d3vyce
e732e54518
feat: add models module ( #109 )
...
* feat: add models module
* docs: add models module
2026-03-04 15:14:55 +01:00