Skip to main content

Package description here.

Project description

Note: This package is in the dangerous land of 0.x.y versions and may be subject to breaking changes with minor version increments.

nr.utils.ponyorm

Utilities for Pony ORM.

Composable databases

Applications with plugin interfaces may choose to allow the use of a common database, accessed via the same Pony ORM database object. The nr.utils.ponyorm.appdb provides classes to allow just that.

Example:

from nr.utils.ponyorm.appdb import AppDatabase, Optional, Required
appdb = AppDatabase(__name__)
class Person(appdb.Entity):
  name = Required(str)
  # etc. etc.

Then from the application startup logic:

from pony.orm import Database
db = Database()
for appdb in load_all_application_databases():  # ominous functions
  appdb.bind_to(db)
db.generate_mapping(create_tables=True)

Common converters

Provides common converter implementations that are not built into Pony ORM. All converters can be registered via AppDatabase.register_converter(converter_cls) or with nr.utils.ponyorm.converters.register_converter(db, converter_cls).

Available converters are

  • EnumConverter

Utility functions

  • get_db(entity)
  • get_one(entity_cls, kwargs)
  • get_or_create(entity_cls, get, set=None)
  • upsert(entity_cls, get, set=None, mutate=True)

Copyright © 2020 Niklas Rosenstein

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

nr.utils.ponyorm-0.0.2.tar.gz (7.5 kB view hashes)

Uploaded Source

Built Distribution

nr.utils.ponyorm-0.0.2-py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 3

Supported by

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