Skip to main content

Cross-platform tool for adding locations to the user PATH, no elevated privileges required!

Project description

CI - Travis CI - AppVeyor Codecov

PyPI - Supported Python versions PyPI - Version PyPI - Downloads

License: MIT/Apache-2.0 Say Thanks

Ever wanted to release a cool new app but found it difficult to add its location to PATH for users? Me too! This tool does that for you on all major operating systems and does not require elevated privileges!

Fear not, this only modifies the user PATH; the system PATH is never touched nor even looked at!

Installation

userpath is distributed on PyPI as a universal wheel and is available on Linux/macOS and Windows and supports Python 2.7/3.6+ and PyPy.

$ pip install userpath

Commands

Only 3!

$ userpath -h
Usage: userpath [OPTIONS] COMMAND [ARGS]...

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  append   Appends to the user PATH
  prepend  Prepends to the user PATH
  verify   Checks if locations are in the user PATH
Example run

API

>>> import userpath
>>> location = r'C:\Users\Ofek\Desktop\test'
>>>
>>> userpath.in_current_path(location)
False
>>> userpath.in_new_path(location)
False
>>> userpath.append(location)
True
>>> userpath.in_new_path(location)
True
>>> userpath.need_shell_restart(location)
True

License

userpath is distributed under the terms of both

at your option.

History

Important changes are emphasized.

1.7.0

  • Fix path normalization to be aware of case-insensitive platforms and symlinks.

1.6.0

  • Use locale’s encoding when handling output from subprocesses

1.5.0

  • Modify bash start-up files based on their existence

  • Remove distro dependency

1.4.2

  • Fix fallback mechanism for detecting the name of the parent process

1.4.1

  • Fix PATH registry key type on Windows

1.4.0

  • Fix duplicating system paths on Windows

  • Prevent adding paths multiple times on macOS/Linux

  • Send CLI errors to stderr instead of stdout

1.3.0

  • Only require the dependency distro on Linux

  • Ship tests with source distributions

1.2.0

  • Added support for shell auto-detection and selection

1.1.0

  • First public stable release

View all history

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

userpath-1.7.0.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

userpath-1.7.0-py2.py3-none-any.whl (15.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file userpath-1.7.0.tar.gz.

File metadata

  • Download URL: userpath-1.7.0.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.5

File hashes

Hashes for userpath-1.7.0.tar.gz
Algorithm Hash digest
SHA256 dcd66c5fa9b1a3c12362f309bbb5bc7992bac8af86d17b4e6b1a4b166a11c43f
MD5 05fd78f58ec032dd2a60f7872c0b33ec
BLAKE2b-256 602c0620bacd069a14a601b0a5ba4578b223fa6ae34b9dd97e5508798b7f3dee

See more details on using hashes here.

File details

Details for the file userpath-1.7.0-py2.py3-none-any.whl.

File metadata

  • Download URL: userpath-1.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.5

File hashes

Hashes for userpath-1.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4c3d3b611706a8b0c6309510c8b1a774c54eb491cafe7df58dc5571c0bee30e2
MD5 4ba870076a7911b75e27f189ba447f7a
BLAKE2b-256 782650fe9e5003ccd28bba6dcca47dabf43470292ce9199f42f0c4c5d354cffa

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