Skip to main content

Augmented pathlib. Everything else you could do with a path.

Project description

augpathlib

PyPI version Build Status Coverage Status

Augmented pathlib. Everything else you could do with a path.

Introduction

Do you like pathlib?
Have you ever wanted to see just how far you can push the path abstraction?
Do you like using the division operator in ways that could potentially cause reading from the network or writing to disk?
Then augpathlib is for you!

Details

augpathlib makes extensive use of the pathlib Path object (and friends) by augmenting the base PosixPath object with additional functionality such as getting and setting xattrs, syncing with other mapped paths etc.

In essence there are 3 ways that a Path object can be used: Local, Cache, and Remote. Local paths return data and metadata that are local the the current computer. Cache paths return local metadata about remote objects (such as their remote id). Remote objects provide an interface to remote data that is associated with a path.

Remote paths should be back by another object which is the representation of the remote according to the remote's APIs.

Remote paths are only intended to provide a 1:1 mapping, so list(local.data) == list(remote.data) should always be true if everything is in sync.

If there is additional metadata that is associated with a local path then that is represented in the layer above this one (currently DatasetData, in the future a validation Stage). That said, it does seem like we need a more formal place that can map between all these things rather than always trying to derive the mappings from data embedded (bound) to the derefereced path object.

Installing on MacOS catalina 10.15.5+

If you are getting a failed build for pxattr, please continue reading the following. When using LLVM (9.0.1+) or another 3rd party library for Clang on MacOS, there was an issue that requires a possible reinstall if you getting a failed build for pxattr. See LLVM Issue for details. To reinstall LLVM on brew or anaconda you can use the following examples.

> brew reinstall llvm 

or

> conda install --force-reinstall llvm 

If the reinstall fails to clear the issue consider uninstalling that library and use the default Clang from Xcode. It should be the following version or higher.

> clang -v
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

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

augpathlib-0.0.22.tar.gz (71.5 kB view details)

Uploaded Source

Built Distribution

augpathlib-0.0.22-py2.py3-none-any.whl (65.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file augpathlib-0.0.22.tar.gz.

File metadata

  • Download URL: augpathlib-0.0.22.tar.gz
  • Upload date:
  • Size: 71.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for augpathlib-0.0.22.tar.gz
Algorithm Hash digest
SHA256 cf203c1eeae4865c3d7ed76dc197a6bc584f11105ba90587e93d327283c6d633
MD5 007706a80c8c95fa2c37b8c8e41141f2
BLAKE2b-256 ec2cd0816aff613913e1de4e6c89c30576d36e733c4e693928c7933b980f2f43

See more details on using hashes here.

File details

Details for the file augpathlib-0.0.22-py2.py3-none-any.whl.

File metadata

  • Download URL: augpathlib-0.0.22-py2.py3-none-any.whl
  • Upload date:
  • Size: 65.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for augpathlib-0.0.22-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2111cd46e284738cd322d714baa84bd8de2abcf11f72af64fbb530eb606cff09
MD5 ccb43dbdadeeab8be4be1a032a16460c
BLAKE2b-256 3b72bdb40f16d967d4ea30063d322b8a9ea99653734f7e79b48c0bae7ae8cddb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page