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 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page