Skip to main content

A modern data mapper library built on Pydantic

Project description

AnyModel – Data Mapper for Python

anymodel is a data mapper for python built on top pydantic providing a flexible storage layer.

Write Plain Old Pydantic Objects, describe how the data are mapped to which storage (or storage combination) and let anymodel do the rest.

Migrations are automatic. Patch your models and we'll diff your storage to apply the schema changes. This is a dangerous operation that we may disable as a default in the future, but for now, we move fast and break things.

THIS SOFTWARE IS STILL IN DEVELOPMENT, EXPECT BREAKING CHANGES AND BUGS. IT MAY BREAK YOUR DATA COMPLETELY, SO DON'T USE IT UNLESS YOU KNOW WHAT YOU ARE DOING.

Reqs

We want to work with "popo" entities (here, plain old pydantic objects). We should be able to sync them back and forth with nunderlying storages, but the storage implementation should not be tied to business objects.

Migrations should be automatic, yet not dangerous. Removed fields / tables should require an explicit confirmation from the user, yet adding a field should be transparent.

We should be able to work with multiple storages at the same time, and even have a single entity mapped to multiple storages, with a main/secondary logic (for example, an sql storage may be responsible for the key management, and store the name, and a lucene index may store other things).

We should be able to manage lazy relations, and even lazy fields from secondary storages.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anymodel-0.1.0.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anymodel-0.1.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file anymodel-0.1.0.tar.gz.

File metadata

  • Download URL: anymodel-0.1.0.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.23

File hashes

Hashes for anymodel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3c41db3f4bdebf3bd74e95d7a189f00a7230ea449acb45e21317bfc8aa1038aa
MD5 687d44d7d28958805525202be2ed9f2e
BLAKE2b-256 276266342f5393c9e70f98f15a9d716d78850f4ec4ade38b2dfb6b3eccadea19

See more details on using hashes here.

File details

Details for the file anymodel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anymodel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.23

File hashes

Hashes for anymodel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53ef254ba2f3cb94c894c68801ea890bbfd0042b775cc3c3c59580b3c8fe249a
MD5 1c2dc9c47e4c514b3bae538c0542f71d
BLAKE2b-256 2ff668c71118c46512ffe80da5025addeba3c6a77eeca28987068d0e7d133ef6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page