skip to navigation
skip to content

boaconstructor 0.3.0

The boacontructor is a templating library for *data*, i.e. templating for dictionaries.

Downloads ↓ | Package Documentation

The boacontructor is a templating library for data.

It allows you to construct Python dictionaries from other templates, dictionaries or instances.

Source code is available on github:
Documentation is available here:

An Example

I'll let the code and comments do the talking:

from boaconstructor import Template

# Some shared information in a dict. This could also be a class instance
# or something else that supports getattr and hasattr.
#
common = dict(
    timeout = 30,
    email = "admin@example.com"
)

# This is a template created in a module. You need one of these. I pass in
# references that are available at this stage. The 'host.$.name' I will pass
# in at render time.
#
webserver_data = Template('webserver',
    dict(
        interface = 'host.$.name',
        port = 32189,
        timeout = 'common.$.timeout',
        alert_email = 'common.$.email',
    ),
    # This is uses common as an 'internal' reference
    references={'common':common}
)

# At run time I can pass 'external' references to resolve the hostnames.
# Maybe I got these from a database or some other source.
#
machine_1 = webserver_data.render({'host': {'name': 'myserver1'}}),
# {'alert_email': 'admin@example.com', 'interface': 'myserver1', 'port': 32189, 'timeout': 30}

machine_2 = webserver_data.render({'host': {'name': 'myserver2'}}),
# {'alert_email': 'admin@example.com', 'interface': 'myserver2', 'port': 32189, 'timeout': 30}


# Now I can pass these to Cheetah/Mako/etc to render a specific type of
# XML/INI/Text configuration files.
 
File Type Py Version Uploaded on Size # downloads
boaconstructor-0.3.0.tar.gz (md5)
Version 0.3.0
Source 2011-05-11 12KB 293