Skip to main content

ZC Buildout recipe for defining a file-storage

Project description

Recipe for setting up a filestorage

This recipe can be used to define a file-storage. It creates a ZConfig file-storage database specification that can be used by other recipes to generate ZConfig configuration files.

This recipe takes an optional path option. If none is given, it creates and uses a subdirectory of the buildout parts directory with the same name as the part.

The recipe records a zconfig option for use by other recipes.

We’ll show a couple of examples, using a dictionary as a simulated buildout object:

>>> import zc.recipe.filestorage
>>> buildout = dict(
...   buildout = {
...      'directory': '/buildout',
...      },
...   db = {
...      'path': 'foo/Main.fs',
...      },
...   )
>>> recipe = zc.recipe.filestorage.Recipe(
...                   buildout, 'db', buildout['db'])
>>> print(buildout['db']['path'])
/buildout/foo/Main.fs
>>> print(buildout['db']['zconfig'], end='')
<zodb>
  <filestorage>
    path /buildout/foo/Main.fs
  </filestorage>
</zodb>
>>> recipe.install()
()
>>> import tempfile
>>> d = tempfile.mkdtemp()
>>> buildout = dict(
...   buildout = {
...      'parts-directory': d,
...      },
...   db = {},
...   )
>>> recipe = zc.recipe.filestorage.Recipe(
...                   buildout, 'db', buildout['db'])
>>> print(buildout['db']['path'])
/tmp/tmpQo0DTB/db/Data.fs
>>> print(buildout['db']['zconfig'], end='')
<zodb>
  <filestorage>
    path /tmp/tmpQo0DTB/db/Data.fs
  </filestorage>
</zodb>
>>> recipe.install()
()
>>> import os
>>> os.listdir(d)
['db']

The update method doesn’t do much, as the database part’s directory already exists, but it is present, so buildout doesn’t complain and doesn’t accidentally run install() again:

>>> recipe.update()

If the storage’s directory is removed, is it re-added by the update method:

>>> os.rmdir(os.path.join(d, 'db'))
>>> os.listdir(d)
[]
>>> recipe.update()
>>> os.listdir(d)
['db']

This is useful in development when the directory containing the database is removed in order to start the database from scratch.

CHANGES

2.0 (2023-02-10)

  • Drop support for Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, 3.6.

  • Add support for Python 3.7, 3.8, 3.9, 3.10, 3.11, PyPy3.

1.1.2 (2014-02-21)

  • Fixed: packaging bug that caused ‘pip install zc.recipe.filestorage’ to fail with an error about missing README.txt

1.1.1 (2014-02-16)

  • Fixed: packaging bug that caused a test failure in a test runner that didn’t use buildout to run setup.py.

1.1.0 (2014-02-14)

  • Python 3 compatibility

  • Using Python’s doctest module instead of deprecated zope.testing.doctest.

  • Removed ‘shared-blob-dir’ from blobstorage section.

1.0.0 (2007-11-03)

  • Initial release.

Download files

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

Source Distribution

zc.recipe.filestorage-2.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

zc.recipe.filestorage-2.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file zc.recipe.filestorage-2.0.tar.gz.

File metadata

  • Download URL: zc.recipe.filestorage-2.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for zc.recipe.filestorage-2.0.tar.gz
Algorithm Hash digest
SHA256 5042205100fdf572479186a59964b261b6f1b71b1b4265e06ab70e0e4f8b7b67
MD5 2997329a4f71b3449ae60ac6b0832822
BLAKE2b-256 e7b6d5bb0ef89885b9af2ecb83fdb3ba48d38a40dfebb6d249a1e4e3f0c453eb

See more details on using hashes here.

File details

Details for the file zc.recipe.filestorage-2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for zc.recipe.filestorage-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de6a600e790314d8ccc932900e54746d011cccdb7e8d8e6d7ee665434a2fde0e
MD5 10ce64a63bd37c62f071437e5ea737c5
BLAKE2b-256 7b4a7b7d12712c0d27cdd9f9016ada0d66cdd94764c77f9dc7ce4a5350d19f38

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