Skip to main content

facilities for shared access to files

Project description

Facilities for shared access to files.

Function lockfile(path, ext=None, poll_interval=None, timeout=None)

A context manager which takes and holds a lock file.

Parameters:

  • path: the base associated with the lock file.
  • ext: the extension to the base used to construct the lock file name. Default: ".lock"
  • timeout: maximum time to wait before failing, default None (wait forever).
  • poll_interval: polling frequency when timeout is not 0.

Class SharedAppendFile

A base class to share a modifiable file between multiple users.

The use case was driven from the shared CSV files used by cs.nodedb.csvdb.Backend_CSVFile, where multiple users can read from a common CSV file, and coordinate updates with a lock file.

This presents the following interfaces:

  • __iter__: yields data chunks from the underlying file up to EOF; it blocks no more than reading from the file does. Note that multiple iterators share the same read pointer.

  • open: a context manager returning a writable file for writing updates to the file; it blocks reads from this instance (though not, of course, by other users of the file) and arranges that users of __iter__ do not receive their own written data, thus arranging that __iter__ returns only foreign file updates.

Subclasses would normally override __iter__ to parse the received data into their natural records.

Class SharedAppendLines

MRO: SharedAppendFile
A line oriented subclass of SharedAppendFile.

Class SharedCSVFile

MRO: SharedAppendLines, SharedAppendFile
Shared access to a CSV file in UTF-8 encoding.

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

cs.sharedfile-20190102.tar.gz (5.5 kB view details)

Uploaded Source

File details

Details for the file cs.sharedfile-20190102.tar.gz.

File metadata

  • Download URL: cs.sharedfile-20190102.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.0 CPython/3.6.6

File hashes

Hashes for cs.sharedfile-20190102.tar.gz
Algorithm Hash digest
SHA256 cbb2d511926590b3f5720b78b8111b593ec202d6618137de249c6c6642a54ec8
MD5 9d53daf6ece394255b3f5b42aac53641
BLAKE2b-256 9cfdd37ded690977e715b123b0ae5b791f935fff9ec59f49e68d17fa347592e2

See more details on using hashes here.

Supported by

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