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
- aint
value with override__str__
.
Test Api
is_exists()
is_file()
Open Api
open()
- alias for builtinopen
open_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
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 |