djblets.webapi.resources.registry¶
Resource registration and lookup.
- class ResourcesRegistry[source]¶
Bases:
object
Manages a registry of instances of API resources.
This handles dynamically loading API resource instances upon request, and registering those resources with models.
When accessing a resource through this class for the first time, it will be imported from the proper file and cached. Subsequent requests will be returned from the cache.
While an optional class, consumers are encouraged to create a subclass of this that they use for all resource instance references and for registering model to resource mappings.
- resource_search_path = None[source]¶
A list of Python module paths to search for module instances.
When looking up a module, the class will attempt to load a “<resource_name>_resource” module from that path, with a “<resource_name>” instance from the module.
- __getattr__(name)[source]¶
Return a resource instance as an attribute.
If the resource hasn’t yet been loaded into cache, it will be imported, fetched from the module, and cached. Subsequent attribute fetches for this resource will be returned from the cache.
- Parameters:
name (
unicode
) – The name of the resource to look up.- Returns:
The resource instance matching the name.
- Return type:
- register_resource_for_model(model, resource)[source]¶
Register a resource as the official location for a model.
- Parameters:
model (
djagno.db.models.Model
) – The model associated with the resource.resource (
djblets.webapi.resources.base.WebAPIResource
orcallable
) – Either a WebAPIResource, or a function that takes an instance ofmodel
and returns a WebAPIResource.
- unregister_resource_for_model(model)[source]¶
Remove the official location for a model.
- Parameters:
model (
django.db.models.Model
) – The model associated with the resource to remove.
- get_resource_for_object(obj)[source]¶
Return the resource for an object.
- Parameters:
obj (
object
) – The object whose model has a resource associated.- Returns:
The resource associated with the object, or
None
if not found.- Return type:
- get_resource_from_name(name)[source]¶
Return the resource of the specified name.
- Parameters:
name (
unicode
) – The name of the resource.- Returns:
The resource instance, or
None
if not found.- Return type:
- get_resource_from_class(klass)[source]¶
Return the resource with the specified resource class.
- Parameters:
klass (
type
) – TheWebAPIResource
subclass.- Returns:
The resource instance, or
None
if not found.- Return type:
- unregister_resource(resource)[source]¶
Unregister a resource from the caches.
- Parameters:
resource (
djblets.webapi.resources.base.WebAPIResource
) – The resource instance to unregister.