Skip to main content

A lightweight Python library to persistently add or remove directories from PATH.

Project description

pathreg

Persistently add or remove directories from PATH on Windows, Linux, and macOS.

Installation

pip install pathreg

CLI Usage

pathreg add /some/directory
pathreg remove /some/directory
pathreg list
pathreg check /some/directory   # prints "yes" or "no"
pathreg find python             # prints full path or "not found"

Python API

from pathreg import add_path, remove_path, list_paths, in_path, find_executable

add_path("/some/directory")       # idempotent, skips if already present
remove_path("/some/directory")    # no-op if not found
list_paths()                      # returns list[Path] of current PATH entries
in_path("/some/directory")        # returns True if directory is in PATH
find_executable("python")         # returns Path to first match, or None

add_path and remove_path modify the shell profile and the current process's PATH immediately.

Behavior

  • Paths are normalized: trailing separators stripped, slashes converted per platform.
  • add_path is idempotent, does nothing if the entry already exists.
  • remove_path is a no-op if the entry is absent or the profile file does not exist.
  • list_paths reflects the current process PATH; it does not read the profile file.
  • in_path normalizes trailing separators before comparing, matching add_path behaviour.
  • find_executable walks PATH entries in order and returns the first regular file that is executable, or None.

Platform support

Platform Persistence target
Windows HKCU\Environment via winreg; broadcasts WM_SETTINGCHANGE to notify the shell
bash ~/.bash_profile (falls back to ~/.profile if it exists)
zsh ~/.zshenv
sh ~/.profile

The active shell is detected from the SHELL environment variable.

No third-party dependencies required.

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

pathreg-1.0.3.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pathreg-1.0.3-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pathreg-1.0.3.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pathreg-1.0.3.tar.gz
Algorithm Hash digest
SHA256 a2e6598f45c9b548691dfb7d325a29241f3a016bc87f6e999937ce24ad50ba2e
MD5 5ea0a2f033eabcc68e7214fcef3a20ff
BLAKE2b-256 5f63361bcc123acf324360913f462b09dda3f1e6e829831075f664a1dc5596bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathreg-1.0.3.tar.gz:

Publisher: publish.yml on tn3w/pathreg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pathreg-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pathreg-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b262f07348ea3363147a2be7ef586b97efad2dd5018deab2b3cbf8bed66d9bab
MD5 e421a53aa0c0d559752a9b35e3caaf5f
BLAKE2b-256 2d9c8f11d9769c210e6d2aa7d4a1993f1c4e15466b0ec74510efa5cf11a36da7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathreg-1.0.3-py3-none-any.whl:

Publisher: publish.yml on tn3w/pathreg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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