pystand


Namepystand JSON
Version 1.5 PyPI version JSON
download
home_pageNone
SummaryInstall Python versions from python-build-standalone project
upload_time2024-06-28 01:42:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseGPLv3
keywords python-build-standalone pyenv hatch pdm
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## PYSTAND - Install Python Versions From The Python-Build-Standalone Project
[![PyPi](https://img.shields.io/pypi/v/pystand)](https://pypi.org/project/pystand/)
[![AUR](https://img.shields.io/aur/version/pystand)](https://aur.archlinux.org/packages/pystand/)

[`pystand`][pystand] is a command line tool to facilitate the download,
installation, and update of pre-built Python versions from the
[`python-build-standalone`][pbs] project. The following commands are
provided:

|Command  |Description                                                           |
|---------|----------------------------------------------------------------------|
|`install`|Install one or more versions from a python-build-standalone release   |
|`update` |Update one, more, or all versions to another release                  |
|`remove` |Remove/uninstall one, more, or all versions                           |
|`list`   |List installed versions and show which have an update available       |
|`show`   |Show versions available from a release                                |
|`path`   |Show path prefix to installed version base directory                  |

By default, Python versions are sourced from the latest
`python-build-standalone` [release][pbs-rel] available (e.g. "`20240415`") but you can
optionally specify any older release. The required
[distribution](https://gregoryszorc.com/docs/python-build-standalone/main/running.html)
for your machine architecture is normally auto-detected but can be
overridden if required.

Some simple usage examples are:

```sh
$ pystand install 3.12
Version 3.12.3 @ 20240415 installed.

$ ls -l $(pystand path 3.12)/bin
total 4136
lrwxrwxrwx 1 user user       9 May 30 22:23 2to3 -> 2to3-3.12
-rwxrwxr-x 1 user user     128 Jan  1 10:00 2to3-3.12
lrwxrwxrwx 1 user user       8 May 30 22:23 idle3 -> idle3.12
-rwxrwxr-x 1 user user     126 Jan  1 10:00 idle3.12
-rwxrwxr-x 1 user user     256 Jan  1 10:00 pip
-rwxrwxr-x 1 user user     256 Jan  1 10:00 pip3
-rwxrwxr-x 1 user user     256 Jan  1 10:00 pip3.12
lrwxrwxrwx 1 user user       9 May 30 22:23 pydoc3 -> pydoc3.12
-rwxrwxr-x 1 user user     111 Jan  1 10:00 pydoc3.12
lrwxrwxrwx 1 user user      10 May 30 22:23 python -> python3.12
lrwxrwxrwx 1 user user      10 May 30 22:23 python3 -> python3.12
-rwxrwxr-x 1 user user 4206512 Jan  1 10:00 python3.12
-rwxrwxr-x 1 user user    3078 Jan  1 10:00 python3.12-config
lrwxrwxrwx 1 user user      17 May 30 22:23 python3-config -> python3.12-config

$ pystand install 3.10
Version 3.10.14 @ 20240415 installed.

$ pystand list
3.10.14 @ 20240415 distribution="x86_64-unknown-linux-gnu"
3.12.3 @ 20240415 distribution="x86_64-unknown-linux-gnu"

$ pystand show
3.8.19 @ 20240415 distribution="x86_64-unknown-linux-gnu"
3.9.19 @ 20240415 distribution="x86_64-unknown-linux-gnu"
3.10.14 @ 20240415 distribution="x86_64-unknown-linux-gnu" (installed)
3.11.9 @ 20240415 distribution="x86_64-unknown-linux-gnu"
3.12.3 @ 20240415 distribution="x86_64-unknown-linux-gnu" (installed)

$ pystand remove 3.10
Version 3.10.14 @ 20240415 removed.

$ pystand list
3.12.3 @ 20240415 distribution="x86_64-unknown-linux-gnu"
```

Here are some examples showing how to use an installed version ..

```sh
# Use uv to create a virtual environment to be run with pystand installed python:
$ uv venv -p $(pystand path 3.12) myenv

# Create a regular virtual environment to be run with pystand installed python:
$ $(pystand path -p 3.12) -m venv myenv

# Use pipx to install a package to be run with pystand installed python:
$ pipx install --python $(pystand path -p 3.12) cowsay
```

See detailed usage information in the [Usage](#usage) section that
follows.

Note that unlike nearly all similar tools such as [`pyenv`][pyenv],
[`pdm python`][pdmpy], and [`hatch python`][hatchpy], `pystand` directly
checks the [`python-build-standalone`][pbs] github site to fetch for new
[releases][pbs-rel] but those other tools require a software update
before they can see new releases. This means that Python updates are
available more quickly from `pystand` than other tools.

This utility has been developed and tested on Linux but should also work
on macOS and Windows although has not been tried on those platforms. The
latest documentation and code is available at
https://github.com/bulletmark/pystand.

## Usage

Type `pystand` or `pystand -h` to view the usage summary:

```
usage: pystand [-h] [-D DISTRIBUTION] [-B BASE_DIR] [-C CACHE_MINUTES]
                  [--purge-days PURGE_DAYS]
                  [--github-access-token GITHUB_ACCESS_TOKEN]
                  [--do-not-strip DO_NOT_STRIP] [-V]
                  {install,update,remove,list,show,path} ...

Command line tool to download, install, and update pre-built Python versions
from the python-build-standalone project at
https://github.com/indygreg/python-build-standalone.

options:
  -h, --help            show this help message and exit
  -D DISTRIBUTION, --distribution DISTRIBUTION
                        python-build-standalone "*-install_only" distribution,
                        e.g. "x86_64-unknown-linux-gnu". Default is auto-
                        detected (detected as "x86_64-unknown-linux-gnu" for
                        this current host).
  -B BASE_DIR, --base-dir BASE_DIR
                        specify pystand base dir for storing versions and
                        metadata. Default is "$HOME/.local/share/pystand"
  -C CACHE_MINUTES, --cache-minutes CACHE_MINUTES
                        cache latest YYYYMMDD release tag fetch for this many
                        minutes, before rechecking for latest. Default is 60
                        minutes
  --purge-days PURGE_DAYS
                        cache YYYYMMDD release file lists for this number of
                        days after last version referencing it is removed.
                        Default is 90 days
  --github-access-token GITHUB_ACCESS_TOKEN
                        optional Github access token. Can specify to reduce
                        rate limiting.
  --do-not-strip DO_NOT_STRIP
                        Do not strip unneeded symbols from binaries
  -V                    show pystand version

Commands:
  {install,update,remove,list,show,path}
    install             Install one or more versions from a python-build-
                        standalone release.
    update              Update one, more, or all versions to another release.
    remove              Remove/uninstall one, more, or all versions.
    list                List installed versions and show which have an update
                        available.
    show                Show versions available from a release.
    path                Show path prefix to installed version base directory.

Note you can set default starting global options in
$HOME/.config/pystand-flags.conf.
```

Type `pystand <command> -h` to see specific help/usage for any
individual command:

### Command `install`

```
usage: pystand install [-h] [-r RELEASE] [-f] version [version ...]

Install one or more versions from a python-build-standalone release.

positional arguments:
  version               version to install. E.g. 3.12 or 3.12.3

options:
  -h, --help            show this help message and exit
  -r RELEASE, --release RELEASE
                        install from specified python-build-standalone
                        YYYYMMDD release (e.g. 20240415), default is latest
                        release
  -f, --force           force install even if already installed
```

### Command `update`

```
usage: pystand update [-h] [-r RELEASE] [-a] [--skip] [-k] [version ...]

Update one, more, or all versions to another release.

positional arguments:
  version               version to update (or to skip for --all --skip)

options:
  -h, --help            show this help message and exit
  -r RELEASE, --release RELEASE
                        update to specified YYYMMDD release (e.g. 20240415),
                        default is latest release
  -a, --all             update ALL versions
  --skip                skip the specified versions when updating all (only
                        can be specified with --all)
  -k, --keep            keep old version after updating (but only if different
                        version number)
```

### Command `remove`

```
usage: pystand remove [-h] [-a] [--skip] [-r RELEASE] [version ...]

Remove/uninstall one, more, or all versions.

positional arguments:
  version               version to remove (or to skip for --all --skip)

options:
  -h, --help            show this help message and exit
  -a, --all             remove ALL versions
  --skip                skip the specified versions when removing all (only
                        can be specified with --all)
  -r RELEASE, --release RELEASE
                        only remove versions if from specified YYYMMDD release
                        (e.g. 20240415)
```

### Command `list`

```
usage: pystand list [-h] [-v] [-r RELEASE] [version ...]

List installed versions and show which have an update available.

positional arguments:
  version               only list specified version, else all

options:
  -h, --help            show this help message and exit
  -v, --verbose         explicitly report why a version is not eligible for
                        update
  -r RELEASE, --release RELEASE
                        use specified YYYYMMDD release (e.g. 20240415) for
                        verbose compare, default is latest release
```

### Command `show`

```
usage: pystand show [-h] [-d] [release]

Show versions available from a release.

positional arguments:
  release              python-build-standalone YYYYMMDD release to show (e.g.
                       20240415), default is latest release

options:
  -h, --help           show this help message and exit
  -d, --distributions  also show all available distributions for each version
                       from the release
```

### Command `path`

```
usage: pystand path [-h] [-p] version

Show path prefix to installed version base directory.

positional arguments:
  version            version to return path for

options:
  -h, --help         show this help message and exit
  -p, --python-path  return full path to python executable
```

## Installation and Upgrade

Python 3.8 or later is required. Arch Linux users can install [`pystand`
from the AUR](https://aur.archlinux.org/packages/pystand) and skip this
section.

The easiest way to install [`pystand`][pystand] is to use [`pipx`][pipx]
(or [`pipxu`][pipxu]).

```sh
$ pipx install pystand
```

To upgrade:

```sh
$ pipx upgrade pystand
```

To uninstall:

```sh
$ pipx uninstall pystand
```

## Extrapolation of Python Versions

`pystand` extrapolates any version text you specify on the command line
to the latest available corresponding installed or release version. For
example, if you specify `pystand install 3.12` then `pystand` will look
in the release files to find the latest (i.e. highest) available version
of `3.12`, e.g. `3.12.3` (at the time of writing), and will install
that. Of course you can specify the exact version if you wish, e.g.
`3.12.3` but generally you don't need to bother. This is true for any
command that takes a version argument so be aware that this may be
confusing if there are multiple same Python minor versions, e.g.
`3.12.1` and `3.12.3`, installed from different releases. So in that
case you should specify the exact version because e.g. `pystand remove
3.12` will remove `3.12.3` which may not be what you want.

Note, consistent with this, you actually don't need to specify a
minor version, e.g. `pystand install 3` would also install `3.12.3`
(assuming `3.12.3` is the latest available version for Python 3).

After installs or updates or removals,`pystand` also maintains symbolic
links to each latest installed version in it's version directory, e.g. a
symlink `~/.local/share/pystand/versions/3.12` will be created pointing
to `~/.local/share/pystand/versions/3.12.3` so that you can optionally
hard code the symlink directory in places where it can not be set
dynamically (i.e. where using `pystand path` is not an option).

## Command Default Options

You can add default global options to a personal configuration file
`~/.config/pystand-flags.conf`. If that file exists then each line of
options will be concatenated and automatically prepended to your
`pystand` command line arguments. Comments in the file (i.e. `#` and
anything after on a line) are ignored. Type `pystand` to see all
supported options.

The global options: `--distribution`, `--base-dir`, `--cache-minutes`,
`--purge-days`, `--github-access-token`, `--do-not-strip` are the only
sensible candidates to consider setting as defaults.

## Command Line Tab Completion

Command line shell [tab
completion](https://en.wikipedia.org/wiki/Command-line_completion) is
automatically enabled on `pystand` commands and options using
[`argcomplete`](https://github.com/kislyuk/argcomplete). You may need to
first (once-only) [activate argcomplete global
completion](https://github.com/kislyuk/argcomplete#global-completion).

## License

Copyright (C) 2024 Mark Blakeney. This program is distributed under the
terms of the GNU General Public License. This program is free software:
you can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation,
either version 3 of the License, or any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at
<http://www.gnu.org/licenses/> for more details.

[pystand]: https://github.com/bulletmark/pystand
[pbs]: https://github.com/indygreg/python-build-standalone
[pbs-rel]: https://github.com/indygreg/python-build-standalone/releases
[pipx]: https://github.com/pypa/pipx
[pipxu]: https://github.com/bulletmark/pipxu
[pyenv]: https://github.com/pyenv/pyenv
[pdm]: https://pdm-project.org/
[pdmpy]: https://pdm-project.org/en/latest/usage/project/#install-python-interpreters-with-pdm
[hatch]: https://hatch.pypa.io/
[hatchpy]: https://hatch.pypa.io/latest/tutorials/python/manage/

<!-- vim: se ai syn=markdown: -->

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pystand",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "python-build-standalone, pyenv, hatch, pdm",
    "author": null,
    "author_email": "Mark Blakeney <mark.blakeney@bullet-systems.net>",
    "download_url": "https://files.pythonhosted.org/packages/81/47/6838f3b3c856a9c2dba604fac43ff4fc0ea04b0adc5f188347583fdefbf6/pystand-1.5.tar.gz",
    "platform": null,
    "description": "## PYSTAND - Install Python Versions From The Python-Build-Standalone Project\n[![PyPi](https://img.shields.io/pypi/v/pystand)](https://pypi.org/project/pystand/)\n[![AUR](https://img.shields.io/aur/version/pystand)](https://aur.archlinux.org/packages/pystand/)\n\n[`pystand`][pystand] is a command line tool to facilitate the download,\ninstallation, and update of pre-built Python versions from the\n[`python-build-standalone`][pbs] project. The following commands are\nprovided:\n\n|Command  |Description                                                           |\n|---------|----------------------------------------------------------------------|\n|`install`|Install one or more versions from a python-build-standalone release   |\n|`update` |Update one, more, or all versions to another release                  |\n|`remove` |Remove/uninstall one, more, or all versions                           |\n|`list`   |List installed versions and show which have an update available       |\n|`show`   |Show versions available from a release                                |\n|`path`   |Show path prefix to installed version base directory                  |\n\nBy default, Python versions are sourced from the latest\n`python-build-standalone` [release][pbs-rel] available (e.g. \"`20240415`\") but you can\noptionally specify any older release. The required\n[distribution](https://gregoryszorc.com/docs/python-build-standalone/main/running.html)\nfor your machine architecture is normally auto-detected but can be\noverridden if required.\n\nSome simple usage examples are:\n\n```sh\n$ pystand install 3.12\nVersion 3.12.3 @ 20240415 installed.\n\n$ ls -l $(pystand path 3.12)/bin\ntotal 4136\nlrwxrwxrwx 1 user user       9 May 30 22:23 2to3 -> 2to3-3.12\n-rwxrwxr-x 1 user user     128 Jan  1 10:00 2to3-3.12\nlrwxrwxrwx 1 user user       8 May 30 22:23 idle3 -> idle3.12\n-rwxrwxr-x 1 user user     126 Jan  1 10:00 idle3.12\n-rwxrwxr-x 1 user user     256 Jan  1 10:00 pip\n-rwxrwxr-x 1 user user     256 Jan  1 10:00 pip3\n-rwxrwxr-x 1 user user     256 Jan  1 10:00 pip3.12\nlrwxrwxrwx 1 user user       9 May 30 22:23 pydoc3 -> pydoc3.12\n-rwxrwxr-x 1 user user     111 Jan  1 10:00 pydoc3.12\nlrwxrwxrwx 1 user user      10 May 30 22:23 python -> python3.12\nlrwxrwxrwx 1 user user      10 May 30 22:23 python3 -> python3.12\n-rwxrwxr-x 1 user user 4206512 Jan  1 10:00 python3.12\n-rwxrwxr-x 1 user user    3078 Jan  1 10:00 python3.12-config\nlrwxrwxrwx 1 user user      17 May 30 22:23 python3-config -> python3.12-config\n\n$ pystand install 3.10\nVersion 3.10.14 @ 20240415 installed.\n\n$ pystand list\n3.10.14 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\"\n3.12.3 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\"\n\n$ pystand show\n3.8.19 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\"\n3.9.19 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\"\n3.10.14 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\" (installed)\n3.11.9 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\"\n3.12.3 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\" (installed)\n\n$ pystand remove 3.10\nVersion 3.10.14 @ 20240415 removed.\n\n$ pystand list\n3.12.3 @ 20240415 distribution=\"x86_64-unknown-linux-gnu\"\n```\n\nHere are some examples showing how to use an installed version ..\n\n```sh\n# Use uv to create a virtual environment to be run with pystand installed python:\n$ uv venv -p $(pystand path 3.12) myenv\n\n# Create a regular virtual environment to be run with pystand installed python:\n$ $(pystand path -p 3.12) -m venv myenv\n\n# Use pipx to install a package to be run with pystand installed python:\n$ pipx install --python $(pystand path -p 3.12) cowsay\n```\n\nSee detailed usage information in the [Usage](#usage) section that\nfollows.\n\nNote that unlike nearly all similar tools such as [`pyenv`][pyenv],\n[`pdm python`][pdmpy], and [`hatch python`][hatchpy], `pystand` directly\nchecks the [`python-build-standalone`][pbs] github site to fetch for new\n[releases][pbs-rel] but those other tools require a software update\nbefore they can see new releases. This means that Python updates are\navailable more quickly from `pystand` than other tools.\n\nThis utility has been developed and tested on Linux but should also work\non macOS and Windows although has not been tried on those platforms. The\nlatest documentation and code is available at\nhttps://github.com/bulletmark/pystand.\n\n## Usage\n\nType `pystand` or `pystand -h` to view the usage summary:\n\n```\nusage: pystand [-h] [-D DISTRIBUTION] [-B BASE_DIR] [-C CACHE_MINUTES]\n                  [--purge-days PURGE_DAYS]\n                  [--github-access-token GITHUB_ACCESS_TOKEN]\n                  [--do-not-strip DO_NOT_STRIP] [-V]\n                  {install,update,remove,list,show,path} ...\n\nCommand line tool to download, install, and update pre-built Python versions\nfrom the python-build-standalone project at\nhttps://github.com/indygreg/python-build-standalone.\n\noptions:\n  -h, --help            show this help message and exit\n  -D DISTRIBUTION, --distribution DISTRIBUTION\n                        python-build-standalone \"*-install_only\" distribution,\n                        e.g. \"x86_64-unknown-linux-gnu\". Default is auto-\n                        detected (detected as \"x86_64-unknown-linux-gnu\" for\n                        this current host).\n  -B BASE_DIR, --base-dir BASE_DIR\n                        specify pystand base dir for storing versions and\n                        metadata. Default is \"$HOME/.local/share/pystand\"\n  -C CACHE_MINUTES, --cache-minutes CACHE_MINUTES\n                        cache latest YYYYMMDD release tag fetch for this many\n                        minutes, before rechecking for latest. Default is 60\n                        minutes\n  --purge-days PURGE_DAYS\n                        cache YYYYMMDD release file lists for this number of\n                        days after last version referencing it is removed.\n                        Default is 90 days\n  --github-access-token GITHUB_ACCESS_TOKEN\n                        optional Github access token. Can specify to reduce\n                        rate limiting.\n  --do-not-strip DO_NOT_STRIP\n                        Do not strip unneeded symbols from binaries\n  -V                    show pystand version\n\nCommands:\n  {install,update,remove,list,show,path}\n    install             Install one or more versions from a python-build-\n                        standalone release.\n    update              Update one, more, or all versions to another release.\n    remove              Remove/uninstall one, more, or all versions.\n    list                List installed versions and show which have an update\n                        available.\n    show                Show versions available from a release.\n    path                Show path prefix to installed version base directory.\n\nNote you can set default starting global options in\n$HOME/.config/pystand-flags.conf.\n```\n\nType `pystand <command> -h` to see specific help/usage for any\nindividual command:\n\n### Command `install`\n\n```\nusage: pystand install [-h] [-r RELEASE] [-f] version [version ...]\n\nInstall one or more versions from a python-build-standalone release.\n\npositional arguments:\n  version               version to install. E.g. 3.12 or 3.12.3\n\noptions:\n  -h, --help            show this help message and exit\n  -r RELEASE, --release RELEASE\n                        install from specified python-build-standalone\n                        YYYYMMDD release (e.g. 20240415), default is latest\n                        release\n  -f, --force           force install even if already installed\n```\n\n### Command `update`\n\n```\nusage: pystand update [-h] [-r RELEASE] [-a] [--skip] [-k] [version ...]\n\nUpdate one, more, or all versions to another release.\n\npositional arguments:\n  version               version to update (or to skip for --all --skip)\n\noptions:\n  -h, --help            show this help message and exit\n  -r RELEASE, --release RELEASE\n                        update to specified YYYMMDD release (e.g. 20240415),\n                        default is latest release\n  -a, --all             update ALL versions\n  --skip                skip the specified versions when updating all (only\n                        can be specified with --all)\n  -k, --keep            keep old version after updating (but only if different\n                        version number)\n```\n\n### Command `remove`\n\n```\nusage: pystand remove [-h] [-a] [--skip] [-r RELEASE] [version ...]\n\nRemove/uninstall one, more, or all versions.\n\npositional arguments:\n  version               version to remove (or to skip for --all --skip)\n\noptions:\n  -h, --help            show this help message and exit\n  -a, --all             remove ALL versions\n  --skip                skip the specified versions when removing all (only\n                        can be specified with --all)\n  -r RELEASE, --release RELEASE\n                        only remove versions if from specified YYYMMDD release\n                        (e.g. 20240415)\n```\n\n### Command `list`\n\n```\nusage: pystand list [-h] [-v] [-r RELEASE] [version ...]\n\nList installed versions and show which have an update available.\n\npositional arguments:\n  version               only list specified version, else all\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --verbose         explicitly report why a version is not eligible for\n                        update\n  -r RELEASE, --release RELEASE\n                        use specified YYYYMMDD release (e.g. 20240415) for\n                        verbose compare, default is latest release\n```\n\n### Command `show`\n\n```\nusage: pystand show [-h] [-d] [release]\n\nShow versions available from a release.\n\npositional arguments:\n  release              python-build-standalone YYYYMMDD release to show (e.g.\n                       20240415), default is latest release\n\noptions:\n  -h, --help           show this help message and exit\n  -d, --distributions  also show all available distributions for each version\n                       from the release\n```\n\n### Command `path`\n\n```\nusage: pystand path [-h] [-p] version\n\nShow path prefix to installed version base directory.\n\npositional arguments:\n  version            version to return path for\n\noptions:\n  -h, --help         show this help message and exit\n  -p, --python-path  return full path to python executable\n```\n\n## Installation and Upgrade\n\nPython 3.8 or later is required. Arch Linux users can install [`pystand`\nfrom the AUR](https://aur.archlinux.org/packages/pystand) and skip this\nsection.\n\nThe easiest way to install [`pystand`][pystand] is to use [`pipx`][pipx]\n(or [`pipxu`][pipxu]).\n\n```sh\n$ pipx install pystand\n```\n\nTo upgrade:\n\n```sh\n$ pipx upgrade pystand\n```\n\nTo uninstall:\n\n```sh\n$ pipx uninstall pystand\n```\n\n## Extrapolation of Python Versions\n\n`pystand` extrapolates any version text you specify on the command line\nto the latest available corresponding installed or release version. For\nexample, if you specify `pystand install 3.12` then `pystand` will look\nin the release files to find the latest (i.e. highest) available version\nof `3.12`, e.g. `3.12.3` (at the time of writing), and will install\nthat. Of course you can specify the exact version if you wish, e.g.\n`3.12.3` but generally you don't need to bother. This is true for any\ncommand that takes a version argument so be aware that this may be\nconfusing if there are multiple same Python minor versions, e.g.\n`3.12.1` and `3.12.3`, installed from different releases. So in that\ncase you should specify the exact version because e.g. `pystand remove\n3.12` will remove `3.12.3` which may not be what you want.\n\nNote, consistent with this, you actually don't need to specify a\nminor version, e.g. `pystand install 3` would also install `3.12.3`\n(assuming `3.12.3` is the latest available version for Python 3).\n\nAfter installs or updates or removals,`pystand` also maintains symbolic\nlinks to each latest installed version in it's version directory, e.g. a\nsymlink `~/.local/share/pystand/versions/3.12` will be created pointing\nto `~/.local/share/pystand/versions/3.12.3` so that you can optionally\nhard code the symlink directory in places where it can not be set\ndynamically (i.e. where using `pystand path` is not an option).\n\n## Command Default Options\n\nYou can add default global options to a personal configuration file\n`~/.config/pystand-flags.conf`. If that file exists then each line of\noptions will be concatenated and automatically prepended to your\n`pystand` command line arguments. Comments in the file (i.e. `#` and\nanything after on a line) are ignored. Type `pystand` to see all\nsupported options.\n\nThe global options: `--distribution`, `--base-dir`, `--cache-minutes`,\n`--purge-days`, `--github-access-token`, `--do-not-strip` are the only\nsensible candidates to consider setting as defaults.\n\n## Command Line Tab Completion\n\nCommand line shell [tab\ncompletion](https://en.wikipedia.org/wiki/Command-line_completion) is\nautomatically enabled on `pystand` commands and options using\n[`argcomplete`](https://github.com/kislyuk/argcomplete). You may need to\nfirst (once-only) [activate argcomplete global\ncompletion](https://github.com/kislyuk/argcomplete#global-completion).\n\n## License\n\nCopyright (C) 2024 Mark Blakeney. This program is distributed under the\nterms of the GNU General Public License. This program is free software:\nyou can redistribute it and/or modify it under the terms of the GNU\nGeneral Public License as published by the Free Software Foundation,\neither version 3 of the License, or any later version. This program is\ndistributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or\nFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at\n<http://www.gnu.org/licenses/> for more details.\n\n[pystand]: https://github.com/bulletmark/pystand\n[pbs]: https://github.com/indygreg/python-build-standalone\n[pbs-rel]: https://github.com/indygreg/python-build-standalone/releases\n[pipx]: https://github.com/pypa/pipx\n[pipxu]: https://github.com/bulletmark/pipxu\n[pyenv]: https://github.com/pyenv/pyenv\n[pdm]: https://pdm-project.org/\n[pdmpy]: https://pdm-project.org/en/latest/usage/project/#install-python-interpreters-with-pdm\n[hatch]: https://hatch.pypa.io/\n[hatchpy]: https://hatch.pypa.io/latest/tutorials/python/manage/\n\n<!-- vim: se ai syn=markdown: -->\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Install Python versions from python-build-standalone project",
    "version": "1.5",
    "project_urls": {
        "Homepage": "https://github.com/bulletmark/pystand"
    },
    "split_keywords": [
        "python-build-standalone",
        " pyenv",
        " hatch",
        " pdm"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9ad104ee67ac376a7dfa9ff1c3a042f47343ed594c38fd3c8e10a85636c8763f",
                "md5": "73fbcb6e31fd6ca12dc9305d2f8e6754",
                "sha256": "9da915219c55112a0a69603069ab8374ff2560a488f192c6328415e817e882cf"
            },
            "downloads": -1,
            "filename": "pystand-1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "73fbcb6e31fd6ca12dc9305d2f8e6754",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 13575,
            "upload_time": "2024-06-28T01:42:16",
            "upload_time_iso_8601": "2024-06-28T01:42:16.018238Z",
            "url": "https://files.pythonhosted.org/packages/9a/d1/04ee67ac376a7dfa9ff1c3a042f47343ed594c38fd3c8e10a85636c8763f/pystand-1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81476838f3b3c856a9c2dba604fac43ff4fc0ea04b0adc5f188347583fdefbf6",
                "md5": "1c10242ee857c64a0bc7f78388be1795",
                "sha256": "06034ca52f8cfb0feac3e8cce6a0901c1b88a6b9e5c735c50605ee1bbc25726f"
            },
            "downloads": -1,
            "filename": "pystand-1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "1c10242ee857c64a0bc7f78388be1795",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 14345,
            "upload_time": "2024-06-28T01:42:17",
            "upload_time_iso_8601": "2024-06-28T01:42:17.753501Z",
            "url": "https://files.pythonhosted.org/packages/81/47/6838f3b3c856a9c2dba604fac43ff4fc0ea04b0adc5f188347583fdefbf6/pystand-1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-28 01:42:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bulletmark",
    "github_project": "pystand",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pystand"
}
        
Elapsed time: 0.53864s