Skip to main content

Buildout recipe normalizes directory/path options.

Project description

This buildout recipe allows for a part containing fixed and/or relative filesystem paths as configuration options; these options are normalized in during the run of the part, making the real (full) filesystem path of the referenced paths available for use by other parts.

0.1 (2011-06-21)

  • Initial release.

Overview

This recipe normalizes any option value for the part it manages if said option value begins with ‘path.’ – such options are assumed to be paths. This recipe replaces relative paths of all sorts with real, full system path to files or directories.

This recipe is useful as a replacement for using non-part sections for holding path configuration; instead, use a part with this recipe, and both relative and absolute paths can be stored for use by other parts in your buildout.

Usage

Let’s create a buildout with a single part containing the configuration options we want to either preserve or normalize:

>>> write('buildout.cfg',
... """
... [buildout]
... parts =
...     paths
...
... [paths]
... recipe = collective.recipe.realpath
... notpath.here = something else
... path.parent = ${buildout:directory}/..
... path.to.nowhere = /dev/null
... path.var = ${buildout:directory}/var
... """)

We run this buildout…

>>> print 'start', system(buildout) # doctest:+ELLIPSIS
start...
Installing paths.

We can see that (only) the necesssary options have normalized path values:

>>> from os.path import dirname, realpath
>>> builddir = dirname(dirname(buildout))
>>> buildout_parent = realpath('%s/..'% builddir)
>>> cat('.installed.cfg') # doctest: +ELLIPSIS
[buildout]
...
[paths]
...
notpath.here = something else
path.parent = ...
path.to.nowhere = /dev/null
path.var = /sample-buildout/var
...

LICENSE / CREDITS

MIT-style license – See docs/COPYING.txt Author: Sean Upton / University of Utah / upiq.org Upstream:

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.recipe.realpath-0.1.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file collective.recipe.realpath-0.1.tar.gz.

File metadata

File hashes

Hashes for collective.recipe.realpath-0.1.tar.gz
Algorithm Hash digest
SHA256 88b88f9f69dcb982a68375eb83062313a3dfc91ea43c5a8bfdd2da17734a6a5a
MD5 6932b7ae25d48171cc76de01f5a0d230
BLAKE2b-256 4c1f16ddee2972019476dc0bf8cc53d3d080fdd73a55fda4627dcf51fa58411d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page