用Rust编写的快速路径操作模块
项目描述
fpath 
Python的os.path模块用Rust编写
需求
- Python3
- setuptools-rust
- Nightly Rust
$ pip install setuptools_rust
$ rustup default nightly
安装
$ pip install --upgrade git+https://github.com/hhatto/fpath
使用
>>> import os.path
>>> import fpath
>>> os.path.abspath("path/to/file")
'/home/user/path/to/file'
>>> fpath.abspath("path/to/file")
'/home/user/path/to/file'
>>> import timeit
>>> timeit.timeit('import os.path;os.path.abspath("path/to/file")', number=1000*10)
0.20972810598323122
>>> timeit.timeit('import fpath;fpath.abspath("path/to/file")', number=1000*10)
0.12387347500771284
>>>
基准测试
methodname % real[p,r] user[p,r] sys[p,r] n
abspath 45.53% 10.15s, 5.53s 6.86s, 2.81s 3.25s, 2.69s 100000
basename 53.52% 0.71s, 0.33s 0.70s, 0.33s 0.00s, 0.00s 100000
dirname 57.43% 1.02s, 0.43s 1.01s, 0.43s 0.00s, 0.00s 100000
isabs 56.55% 0.59s, 0.25s 0.59s, 0.25s 0.00s, 0.00s 100000
islink 0.25% 3.78s, 3.77s 0.01s, 0.01s 0.01s, 0.00s 50
exists 0.25% 3.78s, 3.77s 0.01s, 0.01s 0.01s, 0.00s 50
lexists 0.70% 3.77s, 3.74s 0.01s, 0.01s 0.01s, 0.00s 50
split 53.85% 1.17s, 0.54s 1.17s, 0.54s 0.00s, 0.00s 100000
splitext 62.02% 1.22s, 0.46s 1.21s, 0.46s 0.00s, 0.00s 100000
relpath 52.97% 0.02s, 0.01s 0.01s, 0.01s 0.01s, 0.00s 50
normpath 57.27% 2.02s, 0.86s 2.01s, 0.86s 0.00s, 0.00s 100000
realpath 1.08% 13.39s, 13.25s 0.05s, 0.02s 0.02s, 0.03s 50
join 23.01% 0.24s, 0.19s 0.24s, 0.18s 0.00s, 0.00s 100000
expanduser 67.45% 1.50s, 0.49s 1.49s, 0.48s 0.00s, 0.00s 100000
expandvars 61.37% 1.21s, 0.47s 1.19s, 0.47s 0.00s, 0.00s 100000
项目详情
关闭
哈希值 for fpath-0.1.2-cp37-cp37m-macosx_10_11_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 135ad59a7250587cebe2371b59a900c349f12b2a40a9cdd843f729d24cee8bcb |
|
MD5 | 6e09ed15efc3cb8a82081d17c7ca1740 |
|
BLAKE2b-256 | 7bda95a1aed12ae2e830a847bc283bf0dfb4b852e2afaba769b22f1e6d186a3f |
关闭
哈希值 for fpath-0.1.2-cp27-cp27m-macosx_10_11_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 30acf4d04018afb816e45b590019e84417d6f60c06ca274071d687ffca795712 |
|
MD5 | c93d5b3bfecd78416f443ffad6f2812b |
|
BLAKE2b-256 | 1fae845e798b5f026f1ff5908160f5ee46163c7ec2a4dd480e738b79076334b7 |