Skip to main content

Performs transactional modification on directory trees

Project description

fstrans - Python module for filesystem transactions

Description

This module allows to manipulate some directory tree in safe way, making sure that in case of error tree would left intact, and no other process such as webserver would access partially modified tree (although you can use external programs from your script to work with tree)

It also serializes write tree access - if one program starts transaction with some directory, other one, if started, would wait for some time for it to complete.

Module is Unix-only. It heavily relies on hard links to quickly make copies of big trees.

As working tree is populated with symlinks from final tree, user should make sure that file is different in local copy before modifying it.

For this module provides following methods:

  1. open - works just like builtin function open, but makes sure that original file would not be clobbered before commit.
  2. putfile - safely replaces file in tree with other file
  3. clonefile, clonetree - make exact copy of original file with link count = 1.

Installation

You can install released version with pip3 install fstrans. If you prefer cutting age software, recommended way is

python3 setup.py sdist
pip3 install ./dist/fstrans-1.0.tar.gz

Of course, you can install system-wide build your OS packages and so on. But if you are planning to do so, you probably don't need special instructions.

Testing

There is unittest-based test suite in the test directory.

Run

python3 setup.py test

to run test suite.

Project details


Download files

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

Source Distribution

fstrans-1.0.1.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

fstrans-1.0.1-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file fstrans-1.0.1.tar.gz.

File metadata

  • Download URL: fstrans-1.0.1.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for fstrans-1.0.1.tar.gz
Algorithm Hash digest
SHA256 8fc664dd583db403cb0150aa7f928b481e1e26214d373caca68fc3dcdfa7f170
MD5 a0ac622aaddbdb27808c54eba2a169ba
BLAKE2b-256 a981186945eb92a341fd772ab1b644d5b2a77ab50431f3411d22b3f6302d6fbe

See more details on using hashes here.

File details

Details for the file fstrans-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: fstrans-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for fstrans-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e3ccfdcdbdbad624267e0236fb6c331929abf484fde1ad19f2f9fe290e2b3fb
MD5 553a120e71a3e224249798a3601a87d8
BLAKE2b-256 39ef7b936a2cd88877d614131acc99ec9cf6a191abb014fc31182bfa7fd1b675

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