edgy

πŸ”₯ The perfect ORM to work with complex databases πŸ”₯

MIT License

Downloads
3.2K
Stars
109

Bot releases are visible (Hide)

edgy - Version 0.11.1 Latest Release

Published by tarsil 5 months ago

Added

  • create_schema 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.
edgy - Version 0.11.0

Published by tarsil 5 months ago

Added

  • Support for Marshall allowing custom serialization of an Edgy model by @tarsil.
  • Support for the new CompositeField enhancing the ability of
    having multiple primary keys (or composed keys) in an Edgy model by @devkral.
  • Support for the Q queryset clause by @devkral.

Changed

  • Cleaned up FieldFactory internals by @devkral.
  • pyproject.toml definitions by @devkral.
  • Internal Edgy model_dump covering internals of Edgy and corner cases of Pydantic for compatibility reasons by @devkral.

Fixed

  • Typos in is_primary key attribute by @devkral.
  • InspectDB when provided with a schema name was not using it in the registry.
edgy - Version 0.10.1

Published by tarsil 6 months ago

Added

  • Support for list and tuples as a type for model_apps.
edgy - Version 0.10.0

Published by tarsil 6 months ago

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

Changed

  • Upgrade internal requirements.
edgy - Version 0.9.2

Published by tarsil 9 months ago

Changed

  • Update internal anyio dependency.
edgy - Version 0.9.1

Published by tarsil 9 months ago

Changed

  • Upgrade internal requirements.

Fixed

  • auto_now and auto_now_add on save() and update() wasn't only updating the
    field with auto_now.
  • Extraction of the default field for date and datetime.
edgy - Version 0.9.0

Published by tarsil 9 months ago

Added

  • Tenancy for internal proxy_model validation added.
  • Support for ManyToMany to accept strings to the to attribute.
  • Allowing querying inner foreign keys without needing to use select_related or load

Changed

Fixed

  • When generating a many to many through model, the maximum length is enforced to be 63 characters.
  • Allow ManyToMany to also accept a string as a parameter for the to.
  • Object discovery for intellisense.
edgy - Version 0.8.1

Published by tarsil 10 months ago

Added

  • Added new experimental activate_schema for tenant models using the using queryset operator.

Fixed

  • Multiple join tables were not generating the complete join statement when using select_related.
  • Fixed metaclass for TenantMixin making sure all the queries are correctly pointing
    to the right tenant.
edgy - Version 0.8.0

Published by tarsil 10 months ago

Added

  • Support for sync queries. This will enable Edgy to run in blocking frameworks like
    Flask, bottle or any other by using the newly added run_sync. #60.

Fixed

  • Fixed multi tenancy from contrib. #58.
  • Fixed using where schema name was raising a not found reference for foreign key
    when querying the tenant. #58.
  • Fixed exclude_secrets when querying models with foreign keys. #59.
edgy - Version 0.7.1

Published by tarsil 10 months ago

Fixed

  • exclude_secrets quick patch for the way it can recursively understand the model fields when
    filtering the query.
edgy - Version 0.7.0

Published by tarsil 11 months ago

Added

  • Support for or_, and_ and not_ for SQLAlchemy style queries and Edgy syntax sugar queries.
  • Support for secrets field and queryset allowing to query the fields that are not marked as secret directly.

Changed

  • Updated internal support for databasez 0.7.0 and this fixes the URL parsing errors for complex passwords
    caused by the urlsplit.
edgy - Version 0.6.0

Published by tarsil 11 months ago

Changed

  • inspectdb is now handled by an independent isolated called InspectDB.

Fixed

  • server_default does not raise a FieldValidationError.
  • server_default added as validation for nullable.
  • null was not being applied properly from the newly added server_default.

!!! Warning
This could impact your migrations, so the advise would be to generate a new migration
after upgrading to the new version of Edgy to make sure the database reflects the proper
nullables/non-nullable fields.

edgy - Version 0.5.2

Published by tarsil 12 months ago

Changed

Fixed

  • Database object docstring.
edgy - Version 0.5.1

Published by tarsil about 1 year ago

Changed

  • Base metaclass that is now generating the initial annotations for validations.
  • Update Pydantic version.
  • Update documentation to reflect the new fixed issues.

Fixed

  • Raise ImproperlyConfigured for managers that are not typed as ClassVar avoiding
    maximum recursion error. #19.
edgy - Version 0.5.0

Published by tarsil about 1 year ago

Added

  • Added support for Python 3.12.

Changed

  • Update base requirements.

Fixed

  • Removed copy of docs folder
  • minimum_length to min_length.
  • values_list() to implement the queryset.clone().
  • Fixed .json() to model_dump_json().
edgy - Version 0.4.0

Published by tarsil about 1 year ago

Added

  • New Prefetch support allowing to simultaneously load nested data onto models.
  • New Signal support allowing to "listen" to model events upon actions being triggered.

Changed

  • Updated pydantic and alembic
edgy - Version 0.3.1

Published by tarsil about 1 year ago

Fixed

  • DecimalField definition raising unknown constraint max_digits.
  • DeclarativeModel generating internal mappings names was breaking for class objects.
edgy - Version 0.3.0

Published by tarsil about 1 year ago

Added

  • Multi tenancy support by updating the registry and allowing to create the multi schema.
  • Add new using(schema=...) and using_with_db(database=..., schema=...) to querysets.
  • Add support for create_schema and drop_schema via registry.
  • Add support to get_default_schema from the registry.schema.
  • Documentation for tenancy.
  • Improved the documentation for schemas.
  • Added a new parameter extra to registry allowing to pass a Dict like object containing more database connections. This is an alternative to the registries.
  • Improved documentation for registry explaining how to use the extra parameters.
    and query them.

Changed

  • Update the build for Model and ReflectModel to allow passing the schema.

Fixed

  • Registry metaclass wasn't reflecting 100% the schema being passed into the metadata and therefore, querying the database public schema.
edgy - Version 0.2.0

Published by tarsil about 1 year ago

Added

  • RefForeignKey. A model reference where it can create sub objects from the main object directly.
  • Performance enhancements in general.

Changed

  • The way fields are evaluated and caching for the __model_reference__ fields.
edgy - Version 0.1.0

Published by tarsil about 1 year ago

Key features

  • Model inheritance - For those cases where you don't want to repeat yourself while maintaining
    intregity of the models.
  • Abstract classes - That's right! Sometimes you simply want a model that holds common fields
    that doesn't need to created as a table in the database.
  • Meta classes - If you are familiar with Django, this is not new to you and Edgy offers this
    in the same fashion.
  • Managers - Versatility at its core, you can have separate managers for your models to optimise
    specific queries and querysets at ease.
  • Filters - Filter by any field you want and need.
  • Model operators - Classic operations such as update, get, get_or_none, bulk_create,
    bulk_update, values, values_list, only, defer and a lot more.
  • Relationships made it easy - Support for OneToOne, ForeignKey and ManyToMany in the same Django style.
  • Constraints - Unique constraints through meta fields.
  • Indexes - Unique indexes through meta fields.
  • Native test client - We all know how hard it can be to setup that client for those tests you
    need so we give you already one.