Skip to main content
License Travis

fsfs

Read from and write data to folders on your file system.


Take a peek at how it looks from Python:

>>> import fsfs
>>> fsfs.write('tmp/project_dir', start_frame=100, end_frame=200)
>>> fsfs.read('tmp/project_dir') == {'end_frame': 200, 'start_frame': 100}
True
>>> import shutil; shutil.rmtree('tmp')

and from the command line:

$ mkdir tmp/project_dir
$ cd tmp/project_dir
$ fsfs write -k start_frame 100 -k end_frame 200
$ fsfs read
{
    'start_frame': 100,
    'end_frame': 200
}

Features

  • Read from and write data to folders

    • pluggable data encoding with default implementations for json and yaml

    • supports blobs and files

  • Tag and Untag folders allowing quick lookup

  • Folders wrapped in Entry objects allows ORM-like patterns

  • Uses a factory to create Entry objects

  • Generates UUIDs for each folder you touch with fsfs

    • Allows fsfs to react to file system changes outside your program

    • Allows fsfs to relink Entry models

Why use fsfs instead of a database

Certain types of creative projects rely heavily on binary files output from content creation software and close management of the file system they reside in. In these cases maintaining a separate database to track your files and locations can be tedious and can easily become out of sync.

This is exactly the problem fsfs is designed to address. fsfs stores your data alongside your files, so when your files are reorganized their associated data comes along for the ride.

Installation

$ pip install git+git://github.com/danbradham/fsfs.git

Testing

$ nosetests -v --with-doctest --doctest-extension=.rst

Inspiration

fsfs is directly inspired by Abstract Factory’s openmetadata. The core concept of fsfs is the same as openmetadata and the api is similar. However, fsfs follows a different design pattern allowing you to store data in any format you like, and does not follow the openmetadata specification. fsfs comes with encoders for json and yaml out of the box, and allows the storing of blobs and files.

More Documentation!

Visit the Full Documentation for an in depth Guide and API Documentation

Metadata

Release files for fsfs 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fsfs 0.3.1
File Size Uploaded
fsfs-0.3.1.tar.gz 99.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fsfs 0.3.1
File Interpreter ABI Platform
fsfs-0.3.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 216.4 kB

Release files / fsfs-0.3.1.tar.gz

Download URL fsfs-0.3.1.tar.gz
Size 99.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8294b380f4bdb6934e6d02542b01a31058a07632795fdf438bc11d1ce8fb06b5
BLAKE2b-256 checksum
How to use checksums
44916361a0d79c5ef83723b7ebdc8401ae6cd7d32d24e51a27a008e75b902b3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

Release files / fsfs-0.3.1-py2.py3-none-any.whl

Download URL fsfs-0.3.1-py2.py3-none-any.whl
Size 116.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
a18e7e7837ff8e557e609677a333f9255e6f79482c95e097546e3b4c32b1edb0
BLAKE2b-256 checksum
How to use checksums
840c9cd24068d7e4be40263451e6106b4f3fce3d23319b66270ac9df5f0f2997
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page