This module is designed to relief and simplify interaction of your python modules with the file system.
Project description
Description
This module is designed to relief and simplify interaction of your python modules with the file system.
Installation
python setup.py install
or
pip install -e .
or
pip install fs-manager
How to use
For example, you can inherit your class from FSManager class
from fs_manager import FSManager class Foo(FSManager, ...): FSManager.__init__(self, base_path="/some/base", mode=0o744, temporary=True) ...
Or you can just use it as an object
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=True) as fsm: fsm.mkdir(alias="tom", path="tom_dir", mode=0o744, temporary=True) fsm.cd("tom") fsm.mkdir("tom_dir") fsm.mkfile("jerry", "jerry_file", 0o644, True) fsm.ls() fsm.up() fsm.ls() fsm.rm("tom")
Save what you did
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=True) as fsm: fsm.mkdir(alias="tom", path="tom_dir", mode=0o744, temporary=True) fsm.cd("tom") fsm.mkdir("tom_dir") fsm.mkfile("jerry", "jerry_file", 0o644, True) fsm.ls() fsm.save_all() ... shutil.copy("/tmp/base/.fs-structure-full.json", "/tmp/another_base/.fs-structure-full.json") ... with FSManager(base_path="/tmp/another_base", mode=0o744, temporary=True) as fsm: fsm.load_all()
Structure will be saved at root to “.fs-structure-full.json”. But structure saves automatically when temporary=False. So if you initialize from the same directory, structure loads anyway.
Initialize you fs-manager from the directory on your disk
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=False) as fsm: fsm.snappy(root_binded=True) fsm.cd("some/path")
Thus, if root_binded=True your structure will be initialized from one root. In other words, you’ll be able to cd right from the root fs-manager object.
Also you can verify hashsum of files under any prefix like that
from fs_manager import FSManager with FSManager(base_path="/tmp/base", mode=0o744, temporary=False) as fsm: fsm.snappy(root_binded=True) fsm.cd("some/path") fsm.save_hashsums("sha1") ... mismatches = fsm.check_hashsums(type="sha1", log_warnings=False)
There is much more inside :)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.