ets-labs / python-dependency-injector

Dependency injection framework for Python
https://python-dependency-injector.ets-labs.org/
BSD 3-Clause "New" or "Revised" License
3.99k stars 305 forks source link

How to configure for PonyOrm #799

Open elier opened 6 months ago

elier commented 6 months ago

PonyOrm is a nice ORM implementation. Unfortunately, I haven't figure it out how to make it work with your DI.

There are examples with the most important frameworks: https://docs.ponyorm.org/integration_with_flask.html

I'm using a resource initializing function like this:

def init_database(options):
    database = orm.Database(options)
    database.generate_mapping(create_tables=True)
    return database

class Container(containers.DeclarativeContainer):
    config = providers.Configuration()
    db = providers.Resource(init_database, config.database)

But I guess initialization is not happening at the right time:

pony.orm.core.ERDiagramError: Mapping is not generated for entity 'User'

I'm asking in PonyOrm github as well.