Edgy

Latest version: v0.28.1

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

Scan your dependencies

Page 7 of 10

0.12.0

Added

- Allow multiple ForeignKeys with the same related_name in one model.
- Support ForeignKeys on multiple columns.
- Allow selecting columns for ForeignKeys.
- Allow skipping creating a ForeignKeyConstraint.
- Add ExcludeField for masking fields in submodels.
- ManyToMany fields pass unique through to target foreignkey.
- Add ConditionalRedirect constant for CompositeField.
- Embeddables via CompositeField. See [Embedding](https://edgy.dymmond.com/embedding.md)
- Add ForeignKeyFactory, a factory with presets for building foreign keys.
- Multiple primary keys and names different from "id" are possible now.
- Add inherit flag for Manager, BaseFields and Models (when used as an embeddable). It is used for controlling the inheritance.
- Managers are now instance aware. You can customize the instance and they can react. They are also shallow copied for every class and instance.
- Improved Relations (reverse side of ForeignKeys and forward side of Many2Many). Have now add and remove methods and work like RefForeignKey (you can just specify an Array with assignment targets and they will be added).
- Allow skip building reverse RelatedFields for ForeignKeys with `related_name=False`.
- `pkcolumns` attribute of models (contains all found primary key columns).
- Some new methods on BaseField:
- `embed_field`: for controlling embedding a field in an CompositeField.
- `get_column_names`: helper function for retrieving the column names of a field.
- Add RelationshipField for traversable fields.

Changed

- ForeignKeys use now global constraints and indexes.
- Breaking: clean has now the argument to_query. See [Custom Fields](./fields.mdcustom-fields).
- Breaking: ManyToMany doesn't have a RelatedField on owner anymore and uses proxying. See [ManyToMany](./fields.mdManyToMany).
- Breaking: use singular related_name for unique ForeignKeys (or OneToOne). See [related_name](./queries/related-name.md)
- MetaInfo (meta) is now partly lazy.
- `pk` is now a PKField (a variant of the BaseCompositeField).
- `clean` and `to_columns` of BaseField do return empty objects instead of raising NotImplementedError.
- Major refactory of ForeignKeys, move logic for single ForeignKeys to subclass.
- Move FieldFactory and ForeignKeyFieldFactory to factories.
- Remove superfluous BaseOneToOneKeyField. Merged into BaseForeignKeyField.
- Remove unused attributes of MetaInfo and added some lazy evaluations for fields.

Breaking

- Prefetch traversal of foreign keys uses now the foreign key name. For the traversal of RelatedFields everything stays the same.

What's Changed

**Full Changelog**: https://github.com/dymmond/edgy/compare/0.11.1...0.12.0

0.11.1

Added

- [create_schema](https://edgy.tarsild.io/tenancy/edgy#the-schema-creation) allowing a dynamic and programatically
way of creating schemas in the database.

Changed

- Updated `reflection` from `edgy.ReflectModel` to use the internal database session and avoid
deadlocks.
- Internal cleaning for tenancy.

0.11.0

Added

- Support for [Marshall](https://edgy.tarsild.io/marshalls) allowing custom serialization of an Edgy model by [tarsil](https://github.com/tarsil).
- Support for the new [CompositeField](./fields.mdcompositefield) enhancing the ability of
having multiple primary keys (or composed keys) in an Edgy model by [devkral](https://github.com/devkral).
- Support for the `Q` queryset clause by [devkral](https://github.com/devkral).

Changed

- Cleaned up `FieldFactory` internals by [devkral](https://github.com/devkral).
- `pyproject.toml` definitions by [devkral](https://github.com/devkral).
- Internal Edgy `model_dump` covering internals of Edgy and corner cases of Pydantic for compatibility reasons by [devkral](https://github.com/devkral).

Fixed

- Typos in `is_primary` key attribute by [devkral](https://github.com/devkral).
- InspectDB when provided with a `schema` name was not using it in the registry.

0.10.1

Added

- Support for `list` and `tuples` as a type for [model_apps](https://edgy.tarsild.io/migrations/migrations/#using-the-model_apps).

0.10.0

Added

- Support for `model_apps` inside the `Migrate` object allowing
global discovery by application. This will make sure all apps will be properly
inspected.
- Add documentation about the new [model_apps](https://edgy.tarsild.io/migrations/migrations/#using-the-model_apps)

Changed

- Upgrade internal requirements.

0.9.2

Changed

- Update internal anyio dependency.

Page 7 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.