Skip to main content

Load files easily using relative path names and simple heuristics

Project description

pyhere

Build Status Latest pypi version

A Python 2.x / 3.x equivalent of R's here package, drawing inspiration from chendaniely's pyprojroot package, but more closely mirroring the functionality within R's here. Relative file referencing has never been easier!

For complete information, check out the docs.

Installation

pip

You can install the latest stable version with pip via:

pip install pyhere

And if you want to be on the bleeding edge of development, get the latest version from github:

pip install --editable=git+https://github.com/wildland-creative/pyhere.git#egg=pyhere

conda

Not in conda - just install it from pip in your environment.

Usage

from pyhere import here

relative_dirA = here("your", "relative", "directory", "file.txt")
relative_dirB = here("your/relative/directory/file.txt")

pyhere uses simple heuristics to find a project's root directory. From Path.cwd(), it traverses upwards, looking for a possible root_indicator:

root_indicators = [
    ".here",
    "requirements.txt",
    "setup.py",
    ".vscode", # vscode project
    ".idea", # pycharm project
    ".git",
    ".spyderproject", # spyder
    ".spyproject", # spyder
    ".ropeproject" # rope
]

When found, it joins the arguments passed to here() to the rootpath and returns as a Path object. If it reaches the system root, it returns the system root and throws a warning.

For a concrete example, imagine the following directory structure:

\project\src\script.py
\project\data\data1.csv
\project\.here

If you call

data = here("data", "data1.csv")

from script.py, you'll get a Path object representing \project\data\data1.csv.

Changelog

Changelog is over here.

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

pyhere-1.0.3.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

pyhere-1.0.3-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file pyhere-1.0.3.tar.gz.

File metadata

  • Download URL: pyhere-1.0.3.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.3

File hashes

Hashes for pyhere-1.0.3.tar.gz
Algorithm Hash digest
SHA256 dbea60e83cbcaef41c4da429c1372b7780c580bc0714801c6c5957df06208cdf
MD5 37ebbc6b144fc5f718468a46136c8a8c
BLAKE2b-256 34e279dca2aa113e3be3bac013ec3c6d21fde79783f62866312012d787026e0c

See more details on using hashes here.

File details

Details for the file pyhere-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: pyhere-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.3

File hashes

Hashes for pyhere-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7c39f5ab806d332ce9812b74e4486c0753e2c5416265758c7251f1bbe0946f69
MD5 e56453a9181234964a8143648834723b
BLAKE2b-256 04e680f613b0f6d5079950083f274f2f19a2bf2870c0376ccd4a63851ef53f43

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