Skip to content

Latest commit

 

History

History
1485 lines (486 loc) · 72.8 KB

CHANGELOG.md

File metadata and controls

1485 lines (486 loc) · 72.8 KB

CHANGELOG

What's Changed in v0.6.0 (2024-05-23)

Documentation

  • docs: add documentation for register_models_from_directory method (6c0f6e0)

Feature

  • feat: allow model registration using directory path (8a4b93d)

Fix

  • fix: prepare models correctly when using directory (50c4c04)

Refactor

  • refactor: rename register_models_dir to register_models_from_directory (e83c8e4)

What's Changed in v0.5.3 (2024-05-13)

Documentation

  • docs: update README (96b906d)

  • docs: update README.md (4836cc7)

  • docs: add comments to remaining client methods (f16ba40)

  • docs: add comments to db client (d1b6872)

  • docs: add comments and update docstrings (b8c479d)

  • docs: update documentation and split docs into separate files (77d0a28)

  • docs: fix invalid links (b0d147f)

  • docs: update docs branch for testing links (b76c491)

  • docs: split docs into multiple files inside docs directory (360b689)

Fix

  • fix: convert list to set before comparing contents (b4468f9)

What's Changed in v0.5.2 (2024-02-22)

Documentation

  • docs: add docs for migrations (c94ce30)

Refactor

  • refactor: remove tabulate and add pretty_print function (9f29344)

What's Changed in v0.5.1 (2024-02-11)

Documentation

Fix

  • fix: fix validation error when passing "*" to $maxHops (960aa76)

  • fix: fix validation error when passing "*" to $maxHops (753af19)

What's Changed in v0.5.0 (2024-02-06)

Documentation

Feature

  • feat: add down command (593dcc5)

  • feat: add up action in cli (102df70)

  • feat: status command for displaying state of migrations (4e4ba14)

  • feat: add support for storage of deeply nested lists (1b5afc9)

Fix

  • fix: correctly pass arguments (9d1fce5)

  • fix: return created file name and path from create action (3965d23)

  • fix: add missing init file for migrations (f1e196b)

  • fix: add start/end node element_id/id to relationship serialization (986ebc6)

  • fix: rename _inflate parameter, fix element_id and id being included in modified_properties (e1672bd)

  • fix: fix exception when using polymorphism with node models (54e266d)

  • fix: fix inherited node model labels (c49186c)

  • fix: fix node model labels when inheriting from another model (4d64c65)

  • fix: correctly inherit settings from parent class (9f94f0c)

  • fix: fix iter method (f945a17)

  • fix: use new relationship property instance instead of mutating the base class (2d084d9)

  • fix: check if node needs to be parsed before doing so (a867228)

  • fix: parsing exported models now also parses relationship property nodes to their models (28c5efe)

  • fix: remove unnecessary coroutine check (2e176a0)

  • fix: make auto_fetch_nodes optional (3d1917c)

  • fix: correctly parse dict to model when model defines RelationshipProperty field (9766204)

  • fix: fix index/constraint schema (cb4eeb7)

Refactor

  • refactor: rename applied_at to updated_at (63d585c)

  • refactor: refactor way auth info is passed in config (5ab25f0)

  • refactor: move defaults to separate file, actions now accept arguments instead of namespace (fe59988)

  • refactor: rename inner decorator function (16bc5b8)

  • refactor: move relationship property enums to relationship property file (47e0b6b)

  • refactor: remove unnecessary if statements (f6f7bfe)

  • refactor: adjust used logging level (e835c7a)

  • refactor: change file structure and move enums/types/consts (a6851a2)

What's Changed in v0.4.1 (2024-01-17)

Documentation

  • docs: update docs on serialization (03d740f)

  • docs: update docs on running test suite (0a9c914)

  • docs: add docs for pydantic version and supported features (99546ca)

  • docs: add docs for running test suits (f24f62c)

  • docs: fix format issues for tables (1f0fa1e)

  • docs: add supported pydantic versions (5f3c637)

Feature

  • feat: fix bugs with init and create, testing, partial implementation of status command (e069dbd)

  • feat: add create command (8d509d4)

  • feat: add init command for initializing migrations (bd07e09)

  • feat: setup argparse with cli options (5294f92)

  • feat: basic migration dir structure (30c3c12)

Fix

  • fix: fix schema missing indexes/constraints if schemas reference each other (eb4d666)

  • fix: update CustomGenerateJsonSchema class to add index/constraint info (2a64464)

  • fix: add missing index/constraint to model schema (01e2a9d)

  • fix: use enum values for string representation of RelationshipProperty (8889c62)

  • fix: fix relationship properties always being included in serialization in V1 (2ba47b9)

  • fix: only use CustomGenerateJsonSchema when IS_PYDANTIC_V2 is true, check exclude before adding id and element_id (3f621f6)

  • fix: implement custom GenerateJsonSchema class for v2 schema generation (fff7fea)

  • fix: fix schema generation for pydantic v1 (13cbde8)

  • fix: update schema generation (abe2035)

  • fix: fix issue where serialization would not work if nodes for relationship properties where fetched (4d0aa1e)

Refactor

  • refactor: adjust exports from init.py (5026a93)

  • refactor: implement model_serializer instead of overwriting methods (cfd8e0e)

  • refactor: adjust validation for custom pydantic types and dict/json conversion for pydantic v2 (5c4b61c)

  • refactor: adjust validation for custom pydantic types and dict/json conversion (cfe9f03)

  • refactor: remove arbitrary_types_allowed and add custom type for RelationshipProperty (0c59e73)

What's Changed in v0.4.0 (2023-12-13)

Documentation

  • docs: update bookmark docs (38f1b13)

  • docs: adjust index/constraint docs (5ebc419)

  • docs: update title (3054f2f)

  • docs: update docs for now serialization (7102cb8)

Feature

  • feat: add bookmark support for client and model methods (305bceb)

  • feat(exceptions): remove ModelImportFailure exception (eec9eb4)

  • feat(settings): remove exclude_from_export setting (5ef3cca)

  • feat: exclude element_id and id before writing _db_properties (caf9763)

  • feat(ModelBase): take exclude, include and by_alias arguments into account before adding element_id or id (b3fd01d)

  • feat(ModelBase): include element_id and id fields in pydantics serialization methods (ea01cf5)

Performance

  • perf: optimize RelationshipProperty queries (f614ee4)

  • perf: optimize node and relationship queries (ecbb6e6)

Refactor

  • refactor: update logging (a8ef299)

  • refactor(ModelBase): improve logging (e5711ee)

  • refactor: remove unused IndexType enum (57afc4a)

  • refactor(Pyneo4jClient): split up index types into separate methods (1ec4d81)

What's Changed in v0.3.0 (2023-11-30)

Documentation

  • docs: update supported pydantic versions in docs (5260cc5)

Feature

  • feat: update remaining codebase to pydantic v2, rename settings to _settings (b4236a6)

  • feat: update settings to pydantic v2 (a60ca78)

  • feat: update validators to pydantic v2 (08a3641)

  • feat: add pydantic utils for backwards compatibility (9a85d4a)

Fix

  • fix(WithOptions): fix typing issue (8228964)

  • fix(RelationshipModel): use _deflate() instead of model_dump (1198602)

  • fix(NodeModel): implement dirty??? hack for pydantic fields not getting initialized separately anymore, use _deflate instead of model_dump (ed106ba)

  • fix(WithOptions): fix breaking changes in v2 (3484ed6)

  • fix(validators): fix breaking change in validator return value (857dd93)

  • fix(NodeModel): register relationship properties correctly with pydantic v2 (68f415f)

  • fix(ModelBase): fix root validator (33f43bd)

  • fix: fix pydantic utils typings (65feb25)

Performance

  • perf(NodeModel): stop looping over model if auto-fetch models have been found (efee0fc)

Refactor

  • refactor(RelationshipProperty): use parse_model() instead of model.validate() (1a27569)

What's Changed in v0.2.0 (2023-11-29)

Documentation

  • docs: update features (e3bc559)

  • docs: update code comments (a94b3fe)

  • docs: add special projection values to docs (896f3fa)

  • docs: update docs to recent changes (68d821e)

  • docs: update docstrings (326f4cd)

  • docs: update docstrings for ModelBase, Pyneo4jClient and NodeModel classes (dc3ca1f)

  • docs: adjust docstrings (a44f95f)

  • docs: Update todos (37be36e)

  • docs: add env variable for disabling logger to module docstring (a79c7ee)

Feature

  • feat: add type for projections (8f8af8a)

  • feat: add option to raise exception if find_one, update_one, delete_one or disconnect methods do not find any matches (c6a2901)

  • feat(RelationshipProperty): the replace() method now moves all relationships between current and old node to new node (0e37bf3)

  • feat: handle sync and async hooks differently, relationships method now supports filters, projections and options (27901e4)

  • feat(NodeModel): exclude relationship properties from modified_properties, auto-fetch now raises an exception if a relationship or node model which is auto fetched is not registered (873e7ac)

  • feat(RelationshipProperty): relationship() has been renamed to relationships(), now returns a list of relationships instead of a single relationship or None (8bf70a7)

  • feat(MultiHopFilter): support $direction filter for path (d740679)

  • feat(Pyneo4jClient): Rename Neo4jClient to Pyneo4jClient (cf71356)

Fix

  • fix: find_many queries now return correct results if options and projections are used together (63730fb)

  • fix: parse query result to model if raw result, prevent usage of lists with non primitive values (f600700)

  • fix(validators): change QueryDataTypes to Any to prevent pydantic from changing data type when validating filters (d195648)

  • fix: st _id field in relationship when inflating (79dc118)

  • fix(NodeModel): raise UnregisteredModel exception if target model for find_connected_nodes has not been registered (ae92801)

  • fix(projections, auto-fetch): fix non-distinct values being returned when using projections, fix missing auto-fetched nodes when multiple returned models were connected to the same auto-fetched node (7170623)

  • fix(typings): add typing-extensions as dependency, adjust types so required keys are actually required (c65f236)

  • fix(validators): add default values and adjust types for QueryOptionModel validator (a83f7e7)

  • fix: Remove unused if statement in eq method, raise ModelImportFailure exc if id is missing in dict (435c971)

  • fix: fix typings for RelationshipFilters and RelationshipPropertyFilters (24458bd)

Refactor

  • refactor(RelationshipProperty): use Optional instead of Union with None (2d381b9)

  • refactor(RelationshipProperty): pass source node to relationship-property hooks instead of self (539f6f9)

  • refactor: rename NoResultsFound to UnexpectedEmptyResult (593ac58)

  • refactor: use LiteralString from typing_extensions package to stay compatible with python < 3.11 (05c344d)

  • refactor(RelationshipProperty): add some checks for empty queries adn ensure_alive method, refactor find_connected_nodes method (2a848fc)

  • refactor(NodeModel): split class name into substrings when falling back to auto labels (3992266)

  • refactor(ModelBase): Change modified_properties from list to set (597100f)

  • refactor(property_options): remove unused magic method (75981f3)

  • refactor: change relationship variable from build param to function param (6d331b7)

What's Changed in v0.1.0 (2023-11-06)

Documentation

  • docs: Update todos and future features (96f350b)

  • docs: Documentation for remaining methods/functionality (31dca97)

  • docs(RelationshipProperty): Add docs for RelationshipProperty class (df0153f)

  • docs: Fix wrong method name in example (6ceffe8)

  • docs: Add remaining model methods (324a549)

  • docs: Update todos (bc09628)

  • docs: Add todos (35aa56a)

  • docs: Add docs for more model methods (4d853f5)

  • docs: Add further todos (5a4fde0)

  • docs: Fix typos (0d19b64)

  • docs: Add documentation for find_one and find_many methods (57c5b58)

  • docs: Update projection docs for node and relationship models (5a753bb)

  • docs: Update docs to include new features, rewrite some outdated info (d45c7da)

  • docs: Add todo's (d2dd477)

  • docs: Update todos (0f88c64)

  • docs: Update TODO's (2bff72a)

  • docs: Finished first draft (b0647d9)

  • docs: Add some missing docs (b1eba4a)

  • docs: Add todo's and feature for future updates (ef42457)

  • docs: Remove repeated client connecting from code snippets (cf1cd75)

  • docs: Update docs (bc6cb96)

  • docs: Remove todos (a50fc07)

  • docs: Add todos (d9dae1f)

  • docs: Worki n progress (4ea0df5)

  • docs: Basic outline for docs content (e9c35ad)

  • docs: Update README.md (4360f23)

  • docs: Filters and query options (e2972f2)

  • docs: Pattern filters (8eeda0b)

  • docs: Basic filter operators (c1977f5)

  • docs: Docs for relationship properties (2052727)

  • docs: Docs for relationship models and properties (85edca1)

  • docs: PLEASE MAKE IT STOP (dc78b8f)

  • docs: Node model docs (5315285)

  • docs: Documentation for getting started and node properties/settings (65011c9)

  • docs: README content outlining (31d3103)

  • docs: Test formatting (de7e38a)

  • docs: Add missing raises (2511185)

  • docs: Property getter docstring (f045539)

  • docs(filters): Docs for QueryBuilder class (962cb62)

  • docs: Fixed typos (2e82e1e)

Feature

  • feat(client): Enforce Neo4j version 5+ when connecting (14a022b)

  • feat(find_one, find_many, find_connected_nodes): Allow for partial auto-fetch for defined models (242c90e)

  • feat: Rename node_projection to build_projections and add projections to RelationshipModel, remove unnecessary DISTINCT keywords (26b5007)

  • feat: Projections and auto_fetch_nodes for find_connected_nodes method on relationship properties (3ad9ed8)

  • feat: Add hooks for relationship property methods (0ac0fdb)

  • feat: Rename pattern $not operator to $exists (5081eee)

  • feat: Projections and auto-fetch for find_connected_nodes method (9033afb)

  • feat: Separated node projections from query filters (581978b)

  • feat: Extended query builder for node projections (c3ec579)

  • feat: Resolve queries using COLLECT (d69616a)

  • feat: Cardinality for relationships (2398796)

  • feat: Client method for registering cardinality for relationship (787692a)

  • feat: Option to skip index and constraint creation on model registering (0d62f76)

  • feat: Change logging to lib logger (f907d28)

  • feat: Add custom logger (75464d4)

  • feat: Auto fetching nodes possible for find_one and find_many methods on NodeModel classes (3f87cd4)

  • feat: Add nodes property to RelationshipProperty which will hold auto-fetched nodes (5b77bd5)

  • feat: Add auto-fetch setting and todo's in README.md (9f27538)

  • feat: Convert fallback label to PascalCase before saving (eded4cb)

  • feat: Add query options to find_connected_nodes method for nodemodel (00e3561)

  • feat: Add relationship filters to relationship property find_connected_nodes method (e8e8e4f)

  • feat: find_connected_nodes method for NodeModel instance with relationship filters (6a87fe6)

  • feat: Query builder method for getting nodes with multiple hops (8460632)

  • feat: Validator and type hints for multi hop filters (5243658)

  • feat: Pattern filters (b546bf5)

  • feat: Resolve Path classes returned from query to db models (8571d08)

  • feat: Hooks WIP, typings are lost when setting hooks decorator (0b320ae)

  • feat: Import/export model from/to dict (5737490)

  • feat: Export model to dict method, moved shared logic to ModelBase class (95a6606)

  • feat: Relationship and node match builder (2bb0b2d)

  • feat: Method for building query options (9dd7564)

  • feat: WIP normalizing query filters (864c82c)

  • feat: Remove find_connected_nodes from NodeModel (ade25c1)

  • feat: Added register models by dir name, but somehow it does not work when calling register_models first?????????? (8200546)

  • feat: Load models from directory path (93173b1)

  • feat: find_connected_node method for NodeModel (93a93e1)

  • feat: Refresh method for relationship, fixed logging for node refresh method (58aedd4)

  • feat: Refresh method for node model (b424a8f)

  • feat: find_connected_nodes method for properties, add new items to task list (816b642)

  • feat: replace method for relationship property (e555888)

  • feat: Remove upsert in favour of creating new instances since validation would prevent upsert if required properties were not preset (a57bbe7)

  • feat: Method for deleting all connected nodes (bb2b643)

  • feat: Method for deleting all relationships between source and target node (4745f44)

  • feat: Method for connecting node to relationship (eacc346)

  • feat: Relationship property for defining relationships on NodeModel classes (cf23ba5)

  • feat: Make register_models accept both node and relationship models (81f841e)

  • feat: Remove ref from WithOptions function (bd30166)

  • feat: Add pattern filter expressions for nodes, still needs to be tested for relationships (6d0e746)

  • feat: Add backticks to relationship and node type/labels to prevent breaking when non-alphabetic or labels/type with spaces is passet (723b20d)

  • feat: Validator and type hints for pattern operator (425c54f)

  • feat: Methods for getting start and end node for a relationship (4c02fa2)

  • feat: Basic relationship query methods (6b377b3)

  • feat: Relationship class (f9e0fa2)

  • feat: Added type hints to expressions, fixed wrong expression validator for $size operator (a615d72)

  • feat: Add number of deleted nodes to delete_one and delete_many as return value (a8fb1c1)

  • feat: Implement batch query context manager (96f6371)

  • feat: Update and delete methods, to be tested (88563e0)

  • feat: update_one method for updating the first encountered node (bb601c2)

  • feat: Register defined options for a property when registering model with client (6535505)

  • feat: Update to different index types (1fc776a)

  • feat: Createing constraints and indexes (0dcb321)

  • feat: Add ref property to class returned by WithOptions (fbec028)

  • feat: Method for building query options (679e64b)

  • feat: Query expression validator (3e0a132)

  • feat: find_many method for node, downgrade to python 3.10 (87ae35d)

  • feat: Resolve database models if registered on client (58a0fe5)

  • feat: Resolving database model (37da856)

  • feat: Node find_many method (a2a00cb)

  • feat: find_one method for returning first node match (2b89e62)

  • feat: Basic operants for filtering properties (548ae9a)

  • feat: BAsic operants working (46aa8a4)

  • feat: Builder for comparison operators (7aa08d2)

  • feat(OperantQueryBuilder): New concept, work in progress (b180d42)

  • feat(QueryBuilder): Add $element_id operant (8f3c415)

  • feat(filters): Combined filter options $and, $or, $xor (e87e224)

  • feat(filters): Filters for $exists, $not and all other basic filters (3a6174f)

  • feat: Build relationship property on model init (59d0a96)

  • feat(RelationshipProperty): WIP (b391ea0)

  • feat(Neo4jRelationship): Update/Delete methods (1e3fee2)

  • feat(Neo4jNode): Delete node (9bd26bc)

  • feat(Neo4jNode): Update method with modified fields (e58c8d6)

  • feat(utils): Merge ensure_alive and ensure_hydrated decorators to one (3d5d526)

  • feat(core): Logging, switches to privateattrs, create node instance method (27e986c)

  • feat(utils): Decorators for checking if a instance is hydrated/destroyed and validating model before writing to db (647671b)

  • feat(typings): Added better typings support (e7aab10)

  • feat: Add core to exports (efa4d5b)

  • feat(Neo4jRelationship, Neo4jNode): Define type/labels in model (303fb58)

  • feat(Neo4jNode): Inflate/deflate logic for nodes (a260a2d)

  • feat(Neo4jClient): Auth can now be provided with NEO4J_AUTH env var (ec77353)

  • feat(Neo4jRelationship): Inflate relationship instance to model instance (0a79b21)

  • feat(Neo4jRelationship): Logic for deflating model to neo4j dict (44c7991)

  • feat(WithOptions): Custom field for defining indexes and uniqueness constraint for property (7cfb420)

  • feat(Neo4jClient): Methods for deleting all nodes/constraints and setting new constraints (e5a3844)

  • feat(Neo4jClient): Client class for running queries against database (a181ffa)

  • feat(docker): Docker compose file for testing (4034f36)

  • feat(gitignore): Add gitignore (73628bc)

Fix

  • fix(types): Change type signature to enum (14a9521)

  • fix(types): Fix types for pattern operator (55a6b49)

  • fix(NodeModel): Fix invalid dict access in runtime for find_connected_nodes() method (7fe4efc)

  • fix: Fix typings in filters not allowing property filters (1f01514)

  • fix(types): Fix typings for MultiHopFilters (96a0a1b)

  • fix(node, relationship): Prevent adding of properties not defined on model when calling update_one or update_many (093ac2d)

  • fix(node): Fix typings for auto_fetch_models parameter (ae247d1)

  • fix(types): Make all query datatypes valid for $eq shorthand (9d4f8ed)

  • fix(types): Fix typings so the short version for {"prop": {"$eq": value}} is allowed (29b2fa4)

  • fix: Fix node labels not applied to query (05366cc)

  • fix: Set client builder and models properties in init method (ab21081)

  • fix(client): Fix create_index method on client (8e0604b)

  • fix(operators): Only include where queries if they are not empty strings (d4e74a9)

  • fix: Fix issue where pattern operator would append [] if no node or relationship operators where passed (81843d9)

  • fix: Fix remaining project names, fix client index creation not working if enum is passed (b9e08a5)

  • fix: Fix node_match for empty labels, fix relationship_match for empty type and invalid direction (235574e)

  • fix: Correctly remove empty validated values (9053cbe)

  • fix: Add correct typings to WithOptions method, remove useless validator from NodeModelSettings class (66047c6)

  • fix: Fix invalid typing for all files, remove pylint from pre-commit (6f317e5)

  • fix: Fix invalid query on create when model has no properties (3ebb68f)

  • fix: Parse log level from env variable to int (7bf9f24)

  • fix: Query syntax error if no relationship filters are passed (dbb16dc)

  • fix: Correctly replace relationship if allow_multiple is False and a relationship already exists (82a2a77)

  • fix: Fix pylint warnings (7672b67)

  • fix: Make model settings available on classes instead of only instances, add typings (caec9b3)

  • fix: Set _driver to None when closing connection (9088cd6)

  • fix: Now checking for empty WHERE statement in update_many (9650a89)

  • fix: Fix element_id parameter for update_one (e853b09)

  • fix: Rename Cardinality to RelationshipPropertyCardinality, check if source node is hydrated before starting query (8c34e65)

  • fix: Call .update_forward_refs() on filter validators (53cf0cc)

  • fix: Deflating model instance caused list items to be lost if not dict or BaseModel (489bc10)

  • fix: Fix validator for hook functions throwing error when something invalid is passed (e56ade7)

  • fix: Add property getter for model settings as a dict, correctly check for missing element_id field in import_model method (917d07c)

  • fix: Change log format, fix env variables for logging not working (e6ff6a2)

  • fix: Validate hooks is a list, validate settings (af0460f)

  • fix: Add $neq operator to allowed operators nested inside $size (f5f2342)

  • fix: Fix typings and validation for $in and $nin (ae865ec)

  • fix: Check if predefined labels is None before trying to merge settings together (6b621f2)

  • fix: Remove settings from reserved property names (4e9a0b8)

  • fix: Dont call .update in update_one to prevent multiple hooks firing (8396c4f)

  • fix: Add constraints to query options, include default values in validators (20ec7a8)

  • fix: Add generics to relationship property (3f26f2a)

  • fix: Correctly check if relationship is alive (0bfd728)

  • fix: Rename arg to not shadow build in property (c3ae8c9)

  • fix: Add DISTINCT to queries to prevent duplicate results (4bac957)

  • fix: Set _db_properties on instance init (ffe99e0)

  • fix: Correctly infer modified properties, now accessible with get_modified_properties property (56cef04)

  • fix: Add hooks to create method (04e0bc1)

  • fix: Allow BaseModel or dict lists in models (c774477)

  • fix: Fix different models sharing settings FOR NO FUCKING REASON AT ALL (898747b)

  • fix: Fix hops (6f9eba8)

  • fix: Catch index drop errors (d582fe4)

  • fix: Fix broken query on epty filters (52ef2bc)

  • fix: Make relationship type for multi hop relationship filters required (5d82f62)

  • fix: Make relationship type for multi hop relationship filters required (5830cee)

  • fix: Remove backticks (053d601)

  • fix: Take model settings into account before initializing model completely (9393058)

  • fix: Remove wraps from hooks decorator (5ef79a3)

  • fix: Fix missing type hints for methods decorated by @hooks (07005f5)

  • fix: Add labels where possible to relationship property query (abd27e2)

  • fix: Add underscore suffix to validator field names to prevent accidental field parsing (217d00e)

  • fix: Small fixes for working methods, and for sure more come... (96e3a99)

  • fix: Fix query order when no porperty to order by is defined (368ae7e)

  • fix: Set default value for query attribute (c9d38c8)

  • fix: Fix relationship property connect method not creating correct relationship match query (d5419f4)

  • fix: Fix property parameters for create method (9659203)

  • fix: Added missing $exists operator, small bug fixes (6fab4c7)

  • fix: FINALLY FIX PATTERN MATCH, REMOVE RELATIONSHIP HOPS BECAUSE THEY WERE FUCKED (972c390)

  • fix: Update methods using query builder (53d5cab)

  • fix: Add pattern expression to where clause, adjust types (2814785)

  • fix: Fix None being added to match queries (980e690)

  • fix: Replace wrong type hints for node model (8265c20)

  • fix: Remove invalid undirected relationship direction (47db88f)

  • fix: Provide self instead of class type to _build_property method, no longer using find_one/find_many in update method (c007959)

  • fix: Remove register_models_directory just because, fix model class initialization (1e0e68f)

  • fix: Fix relationship model settings attribute name, fix node model labels tuple (6f4f02d)

  • fix: Fix union types for validators and TypedDict (8974fa0)

  • fix: Replace old type in client (c555ab1)

  • fix: Fix relationship builder breaking if no labels are provided for node (5028f33)

  • fix: Fix where clause for queries (a9f0501)

  • fix: Remove nested node patterns in favor of multiple top level node patterns (b0f9135)

  • fix: Updated query builder types to also include None for match and where queries (643c132)

  • fix: Fixed missing None check for query builder match query (a2b4ccd)

  • fix: Remove delete_one return value since deleted nodes do not return labels, re-order validator types (141668b)

  • fix: Fixed find_one, update_one and deflate methods, add where in query builder return value (1ea505f)

  • fix: Add missing variable name to $exists operator (8ceec27)

  • fix: Fix $in operator not working as expected, operator can now accept single value or list (26e7b06)

  • fix: Correctly save dict fields to model (c4a4ee1)

  • fix: Return self from create method so it can be chained onto init of class instance, fix error in when resolving model if query result is not a Node or Relationship instance (2e9df7d)

  • fix: Remove unused async, add type hiints for query options, fix $all operator validator to list (1b0a1a3)

  • fix: Remove model resolving where not needed (16228ce)

  • fix: Fix type in query validation, handle non dict array items (8a6a9fc)

  • fix: Fix type hints (5850d34)

  • fix: Move Neo4jClient import into magic method (79e328a)

  • fix: Adjust logging to correct level (818538d)

  • fix: Fixed issue where $where operator was wrongfully normalized (7464113)

Refactor

  • refactor: Rename logging env variables (bdf65c8)

  • refactor: Change log level to info when falling back to class name on labels/type (03d37c3)

  • refactor: Add eq, ne, repr and str methods (7c015d3)

  • refactor: Make element_id and id private and define setters, same for start/end node element_id and id for relationship models (54d5a8b)

  • refactor(node, relationship): Make inflate() and deflate() methods private (bbbc412)

  • refactor: Make element_id accessible on model, change scope of some properties, tests, docs (071ee83)

  • refactor(relationship_property): Move nodes property to top (3b22835)

  • refactor(client): Make methods for handling transactions protected (7bdab6d)

  • refactor: Split QueryBuilder class up and move methods which build operators to separate file (b67ca73)

  • refactor: Move shared enums to queries.enums (a719b52)

  • refactor: Return settings model instead of dict (133ffe2)

  • refactor: Check if models are registered only if methods on relationship properties are called (50b9bb5)

  • refactor: Transform _ensure_alive method to decorator (19adea1)

  • refactor: Transform _ensure_alive method to decorator (5fd0259)

  • refactor: Transform _ensure_alive method to decorator, skip auto fetch if relationship or node model was not registered (46ae4e0)

  • refactor: Return None instead of raising an exception when no match is found for update_one() (eef62d1)

  • refactor: Adjust exception message (f3fb626)

  • refactor: Client is no longer a singleton, which allows for multiple, separate instances (can be used with threading), clients on models are now set when registering models, which makes registering models required (4a8d42a)

  • refactor: Add exports to top level init file, rename node options to property options (a23b2ce)

  • refactor: Make .connect method on client chainable (bafccdd)

  • refactor: Change back to settings attribute (b0876c9)

  • refactor: Rename model settings, move to property getter (5dde040)

  • refactor: rename __settings to _settings (11cc77b)

  • refactor: MOve str to basemodel class (fcdc34a)

  • refactor: Remove unused settings class (f64c2f0)

  • refactor: rename model_settings to settings (b516a5f)

  • refactor: Move ensure_alive decorator to class method, fix hooks decorator (aad5388)

  • refactor: Move pydantic settings to ModelBase (002796b)

  • refactor: Rename model fields (7e77416)

  • refactor: Unified typing style using Union instead of | (01bd61a)

  • refactor: Update RelationshipModel class to new query builder (dc79da4)

  • refactor: Adjust NodeModel class to new query builder (b093de5)

  • refactor: Update validators and fix convert types class to union (a2a62c5)

  • refactor: Clean up QueryBuilder class and types (73553aa)

  • refactor: Move test files (0ef30e9)

  • refactor: Use typings types (5de565b)

  • refactor: Change _settings field to model_settings (d7f8c3a)

  • refactor: Adjust node labels casing when using class name (f785e29)

  • refactor: Adjust labels/Type casing when using class name (6b0a03e)

  • refactor: Move RelationshipDirection enum to types (78c5e16)

  • refactor: Formatting (519f82c)

  • refactor: Move labels and type to settings (064abde)

  • refactor: Remove model_type and check fr issubclass (7a4ef01)

  • refactor: Move relationship_match method to QueryBuilder class (ea4c08a)

  • refactor: Rename NodeSchema and RelationshipSchema to NodeModel and RelationshipModel (26b5b95)

  • refactor: Add type hints to models registered in client, change model_type from string to enum and check for valid enum member when registering model (3644e99)

  • refactor: Move RelationshipDirection to core/relationship file (ab20835)

  • refactor: Rename Neo4jNode to NodeSchema and Neo4jRelationship to RelationshipSchema (c23fd27)

  • refactor: Move fields into separate subdir, move ensure_alive decorator into separate files and also check for start and end node id in relationship class (e9064c0)

  • refactor: Use pattern direction for relationship class, rename to RelationshipDirection (41ffd61)

  • refactor: Update relationship class methods to new query builder (2f0cf0d)

  • refactor: Use typing module type hints in query builder (f59da73)

  • refactor: Update type hints to new query builder, update type hints for project to type hints from typing module (6e0e195)

  • refactor: Refactor node methods for new query builder (f460b87)

  • refactor: Renamed query builder method (5d7a27d)

  • refactor: Explicitly manage transactions (0417f25)

  • refactor: Move node and client to core directory (e5a7d69)

  • refactor: Move node and client to core directory (1a6b61f)

  • refactor: Renamed method, small docs change (89306d7)

  • refactor(OperantQueryBuilder): Normalize query before working with it (fde67bb)

  • refactor: Adjust variable names in QueryBuilder (c7bbdaa)

  • refactor: Renamed property_filters file to query_builder (18eb26a)

  • refactor: Move files to package level (2667f20)

  • refactor: Moved direction enum to utils (482506a)