Edgy

Latest version: v0.29.0

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

Scan your dependencies

Page 6 of 10

0.17.1

Added

- `CURRENT_MODEL_INSTANCE` ContextVariable which always point to a model instance.

Fixed

- Under circumstances it was possible for the assigned database attribute to appear as value.
- Typings of some (class) properties are now correctly detected.
- FileFields doesn't need an explicit `to_file` call assignment anymore to work with revisions. This restriction was lifted.
- Execute database operation of `bulk_update` in right scope.

0.17.0

Added

- Support for querying across multiple databases.
- Support for passing functions as clauses or keyword parameters.
- Support for autocreated reflection objects by pattern matching.
- Added some context variables for `extract_column_values` and `transform_input`:
- `CURRENT_PHASE`: allows retrieving the current context in which it was executed.
- `EXPLICIT_SPECIFIED_VALUES`: when set, it returns a set of the keys from the explicitly specified values.

Changed

- `crawl_relationship` has a slightly changed interface: it has `cross_db_remainder` as kwarg for callbacks and in the result.
Also it doesn't raise NotImplementedError anymore when detecting a crossdb situation.
- `is_cross_db` optionally gets a database as parameter and compares the databases instead of registries.
- Relax fields parameter requirements for values/values_list.
- More lazy meta/metadata.
- `database` attribute of models is used for queries instead of the main database of the registry.
- We use more metaclass kwarg arguments.
- Switch to python >= 3.9.
- Rename internal `_is_init` of MetaInfo to `_fields_are_initialized`.
- `phase` argument is shifted to `CURRENT_PHASE` context_var. If you rely on the correct phase you need to use it instead.
- `extract_column_values` provides now also a `CURRENT_PHASE` environment.
- `is_update` argument of `get_defaults` is now replaced by `CURRENT_PHASE` too. It is way more accurate.
- Deprecate `force_save` kwarg of save in favor of `force_insert`. This is way more precise.
- `post_save_callback` receives now also the `force_insert` parameter.

Fixed

- Fix ForeignKey not None but empty hull under some conditions.
- Fix DecimalField requiring `max_digits`.

0.16.0

Added

- ASGI, async context manager support to connect/disconnect multiple dbs at once.
- `create_all`/`drop_all`, `create_schema`/`drop_schema` are now capable of initializing dbs in extra.
- Add `transaction` helper to Model and QuerySet.
- Allow copying models properly.
- Allow None as default.

Changed

- Unify `using` to allow setting schema and database via keyword arguments and deprecate both former calls.

Fixed

- Esmerald typing issues.
- Migration metadata was not completely initialized which caused problems.
- Foreign keys None/null handling was inconsistent. Now we have a None for unset foreign keys.

0.15.0

Added

- FileField and File handling.
- ImageField stub (more is comming soon)
- `stage` method in relations.
- ModelRefs passed as normal positional arguments are automatically staged.
- ContentType was added.
- Proper callback support was added.
- `remove_referenced` parameter for ForeignKeys was added.
- Virtual `CASCADE` deletion is now used for ForeignKeys without constraint.

Changed

- Breaking: ModelReferences use now the related name instead of the model name.
- Breaking: Field Factories pass now keyword arguments as positional dictionary. This way keyword arguments manipulations in validate are possible.
This way it can be distinguished between multiple foreign keys to the same model and self-references are possible.
- `model_references` are superseeded by `post_save_fields` in meta.
- ModelParser mixin is gone. Use the classmethod `extract_column_values` instead.
- edgy_settr is not used internally anymore (circular imports).
- `modify_input` receives now an argument phase.
- `foreign_key_fields` is now a frozenset.
- Switch away from nest_asyncio.
- All sqlalchemy operators are now accessable. The setting for them is gone.

Fixed

- Factory overwrites can now access owner.
- Foreign keys to reflected models.
- Handling to string references not in registry loaded yet.
- Timezone aware Datetime saved in timezone unaware database columns.

0.14.1

Changed

- Bump dependency of databasez.

Fixed

- Fix load_recursive.

0.14.0

Added

- Cache per queryset.
- Expose raw_query for getting a raw sqlalchemy query.
- Expose control for used batch size.
- Add load_recursive for initializing a nested model structure.

Changed

- Server defaults don't trigger load after saving.
- Less nested run_sync calls.
- Alter queryset methods to contain useful arguments, instead of ignoring kwargs.
- Replace QuerysetProtocol by abstract base type.

Fixed

- `get_or_none` was not abidding embed_parent.
- Correctly apply filters on relations.
- `last` and `first` don't fail without id column anymore.

Page 6 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.