No project description provided
Project description
fsoopify
Just make file system oopify.
install
pip install fsoopify
usage
import fsoopify
[file|directory] = fsoopify.NodeInfo.from_path(...)
# api for both file and directory
file.rename()
file.get_parent()
file.is_exists()
file.is_directory()
file.is_file()
file.delete()
file.create_hardlink()
# api for file
file.load_context() # load and dump the file in a context.
# api for directory
directory.create() and directory.ensure_created()
directory.create_file()
directory.iter_items()
directory.list_items()
directory.get_fileinfo() and directory.get_dirinfo()
directory.has_file() and directory.has_directory()
Api
File
You can use fsoopify.FileInfo(...) to create a FileInfo object and use file api.
Prop Api
size- aintvalue with override__str__.
Test Api
is_exists()is_file()
Open Api
open()- alias for builtinopenopen_for_read_bytes()open_for_read_text()
Read and Write Api
write()write_text()write_bytes()write_from_stream()read()read_text()read_bytes()read_into_stream()
And you can use += for append data:
fi = FileInfo(...)
fi += 'data'
fi += b'data'
fi += FileInfo(other_file)
fi += io.BytesIO(b'data')
...
Serialize Api
load()dump()load_context()
The easiest way to dump a json:
FileInfo('a.json').dump(the_obj_to_dump)
Or load:
obj = FileInfo('a.json').load()
The format can auto detect by extension name.
Another way to load and dump a file is load_context():
with FileInfo('a.json').load_context() as ctx:
ctx.data = the_obj_to_dump
With load_context(lock=True), you can lock the file in the context.
Hash Api
To compute hash for a file:
crc32, md5, sha1 = FileInfo('a.json').get_file_hash('crc32', 'md5', 'sha1')
Directory
You can use fsoopify.DirectoryInfo(...) to create a DirectoryInfo object and use directory api.
Tree Api
The easiest way to batch read files:
DirectoryInfo(...).get_tree()
# {
# filename: b'file content',
# sub_dirname: {
# ...
# }
# }
# to prevent load all file into memory:
DirectoryInfo(...).get_tree(as_stream=True)
Or batch write files:
tree = {
'a.txt': b'abc',
'b.txt': b'cde',
'sub_dir': {
'e.txt': b'ddd'
}
}
DirectoryInfo(...).make_tree(tree)
Optional packages
json5- load or dump json5 filepyyaml- load or dump yaml filetoml- load or dump toml filepipfile- load pipfile
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fsoopify-0.5.2.tar.gz.
File metadata
- Download URL: fsoopify-0.5.2.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db06b87c9617dd8c04619542d3cb4dd5e40e5c0f66eea489e6545c6112f5655b
|
|
| MD5 |
d678b49436a1924781e712b74e339c08
|
|
| BLAKE2b-256 |
65a64f41722ae258671c18678fbe240bc6d87ed9f40d3702318f0434f9fc9f59
|
File details
Details for the file fsoopify-0.5.2-py3-none-any.whl.
File metadata
- Download URL: fsoopify-0.5.2-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54c738f23ba86b8912bbc0524438dc2e30e736922a48a2a5ca61a0a70f772ba5
|
|
| MD5 |
d7827f781d27096fabd5d7f944b32d34
|
|
| BLAKE2b-256 |
d7c7995ed5470b5833e16750279a82e502028051ab911a4624cac17231a7efd2
|