Protean

Latest version: v0.12.1

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

0.12.1

------

* Make constants under `[custom]` section available directly on the domain
* Simplify domain traversal logic and improve performance
* Optimize fetching handlers for domain events
* Remove clone method from Entity/Aggregate
* Remove `provider`` meta option from Entities

0.12.0

------

* Switch from Copier to Typer and add comprehensive tests for project generation
* Switch docs to Material for MkDocs and host on https://docs.proteanhq.com
* Initialize domain name to domain's module name when not provided
* CLI module refactoring and adjusments for Typer
* Add `protean shell` CLI command
* Make Commands and Events immutable
* Replace `flake8` + `black` + `isort` with `ruff``
* Enhance support for different identity types in `Identifier` field
* Generate and assign identity as first step during entity initialization
* Auto-add reference fields in child entities
* Allow specifying child entities during Aggregate initialization
* Ensure Associations can only link to other entities
* Resolve references when initializing Domain ([419](https://github.com/proteanhq/protean/pull/419))
* Avoid using `current_domain` where domain is readily accessible in code and tests
* Allow nesting of associations
* Validate for type of values supplied to associations
* Remove via param for associations
* Allow parent linkage from underlying entity in associations
* Rename aggregate_cls to part_of
* Preserve owner and root linkages in child entities
* Introduce invariant decorator and run on initialization and attribute changes
* Introduce domain config in TOML with capability to fetch environment variables
* Don't traverse folders with known toml files
* Scan for config files from current folder up to 2 levels up
* Domain Service Enhancements with `pre` and `post` invariant structures
* Allow filtering on `HasMany` entities
* Support lists as field value choices along with Enums
* Run `Entity.defaults` before validations
* Upgrade SQLAlchemy to 2.0.x
* Allow control of automatic identity field addition
* Remove support for inner Meta class
* Revamp BaseModel for parity with other domain elements
* Disallow multiple identity fields in aggregates
* Register raised events only on Aggregates
* Track aggregate cluster to which elements belong
* Allow publishing multiple events in a single call
* Accept custom identity function to generate identities
* Support identity generation customization in Auto field
* Remove allmethod from repository
* Enclose naked `Repository.add` calls within UoW

0.11.0

------

* Add support for Python 3.12.0
* Move to poetry
* Control domain directory traversal explicitly in init()
* Domain Traversal Refactoring
* ReadTheDocs config enhancements

0.10.0

------

* Enhance `domain.init` as the way to activate a domain
* Introduce a new test category `WITH_COVERAGE` and use in Github Actions
* Remove dynamic initializations in providers, brokers, caches, and event stores

0.9.1

-----

* Bugfix - Use Domain's EventStore connection details for clearing events after test runs

0.9.0

-----

* Output VO values as nested dicts instead of a forced flat structure
* Enclose DAOs within repositories to encourage DB interaction solely through repos
* Remove `remove` method from repository to discourage hard deletes
* Manage concurrency with Aggregate versions
* Add MessageDB Event store adapter
* Add stand-in Memory Event store
* Introduce EventSourced Aggregates and Event Handlers
* Introduce EventSourced Repositories
* Allow filtering of messages from their origin stream
* Allow Event Handlers to listen to other streams and ALL streams
* Allow Command Handler methods to handle any event
* Wrap EventHandler and CommandHandler methods execute within UnitOfWork
* Associate Commands and Events with streams (explicit and via Aggregates)
* Support processing events and commands in synchronous mode.
* Allow asynchronous command processing by submitting commands to domain
* Add `autoflake` to `pre-commit`
* Treat empty string value as None in Date and DateTime Fields
* Support inter-attribute dependencies in Option defaults
* Cache registry, repositories, daos, and models with `cache`
* Fix sorting issue with null values in Memory DB
* Add `any` filter and allow scalar values to `in` operator in Memory DB

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.