Skip to main content

Dependency injection for pyramid views

Project description

pyramid_autowire is a package that allows your pyramid views to use pyramids registry for dependency injection.

from pyramid_autowire import autowired

@view_defaults(route_name='test_route', mapper=autowired)
class Posts:
    def __init__(
        # Standard pyramid (context, request) and (request,) arguments
        # are available through position-only args
        self, request, /,
        # the database and user objects will be injected from the registry
        database: IDatabase, active_user: IUser
    ):
        self.request = request
        self.database = database
        self.active_user = active_user

    @view_config()
    def view_post(
        self, *,
        # the matchdict is injected as keyword-only args
        post_id
    ):
        return self.database.query(Post, post_id)

def includeme(config):
    registry = config.registry

    # pretend for the example that the database session is global
    registry.registerUtility(MyDatabase(), IDatabase)

    def get_active_user(request):
        # Fetch active user from the request data
        ...

    registry.registerAdapter(get_active_user, (IRequest, ), IUser)

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

pyramid_autowire-1.0.2.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

pyramid_autowire-1.0.2-py3-none-any.whl (5.0 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