Small Python lib, User friendly API for daily python code.
Project description
pyeff
a small python library, which include user friendly api, includes fs, json, yaml, logger, and so on.
Install
pip install pyeff
module: pyeff.fs
API: pyeff.fs.remove
remove(path, mode='all', patterns=[])- option mode
'ignore','include','all', default is'all'
example-1:
from pyeff.fs import remove, copy
# test remove
remove('./build')
assert not os.path.exists('./build')
remove("./build/data_1_copytree_to_be_remove")
assert not os.path.exists("./build/data_1_copytree_to_be_remove/test.md")
copy("./test/data_1","./build/data_1_copytree_to_be_remove",
dirs_exist_ok=False)
remove("./build/data_1_copytree_to_be_remove/test.md")
assert not os.path.exists("./build/data_1_copytree_to_be_remove/test.md")
assert os.path.exists("./build/data_1_copytree_to_be_remove/test.txt")
example-2
from pyeff.fs import remove, copy
# test remove with incldue mode
copy("./test/data_1","./build/data_1_copytree_to_be_remove_2",
dirs_exist_ok=False)
remove("./build/data_1_copytree_to_be_remove_2",
mode="include",
patterns=['*.md'])
assert not os.path.exists("./build/data_1_copytree_to_be_remove_2/test.md")
assert os.path.exists("./build/data_1_copytree_to_be_remove_2/test.txt")
example-3
from pyeff.fs import remove, copy
# test remove with ignore mode
remove("./build/data_1_copytree_to_be_remove_2",
mode="ignore",
patterns=['*.md'])
assert not os.path.exists("./build/data_1_copytree_to_be_remove_2/test.txt")
API: pyeff.fs.copy
copy(src, dst, mode='all', patterns=None, dirs_exist_ok=False, follow_symlinks: bool = True, copy_metadata=False)- option mode
'ignore','include','all', default is'all'
example:
from pyeff.fs import remove, copy
# test copytree ignore
copy("./test/data_1","./build/data_1_copytree_ignore",
mode='ignore',
patterns=['*.txt'],
dirs_exist_ok=True)
assert os.path.exists("./build/data_1_copytree_ignore")
assert os.path.exists("./build/data_1_copytree_ignore/test.md")
assert not os.path.exists("./build/data_1_copytree_ignore/test.txt")
# test copytree include
copy("./test/data_1","./build/data_1_copytree_include",
mode='include',
patterns=['*.txt'],
dirs_exist_ok=True)
assert os.path.exists("./build/data_1_copytree_include")
assert not os.path.exists("./build/data_1_copytree_include/test.md")
assert os.path.exists("./build/data_1_copytree_include/test.txt")
API: pyeff.fs.move
move(src, dst, mode='all', patterns=None)- option modes
'ignore','include','all', default is'all'
example-1:
from pyeff.fs import move
move("./build/data_1_move_source_0/sub_1/test.md","./build/data_1_move/sub_1/test.md")
assert os.path.exists('./build/data_1_move/sub_1/test.md')
assert not os.path.exists('./build/data_1_move_source_0/sub_1/test.md')
move("./build/data_1_move_source_0/sub_2","./build/data_1_move/sub_2")
assert os.path.exists('./build/data_1_move/sub_2')
assert os.path.exists('./build/data_1_move/sub_2/test.txt')
assert os.path.exists('./build/data_1_move/sub_2/test.md')
assert not os.path.exists('./build/data_1_move_source_0/sub_2')
assert not os.path.exists('./build/data_1_move_source_0/sub_2/test.txt')
assert not os.path.exists('./build/data_1_move_source_0/sub_2/test.md')
example-2
from pyeff.fs import move
# test move tree ignore
move("./build/data_1_move_source_1","./build/data_1_move_ignore",
mode='ignore',
patterns=['*.txt'])
assert os.path.exists("./build/data_1_move_ignore")
assert os.path.exists("./build/data_1_move_ignore/test.md")
assert not os.path.exists("./build/data_1_move_source_1/test.md")
assert not os.path.exists("./build/data_1_move_ignore/test.txt")
assert os.path.exists("./build/data_1_move_source_1/test.txt")
assert os.path.exists("./build/data_1_move_ignore/sub_1/test.md")
assert not os.path.exists("./build/data_1_move_source_1/sub_1/test.md")
assert not os.path.exists("./build/data_1_move_ignore/sub_1/test.txt")
assert os.path.exists("./build/data_1_move_source_1/sub_1/test.txt")
example-3:
from pyeff.fs import move
# test move tree include
move("./build/data_1_move_source_2","./build/data_1_move_include",
mode='include',
patterns=['*.txt'])
assert os.path.exists("./build/data_1_move_include/test.txt")
assert not os.path.exists("./build/data_1_move_source_2/test.txt")
assert not os.path.exists("./build/data_1_move_include/test.md")
assert os.path.exists("./build/data_1_move_source_2/test.md")
assert os.path.exists("./build/data_1_move_include/sub_1/test.txt")
assert not os.path.exists("./build/data_1_move_source_2/sub_1/test.txt")
assert not os.path.exists("./build/data_1_move_include/sub_1/test.md")
assert os.path.exists("./build/data_1_move_source_2/sub_1/test.md")
module: pyeff.json
# src/tests/test.py
from pyeff.json import load_json, dump_json
j1 = load_json("./data_2/json/1.json")
dump_json(j1, "../../build/1.json")
module: pyeff.yaml
# src/tests/test.py
from pyeff.yaml import load_yaml_full, load_yaml_safe
y = load_yaml_full("./data_2/yaml/0.yml", "./data_2/yaml")
assert y["name"] == "0"
assert y["file1"]["name"] == "1"
assert y["file2"]["name"] == "2"
dump_yaml(y, "../../build/0.full.yml")
y_full = load_yaml_safe("../../build/0.full.yml")
assert y_full["name"] == "0"
assert y_full["file1"]["name"] == "1"
assert y_full["file2"]["name"] == "2"
y = load_yaml_safe("./data_2/yaml/0.yml")
assert y["name"] == "0"
assert y["file1"] == None
assert y["file2"] == None
module: pyeff.shell
from pyeff.fs import current_dir
from pyeff.shell import run_cmds
run_cmds(
[
"cd data_1",
"cat test.txt"
],
cwd=current_dir(__file__),
tip="test",
check=True,
join=True,
)
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
pyeff-0.1.0.tar.gz
(8.7 kB
view details)
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
pyeff-0.1.0-py3-none-any.whl
(9.1 kB
view details)
File details
Details for the file pyeff-0.1.0.tar.gz.
File metadata
- Download URL: pyeff-0.1.0.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a847c87de3a2268b34fd60263023a446de3b7c863211f72d4df5c5969c03fae
|
|
| MD5 |
623ad7c657cad4e4913049b64d031209
|
|
| BLAKE2b-256 |
9fd4c4cc4e4da163c157568bdd34be329c7ddab41df6321b54ea4b80bfd62a1e
|
File details
Details for the file pyeff-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyeff-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af6458456caaf006f91debba0c5f54fbb1f3c225a1baa01a832cd072d7253542
|
|
| MD5 |
db444043ed6d78ff5b63b2dff7b4a6f4
|
|
| BLAKE2b-256 |
09a3ae6ac4a95fa87a8d3d29dad460bb56072e3ebd4083a30545ce9bb7b69708
|