Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
hub-client / dockerhub / routers.py
Size: Mime:
# Copyright (c) 2015 Docker, Inc. All rights reserved.
from rest_framework import routers


class LookupRegexPatchedSimpleRouter(routers.SimpleRouter):
    """
    There's a bug in DRF's router when specifying the lookup_url_kwarg and the lookup_field
    The router does not handle using both properly
    """
    def get_lookup_regex(self, viewset, lookup_prefix=''):
        """
        """
        base_regex = '(?P<{lookup_prefix}{lookup_field}>{lookup_value})'
        # Use `pk` as default field, unset set.  Default regex should not
        # consume `.json` style suffixes and should break at '/' boundaries.
        lookup_url_kwarg = getattr(viewset, 'lookup_url_kwarg')
        if lookup_url_kwarg:
            lookup_field = lookup_url_kwarg
        else:
            lookup_field = getattr(viewset, 'lookup_field', 'pk')

        lookup_value = getattr(viewset, 'lookup_value_regex', '[^/.]+')
        return base_regex.format(
            lookup_prefix=lookup_prefix,
            lookup_field=lookup_field,
            lookup_value=lookup_value
        )