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
d3vyce
05b5a2c876
feat: rework Exception/ApiError ( #107 )
...
* feat: rework Exception/ApiError
* docs: update exceptions module
* fix: docstring
2026-03-02 16:34:29 +01:00
d3vyce
4a020c56d1
feat: Raise NotFoundError instead of LookupError in wait_for_row_change ( #105 )
2026-03-02 14:28:37 +01:00
d3vyce
a257d85d45
Add sort_params helper in CrudFactory ( #103 )
...
* feat: add sort_params helper in CrudFactory
* docs: add sorting
* fix: change sort_by to order_by
2026-03-01 11:20:43 +01:00
d3vyce
d7ad7308c5
Add examples in documentations ( #99 )
...
* docs: fix crud
* docs: update README features
* docs: add pagination/search example
* docs: update zensical.toml
* docs: cleanup
* docs: update status to Stable + update description
* docs: add example run commands
2026-02-27 19:56:09 +01:00
d3vyce
5a08ec2f57
feat: add faceted search in CrudFactory ( #97 )
...
* feat: add faceted search in CrudFactory
* feat: add filter_params_schema in CrudFactory
* fix: add missing Raises in build_search_filters docstring
* fix: faceted search
* fix: cov
* fix: documentation/filter_params
2026-02-26 15:23:07 +01:00
d3vyce
7da34f33a2
fix: handle Date, Float, Numeric cursor column types in cursor_paginate ( #90 )
2026-02-23 20:58:43 +01:00
d3vyce
6cf7df55ef
feat: add cursor based pagination in CrudFactory ( #86 )
2026-02-23 13:51:34 +01:00
d3vyce
7482bc5dad
feat: add schema parameter to CRUD methods for typed response serialization ( #84 )
2026-02-23 10:02:52 +01:00
d3vyce
9d07dfea85
feat: add opt-in default_load_options parameter in CrudFactory ( #82 )
...
* feat: add opt-in default_load_options parameter in CrudFactory
* docs: add Relationship loading in CRUD
2026-02-21 12:35:15 +01:00
d3vyce
73fae04333
chore: cleanup before v1 ( #73 )
...
* chore: move dependencies module to the project root
* chore:update README
* chore: clean conftest
* chore: remove old code + comment
* fix: uv.lock dependencies
2026-02-19 11:49:57 +01:00
d3vyce
32ed36e102
feat: add proper optional-dependencies for each modules ( #75 )
2026-02-19 11:08:18 +01:00
d3vyce
d5b22a72fd
feat: add a metrics module ( #67 )
2026-02-17 13:24:53 +01:00
d3vyce
c32f2e18be
feat: add many to many support in CrudFactory ( #65 )
2026-02-15 15:57:15 +01:00
d3vyce
74a54b7396
feat: add optional data field in ApiError ( #63 )
2026-02-14 20:37:50 +01:00
d3vyce
19805ab376
feat: add dependency_overrides parameter to create_async_client ( #61 )
2026-02-13 18:11:11 +01:00
d3vyce
d4498e2063
feat: add cleanup parameter to create_db_session ( #60 )
2026-02-13 18:03:28 +01:00
d3vyce
c8c263ca8f
fix: don't use default DB if pytest-xdist is not present ( #51 )
2026-02-11 17:07:15 +01:00
d3vyce
1ea316bef4
feat: add wait_for_row_change db helper ( #49 )
2026-02-10 21:46:59 +01:00
d3vyce
ced1a655f2
feat: add support for pytest-xdist ( #47 )
2026-02-10 21:29:17 +01:00
d3vyce
baa9711665
feat: add detail if get_obj_by_attr raise StopIteration ( #40 )
2026-02-07 17:39:07 +01:00
d3vyce
4404fb3df9
feat: add logger module ( #37 )
2026-02-06 13:22:40 +01:00
d3vyce
f68793fbdb
feat: use PaginatedResponse and Response into crud ( #36 )
...
* feat: return PaginatedResponse for paginate crud function
* feat: add as_response argument for get, create, update and delete crud functions
2026-02-05 22:54:07 +01:00
d3vyce
e0bc93096d
feat: allow custom CLI ( #28 )
2026-02-04 17:19:07 +01:00
d3vyce
97ab10edcd
feat/dependencies module ( #30 )
...
PathDependency and BodyDependency
2026-02-04 16:38:08 +01:00
d3vyce
691fb78fda
feat: add include_registry to FixtureRegistry + add context default to the registry ( #25 )
2026-02-03 14:59:36 +01:00
d3vyce
34ef4da317
feat: simplify CLI feature ( #23 )
...
* chore: cleanup + add tests
* chore: remove graph and show fixtures commands
* feat: add async_command wrapper
2026-02-03 14:35:15 +01:00
d3vyce
8c287b3ce7
feat: add join to crud functions ( #21 )
2026-02-01 15:01:10 +01:00
b57ce40b05
tests: change models to use UUID as primary key
2026-01-29 13:43:03 -05:00
5264631550
fix: cast to String non-text columns for crud search
2026-01-29 13:35:20 -05:00
d3vyce
d14551781c
feat: add search to crud paginate function ( #17 )
...
* feat: add search to crud paginate function
* fixes: comments + tests import
2026-01-29 00:08:02 +01:00
ba5180a73b
feat: add create_async_client and create_db_session pytest utils
...
function
2026-01-28 08:57:17 -05:00
a9f486d905
tests: rework fixtures tests + add missing tests
2026-01-28 08:57:17 -05:00
53e80cd0d5
chore: move pytest fixture plugin + update fixture module structure
2026-01-28 08:57:17 -05:00