Skip to main content

Easily pick a place to store data for your python package.

Project description

PyStow

Build status PyPI - Python Version License Documentation Status DOI

👜 Easily pick a place to store data for your python package.

💪 Usage

Get a directory for your application.

import pystow

# Get a directory (as a pathlib.Path) for ~/.data/pykeen
pykeen_directory = pystow.join('pykeen')

# Get a subdirectory (as a pathlib.Path) for ~/.data/pykeen/experiments
pykeen_experiments_directory = pystow.join('pykeen', 'experiments')

# You can go as deep as you want
pykeen_deep_directory = pystow.join('pykeen', 'experiments', 'a', 'b', 'c')

Ensure a file from the internet is available in your application's directory:

import pystow

url = 'https://raw.githubusercontent.com/pykeen/pykeen/master/src/pykeen/datasets/nations/test.txt'
path = pystow.ensure('pykeen', 'datasets', 'nations', url=url)

Ensure a tabular data file from the internet and load it for usage (requires pip install pandas):

import pystow
import pandas as pd

url = 'https://raw.githubusercontent.com/pykeen/pykeen/master/src/pykeen/datasets/nations/test.txt'
df: pd.DataFrame = pystow.ensure_csv('pykeen', 'datasets', 'nations', url=url)

Ensure a RDF file from the internet and load it for usage (requires pip install rdflib)

import pystow
import rdflib

url = 'https://ftp.expasy.org/databases/rhea/rdf/rhea.rdf.gz'
rdf_graph: rdflib.Graph = pystow.ensure_rdf('rhea', url=url)

Also see pystow.ensure_excel(), pystow.ensure_rdf(), pystow.ensure_zip_df(), and pystow.ensure_tar_df().

⚠️ Configuration

Data gets stored in ~/.data by default. If you want to change the name of the directory, set the environment variable PYSTOW_NAME. If you want to change the default parent directory to be other than the home directory, set PYSTOW_HOME

🚀 Installation

The most recent release can be installed from PyPI with:

$ pip install pystow

The most recent code and data can be installed directly from GitHub with:

$ pip install git+https://github.com/cthoyt/pystow.git

To install in development mode, use the following:

$ git clone git+https://github.com/cthoyt/pystow.git
$ cd pystow
$ pip install -e .

⚖️ License

The code in this package is licensed under the MIT License.

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

pystow-0.1.1.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

pystow-0.1.1-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file pystow-0.1.1.tar.gz.

File metadata

  • Download URL: pystow-0.1.1.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for pystow-0.1.1.tar.gz
Algorithm Hash digest
SHA256 aa5df18885f683f97ecf7a094d49cf135fea0be1c05b4cfd0624ad61a588522b
MD5 638c9878166b44fa879a4c54b431306d
BLAKE2b-256 947030a08edb16bf3a65ac1bf54f21fcc685caa740c0da4f2bafa4b278ab1538

See more details on using hashes here.

Provenance

File details

Details for the file pystow-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pystow-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for pystow-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb4766dee2e265841f7e20ab335de7a472cdd6e821015329a9332b5e806d1080
MD5 11fdcf344a673f10d7a3d5d964725b3a
BLAKE2b-256 cfda3874590dd8ae0da1cfd9ef3cc7e55f80f45db5ea6c75458312eb3fab09c1

See more details on using hashes here.

Provenance

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