zoom.packages module

zoom.packages

Provide a simple shorthand way to include external components in projects.

zoom.packages.get_registered_packages()

Returns the list of packages known to the site

>>> import zoom.request
>>> zoom.system.request = zoom.request.Request(dict(PATH_INFO='/'))
>>> zoom.system.site = zoom.site.Site(zoom.system.request)
>>> zoom.system.request.app = zoom.utils.Bunch(packages={})
>>> packages = get_registered_packages()
>>> 'c3' in packages
True
zoom.packages.load(pathname)

Load a packages file into a dict

zoom.packages.requires(*package_names)

Inform framework of the packages required for rendering

>>> import zoom.request
>>> request = zoom.request.Request(dict(PATH_INFO='/'))
>>> zoom.system.site = zoom.site.Site(request)
>>> zoom.system.parts = zoom.Component()
>>> requires('c3')
>>> libs = zoom.system.parts.parts['libs']
>>> print('\n'.join(list(libs)))
https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/c3/0.4.15/c3.min.js
>>> zoom.system.parts = zoom.Component()
>>> requires('jquery-ui')
>>> libs = zoom.system.parts.parts['libs']
>>> print('\n'.join(list(libs)))
//code.jquery.com/jquery-3.3.1.min.js
//code.jquery.com/ui/1.12.1/jquery-ui.min.js
>>> try:
...     requires('d4')
... except Exception as e:
...     'Missing required' in str(e) and 'raised!'
'raised!'