Skip to content

Refactor: Modernize and make envpath cross-platform#1

Open
kwameboame wants to merge 1 commit into
masterfrom
feat/cross-platform-updates
Open

Refactor: Modernize and make envpath cross-platform#1
kwameboame wants to merge 1 commit into
masterfrom
feat/cross-platform-updates

Conversation

@kwameboame
Copy link
Copy Markdown
Owner

This commit brings several major improvements to the envpath tool:

  • Python Compatibility: Updated to require Python 3.7+ and removed unnecessary dependencies like argparse.
  • Cross-Platform Support:
    • Replaced Windows-specific batch files with a JSON configuration file (~/.envpath/environments.json) for storing environment paths.
    • The tool now prints activation commands for cmd, PowerShell (Windows), and bash/zsh (Unix-like systems) instead of trying to activate environments directly.
    • Uses pathlib for robust path handling.
  • Virtual Environment Handling:
    • envpath --save now attempts to detect and store the active VIRTUAL_ENV path.
    • envpath --open uses the stored venv path or falls back to common names like .venv or venv within the project directory.
  • Documentation:
    • README.md has been extensively updated to reflect new functionality, cross-platform nature, and usage.
  • Testing:
    • Added a comprehensive unit test suite (tests/test_envpath.py) using unittest and unittest.mock to cover core logic.
  • Repository Cleanup:
    • Removed outdated .travis.yaml.
    • Added .gitignore for build artifacts (build/, dist/, *.egg-info/) and cleaned these directories.

The tool is now more robust, user-friendly for a wider range of operating systems, and maintainable with the inclusion of tests.

This commit brings several major improvements to the envpath tool:

-   **Python Compatibility:** Updated to require Python 3.7+ and removed unnecessary dependencies like `argparse`.
-   **Cross-Platform Support:**
    -   Replaced Windows-specific batch files with a JSON configuration file (`~/.envpath/environments.json`) for storing environment paths.
    -   The tool now prints activation commands for `cmd`, `PowerShell` (Windows), and `bash/zsh` (Unix-like systems) instead of trying to activate environments directly.
    -   Uses `pathlib` for robust path handling.
-   **Virtual Environment Handling:**
    -   `envpath --save` now attempts to detect and store the active `VIRTUAL_ENV` path.
    -   `envpath --open` uses the stored venv path or falls back to common names like `.venv` or `venv` within the project directory.
-   **Documentation:**
    -   `README.md` has been extensively updated to reflect new functionality, cross-platform nature, and usage.
-   **Testing:**
    -   Added a comprehensive unit test suite (`tests/test_envpath.py`) using `unittest` and `unittest.mock` to cover core logic.
-   **Repository Cleanup:**
    -   Removed outdated `.travis.yaml`.
    -   Added `.gitignore` for build artifacts (`build/`, `dist/`, `*.egg-info/`) and cleaned these directories.

The tool is now more robust, user-friendly for a wider range of operating systems, and maintainable with the inclusion of tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant