smart_path
Dispatch to pathlib.Path if a local file system path is given,
or s3path.S3Path if the given path is prefixed with
s3://
Example
Basic
from smart_path import smart_path
from pathlib import Path
from s3path import S3Path
# A local path on file system
path_local = smart_path("/tmp/t")
assert isinstance(path_local, Path)
# A s3 path on oss
path_brainpp_oss = smart_path("s3://public-datasets-contrib/", endpoint_url='s3.amazonaws.com')
assert isinstance(path_local, S3Path)
Stub Mode
from smart_path import smart_path
# Stub mode works like the symbolic link in Unix. The source path can be either
# on local file system or brain++ oss, so do the target path. Stub Mode is
# excepted to be helpful when we need to store a large file on oss and pretend
# it is on local file system.
#
# In stub mode, smart_path writes to two destinations:
# 1. The string "hello-world" is written to `s3://somewhere/on/oss`
# 2. The path "s3://somewhere/on/oss" is written to `corresponding/local/path`
path = smart_path('s3://somewhere/on/oss', stub='corresponding/local/path')
path.write_text('hello-world')
# smart_path knows it is a stub file
stub = smart_path('corresponding/local/path')
print(stub.read_text()) # prints "hello-world"
Installation
pip install -e git://github.com/wanzysky/smart_path.git#egg=smart_path
# Or from PyPI
pip install smart_path
Notice:
The entire project is borrowed from EMTF: EMTF-at-megvii-dot-com.
Release files for smart-path 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smart_path-1.0.1.tar.gz | 3.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smart_path-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.1 kB
Release files / smart_path-1.0.1.tar.gz
| Download URL | smart_path-1.0.1.tar.gz |
|---|---|
| Size | 3.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6fc9bad24254818423a1fb971a68a4ea108acbf15f7923fb13fdbbd1ff2cb424
|
|
BLAKE2b-256 checksum How to use checksums |
a9c5ca112626ca96cebe4ffecdd3c3133be714155f3a180559f9445ae2174d46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
|
Release files / smart_path-1.0.1-py3-none-any.whl
| Download URL | smart_path-1.0.1-py3-none-any.whl |
|---|---|
| Size | 3.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4411cc5068f0cb035fc5a188adf645679447e4964a0557b1027314b5ec713889
|
|
BLAKE2b-256 checksum How to use checksums |
8a597cf87da19c503c04bb6d48779a36f131fa2846e030f81ddcd0ac0ab75b00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
|