collision-free cache folder
Project description
cfcf
collision-free cache folder
This library creates a cache file for a remote resource or a file need additional processing. The cache will be duplicated, if an another process is creating the files. If the cache file already created, an interface will return the file path. This excluding concurrent writing feature makes to avoid the collision.
Installation
pip install cfcf
Usage
Following example running on '/tmp'
handle multiple files (directory mode)
import cfcf
def your_cache_getting_impl(arg1, arg2):
print(arg1)
import os
print(os.getcwd())
print(arg2)
print('#1# ', cfcf.get_dir('cache_name', your_cache_getting_impl, 'arg1', 'arg2'))
print('#2# ', cfcf.get_dir('cache_name', your_cache_getting_impl, 'arg1', 'arg2'))
arg1
/tmp/cache_name/01HGAJ22W2DZDCSC23V1A8RT20
arg2
#1# /tmp/cache_name/01HGAJ22W2DZDCSC23V1A8RT20
#2# /tmp/cache_name/01HGAJ22W2DZDCSC23V1A8RT20
handle a single file (file mode)
import cfcf
def your_cache_getting_impl(filename):
import os
print('Put a file in this dir. and return the path', os.getcwd())
import pathlib
path = pathlib.Path(filename)
path.touch()
return path
print('#1# ', cfcf.get_file('cache_name2', your_cache_getting_impl, 'filename.txt'))
print('#2# ', cfcf.get_file('cache_name2', your_cache_getting_impl, 'filename.txt'))
Put a file in this dir. and return the path /tmp/cache_name2/01HGAK6QQ516P2536QM38PFZ8M
#1# /tmp/cache_name2/01HGAK6QQ516P2536QM38PFZ8M/cache_name2
#2# /tmp/cache_name2/01HGAK6QQ516P2536QM38PFZ8M/cache_name2
handle a dict (object mode)
import cfcf
def your_cache_getting_impl(arg1, arg2):
return {'arg1':arg1, 'arg2':arg2}
print('#1# ', cfcf.get_object('cache_name3', your_cache_getting_impl, 'arg1.1', 'arg2.1'))
print('#2# ', cfcf.get_object('cache_name3', your_cache_getting_impl, 'arg1.2', 'arg2.2'))
#1# {'arg1': 'arg1.1', 'arg2': 'arg2.1'}
#2# {'arg1': 'arg1.1', 'arg2': 'arg2.1'}
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 Distributions
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 cfcf-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cfcf-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0bf2d54c4125580d145255e18e0e42383fcaede77c0a192e91b220bf772ce47
|
|
| MD5 |
e724dceb00b07ebeaa914465e076df87
|
|
| BLAKE2b-256 |
f4a0bb0e41317b0f08cdce36fe56e093c42d41afb9d32dda0e921a7237eb85d2
|