API#

Resource#

class webresource.Resource(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, type_=None, **kwargs)#

Bases: ResourceMixin

A web resource.

__init__(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, type_=None, **kwargs)#

Base class for resources.

Parameters
  • name – The resource unique name.

  • depends – Optional name or list of names of dependency resources.

  • directory – Directory containing the resource files.

  • path – URL path for HTML tag link creation.

  • resource – Resource file.

  • compressed – Optional compressed version of resource file.

  • include – Flag or callback function returning a flag whether to include the resource.

  • unique – Flag whether to render resource URL including unique key. Has no effect if url is given.

  • unique_prefix – Prefix for unique key. Defaults to ‘++webresource++’.

  • hash_algorithm – Name of the hashing algorithm. Either ‘sha256’, ‘sha384’ or ‘sha512’. Defaults to ‘sha384’.

  • group – Optional resource group instance.

  • url – Optional resource URL to use for external resources.

  • crossorigin – Sets the mode of the request to an HTTP CORS Request.

  • referrerpolicy – Specifies which referrer information to send when fetching the resource.

  • type – Specifies the media type of the resource.

  • **kwargs

    Additional keyword arguments. Gets rendered as additional attributes on resource tag.

Raises

ResourceError – No resource and no url given.

property file_name#

Resource file name depending on operation mode.

property file_path#

Absolute resource file path depending on operation mode.

render(base_url)#

Renders the resource HTML tag. must be implemented on subclass.

Parameters

base_url – The base URL to create the URL resource.

Raises

NotImplementedError – Method is abstract.

resource_url(base_url)#

Create URL for resource.

Parameters

base_url – The base URL to create the URL resource.

ScriptResource#

class webresource.ScriptResource(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, type_=None, async_=None, defer=None, integrity=None, nomodule=None, **kwargs)#

Bases: Resource

A Javascript resource.

__init__(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, type_=None, async_=None, defer=None, integrity=None, nomodule=None, **kwargs)#

Create script resource.

Parameters
  • name – The resource unique name.

  • depends – Optional name or list of names of dependency resources.

  • directory – Directory containing the resource files.

  • path – URL path for HTML tag link creation.

  • resource – Resource file.

  • compressed – Optional compressed version of resource file.

  • include – Flag or callback function returning a flag whether to include the resource.

  • unique – Flag whether to render resource URL including unique key. Has no effect if url is given.

  • unique_prefix – Prefix for unique key. Defaults to ‘++webresource++’.

  • hash_algorithm – Name of the hashing algorithm. Either ‘sha256’, ‘sha384’ or ‘sha512’. Defaults to ‘sha384’.

  • group – Optional resource group instance.

  • url – Optional resource URL to use for external resources.

  • crossorigin – Sets the mode of the request to an HTTP CORS Request.

  • referrerpolicy – Specifies which referrer information to send when fetching the resource.

  • type – Specifies the media type of the resource.

  • async – Specifies that the script is executed asynchronously (only for external scripts)

  • defer – Specifies that the script is executed when the page has finished parsing (only for external scripts).

  • integrity – Allows a browser to check the fetched script to ensure that the code is never loaded if the source has been manipulated. If integrity given and value is ‘True’, the integrity hash gets calculated from the resource file content. This automatic calculation won’t work if url is given. If value is a string, it is assumed to be the already calculated resource hash and is taken as is.

  • nomodule – Specifies that the script should not be executed in browsers supporting ES2015 modules.

  • **kwargs

    Additional keyword arguments. Gets rendered as additional attributes on resource tag.

Raises

ResourceError – No resource and no url given.

render(base_url)#

Renders the resource HTML script tag.

Parameters

base_url – The base URL to create the URL resource.

LinkResource#

class webresource.LinkResource(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, type_=None, hreflang=None, media=None, rel=None, sizes=None, title=None, **kwargs)#

Bases: LinkMixin

A Link Resource.

__init__(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, type_=None, hreflang=None, media=None, rel=None, sizes=None, title=None, **kwargs)#

Create link resource.

Parameters
  • name – The resource unique name.

  • depends – Optional name or list of names of dependency resources.

  • directory – Directory containing the resource files.

  • path – URL path for HTML tag link creation.

  • resource – Resource file.

  • compressed – Optional compressed version of resource file.

  • include – Flag or callback function returning a flag whether to include the resource.

  • unique – Flag whether to render resource URL including unique key. Has no effect if url is given.

  • unique_prefix – Prefix for unique key. Defaults to ‘++webresource++’.

  • hash_algorithm – Name of the hashing algorithm. Either ‘sha256’, ‘sha384’ or ‘sha512’. Defaults to ‘sha384’.

  • group – Optional resource group instance.

  • url – Optional resource URL to use for external resources.

  • crossorigin – Sets the mode of the request to an HTTP CORS Request.

  • referrerpolicy – Specifies which referrer information to send when fetching the resource.

  • type – Specifies the media type of the resource.

  • hreflang – Specifies the language of the text in the linked document.

  • media – Specifies on what device the linked document will be displayed.

  • rel – Required. Specifies the relationship between the current document and the linked document.

  • sizes – Specifies the size of the linked resource. Only for rel=”icon”.

  • title – Defines a preferred or an alternate stylesheet.

  • **kwargs

    Additional keyword arguments. Gets rendered as additional attributes on resource tag.

Raises

ResourceError – No resource and no url given.

render(base_url)#

Renders the resource HTML link tag.

Parameters

base_url – The base URL to create the URL resource.

StyleResource#

class webresource.StyleResource(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, hreflang=None, media='all', rel='stylesheet', title=None, **kwargs)#

Bases: LinkMixin

A Stylesheet Resource.

__init__(name='', depends=None, directory=None, path=None, resource=None, compressed=None, include=True, unique=False, unique_prefix='++webresource++', hash_algorithm='sha384', group=None, url=None, crossorigin=None, referrerpolicy=None, hreflang=None, media='all', rel='stylesheet', title=None, **kwargs)#

Create link resource.

Parameters
  • name – The resource unique name.

  • depends – Optional name or list of names of dependency resources.

  • directory – Directory containing the resource files.

  • path – URL path for HTML tag link creation.

  • resource – Resource file.

  • compressed – Optional compressed version of resource file.

  • include – Flag or callback function returning a flag whether to include the resource.

  • unique – Flag whether to render resource URL including unique key. Has no effect if url is given.

  • unique_prefix – Prefix for unique key. Defaults to ‘++webresource++’.

  • hash_algorithm – Name of the hashing algorithm. Either ‘sha256’, ‘sha384’ or ‘sha512’. Defaults to ‘sha384’.

  • group – Optional resource group instance.

  • url – Optional resource URL to use for external resources.

  • crossorigin – Sets the mode of the request to an HTTP CORS Request.

  • referrerpolicy – Specifies which referrer information to send when fetching the resource.

  • hreflang – Specifies the language of the text in the linked document.

  • media – Specifies on what device the linked document will be displayed. Defaults to “all”.

  • rel – Specifies the relationship between the current document and the linked document. Defaults to “stylesheet”.

  • title – Defines a preferred or an alternate stylesheet.

  • **kwargs

    Additional keyword arguments. Gets rendered as additional attributes on resource tag.

Raises

ResourceError – No resource and no url given.

render(base_url)#

Renders the resource HTML link tag.

Parameters

base_url – The base URL to create the URL resource.

ResourceGroup#

class webresource.ResourceGroup(name='', directory=None, path=None, include=True, group=None)#

Bases: ResourceMixin

A resource group.

__init__(name='', directory=None, path=None, include=True, group=None)#

Create resource group.

Parameters
  • name – The resource group name.

  • directory – Directory containing the resource files.

  • path – Optional URL path for HTML tag link creation. Takes precedence over group members paths.

  • include – Flag or callback function returning a flag whether to include the resource group.

  • group – Optional resource group instance.

add(member)#

Add member to resource group.

Parameters

member – Either ResourceGroup or Resource instance.

Raises

ResourceError – Invalid member given.

List of all contained LinkResource instances.

Resources from subsequent resource groups are included.

property members#

List of group members.

Group members are either instances of Resource or ResourceGroup.

property scripts#

List of all contained ScriptResource instances.

Resources from subsequent resource groups are included.

property styles#

List of all contained StyleResource instances.

Resources from subsequent resource groups are included.

ResourceResolver#

class webresource.ResourceResolver(members)#

Resource resolver.

__init__(members)#

Create resource resolver.

Parameters

members – Either single or list of Resource or ResourceGroup instances.

Raises

ResourceError – Members contain invalid member.

resolve()#

Return all resources from members as flat list ordered by dependencies.

Raises

ResourceRenderer#

class webresource.ResourceRenderer(resolver, base_url='https://tld.org')#

Resource renderer.

__init__(resolver, base_url='https://tld.org')#

Create resource renderer.

Parameters
  • resolverResourceResolver instance.

  • base_url – Base URL to render resource HTML tags.

render()#

Render resources.

GracefulResourceRenderer#

class webresource.GracefulResourceRenderer(resolver, base_url='https://tld.org')#

Resource renderer, which does not fail but logs an exception.

__init__(resolver, base_url='https://tld.org')#

Create resource renderer.

Parameters
  • resolverResourceResolver instance.

  • base_url – Base URL to render resource HTML tags.

render()#

Render resources.

Exceptions#

class webresource.ResourceError#

Bases: ValueError

Resource related exception.

class webresource.ResourceConflictError(counter)#

Bases: ResourceError

Multiple resources declared with the same name.

class webresource.ResourceCircularDependencyError(resources)#

Bases: ResourceError

Resources define circular dependencies.

class webresource.ResourceMissingDependencyError(resource)#

Bases: ResourceError

Resource depends on a missing resource.