Compare commits
12 commits
5d50129eb1
...
2dd4b35ee7
Author | SHA1 | Date | |
---|---|---|---|
2dd4b35ee7 | |||
76df12d882 | |||
3cf2dce767 | |||
4a1f01f459 | |||
8307895fdb | |||
1c2e5a85e4 | |||
35bffaebad | |||
3b74384bc6 | |||
2da0d30867 | |||
f0e18acab8 | |||
e3284bee78 | |||
f5c91fea91 |
17
.github/workflows/docs.yml
vendored
|
@ -10,18 +10,23 @@ jobs:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Add Source to Docs
|
- uses: pdm-project/setup-pdm@v3
|
||||||
run: cp ./src/viv/viv.py docs/viv.py
|
with:
|
||||||
|
python-version: 3.11
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Setup Project
|
||||||
|
run: pdm install
|
||||||
|
|
||||||
|
- name: Build Docs
|
||||||
|
run: pdm run make docs
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
cname: viv.dayl.in
|
cname: viv.dayl.in
|
||||||
# publish_dir: ./site
|
publish_dir: ./site
|
||||||
publish_dir: ./docs
|
|
||||||
|
|
2
.gitignore
vendored
|
@ -170,3 +170,5 @@ poetry.toml
|
||||||
|
|
||||||
# End of https://www.toptal.com/developers/gitignore/api/python
|
# End of https://www.toptal.com/developers/gitignore/api/python
|
||||||
.task.mk
|
.task.mk
|
||||||
|
# copy of README.md
|
||||||
|
docs/index.md
|
||||||
|
|
16
Makefile
|
@ -22,6 +22,19 @@ venv: ## generate environment
|
||||||
dev-install:
|
dev-install:
|
||||||
cp ./src/viv/viv.py ~/.local/share/viv/viv.py
|
cp ./src/viv/viv.py ~/.local/share/viv/viv.py
|
||||||
|
|
||||||
|
docs: docs/index.md docs/viv.py ## build docs
|
||||||
|
mkdocs build
|
||||||
|
|
||||||
|
docs/viv.py: src/viv/viv.py
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
docs/index.md: README.md
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
examples/black: .FORCE
|
||||||
|
rm -f $@
|
||||||
|
viv shim black -s -f -o $@
|
||||||
|
|
||||||
clean: ## remove build artifacts
|
clean: ## remove build artifacts
|
||||||
rm -rf {build,dist}
|
rm -rf {build,dist}
|
||||||
|
|
||||||
|
@ -30,4 +43,7 @@ generate-example-vivens: ##
|
||||||
for f in $(EXAMPLES); \
|
for f in $(EXAMPLES); \
|
||||||
do python examples/$$f; done
|
do python examples/$$f; done
|
||||||
|
|
||||||
|
|
||||||
|
.FORCE:
|
||||||
|
.PHONY: .FORCE
|
||||||
-include .task.cfg.mk
|
-include .task.cfg.mk
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<p align="center">
|
<p align="center">
|
||||||
viv isn't venv
|
viv isn't venv
|
||||||
</p>
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://viv.dayl.in">Documentation</a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Try before you buy!
|
Try before you buy!
|
||||||
|
|
43
docs/cli.md
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
|
||||||
|
# cli
|
||||||
|
|
||||||
|
![help](/svgs/viv-help.svg)
|
||||||
|
|
||||||
|
## list
|
||||||
|
![cmd](/svgs/viv-list-help.svg)
|
||||||
|
|
||||||
|
## exe
|
||||||
|
![cmd](/svgs/viv-exe-help.svg)
|
||||||
|
|
||||||
|
### exe python
|
||||||
|
![cmd](/svgs/viv-exe-python-help.svg)
|
||||||
|
|
||||||
|
### exe pip
|
||||||
|
![cmd](/svgs/viv-exe-pip-help.svg)
|
||||||
|
|
||||||
|
## remove
|
||||||
|
![cmd](/svgs/viv-remove-help.svg)
|
||||||
|
|
||||||
|
## manage
|
||||||
|
![cmd](/svgs/viv-manage-help.svg)
|
||||||
|
|
||||||
|
### manage update
|
||||||
|
![cmd](/svgs/viv-manage-update-help.svg)
|
||||||
|
|
||||||
|
### manage purge
|
||||||
|
![cmd](/svgs/viv-manage-purge-help.svg)
|
||||||
|
|
||||||
|
### manage show
|
||||||
|
![cmd](/svgs/viv-manage-show-help.svg)
|
||||||
|
|
||||||
|
### manage install
|
||||||
|
![cmd](/svgs/viv-manage-install-help.svg)
|
||||||
|
|
||||||
|
## freeze
|
||||||
|
![cmd](/svgs/viv-freeze-help.svg)
|
||||||
|
|
||||||
|
## shim
|
||||||
|
![cmd](/svgs/viv-shim-help.svg)
|
||||||
|
|
||||||
|
## run
|
||||||
|
![cmd](/svgs/viv-run-help.svg)
|
|
@ -1,9 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link rel="canonical" href="https://github.com/daylinmorgan/viv"/>
|
|
||||||
<meta name="robots" content="noindex">
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://github.com/daylinmorgan/viv"/>
|
|
||||||
</head>
|
|
||||||
</html>
|
|
130
docs/index.md
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
# viv
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/daylinmorgan/viv">
|
||||||
|
<img src="https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg" alt="Logo" width=500 >
|
||||||
|
</a>
|
||||||
|
<p align="center">
|
||||||
|
viv isn't venv
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="viv.dayl.in">Documentation</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Try before you buy!
|
||||||
|
```sh
|
||||||
|
python3 <(curl -fsSL viv.dayl.in/viv.py) run pycowsay -- "viv isn't venv\!"
|
||||||
|
```
|
||||||
|
---
|
||||||
|
|
||||||
|
`Viv` is a standalone dependency-free `venv` creator.
|
||||||
|
|
||||||
|
These `venvs` can be identified by name or by their specification.
|
||||||
|
In any case they will be re-used across scripts (and generated on-demand, if needed).
|
||||||
|
|
||||||
|
**Importantly**, `viv` will also remove your user site directory.
|
||||||
|
(view with: `python -m 'import site;print(site.USER_SITE)'`).
|
||||||
|
|
||||||
|
`Viv`'s uncompromising insistence on portability means that it will always (1) only use the standard library (2) never exceed a single script.
|
||||||
|
|
||||||
|
For that reason any usage of the `CLI` can be accomplished using a remote copy as seen in the below install command.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Run the below command to install `viv`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python3 <(curl -fsSL viv.dayl.in/viv.py) manage install
|
||||||
|
```
|
||||||
|
|
||||||
|
To access `viv` from within scripts you should add it's location to your `PYTHONPATH`.
|
||||||
|
By default `viv` will be installed to `$XDG_DATA_HOME/viv` or `~/.local/share/viv` you can customize this with `--src`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export PYTHONPATH="$PYTHONPATH:$HOME/.local/share/viv"
|
||||||
|
```
|
||||||
|
|
||||||
|
Advanced users may recognize that principally,
|
||||||
|
the module just needs to be recognized at run time
|
||||||
|
and the single script [`viv.py`](https://github.com/daylinmorgan/viv/blob/main/src/viv/viv.py) can be invoked directly for the CLI.
|
||||||
|
How you accomplish these options is ultimately up to you but the above instructions can get you started.
|
||||||
|
|
||||||
|
### Pypi (Not Recommended)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pip install viv
|
||||||
|
```
|
||||||
|
|
||||||
|
Why is this *not recommended*? Mainly, because `viv` is all about hacking your `sys.path`.
|
||||||
|
Placing it in it's own virtual environment or installing in a user site directory may complicate this endeavor.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
In any python script with external dependencies you can add this line,
|
||||||
|
to automate `vivenv` creation and installation of dependencies.
|
||||||
|
|
||||||
|
```python
|
||||||
|
__import__("viv").use("click")
|
||||||
|
```
|
||||||
|
|
||||||
|
To remove all `vivenvs` you can use the below command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
viv remove $(viv list -q)
|
||||||
|
```
|
||||||
|
|
||||||
|
To remove `viv` all together you can use the included `purge` command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python3 <(curl -fsSL viv.dayl.in/viv.py) manage purge
|
||||||
|
```
|
||||||
|
|
||||||
|
## Additional Features
|
||||||
|
|
||||||
|
An experimental feature of `viv` is generating shim's that leverage the principles of `viv`.
|
||||||
|
These shims would operate similar to `pipx` in which you can specify a command line app to "install".
|
||||||
|
|
||||||
|
*Note* that `--standalone` will auto-generate a code-golfed minified version of `viv` to accomplish the same basic task as using a local copy of `viv`.
|
||||||
|
After generating this a standalone `shim` you can freely use this script across unix machines which have `python>3.8`.
|
||||||
|
See [examples/black](https://github.com/daylinmorgan/viv/blob/dev/examples/black) for output of below command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python3 <(curl -fsSL viv.dayl.in/viv.py) shim black -o ./black --standalone --freeze
|
||||||
|
```
|
||||||
|
|
||||||
|
## Alternatives
|
||||||
|
|
||||||
|
### [pip-run](https://github.com/jaraco/pip-run)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pip-run (10.0.5)
|
||||||
|
├── autocommand (2.2.2)
|
||||||
|
├── jaraco-context (4.3.0)
|
||||||
|
├── jaraco-functools (3.6.0)
|
||||||
|
│ └── more-itertools (9.1.0)
|
||||||
|
├── jaraco-text (3.11.1)
|
||||||
|
│ ├── autocommand (2.2.2)
|
||||||
|
│ ├── inflect (6.0.2)
|
||||||
|
│ │ └── pydantic>=1.9.1 (1.10.5)
|
||||||
|
│ │ └── typing-extensions>=4.2.0 (4.5.0)
|
||||||
|
│ ├── jaraco-context>=4.1 (4.3.0)
|
||||||
|
│ ├── jaraco-functools (3.6.0)
|
||||||
|
│ │ └── more-itertools (9.1.0)
|
||||||
|
│ └── more-itertools (9.1.0)
|
||||||
|
├── more-itertools>=8.3 (9.1.0)
|
||||||
|
├── packaging (23.0)
|
||||||
|
├── path>=15.1 (16.6.0)
|
||||||
|
├── pip>=19.3 (23.0.1)
|
||||||
|
└── platformdirs (3.1.0)
|
||||||
|
```
|
||||||
|
|
||||||
|
### [pipx](https://github.com/pypa/pipx/)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pipx (1.1.0)
|
||||||
|
├── argcomplete>=1.9.4 (2.1.1)
|
||||||
|
├── packaging>=20.0 (23.0)
|
||||||
|
└── userpath>=1.6.0 (1.8.0)
|
||||||
|
└── click (8.1.3)
|
||||||
|
```
|
104
docs/svgs/viv-exe-help.svg
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 350.7333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2684787815-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2684787815-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-2684787815-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-2684787815-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-2684787815-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-2684787815-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="267.4" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2684787815-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="316.4" rx="8"/><text class="terminal-2684787815-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv exe --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2684787815-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-2684787815-matrix">
|
||||||
|
<text class="terminal-2684787815-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2684787815-line-0)">usage</text><text class="terminal-2684787815-r2" x="61" y="20" textLength="341.6" clip-path="url(#terminal-2684787815-line-0)">: viv exe [-h] <sub-cmd> ...</text><text class="terminal-2684787815-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2684787815-line-0)">
|
||||||
|
</text><text class="terminal-2684787815-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2684787815-line-1)">
|
||||||
|
</text><text class="terminal-2684787815-r2" x="0" y="68.8" textLength="402.6" clip-path="url(#terminal-2684787815-line-2)">run python/pip in existing vivenv</text><text class="terminal-2684787815-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2684787815-line-2)">
|
||||||
|
</text><text class="terminal-2684787815-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2684787815-line-3)">
|
||||||
|
</text><text class="terminal-2684787815-r1" x="0" y="117.6" textLength="85.4" clip-path="url(#terminal-2684787815-line-4)">options</text><text class="terminal-2684787815-r2" x="85.4" y="117.6" textLength="12.2" clip-path="url(#terminal-2684787815-line-4)">:</text><text class="terminal-2684787815-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2684787815-line-4)">
|
||||||
|
</text><text class="terminal-2684787815-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-2684787815-line-5)">-h</text><text class="terminal-2684787815-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-2684787815-line-5)">, </text><text class="terminal-2684787815-r3" x="73.2" y="142" textLength="73.2" clip-path="url(#terminal-2684787815-line-5)">--help</text><text class="terminal-2684787815-r2" x="146.4" y="142" textLength="427" clip-path="url(#terminal-2684787815-line-5)">    show this help message and exit</text><text class="terminal-2684787815-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2684787815-line-5)">
|
||||||
|
</text><text class="terminal-2684787815-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2684787815-line-6)">
|
||||||
|
</text><text class="terminal-2684787815-r1" x="0" y="190.8" textLength="122" clip-path="url(#terminal-2684787815-line-7)">subcommand</text><text class="terminal-2684787815-r2" x="122" y="190.8" textLength="12.2" clip-path="url(#terminal-2684787815-line-7)">:</text><text class="terminal-2684787815-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2684787815-line-7)">
|
||||||
|
</text><text class="terminal-2684787815-r3" x="24.4" y="215.2" textLength="109.8" clip-path="url(#terminal-2684787815-line-8)"><sub-cmd></text><text class="terminal-2684787815-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-2684787815-line-8)">
|
||||||
|
</text><text class="terminal-2684787815-r3" x="48.8" y="239.6" textLength="36.6" clip-path="url(#terminal-2684787815-line-9)">pip</text><text class="terminal-2684787815-r2" x="85.4" y="239.6" textLength="305" clip-path="url(#terminal-2684787815-line-9)">         run cmd with pip</text><text class="terminal-2684787815-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-2684787815-line-9)">
|
||||||
|
</text><text class="terminal-2684787815-r3" x="48.8" y="264" textLength="73.2" clip-path="url(#terminal-2684787815-line-10)">python</text><text class="terminal-2684787815-r2" x="122" y="264" textLength="305" clip-path="url(#terminal-2684787815-line-10)">      run cmd with python</text><text class="terminal-2684787815-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-2684787815-line-10)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.3 KiB |
92
docs/svgs/viv-exe-pip-help.svg
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 277.5333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2240111166-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2240111166-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-2240111166-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-2240111166-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-2240111166-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-2240111166-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="194.2" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2240111166-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="243.2" rx="8"/><text class="terminal-2240111166-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv exe pip --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2240111166-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-2240111166-matrix">
|
||||||
|
<text class="terminal-2240111166-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2240111166-line-0)">usage</text><text class="terminal-2240111166-r2" x="61" y="20" textLength="427" clip-path="url(#terminal-2240111166-line-0)">: viv exe pip [-h] vivenv [cmd ...]</text><text class="terminal-2240111166-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2240111166-line-0)">
|
||||||
|
</text><text class="terminal-2240111166-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2240111166-line-1)">
|
||||||
|
</text><text class="terminal-2240111166-r1" x="0" y="68.8" textLength="244" clip-path="url(#terminal-2240111166-line-2)">positional arguments</text><text class="terminal-2240111166-r2" x="244" y="68.8" textLength="12.2" clip-path="url(#terminal-2240111166-line-2)">:</text><text class="terminal-2240111166-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2240111166-line-2)">
|
||||||
|
</text><text class="terminal-2240111166-r3" x="24.4" y="93.2" textLength="73.2" clip-path="url(#terminal-2240111166-line-3)">vivenv</text><text class="terminal-2240111166-r2" x="97.6" y="93.2" textLength="329.4" clip-path="url(#terminal-2240111166-line-3)">        name/hash of vivenv</text><text class="terminal-2240111166-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2240111166-line-3)">
|
||||||
|
</text><text class="terminal-2240111166-r3" x="24.4" y="117.6" textLength="36.6" clip-path="url(#terminal-2240111166-line-4)">cmd</text><text class="terminal-2240111166-r2" x="61" y="117.6" textLength="390.4" clip-path="url(#terminal-2240111166-line-4)">           command to to execute</text><text class="terminal-2240111166-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2240111166-line-4)">
|
||||||
|
</text><text class="terminal-2240111166-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2240111166-line-5)">
|
||||||
|
</text><text class="terminal-2240111166-r1" x="0" y="166.4" textLength="85.4" clip-path="url(#terminal-2240111166-line-6)">options</text><text class="terminal-2240111166-r2" x="85.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2240111166-line-6)">:</text><text class="terminal-2240111166-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2240111166-line-6)">
|
||||||
|
</text><text class="terminal-2240111166-r3" x="24.4" y="190.8" textLength="24.4" clip-path="url(#terminal-2240111166-line-7)">-h</text><text class="terminal-2240111166-r2" x="48.8" y="190.8" textLength="24.4" clip-path="url(#terminal-2240111166-line-7)">, </text><text class="terminal-2240111166-r3" x="73.2" y="190.8" textLength="73.2" clip-path="url(#terminal-2240111166-line-7)">--help</text><text class="terminal-2240111166-r2" x="146.4" y="190.8" textLength="427" clip-path="url(#terminal-2240111166-line-7)">    show this help message and exit</text><text class="terminal-2240111166-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2240111166-line-7)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
92
docs/svgs/viv-exe-python-help.svg
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 277.5333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1517577456-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1517577456-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-1517577456-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-1517577456-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-1517577456-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-1517577456-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="194.2" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1517577456-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="243.2" rx="8"/><text class="terminal-1517577456-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv exe python --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1517577456-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-1517577456-matrix">
|
||||||
|
<text class="terminal-1517577456-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1517577456-line-0)">usage</text><text class="terminal-1517577456-r2" x="61" y="20" textLength="463.6" clip-path="url(#terminal-1517577456-line-0)">: viv exe python [-h] vivenv [cmd ...]</text><text class="terminal-1517577456-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1517577456-line-0)">
|
||||||
|
</text><text class="terminal-1517577456-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1517577456-line-1)">
|
||||||
|
</text><text class="terminal-1517577456-r1" x="0" y="68.8" textLength="244" clip-path="url(#terminal-1517577456-line-2)">positional arguments</text><text class="terminal-1517577456-r2" x="244" y="68.8" textLength="12.2" clip-path="url(#terminal-1517577456-line-2)">:</text><text class="terminal-1517577456-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1517577456-line-2)">
|
||||||
|
</text><text class="terminal-1517577456-r3" x="24.4" y="93.2" textLength="73.2" clip-path="url(#terminal-1517577456-line-3)">vivenv</text><text class="terminal-1517577456-r2" x="97.6" y="93.2" textLength="329.4" clip-path="url(#terminal-1517577456-line-3)">        name/hash of vivenv</text><text class="terminal-1517577456-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1517577456-line-3)">
|
||||||
|
</text><text class="terminal-1517577456-r3" x="24.4" y="117.6" textLength="36.6" clip-path="url(#terminal-1517577456-line-4)">cmd</text><text class="terminal-1517577456-r2" x="61" y="117.6" textLength="390.4" clip-path="url(#terminal-1517577456-line-4)">           command to to execute</text><text class="terminal-1517577456-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1517577456-line-4)">
|
||||||
|
</text><text class="terminal-1517577456-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1517577456-line-5)">
|
||||||
|
</text><text class="terminal-1517577456-r1" x="0" y="166.4" textLength="85.4" clip-path="url(#terminal-1517577456-line-6)">options</text><text class="terminal-1517577456-r2" x="85.4" y="166.4" textLength="12.2" clip-path="url(#terminal-1517577456-line-6)">:</text><text class="terminal-1517577456-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1517577456-line-6)">
|
||||||
|
</text><text class="terminal-1517577456-r3" x="24.4" y="190.8" textLength="24.4" clip-path="url(#terminal-1517577456-line-7)">-h</text><text class="terminal-1517577456-r2" x="48.8" y="190.8" textLength="24.4" clip-path="url(#terminal-1517577456-line-7)">, </text><text class="terminal-1517577456-r3" x="73.2" y="190.8" textLength="73.2" clip-path="url(#terminal-1517577456-line-7)">--help</text><text class="terminal-1517577456-r2" x="146.4" y="190.8" textLength="427" clip-path="url(#terminal-1517577456-line-7)">    show this help message and exit</text><text class="terminal-1517577456-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-1517577456-line-7)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
113
docs/svgs/viv-freeze-help.svg
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 399.5333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-3188460144-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-3188460144-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-3188460144-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-3188460144-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-3188460144-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
.terminal-3188460144-r4 { fill: #f9e2af }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-3188460144-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="316.2" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-10">
|
||||||
|
<rect x="0" y="245.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3188460144-line-11">
|
||||||
|
<rect x="0" y="269.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="365.2" rx="8"/><text class="terminal-3188460144-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv freeze --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-3188460144-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-3188460144-matrix">
|
||||||
|
<text class="terminal-3188460144-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-3188460144-line-0)">usage</text><text class="terminal-3188460144-r2" x="61" y="20" textLength="793" clip-path="url(#terminal-3188460144-line-0)">: viv freeze [-h] [-p {abs,rel}] [-s] [-k] [-r <path>] [reqs ...]</text><text class="terminal-3188460144-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-3188460144-line-0)">
|
||||||
|
</text><text class="terminal-3188460144-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-3188460144-line-1)">
|
||||||
|
</text><text class="terminal-3188460144-r2" x="0" y="68.8" textLength="500.2" clip-path="url(#terminal-3188460144-line-2)">create import statement from package spec</text><text class="terminal-3188460144-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-3188460144-line-2)">
|
||||||
|
</text><text class="terminal-3188460144-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-3188460144-line-3)">
|
||||||
|
</text><text class="terminal-3188460144-r1" x="0" y="117.6" textLength="244" clip-path="url(#terminal-3188460144-line-4)">positional arguments</text><text class="terminal-3188460144-r2" x="244" y="117.6" textLength="12.2" clip-path="url(#terminal-3188460144-line-4)">:</text><text class="terminal-3188460144-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-3188460144-line-4)">
|
||||||
|
</text><text class="terminal-3188460144-r3" x="24.4" y="142" textLength="48.8" clip-path="url(#terminal-3188460144-line-5)">reqs</text><text class="terminal-3188460144-r2" x="73.2" y="142" textLength="585.6" clip-path="url(#terminal-3188460144-line-5)">                         requirements specifiers</text><text class="terminal-3188460144-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-3188460144-line-5)">
|
||||||
|
</text><text class="terminal-3188460144-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-3188460144-line-6)">
|
||||||
|
</text><text class="terminal-3188460144-r1" x="0" y="190.8" textLength="85.4" clip-path="url(#terminal-3188460144-line-7)">options</text><text class="terminal-3188460144-r2" x="85.4" y="190.8" textLength="12.2" clip-path="url(#terminal-3188460144-line-7)">:</text><text class="terminal-3188460144-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-3188460144-line-7)">
|
||||||
|
</text><text class="terminal-3188460144-r3" x="24.4" y="215.2" textLength="24.4" clip-path="url(#terminal-3188460144-line-8)">-h</text><text class="terminal-3188460144-r2" x="48.8" y="215.2" textLength="24.4" clip-path="url(#terminal-3188460144-line-8)">, </text><text class="terminal-3188460144-r3" x="73.2" y="215.2" textLength="73.2" clip-path="url(#terminal-3188460144-line-8)">--help</text><text class="terminal-3188460144-r2" x="146.4" y="215.2" textLength="610" clip-path="url(#terminal-3188460144-line-8)">                   show this help message and exit</text><text class="terminal-3188460144-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-3188460144-line-8)">
|
||||||
|
</text><text class="terminal-3188460144-r3" x="24.4" y="239.6" textLength="24.4" clip-path="url(#terminal-3188460144-line-9)">-p</text><text class="terminal-3188460144-r2" x="48.8" y="239.6" textLength="24.4" clip-path="url(#terminal-3188460144-line-9)">, </text><text class="terminal-3188460144-r3" x="73.2" y="239.6" textLength="73.2" clip-path="url(#terminal-3188460144-line-9)">--path</text><text class="terminal-3188460144-r4" x="146.4" y="239.6" textLength="122" clip-path="url(#terminal-3188460144-line-9)"> {abs,rel}</text><text class="terminal-3188460144-r2" x="268.4" y="239.6" textLength="549" clip-path="url(#terminal-3188460144-line-9)">         generate line to add viv to sys.path</text><text class="terminal-3188460144-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-3188460144-line-9)">
|
||||||
|
</text><text class="terminal-3188460144-r3" x="24.4" y="264" textLength="24.4" clip-path="url(#terminal-3188460144-line-10)">-s</text><text class="terminal-3188460144-r2" x="48.8" y="264" textLength="24.4" clip-path="url(#terminal-3188460144-line-10)">, </text><text class="terminal-3188460144-r3" x="73.2" y="264" textLength="146.4" clip-path="url(#terminal-3188460144-line-10)">--standalone</text><text class="terminal-3188460144-r2" x="219.6" y="264" textLength="634.4" clip-path="url(#terminal-3188460144-line-10)">             generate standalone activation function</text><text class="terminal-3188460144-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-3188460144-line-10)">
|
||||||
|
</text><text class="terminal-3188460144-r3" x="24.4" y="288.4" textLength="24.4" clip-path="url(#terminal-3188460144-line-11)">-k</text><text class="terminal-3188460144-r2" x="48.8" y="288.4" textLength="24.4" clip-path="url(#terminal-3188460144-line-11)">, </text><text class="terminal-3188460144-r3" x="73.2" y="288.4" textLength="73.2" clip-path="url(#terminal-3188460144-line-11)">--keep</text><text class="terminal-3188460144-r2" x="146.4" y="288.4" textLength="475.8" clip-path="url(#terminal-3188460144-line-11)">                   preserve environment</text><text class="terminal-3188460144-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-3188460144-line-11)">
|
||||||
|
</text><text class="terminal-3188460144-r3" x="24.4" y="312.8" textLength="24.4" clip-path="url(#terminal-3188460144-line-12)">-r</text><text class="terminal-3188460144-r2" x="48.8" y="312.8" textLength="24.4" clip-path="url(#terminal-3188460144-line-12)">, </text><text class="terminal-3188460144-r3" x="73.2" y="312.8" textLength="170.8" clip-path="url(#terminal-3188460144-line-12)">--requirements</text><text class="terminal-3188460144-r4" x="244" y="312.8" textLength="85.4" clip-path="url(#terminal-3188460144-line-12)"> <path></text><text class="terminal-3188460144-r2" x="329.4" y="312.8" textLength="402.6" clip-path="url(#terminal-3188460144-line-12)">    path/to/requirements.txt file</text><text class="terminal-3188460144-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-3188460144-line-12)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 10 KiB |
146
docs/svgs/viv-help.svg
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 594.7333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1825138163-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1825138163-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-1825138163-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-1825138163-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-1825138163-r3 { fill: #f5c2e7;font-weight: bold }
|
||||||
|
.terminal-1825138163-r4 { fill: #c6d0f5;font-weight: bold }
|
||||||
|
.terminal-1825138163-r5 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-1825138163-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="511.4" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-10">
|
||||||
|
<rect x="0" y="245.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-11">
|
||||||
|
<rect x="0" y="269.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-12">
|
||||||
|
<rect x="0" y="294.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-13">
|
||||||
|
<rect x="0" y="318.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-14">
|
||||||
|
<rect x="0" y="343.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-15">
|
||||||
|
<rect x="0" y="367.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-16">
|
||||||
|
<rect x="0" y="391.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-17">
|
||||||
|
<rect x="0" y="416.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-18">
|
||||||
|
<rect x="0" y="440.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1825138163-line-19">
|
||||||
|
<rect x="0" y="465.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="560.4" rx="8"/><text class="terminal-1825138163-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv  --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1825138163-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-1825138163-matrix">
|
||||||
|
<text class="terminal-1825138163-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1825138163-line-0)">usage</text><text class="terminal-1825138163-r2" x="61" y="20" textLength="353.8" clip-path="url(#terminal-1825138163-line-0)">: viv [-h] [-V] <sub-cmd> ...</text><text class="terminal-1825138163-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1825138163-line-0)">
|
||||||
|
</text><text class="terminal-1825138163-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-1)">
|
||||||
|
</text><text class="terminal-1825138163-r3" x="0" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">v</text><text class="terminal-1825138163-r1" x="12.2" y="68.8" textLength="24.4" clip-path="url(#terminal-1825138163-line-2)">iv</text><text class="terminal-1825138163-r3" x="48.8" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">i</text><text class="terminal-1825138163-r1" x="61" y="68.8" textLength="48.8" clip-path="url(#terminal-1825138163-line-2)">sn't</text><text class="terminal-1825138163-r3" x="122" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">v</text><text class="terminal-1825138163-r1" x="134.2" y="68.8" textLength="48.8" clip-path="url(#terminal-1825138163-line-2)">env!</text><text class="terminal-1825138163-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-2)">
|
||||||
|
</text><text class="terminal-1825138163-r2" x="0" y="93.2" textLength="341.6" clip-path="url(#terminal-1825138163-line-3)">to create/activate a vivenv:</text><text class="terminal-1825138163-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-3)">
|
||||||
|
</text><text class="terminal-1825138163-r2" x="0" y="117.6" textLength="268.4" clip-path="url(#terminal-1825138163-line-4)">- from command line: `</text><text class="terminal-1825138163-r4" x="268.4" y="117.6" textLength="73.2" clip-path="url(#terminal-1825138163-line-4)">viv -h</text><text class="terminal-1825138163-r2" x="341.6" y="117.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-4)">`</text><text class="terminal-1825138163-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-4)">
|
||||||
|
</text><text class="terminal-1825138163-r2" x="0" y="142" textLength="292.8" clip-path="url(#terminal-1825138163-line-5)">- within python script: </text><text class="terminal-1825138163-r4" x="292.8" y="142" textLength="536.8" clip-path="url(#terminal-1825138163-line-5)">__import__("viv").use("typer", "rich-click")</text><text class="terminal-1825138163-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1825138163-line-5)">
|
||||||
|
</text><text class="terminal-1825138163-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-6)">
|
||||||
|
</text><text class="terminal-1825138163-r1" x="0" y="190.8" textLength="85.4" clip-path="url(#terminal-1825138163-line-7)">options</text><text class="terminal-1825138163-r2" x="85.4" y="190.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-7)">:</text><text class="terminal-1825138163-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-7)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="24.4" y="215.2" textLength="24.4" clip-path="url(#terminal-1825138163-line-8)">-h</text><text class="terminal-1825138163-r2" x="48.8" y="215.2" textLength="24.4" clip-path="url(#terminal-1825138163-line-8)">, </text><text class="terminal-1825138163-r5" x="73.2" y="215.2" textLength="73.2" clip-path="url(#terminal-1825138163-line-8)">--help</text><text class="terminal-1825138163-r2" x="146.4" y="215.2" textLength="463.6" clip-path="url(#terminal-1825138163-line-8)">       show this help message and exit</text><text class="terminal-1825138163-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-8)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="24.4" y="239.6" textLength="24.4" clip-path="url(#terminal-1825138163-line-9)">-V</text><text class="terminal-1825138163-r2" x="48.8" y="239.6" textLength="24.4" clip-path="url(#terminal-1825138163-line-9)">, </text><text class="terminal-1825138163-r5" x="73.2" y="239.6" textLength="109.8" clip-path="url(#terminal-1825138163-line-9)">--version</text><text class="terminal-1825138163-r2" x="183" y="239.6" textLength="512.4" clip-path="url(#terminal-1825138163-line-9)">    show program's version number and exit</text><text class="terminal-1825138163-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-9)">
|
||||||
|
</text><text class="terminal-1825138163-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-1825138163-line-10)">
|
||||||
|
</text><text class="terminal-1825138163-r1" x="0" y="288.4" textLength="134.2" clip-path="url(#terminal-1825138163-line-11)">subcommands</text><text class="terminal-1825138163-r2" x="134.2" y="288.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-11)">:</text><text class="terminal-1825138163-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-11)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="24.4" y="312.8" textLength="109.8" clip-path="url(#terminal-1825138163-line-12)"><sub-cmd></text><text class="terminal-1825138163-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-12)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="337.2" textLength="97.6" clip-path="url(#terminal-1825138163-line-13)">list (l)</text><text class="terminal-1825138163-r2" x="146.4" y="337.2" textLength="280.6" clip-path="url(#terminal-1825138163-line-13)">       list all vivenvs</text><text class="terminal-1825138163-r2" x="854" y="337.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-13)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="361.6" textLength="85.4" clip-path="url(#terminal-1825138163-line-14)">exe (e)</text><text class="terminal-1825138163-r2" x="134.2" y="361.6" textLength="500.2" clip-path="url(#terminal-1825138163-line-14)">        run python/pip in existing vivenv</text><text class="terminal-1825138163-r2" x="854" y="361.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-14)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="386" textLength="134.2" clip-path="url(#terminal-1825138163-line-15)">remove (rm)</text><text class="terminal-1825138163-r2" x="183" y="386" textLength="231.8" clip-path="url(#terminal-1825138163-line-15)">    remove a vivenv</text><text class="terminal-1825138163-r2" x="854" y="386" textLength="12.2" clip-path="url(#terminal-1825138163-line-15)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="410.4" textLength="122" clip-path="url(#terminal-1825138163-line-16)">freeze (f)</text><text class="terminal-1825138163-r2" x="170.8" y="410.4" textLength="561.2" clip-path="url(#terminal-1825138163-line-16)">     create import statement from package spec</text><text class="terminal-1825138163-r2" x="854" y="410.4" textLength="12.2" clip-path="url(#terminal-1825138163-line-16)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="434.8" textLength="97.6" clip-path="url(#terminal-1825138163-line-17)">info (i)</text><text class="terminal-1825138163-r2" x="146.4" y="434.8" textLength="414.8" clip-path="url(#terminal-1825138163-line-17)">       get metadata about a vivenv</text><text class="terminal-1825138163-r2" x="854" y="434.8" textLength="12.2" clip-path="url(#terminal-1825138163-line-17)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="459.2" textLength="122" clip-path="url(#terminal-1825138163-line-18)">manage (m)</text><text class="terminal-1825138163-r2" x="170.8" y="459.2" textLength="268.4" clip-path="url(#terminal-1825138163-line-18)">     manage viv itself</text><text class="terminal-1825138163-r2" x="854" y="459.2" textLength="12.2" clip-path="url(#terminal-1825138163-line-18)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="483.6" textLength="97.6" clip-path="url(#terminal-1825138163-line-19)">shim (s)</text><text class="terminal-1825138163-r2" x="146.4" y="483.6" textLength="439.2" clip-path="url(#terminal-1825138163-line-19)">       generate viv-powered cli apps</text><text class="terminal-1825138163-r2" x="854" y="483.6" textLength="12.2" clip-path="url(#terminal-1825138163-line-19)">
|
||||||
|
</text><text class="terminal-1825138163-r5" x="48.8" y="508" textLength="85.4" clip-path="url(#terminal-1825138163-line-20)">run (r)</text><text class="terminal-1825138163-r2" x="134.2" y="508" textLength="500.2" clip-path="url(#terminal-1825138163-line-20)">        run an app with an on-demand venv</text><text class="terminal-1825138163-r2" x="854" y="508" textLength="12.2" clip-path="url(#terminal-1825138163-line-20)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 14 KiB |
96
docs/svgs/viv-list-help.svg
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 301.93333333333334" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1773455935-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1773455935-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-1773455935-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-1773455935-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-1773455935-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-1773455935-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="218.6" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1773455935-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="267.6" rx="8"/><text class="terminal-1773455935-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv list --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1773455935-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-1773455935-matrix">
|
||||||
|
<text class="terminal-1773455935-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1773455935-line-0)">usage</text><text class="terminal-1773455935-r2" x="61" y="20" textLength="414.8" clip-path="url(#terminal-1773455935-line-0)">: viv list [-h] [-f] [-q] [--json]</text><text class="terminal-1773455935-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1773455935-line-0)">
|
||||||
|
</text><text class="terminal-1773455935-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1773455935-line-1)">
|
||||||
|
</text><text class="terminal-1773455935-r2" x="0" y="68.8" textLength="195.2" clip-path="url(#terminal-1773455935-line-2)">list all vivenvs</text><text class="terminal-1773455935-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1773455935-line-2)">
|
||||||
|
</text><text class="terminal-1773455935-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1773455935-line-3)">
|
||||||
|
</text><text class="terminal-1773455935-r1" x="0" y="117.6" textLength="85.4" clip-path="url(#terminal-1773455935-line-4)">options</text><text class="terminal-1773455935-r2" x="85.4" y="117.6" textLength="12.2" clip-path="url(#terminal-1773455935-line-4)">:</text><text class="terminal-1773455935-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1773455935-line-4)">
|
||||||
|
</text><text class="terminal-1773455935-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-1773455935-line-5)">-h</text><text class="terminal-1773455935-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-1773455935-line-5)">, </text><text class="terminal-1773455935-r3" x="73.2" y="142" textLength="73.2" clip-path="url(#terminal-1773455935-line-5)">--help</text><text class="terminal-1773455935-r2" x="146.4" y="142" textLength="439.2" clip-path="url(#terminal-1773455935-line-5)">     show this help message and exit</text><text class="terminal-1773455935-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1773455935-line-5)">
|
||||||
|
</text><text class="terminal-1773455935-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-1773455935-line-6)">-f</text><text class="terminal-1773455935-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-1773455935-line-6)">, </text><text class="terminal-1773455935-r3" x="73.2" y="166.4" textLength="73.2" clip-path="url(#terminal-1773455935-line-6)">--full</text><text class="terminal-1773455935-r2" x="146.4" y="166.4" textLength="427" clip-path="url(#terminal-1773455935-line-6)">     show full metadata for vivenvs</text><text class="terminal-1773455935-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1773455935-line-6)">
|
||||||
|
</text><text class="terminal-1773455935-r3" x="24.4" y="190.8" textLength="24.4" clip-path="url(#terminal-1773455935-line-7)">-q</text><text class="terminal-1773455935-r2" x="48.8" y="190.8" textLength="24.4" clip-path="url(#terminal-1773455935-line-7)">, </text><text class="terminal-1773455935-r3" x="73.2" y="190.8" textLength="85.4" clip-path="url(#terminal-1773455935-line-7)">--quiet</text><text class="terminal-1773455935-r2" x="158.6" y="190.8" textLength="402.6" clip-path="url(#terminal-1773455935-line-7)">    suppress non-essential output</text><text class="terminal-1773455935-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-1773455935-line-7)">
|
||||||
|
</text><text class="terminal-1773455935-r3" x="24.4" y="215.2" textLength="73.2" clip-path="url(#terminal-1773455935-line-8)">--json</text><text class="terminal-1773455935-r2" x="97.6" y="215.2" textLength="475.8" clip-path="url(#terminal-1773455935-line-8)">         name:metadata json for vivenvs</text><text class="terminal-1773455935-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-1773455935-line-8)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.3 KiB |
112
docs/svgs/viv-manage-help.svg
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 399.5333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1970867223-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1970867223-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-1970867223-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-1970867223-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-1970867223-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-1970867223-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="316.2" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-10">
|
||||||
|
<rect x="0" y="245.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1970867223-line-11">
|
||||||
|
<rect x="0" y="269.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="365.2" rx="8"/><text class="terminal-1970867223-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv manage --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1970867223-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-1970867223-matrix">
|
||||||
|
<text class="terminal-1970867223-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1970867223-line-0)">usage</text><text class="terminal-1970867223-r2" x="61" y="20" textLength="378.2" clip-path="url(#terminal-1970867223-line-0)">: viv manage [-h] <sub-cmd> ...</text><text class="terminal-1970867223-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1970867223-line-0)">
|
||||||
|
</text><text class="terminal-1970867223-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1970867223-line-1)">
|
||||||
|
</text><text class="terminal-1970867223-r2" x="0" y="68.8" textLength="207.4" clip-path="url(#terminal-1970867223-line-2)">manage viv itself</text><text class="terminal-1970867223-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1970867223-line-2)">
|
||||||
|
</text><text class="terminal-1970867223-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1970867223-line-3)">
|
||||||
|
</text><text class="terminal-1970867223-r1" x="0" y="117.6" textLength="85.4" clip-path="url(#terminal-1970867223-line-4)">options</text><text class="terminal-1970867223-r2" x="85.4" y="117.6" textLength="12.2" clip-path="url(#terminal-1970867223-line-4)">:</text><text class="terminal-1970867223-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1970867223-line-4)">
|
||||||
|
</text><text class="terminal-1970867223-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-1970867223-line-5)">-h</text><text class="terminal-1970867223-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-1970867223-line-5)">, </text><text class="terminal-1970867223-r3" x="73.2" y="142" textLength="73.2" clip-path="url(#terminal-1970867223-line-5)">--help</text><text class="terminal-1970867223-r2" x="146.4" y="142" textLength="439.2" clip-path="url(#terminal-1970867223-line-5)">     show this help message and exit</text><text class="terminal-1970867223-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1970867223-line-5)">
|
||||||
|
</text><text class="terminal-1970867223-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1970867223-line-6)">
|
||||||
|
</text><text class="terminal-1970867223-r1" x="0" y="190.8" textLength="122" clip-path="url(#terminal-1970867223-line-7)">subcommand</text><text class="terminal-1970867223-r2" x="122" y="190.8" textLength="12.2" clip-path="url(#terminal-1970867223-line-7)">:</text><text class="terminal-1970867223-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-1970867223-line-7)">
|
||||||
|
</text><text class="terminal-1970867223-r3" x="24.4" y="215.2" textLength="109.8" clip-path="url(#terminal-1970867223-line-8)"><sub-cmd></text><text class="terminal-1970867223-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-1970867223-line-8)">
|
||||||
|
</text><text class="terminal-1970867223-r3" x="48.8" y="239.6" textLength="97.6" clip-path="url(#terminal-1970867223-line-9)">show (s)</text><text class="terminal-1970867223-r2" x="146.4" y="239.6" textLength="366" clip-path="url(#terminal-1970867223-line-9)">     show current installation</text><text class="terminal-1970867223-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-1970867223-line-9)">
|
||||||
|
</text><text class="terminal-1970867223-r3" x="48.8" y="264" textLength="134.2" clip-path="url(#terminal-1970867223-line-10)">install (i)</text><text class="terminal-1970867223-r2" x="183" y="264" textLength="231.8" clip-path="url(#terminal-1970867223-line-10)">  install fresh viv</text><text class="terminal-1970867223-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-1970867223-line-10)">
|
||||||
|
</text><text class="terminal-1970867223-r3" x="48.8" y="288.4" textLength="122" clip-path="url(#terminal-1970867223-line-11)">update (u)</text><text class="terminal-1970867223-r2" x="170.8" y="288.4" textLength="256.2" clip-path="url(#terminal-1970867223-line-11)">   update viv version</text><text class="terminal-1970867223-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-1970867223-line-11)">
|
||||||
|
</text><text class="terminal-1970867223-r3" x="48.8" y="312.8" textLength="109.8" clip-path="url(#terminal-1970867223-line-12)">purge (p)</text><text class="terminal-1970867223-r2" x="158.6" y="312.8" textLength="292.8" clip-path="url(#terminal-1970867223-line-12)">    remove traces of viv</text><text class="terminal-1970867223-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-1970867223-line-12)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.4 KiB |
89
docs/svgs/viv-manage-install-help.svg
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 253.13333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-201533399-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-201533399-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-201533399-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-201533399-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-201533399-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
.terminal-201533399-r4 { fill: #f9e2af }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-201533399-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="169.79999999999998" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-201533399-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-201533399-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-201533399-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-201533399-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-201533399-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-201533399-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="218.8" rx="8"/><text class="terminal-201533399-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv manage install --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-201533399-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-201533399-matrix">
|
||||||
|
<text class="terminal-201533399-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-201533399-line-0)">usage</text><text class="terminal-201533399-r2" x="61" y="20" textLength="707.6" clip-path="url(#terminal-201533399-line-0)">: viv manage install [-h] [-r <ref>] [-s <src>] [-c <cli>]</text><text class="terminal-201533399-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-201533399-line-0)">
|
||||||
|
</text><text class="terminal-201533399-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-201533399-line-1)">
|
||||||
|
</text><text class="terminal-201533399-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-201533399-line-2)">options</text><text class="terminal-201533399-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-201533399-line-2)">:</text><text class="terminal-201533399-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-201533399-line-2)">
|
||||||
|
</text><text class="terminal-201533399-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-201533399-line-3)">-h</text><text class="terminal-201533399-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-201533399-line-3)">, </text><text class="terminal-201533399-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-201533399-line-3)">--help</text><text class="terminal-201533399-r2" x="146.4" y="93.2" textLength="488" clip-path="url(#terminal-201533399-line-3)">         show this help message and exit</text><text class="terminal-201533399-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-201533399-line-3)">
|
||||||
|
</text><text class="terminal-201533399-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-201533399-line-4)">-r</text><text class="terminal-201533399-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-201533399-line-4)">, </text><text class="terminal-201533399-r3" x="73.2" y="117.6" textLength="61" clip-path="url(#terminal-201533399-line-4)">--ref</text><text class="terminal-201533399-r4" x="134.2" y="117.6" textLength="73.2" clip-path="url(#terminal-201533399-line-4)"> <ref></text><text class="terminal-201533399-r2" x="207.4" y="117.6" textLength="451.4" clip-path="url(#terminal-201533399-line-4)">    git reference (branch/tag/commit)</text><text class="terminal-201533399-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-201533399-line-4)">
|
||||||
|
</text><text class="terminal-201533399-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-201533399-line-5)">-s</text><text class="terminal-201533399-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-201533399-line-5)">, </text><text class="terminal-201533399-r3" x="73.2" y="142" textLength="61" clip-path="url(#terminal-201533399-line-5)">--src</text><text class="terminal-201533399-r4" x="134.2" y="142" textLength="73.2" clip-path="url(#terminal-201533399-line-5)"> <src></text><text class="terminal-201533399-r2" x="207.4" y="142" textLength="280.6" clip-path="url(#terminal-201533399-line-5)">    path/to/source_file</text><text class="terminal-201533399-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-201533399-line-5)">
|
||||||
|
</text><text class="terminal-201533399-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-201533399-line-6)">-c</text><text class="terminal-201533399-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-201533399-line-6)">, </text><text class="terminal-201533399-r3" x="73.2" y="166.4" textLength="61" clip-path="url(#terminal-201533399-line-6)">--cli</text><text class="terminal-201533399-r4" x="134.2" y="166.4" textLength="73.2" clip-path="url(#terminal-201533399-line-6)"> <cli></text><text class="terminal-201533399-r2" x="207.4" y="166.4" textLength="390.4" clip-path="url(#terminal-201533399-line-6)">    path/to/cli (symlink to src)</text><text class="terminal-201533399-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-201533399-line-6)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.3 KiB |
89
docs/svgs/viv-manage-purge-help.svg
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 253.13333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1044063791-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-1044063791-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-1044063791-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-1044063791-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-1044063791-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
.terminal-1044063791-r4 { fill: #f9e2af }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-1044063791-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="169.79999999999998" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1044063791-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1044063791-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1044063791-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1044063791-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1044063791-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-1044063791-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="218.8" rx="8"/><text class="terminal-1044063791-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv manage purge --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-1044063791-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-1044063791-matrix">
|
||||||
|
<text class="terminal-1044063791-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-1044063791-line-0)">usage</text><text class="terminal-1044063791-r2" x="61" y="20" textLength="683.2" clip-path="url(#terminal-1044063791-line-0)">: viv manage purge [-h] [-r <ref>] [-s <src>] [-c <cli>]</text><text class="terminal-1044063791-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-1044063791-line-0)">
|
||||||
|
</text><text class="terminal-1044063791-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-1044063791-line-1)">
|
||||||
|
</text><text class="terminal-1044063791-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-1044063791-line-2)">options</text><text class="terminal-1044063791-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-1044063791-line-2)">:</text><text class="terminal-1044063791-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-1044063791-line-2)">
|
||||||
|
</text><text class="terminal-1044063791-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-1044063791-line-3)">-h</text><text class="terminal-1044063791-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-1044063791-line-3)">, </text><text class="terminal-1044063791-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-1044063791-line-3)">--help</text><text class="terminal-1044063791-r2" x="146.4" y="93.2" textLength="488" clip-path="url(#terminal-1044063791-line-3)">         show this help message and exit</text><text class="terminal-1044063791-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-1044063791-line-3)">
|
||||||
|
</text><text class="terminal-1044063791-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-1044063791-line-4)">-r</text><text class="terminal-1044063791-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-1044063791-line-4)">, </text><text class="terminal-1044063791-r3" x="73.2" y="117.6" textLength="61" clip-path="url(#terminal-1044063791-line-4)">--ref</text><text class="terminal-1044063791-r4" x="134.2" y="117.6" textLength="73.2" clip-path="url(#terminal-1044063791-line-4)"> <ref></text><text class="terminal-1044063791-r2" x="207.4" y="117.6" textLength="451.4" clip-path="url(#terminal-1044063791-line-4)">    git reference (branch/tag/commit)</text><text class="terminal-1044063791-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-1044063791-line-4)">
|
||||||
|
</text><text class="terminal-1044063791-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-1044063791-line-5)">-s</text><text class="terminal-1044063791-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-1044063791-line-5)">, </text><text class="terminal-1044063791-r3" x="73.2" y="142" textLength="61" clip-path="url(#terminal-1044063791-line-5)">--src</text><text class="terminal-1044063791-r4" x="134.2" y="142" textLength="73.2" clip-path="url(#terminal-1044063791-line-5)"> <src></text><text class="terminal-1044063791-r2" x="207.4" y="142" textLength="280.6" clip-path="url(#terminal-1044063791-line-5)">    path/to/source_file</text><text class="terminal-1044063791-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-1044063791-line-5)">
|
||||||
|
</text><text class="terminal-1044063791-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-1044063791-line-6)">-c</text><text class="terminal-1044063791-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-1044063791-line-6)">, </text><text class="terminal-1044063791-r3" x="73.2" y="166.4" textLength="61" clip-path="url(#terminal-1044063791-line-6)">--cli</text><text class="terminal-1044063791-r4" x="134.2" y="166.4" textLength="73.2" clip-path="url(#terminal-1044063791-line-6)"> <cli></text><text class="terminal-1044063791-r2" x="207.4" y="166.4" textLength="390.4" clip-path="url(#terminal-1044063791-line-6)">    path/to/cli (symlink to src)</text><text class="terminal-1044063791-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-1044063791-line-6)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
80
docs/svgs/viv-manage-show-help.svg
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 204.33333333333334" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-991960897-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-991960897-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-991960897-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-991960897-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-991960897-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-991960897-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="121.0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-991960897-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-991960897-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-991960897-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-991960897-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="170" rx="8"/><text class="terminal-991960897-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv manage show --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-991960897-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-991960897-matrix">
|
||||||
|
<text class="terminal-991960897-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-991960897-line-0)">usage</text><text class="terminal-991960897-r2" x="61" y="20" textLength="329.4" clip-path="url(#terminal-991960897-line-0)">: viv manage show [-h] [-p]</text><text class="terminal-991960897-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-991960897-line-0)">
|
||||||
|
</text><text class="terminal-991960897-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-991960897-line-1)">
|
||||||
|
</text><text class="terminal-991960897-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-991960897-line-2)">options</text><text class="terminal-991960897-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-991960897-line-2)">:</text><text class="terminal-991960897-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-991960897-line-2)">
|
||||||
|
</text><text class="terminal-991960897-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-991960897-line-3)">-h</text><text class="terminal-991960897-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-991960897-line-3)">, </text><text class="terminal-991960897-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-991960897-line-3)">--help</text><text class="terminal-991960897-r2" x="146.4" y="93.2" textLength="500.2" clip-path="url(#terminal-991960897-line-3)">          show this help message and exit</text><text class="terminal-991960897-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-991960897-line-3)">
|
||||||
|
</text><text class="terminal-991960897-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-991960897-line-4)">-p</text><text class="terminal-991960897-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-991960897-line-4)">, </text><text class="terminal-991960897-r3" x="73.2" y="117.6" textLength="146.4" clip-path="url(#terminal-991960897-line-4)">--pythonpath</text><text class="terminal-991960897-r2" x="219.6" y="117.6" textLength="341.6" clip-path="url(#terminal-991960897-line-4)">    show the path/to/install</text><text class="terminal-991960897-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-991960897-line-4)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
89
docs/svgs/viv-manage-update-help.svg
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 253.13333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-3845269231-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-3845269231-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-3845269231-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-3845269231-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-3845269231-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
.terminal-3845269231-r4 { fill: #f9e2af }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-3845269231-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="169.79999999999998" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3845269231-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3845269231-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3845269231-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3845269231-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3845269231-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-3845269231-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="218.8" rx="8"/><text class="terminal-3845269231-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv manage update --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-3845269231-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-3845269231-matrix">
|
||||||
|
<text class="terminal-3845269231-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-3845269231-line-0)">usage</text><text class="terminal-3845269231-r2" x="61" y="20" textLength="695.4" clip-path="url(#terminal-3845269231-line-0)">: viv manage update [-h] [-r <ref>] [-s <src>] [-c <cli>]</text><text class="terminal-3845269231-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-3845269231-line-0)">
|
||||||
|
</text><text class="terminal-3845269231-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-3845269231-line-1)">
|
||||||
|
</text><text class="terminal-3845269231-r1" x="0" y="68.8" textLength="85.4" clip-path="url(#terminal-3845269231-line-2)">options</text><text class="terminal-3845269231-r2" x="85.4" y="68.8" textLength="12.2" clip-path="url(#terminal-3845269231-line-2)">:</text><text class="terminal-3845269231-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-3845269231-line-2)">
|
||||||
|
</text><text class="terminal-3845269231-r3" x="24.4" y="93.2" textLength="24.4" clip-path="url(#terminal-3845269231-line-3)">-h</text><text class="terminal-3845269231-r2" x="48.8" y="93.2" textLength="24.4" clip-path="url(#terminal-3845269231-line-3)">, </text><text class="terminal-3845269231-r3" x="73.2" y="93.2" textLength="73.2" clip-path="url(#terminal-3845269231-line-3)">--help</text><text class="terminal-3845269231-r2" x="146.4" y="93.2" textLength="488" clip-path="url(#terminal-3845269231-line-3)">         show this help message and exit</text><text class="terminal-3845269231-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-3845269231-line-3)">
|
||||||
|
</text><text class="terminal-3845269231-r3" x="24.4" y="117.6" textLength="24.4" clip-path="url(#terminal-3845269231-line-4)">-r</text><text class="terminal-3845269231-r2" x="48.8" y="117.6" textLength="24.4" clip-path="url(#terminal-3845269231-line-4)">, </text><text class="terminal-3845269231-r3" x="73.2" y="117.6" textLength="61" clip-path="url(#terminal-3845269231-line-4)">--ref</text><text class="terminal-3845269231-r4" x="134.2" y="117.6" textLength="73.2" clip-path="url(#terminal-3845269231-line-4)"> <ref></text><text class="terminal-3845269231-r2" x="207.4" y="117.6" textLength="451.4" clip-path="url(#terminal-3845269231-line-4)">    git reference (branch/tag/commit)</text><text class="terminal-3845269231-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-3845269231-line-4)">
|
||||||
|
</text><text class="terminal-3845269231-r3" x="24.4" y="142" textLength="24.4" clip-path="url(#terminal-3845269231-line-5)">-s</text><text class="terminal-3845269231-r2" x="48.8" y="142" textLength="24.4" clip-path="url(#terminal-3845269231-line-5)">, </text><text class="terminal-3845269231-r3" x="73.2" y="142" textLength="61" clip-path="url(#terminal-3845269231-line-5)">--src</text><text class="terminal-3845269231-r4" x="134.2" y="142" textLength="73.2" clip-path="url(#terminal-3845269231-line-5)"> <src></text><text class="terminal-3845269231-r2" x="207.4" y="142" textLength="280.6" clip-path="url(#terminal-3845269231-line-5)">    path/to/source_file</text><text class="terminal-3845269231-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-3845269231-line-5)">
|
||||||
|
</text><text class="terminal-3845269231-r3" x="24.4" y="166.4" textLength="24.4" clip-path="url(#terminal-3845269231-line-6)">-c</text><text class="terminal-3845269231-r2" x="48.8" y="166.4" textLength="24.4" clip-path="url(#terminal-3845269231-line-6)">, </text><text class="terminal-3845269231-r3" x="73.2" y="166.4" textLength="61" clip-path="url(#terminal-3845269231-line-6)">--cli</text><text class="terminal-3845269231-r4" x="134.2" y="166.4" textLength="73.2" clip-path="url(#terminal-3845269231-line-6)"> <cli></text><text class="terminal-3845269231-r2" x="207.4" y="166.4" textLength="390.4" clip-path="url(#terminal-3845269231-line-6)">    path/to/cli (symlink to src)</text><text class="terminal-3845269231-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-3845269231-line-6)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
108
docs/svgs/viv-remove-help.svg
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 375.13333333333327" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2078172828-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2078172828-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-2078172828-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-2078172828-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-2078172828-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-2078172828-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="291.79999999999995" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2078172828-line-10">
|
||||||
|
<rect x="0" y="245.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="340.8" rx="8"/><text class="terminal-2078172828-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv remove --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2078172828-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-2078172828-matrix">
|
||||||
|
<text class="terminal-2078172828-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2078172828-line-0)">usage</text><text class="terminal-2078172828-r2" x="61" y="20" textLength="366" clip-path="url(#terminal-2078172828-line-0)">: viv remove [-h] [vivenv ...]</text><text class="terminal-2078172828-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2078172828-line-0)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2078172828-line-1)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="0" y="68.8" textLength="183" clip-path="url(#terminal-2078172828-line-2)">remove a vivenv</text><text class="terminal-2078172828-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2078172828-line-2)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2078172828-line-3)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="0" y="117.6" textLength="292.8" clip-path="url(#terminal-2078172828-line-4)">To remove all viv venvs:</text><text class="terminal-2078172828-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2078172828-line-4)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="0" y="142" textLength="244" clip-path="url(#terminal-2078172828-line-5)">`viv rm $(viv l -q)`</text><text class="terminal-2078172828-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2078172828-line-5)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2078172828-line-6)">
|
||||||
|
</text><text class="terminal-2078172828-r1" x="0" y="190.8" textLength="244" clip-path="url(#terminal-2078172828-line-7)">positional arguments</text><text class="terminal-2078172828-r2" x="244" y="190.8" textLength="12.2" clip-path="url(#terminal-2078172828-line-7)">:</text><text class="terminal-2078172828-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2078172828-line-7)">
|
||||||
|
</text><text class="terminal-2078172828-r3" x="24.4" y="215.2" textLength="73.2" clip-path="url(#terminal-2078172828-line-8)">vivenv</text><text class="terminal-2078172828-r2" x="97.6" y="215.2" textLength="329.4" clip-path="url(#terminal-2078172828-line-8)">        name/hash of vivenv</text><text class="terminal-2078172828-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-2078172828-line-8)">
|
||||||
|
</text><text class="terminal-2078172828-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-2078172828-line-9)">
|
||||||
|
</text><text class="terminal-2078172828-r1" x="0" y="264" textLength="85.4" clip-path="url(#terminal-2078172828-line-10)">options</text><text class="terminal-2078172828-r2" x="85.4" y="264" textLength="12.2" clip-path="url(#terminal-2078172828-line-10)">:</text><text class="terminal-2078172828-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-2078172828-line-10)">
|
||||||
|
</text><text class="terminal-2078172828-r3" x="24.4" y="288.4" textLength="24.4" clip-path="url(#terminal-2078172828-line-11)">-h</text><text class="terminal-2078172828-r2" x="48.8" y="288.4" textLength="24.4" clip-path="url(#terminal-2078172828-line-11)">, </text><text class="terminal-2078172828-r3" x="73.2" y="288.4" textLength="73.2" clip-path="url(#terminal-2078172828-line-11)">--help</text><text class="terminal-2078172828-r2" x="146.4" y="288.4" textLength="427" clip-path="url(#terminal-2078172828-line-11)">    show this help message and exit</text><text class="terminal-2078172828-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-2078172828-line-11)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
125
docs/svgs/viv-run-help.svg
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 472.7333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2316294325-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-2316294325-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-2316294325-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-2316294325-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-2316294325-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
.terminal-2316294325-r4 { fill: #f9e2af }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-2316294325-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="389.4" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-10">
|
||||||
|
<rect x="0" y="245.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-11">
|
||||||
|
<rect x="0" y="269.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-12">
|
||||||
|
<rect x="0" y="294.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-13">
|
||||||
|
<rect x="0" y="318.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-2316294325-line-14">
|
||||||
|
<rect x="0" y="343.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="438.4" rx="8"/><text class="terminal-2316294325-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv run --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-2316294325-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-2316294325-matrix">
|
||||||
|
<text class="terminal-2316294325-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-2316294325-line-0)">usage</text><text class="terminal-2316294325-r2" x="61" y="20" textLength="646.6" clip-path="url(#terminal-2316294325-line-0)">: viv run [-h] [-k] [-r <path>] [-b <bin>] [reqs ...]</text><text class="terminal-2316294325-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-2316294325-line-0)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-2316294325-line-1)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="0" y="68.8" textLength="402.6" clip-path="url(#terminal-2316294325-line-2)">run an app with an on-demand venv</text><text class="terminal-2316294325-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-2316294325-line-2)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-2316294325-line-3)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="0" y="117.6" textLength="109.8" clip-path="url(#terminal-2316294325-line-4)">examples:</text><text class="terminal-2316294325-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-2316294325-line-4)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="0" y="142" textLength="463.6" clip-path="url(#terminal-2316294325-line-5)">  viv r pycowsay -- "viv isn't venv\!"</text><text class="terminal-2316294325-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-2316294325-line-5)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="0" y="166.4" textLength="402.6" clip-path="url(#terminal-2316294325-line-6)">  viv r rich -b python -- -m rich</text><text class="terminal-2316294325-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-2316294325-line-6)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-2316294325-line-7)">
|
||||||
|
</text><text class="terminal-2316294325-r1" x="0" y="215.2" textLength="244" clip-path="url(#terminal-2316294325-line-8)">positional arguments</text><text class="terminal-2316294325-r2" x="244" y="215.2" textLength="12.2" clip-path="url(#terminal-2316294325-line-8)">:</text><text class="terminal-2316294325-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-2316294325-line-8)">
|
||||||
|
</text><text class="terminal-2316294325-r3" x="24.4" y="239.6" textLength="48.8" clip-path="url(#terminal-2316294325-line-9)">reqs</text><text class="terminal-2316294325-r2" x="73.2" y="239.6" textLength="585.6" clip-path="url(#terminal-2316294325-line-9)">                         requirements specifiers</text><text class="terminal-2316294325-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-2316294325-line-9)">
|
||||||
|
</text><text class="terminal-2316294325-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-2316294325-line-10)">
|
||||||
|
</text><text class="terminal-2316294325-r1" x="0" y="288.4" textLength="85.4" clip-path="url(#terminal-2316294325-line-11)">options</text><text class="terminal-2316294325-r2" x="85.4" y="288.4" textLength="12.2" clip-path="url(#terminal-2316294325-line-11)">:</text><text class="terminal-2316294325-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-2316294325-line-11)">
|
||||||
|
</text><text class="terminal-2316294325-r3" x="24.4" y="312.8" textLength="24.4" clip-path="url(#terminal-2316294325-line-12)">-h</text><text class="terminal-2316294325-r2" x="48.8" y="312.8" textLength="24.4" clip-path="url(#terminal-2316294325-line-12)">, </text><text class="terminal-2316294325-r3" x="73.2" y="312.8" textLength="73.2" clip-path="url(#terminal-2316294325-line-12)">--help</text><text class="terminal-2316294325-r2" x="146.4" y="312.8" textLength="610" clip-path="url(#terminal-2316294325-line-12)">                   show this help message and exit</text><text class="terminal-2316294325-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-2316294325-line-12)">
|
||||||
|
</text><text class="terminal-2316294325-r3" x="24.4" y="337.2" textLength="24.4" clip-path="url(#terminal-2316294325-line-13)">-k</text><text class="terminal-2316294325-r2" x="48.8" y="337.2" textLength="24.4" clip-path="url(#terminal-2316294325-line-13)">, </text><text class="terminal-2316294325-r3" x="73.2" y="337.2" textLength="73.2" clip-path="url(#terminal-2316294325-line-13)">--keep</text><text class="terminal-2316294325-r2" x="146.4" y="337.2" textLength="475.8" clip-path="url(#terminal-2316294325-line-13)">                   preserve environment</text><text class="terminal-2316294325-r2" x="854" y="337.2" textLength="12.2" clip-path="url(#terminal-2316294325-line-13)">
|
||||||
|
</text><text class="terminal-2316294325-r3" x="24.4" y="361.6" textLength="24.4" clip-path="url(#terminal-2316294325-line-14)">-r</text><text class="terminal-2316294325-r2" x="48.8" y="361.6" textLength="24.4" clip-path="url(#terminal-2316294325-line-14)">, </text><text class="terminal-2316294325-r3" x="73.2" y="361.6" textLength="170.8" clip-path="url(#terminal-2316294325-line-14)">--requirements</text><text class="terminal-2316294325-r4" x="244" y="361.6" textLength="85.4" clip-path="url(#terminal-2316294325-line-14)"> <path></text><text class="terminal-2316294325-r2" x="329.4" y="361.6" textLength="402.6" clip-path="url(#terminal-2316294325-line-14)">    path/to/requirements.txt file</text><text class="terminal-2316294325-r2" x="854" y="361.6" textLength="12.2" clip-path="url(#terminal-2316294325-line-14)">
|
||||||
|
</text><text class="terminal-2316294325-r3" x="24.4" y="386" textLength="24.4" clip-path="url(#terminal-2316294325-line-15)">-b</text><text class="terminal-2316294325-r2" x="48.8" y="386" textLength="24.4" clip-path="url(#terminal-2316294325-line-15)">, </text><text class="terminal-2316294325-r3" x="73.2" y="386" textLength="61" clip-path="url(#terminal-2316294325-line-15)">--bin</text><text class="terminal-2316294325-r4" x="134.2" y="386" textLength="73.2" clip-path="url(#terminal-2316294325-line-15)"> <bin></text><text class="terminal-2316294325-r2" x="207.4" y="386" textLength="549" clip-path="url(#terminal-2316294325-line-15)">              console_script/script to invoke</text><text class="terminal-2316294325-r2" x="854" y="386" textLength="12.2" clip-path="url(#terminal-2316294325-line-15)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 11 KiB |
145
docs/svgs/viv-shim-help.svg
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
<svg class="rich-terminal shadow" viewBox="0 0 890.3333333333334 594.7333333333333" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io & yartsu https://github.com/daylinmorgan/yartsu -->
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
||||||
|
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-783195567-matrix {
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24.4px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terminal-783195567-title {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
-webkit-filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
filter: drop-shadow( 2px 5px 2px rgba(0, 0, 0, .7));
|
||||||
|
}
|
||||||
|
.terminal-783195567-r1 { fill: #94e2d5;font-weight: bold }
|
||||||
|
.terminal-783195567-r2 { fill: #c6d0f5 }
|
||||||
|
.terminal-783195567-r3 { fill: #f9e2af;font-weight: bold }
|
||||||
|
.terminal-783195567-r4 { fill: #f9e2af }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<clipPath id="terminal-783195567-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="853.0" height="511.4" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-0">
|
||||||
|
<rect x="0" y="1.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-1">
|
||||||
|
<rect x="0" y="25.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-2">
|
||||||
|
<rect x="0" y="50.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-3">
|
||||||
|
<rect x="0" y="74.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-4">
|
||||||
|
<rect x="0" y="99.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-5">
|
||||||
|
<rect x="0" y="123.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-6">
|
||||||
|
<rect x="0" y="147.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-7">
|
||||||
|
<rect x="0" y="172.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-8">
|
||||||
|
<rect x="0" y="196.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-9">
|
||||||
|
<rect x="0" y="221.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-10">
|
||||||
|
<rect x="0" y="245.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-11">
|
||||||
|
<rect x="0" y="269.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-12">
|
||||||
|
<rect x="0" y="294.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-13">
|
||||||
|
<rect x="0" y="318.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-14">
|
||||||
|
<rect x="0" y="343.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-15">
|
||||||
|
<rect x="0" y="367.5" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-16">
|
||||||
|
<rect x="0" y="391.9" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-17">
|
||||||
|
<rect x="0" y="416.3" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-18">
|
||||||
|
<rect x="0" y="440.7" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="terminal-783195567-line-19">
|
||||||
|
<rect x="0" y="465.1" width="854" height="24.65"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect fill="#1e1e2e" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="10.1667" y="1" width="870" height="560.4" rx="8"/><text class="terminal-783195567-title" fill="#c6d0f5" text-anchor="middle" x="435" y="27">viv shim --help</text>
|
||||||
|
<g transform="translate(32,22)">
|
||||||
|
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
||||||
|
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
||||||
|
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(18.166666666666664, 41) scale(.95)" clip-path="url(#terminal-783195567-clip-terminal)">
|
||||||
|
|
||||||
|
<g class="terminal-783195567-matrix">
|
||||||
|
<text class="terminal-783195567-r1" x="0" y="20" textLength="61" clip-path="url(#terminal-783195567-line-0)">usage</text><text class="terminal-783195567-r2" x="61" y="20" textLength="756.4" clip-path="url(#terminal-783195567-line-0)">: viv shim [-h] [-f] [-o <path>] [-p {abs,rel}] [-s] [-k] [-r </text><text class="terminal-783195567-r2" x="854" y="20" textLength="12.2" clip-path="url(#terminal-783195567-line-0)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="0" y="44.4" textLength="353.8" clip-path="url(#terminal-783195567-line-1)"><path>] [-b <bin>] [reqs ...]</text><text class="terminal-783195567-r2" x="854" y="44.4" textLength="12.2" clip-path="url(#terminal-783195567-line-1)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="854" y="68.8" textLength="12.2" clip-path="url(#terminal-783195567-line-2)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="0" y="93.2" textLength="353.8" clip-path="url(#terminal-783195567-line-3)">generate viv-powered cli apps</text><text class="terminal-783195567-r2" x="854" y="93.2" textLength="12.2" clip-path="url(#terminal-783195567-line-3)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="854" y="117.6" textLength="12.2" clip-path="url(#terminal-783195567-line-4)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="0" y="142" textLength="109.8" clip-path="url(#terminal-783195567-line-5)">examples:</text><text class="terminal-783195567-r2" x="854" y="142" textLength="12.2" clip-path="url(#terminal-783195567-line-5)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="0" y="166.4" textLength="195.2" clip-path="url(#terminal-783195567-line-6)">  viv shim black</text><text class="terminal-783195567-r2" x="854" y="166.4" textLength="12.2" clip-path="url(#terminal-783195567-line-6)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="0" y="190.8" textLength="561.2" clip-path="url(#terminal-783195567-line-7)">  viv shim yartsu -o ~/bin/yartsu --standalone</text><text class="terminal-783195567-r2" x="854" y="190.8" textLength="12.2" clip-path="url(#terminal-783195567-line-7)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="854" y="215.2" textLength="12.2" clip-path="url(#terminal-783195567-line-8)">
|
||||||
|
</text><text class="terminal-783195567-r1" x="0" y="239.6" textLength="244" clip-path="url(#terminal-783195567-line-9)">positional arguments</text><text class="terminal-783195567-r2" x="244" y="239.6" textLength="12.2" clip-path="url(#terminal-783195567-line-9)">:</text><text class="terminal-783195567-r2" x="854" y="239.6" textLength="12.2" clip-path="url(#terminal-783195567-line-9)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="264" textLength="48.8" clip-path="url(#terminal-783195567-line-10)">reqs</text><text class="terminal-783195567-r2" x="73.2" y="264" textLength="585.6" clip-path="url(#terminal-783195567-line-10)">                         requirements specifiers</text><text class="terminal-783195567-r2" x="854" y="264" textLength="12.2" clip-path="url(#terminal-783195567-line-10)">
|
||||||
|
</text><text class="terminal-783195567-r2" x="854" y="288.4" textLength="12.2" clip-path="url(#terminal-783195567-line-11)">
|
||||||
|
</text><text class="terminal-783195567-r1" x="0" y="312.8" textLength="85.4" clip-path="url(#terminal-783195567-line-12)">options</text><text class="terminal-783195567-r2" x="85.4" y="312.8" textLength="12.2" clip-path="url(#terminal-783195567-line-12)">:</text><text class="terminal-783195567-r2" x="854" y="312.8" textLength="12.2" clip-path="url(#terminal-783195567-line-12)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="337.2" textLength="24.4" clip-path="url(#terminal-783195567-line-13)">-h</text><text class="terminal-783195567-r2" x="48.8" y="337.2" textLength="24.4" clip-path="url(#terminal-783195567-line-13)">, </text><text class="terminal-783195567-r3" x="73.2" y="337.2" textLength="73.2" clip-path="url(#terminal-783195567-line-13)">--help</text><text class="terminal-783195567-r2" x="146.4" y="337.2" textLength="610" clip-path="url(#terminal-783195567-line-13)">                   show this help message and exit</text><text class="terminal-783195567-r2" x="854" y="337.2" textLength="12.2" clip-path="url(#terminal-783195567-line-13)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="361.6" textLength="24.4" clip-path="url(#terminal-783195567-line-14)">-f</text><text class="terminal-783195567-r2" x="48.8" y="361.6" textLength="24.4" clip-path="url(#terminal-783195567-line-14)">, </text><text class="terminal-783195567-r3" x="73.2" y="361.6" textLength="97.6" clip-path="url(#terminal-783195567-line-14)">--freeze</text><text class="terminal-783195567-r2" x="170.8" y="361.6" textLength="585.6" clip-path="url(#terminal-783195567-line-14)">                 freeze/resolve all dependencies</text><text class="terminal-783195567-r2" x="854" y="361.6" textLength="12.2" clip-path="url(#terminal-783195567-line-14)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="386" textLength="24.4" clip-path="url(#terminal-783195567-line-15)">-o</text><text class="terminal-783195567-r2" x="48.8" y="386" textLength="24.4" clip-path="url(#terminal-783195567-line-15)">, </text><text class="terminal-783195567-r3" x="73.2" y="386" textLength="97.6" clip-path="url(#terminal-783195567-line-15)">--output</text><text class="terminal-783195567-r4" x="170.8" y="386" textLength="85.4" clip-path="url(#terminal-783195567-line-15)"> <path></text><text class="terminal-783195567-r2" x="256.2" y="386" textLength="353.8" clip-path="url(#terminal-783195567-line-15)">          path/to/output file</text><text class="terminal-783195567-r2" x="854" y="386" textLength="12.2" clip-path="url(#terminal-783195567-line-15)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="410.4" textLength="24.4" clip-path="url(#terminal-783195567-line-16)">-p</text><text class="terminal-783195567-r2" x="48.8" y="410.4" textLength="24.4" clip-path="url(#terminal-783195567-line-16)">, </text><text class="terminal-783195567-r3" x="73.2" y="410.4" textLength="73.2" clip-path="url(#terminal-783195567-line-16)">--path</text><text class="terminal-783195567-r4" x="146.4" y="410.4" textLength="122" clip-path="url(#terminal-783195567-line-16)"> {abs,rel}</text><text class="terminal-783195567-r2" x="268.4" y="410.4" textLength="549" clip-path="url(#terminal-783195567-line-16)">         generate line to add viv to sys.path</text><text class="terminal-783195567-r2" x="854" y="410.4" textLength="12.2" clip-path="url(#terminal-783195567-line-16)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="434.8" textLength="24.4" clip-path="url(#terminal-783195567-line-17)">-s</text><text class="terminal-783195567-r2" x="48.8" y="434.8" textLength="24.4" clip-path="url(#terminal-783195567-line-17)">, </text><text class="terminal-783195567-r3" x="73.2" y="434.8" textLength="146.4" clip-path="url(#terminal-783195567-line-17)">--standalone</text><text class="terminal-783195567-r2" x="219.6" y="434.8" textLength="634.4" clip-path="url(#terminal-783195567-line-17)">             generate standalone activation function</text><text class="terminal-783195567-r2" x="854" y="434.8" textLength="12.2" clip-path="url(#terminal-783195567-line-17)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="459.2" textLength="24.4" clip-path="url(#terminal-783195567-line-18)">-k</text><text class="terminal-783195567-r2" x="48.8" y="459.2" textLength="24.4" clip-path="url(#terminal-783195567-line-18)">, </text><text class="terminal-783195567-r3" x="73.2" y="459.2" textLength="73.2" clip-path="url(#terminal-783195567-line-18)">--keep</text><text class="terminal-783195567-r2" x="146.4" y="459.2" textLength="475.8" clip-path="url(#terminal-783195567-line-18)">                   preserve environment</text><text class="terminal-783195567-r2" x="854" y="459.2" textLength="12.2" clip-path="url(#terminal-783195567-line-18)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="483.6" textLength="24.4" clip-path="url(#terminal-783195567-line-19)">-r</text><text class="terminal-783195567-r2" x="48.8" y="483.6" textLength="24.4" clip-path="url(#terminal-783195567-line-19)">, </text><text class="terminal-783195567-r3" x="73.2" y="483.6" textLength="170.8" clip-path="url(#terminal-783195567-line-19)">--requirements</text><text class="terminal-783195567-r4" x="244" y="483.6" textLength="85.4" clip-path="url(#terminal-783195567-line-19)"> <path></text><text class="terminal-783195567-r2" x="329.4" y="483.6" textLength="402.6" clip-path="url(#terminal-783195567-line-19)">    path/to/requirements.txt file</text><text class="terminal-783195567-r2" x="854" y="483.6" textLength="12.2" clip-path="url(#terminal-783195567-line-19)">
|
||||||
|
</text><text class="terminal-783195567-r3" x="24.4" y="508" textLength="24.4" clip-path="url(#terminal-783195567-line-20)">-b</text><text class="terminal-783195567-r2" x="48.8" y="508" textLength="24.4" clip-path="url(#terminal-783195567-line-20)">, </text><text class="terminal-783195567-r3" x="73.2" y="508" textLength="61" clip-path="url(#terminal-783195567-line-20)">--bin</text><text class="terminal-783195567-r4" x="134.2" y="508" textLength="73.2" clip-path="url(#terminal-783195567-line-20)"> <bin></text><text class="terminal-783195567-r2" x="207.4" y="508" textLength="549" clip-path="url(#terminal-783195567-line-20)">              console_script/script to invoke</text><text class="terminal-783195567-r2" x="854" y="508" textLength="12.2" clip-path="url(#terminal-783195567-line-20)">
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |
|
@ -1,26 +1,43 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# fmt: off
|
def _viv_use(*pkgs, track_exe=False, name=""):
|
||||||
def _viv_use(*pkgs, track_exe=False, name=""): # noqa
|
import hashlib, json, os, site, shutil, sys, venv # noqa
|
||||||
T,F,N=True,False,None;i,s,m,spec=__import__,str,map,[*pkgs] # noqa
|
from pathlib import Path # noqa
|
||||||
e,w=lambda x: T if x else F,lambda p,t: p.write_text(t) # noqa
|
from datetime import datetime # noqa
|
||||||
if not {*m(type,pkgs)}=={s}: raise ValueError(f"spec: {pkgs} is invalid") # noqa
|
from subprocess import run # noqa
|
||||||
ge,sys,P,ew=i("os").getenv,i("sys"),i("pathlib").Path,i("sys").stderr.write # noqa
|
|
||||||
(cache:=(P(ge("XDG_CACHE_HOME",P.home()/".cache"))/"viv"/"venvs")).mkdir(parents=T,exist_ok=T) # noqa
|
if not {*map(type, pkgs)} == {str}:
|
||||||
((sha256:=i("hashlib").sha256()).update((s(spec)+ # noqa
|
raise ValueError(f"spec: {pkgs} is invalid")
|
||||||
(((exe:=("N/A",s(P(i("sys").executable).resolve()))[e(track_exe)])))).encode())) # noqa
|
|
||||||
if {env:=cache/(((_id:=sha256.hexdigest()),name)[e(name)])}-{*cache.glob("*/")} or ge("VIV_FORCE"): # noqa
|
meta = dict.fromkeys(("created", "accessed"), (t := str(datetime.today())))
|
||||||
v=e(ge("VIV_VERBOSE"));ew(f"generating new vivenv -> {env.name}\n") # noqa
|
runner = str(Path(__file__).absolute().resolve())
|
||||||
i("venv").EnvBuilder(with_pip=T,clear=T).create(env) # noqa
|
force, verbose, xdg = map(os.getenv, ("VIV_FORCE", "VIV_VERBOSE", "XDG_CACHE_HOME"))
|
||||||
w(env/"pip.conf","[global]\ndisable-pip-version-check=true") # noqa
|
cache = (Path(xdg) if xdg else Path.home() / ".cache") / "viv" / "venvs"
|
||||||
if (rc:=(p:=i("subprocess").run([env/"bin"/"pip","install","--force-reinstall",*spec],text=T, # noqa
|
cache.mkdir(parents=True, exist_ok=True)
|
||||||
stdout=(-1,N)[v],stderr=(-2,N)[v])).returncode)!=0: # noqa
|
exe = str(Path(sys.executable).resolve()) if track_exe else "N/A"
|
||||||
if env.is_dir():i("shutil").rmtree(env) # noqa
|
(sha256 := hashlib.sha256()).update((str(spec := [*pkgs]) + exe).encode())
|
||||||
ew(f"pip had non zero exit ({rc})\n{p.stdout}\n");sys.exit(rc) # noqa
|
_id = sha256.hexdigest()
|
||||||
w(env/"viv-info.json",i("json").dumps( # noqa
|
if (env := cache / (name if name else _id)) not in cache.glob("*/") or force:
|
||||||
{"created":s(i("datetime").datetime.today()),"id":_id,"spec":spec,"exe":exe})) # noqa
|
sys.stderr.write(f"generating new vivenv -> {env.name}\n")
|
||||||
sys.path=[p for p in (*sys.path,s(*(env/"lib").glob("py*/si*")))if p!=i("site").USER_SITE] # noqa
|
venv.EnvBuilder(with_pip=True, clear=True).create(env)
|
||||||
return env # noqa
|
(env / "pip.conf").write_text("[global]\ndisable-pip-version-check=true")
|
||||||
# fmt: on
|
run_kw = dict(zip(("stdout", "stderr"), ((None,) * 2 if verbose else (-1, 2))))
|
||||||
|
p = run([env / "bin" / "pip", "install", "--force-reinstall", *spec], **run_kw)
|
||||||
|
if (rc := p.returncode) != 0:
|
||||||
|
if env.is_dir():
|
||||||
|
shutil.rmtree(env)
|
||||||
|
sys.stderr.write(f"pip had non zero exit ({rc})\n{p.stdout.decode()}\n")
|
||||||
|
sys.exit(rc)
|
||||||
|
meta.update(dict(id=_id, spec=spec, exe=exe, name=name, files=[runner]))
|
||||||
|
else:
|
||||||
|
meta = json.loads((env / "vivmeta.json").read_text())
|
||||||
|
meta.update(dict(accessed=t, files=sorted({*meta["files"], runner})))
|
||||||
|
|
||||||
|
(env / "vivmeta.json").write_text(json.dumps(meta))
|
||||||
|
sys.path = [p for p in sys.path if not p != site.USER_SITE]
|
||||||
|
site.addsitedir(str(*(env / "lib").glob("py*/si*")))
|
||||||
|
return env
|
||||||
|
|
||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
27
mkdocs.yml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
site_name: viv
|
||||||
|
site_url: https://viv.dayl.in
|
||||||
|
repo_url: https://github.com/daylinmorgan/viv
|
||||||
|
edit_uri: edit/main/docs/
|
||||||
|
repo_name: daylinmorgan/viv
|
||||||
|
|
||||||
|
theme:
|
||||||
|
name: material
|
||||||
|
logo: https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg
|
||||||
|
favicon: https://raw.githubusercontent.com/daylinmorgan/viv/main/assets/logo.svg
|
||||||
|
features:
|
||||||
|
- navigation.indexes
|
||||||
|
palette:
|
||||||
|
# Palette toggle for dark mode
|
||||||
|
- scheme: slate
|
||||||
|
primary: deep purple
|
||||||
|
toggle:
|
||||||
|
icon: material/brightness-4
|
||||||
|
name: Switch to light mode
|
||||||
|
|
||||||
|
# Palette toggle for light mode
|
||||||
|
- scheme: default
|
||||||
|
primary: deep purple
|
||||||
|
toggle:
|
||||||
|
icon: material/brightness-7
|
||||||
|
name: Switch to dark mode
|
||||||
|
|
538
pdm.lock
|
@ -1,12 +1,39 @@
|
||||||
# This file is @generated by PDM.
|
# This file is @generated by PDM.
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "certifi"
|
||||||
|
version = "2023.5.7"
|
||||||
|
requires_python = ">=3.6"
|
||||||
|
summary = "Python package for providing Mozilla's CA Bundle."
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfgv"
|
name = "cfgv"
|
||||||
version = "3.3.1"
|
version = "3.3.1"
|
||||||
requires_python = ">=3.6.1"
|
requires_python = ">=3.6.1"
|
||||||
summary = "Validate configuration and produce human readable error messages."
|
summary = "Validate configuration and produce human readable error messages."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "charset-normalizer"
|
||||||
|
version = "3.1.0"
|
||||||
|
requires_python = ">=3.7.0"
|
||||||
|
summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "click"
|
||||||
|
version = "8.1.3"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Composable command line interface toolkit"
|
||||||
|
dependencies = [
|
||||||
|
"colorama; platform_system == \"Windows\"",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colorama"
|
||||||
|
version = "0.4.6"
|
||||||
|
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
||||||
|
summary = "Cross-platform colored terminal text."
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "distlib"
|
name = "distlib"
|
||||||
version = "0.3.6"
|
version = "0.3.6"
|
||||||
|
@ -18,12 +45,107 @@ version = "3.12.0"
|
||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "A platform independent file lock."
|
summary = "A platform independent file lock."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ghp-import"
|
||||||
|
version = "2.1.0"
|
||||||
|
summary = "Copy your docs directly to the gh-pages branch."
|
||||||
|
dependencies = [
|
||||||
|
"python-dateutil>=2.8.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "identify"
|
name = "identify"
|
||||||
version = "2.5.24"
|
version = "2.5.24"
|
||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "File identification library for Python"
|
summary = "File identification library for Python"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "idna"
|
||||||
|
version = "3.4"
|
||||||
|
requires_python = ">=3.5"
|
||||||
|
summary = "Internationalized Domain Names in Applications (IDNA)"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "importlib-metadata"
|
||||||
|
version = "6.6.0"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Read metadata from Python packages"
|
||||||
|
dependencies = [
|
||||||
|
"zipp>=0.5",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jinja2"
|
||||||
|
version = "3.1.2"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "A very fast and expressive template engine."
|
||||||
|
dependencies = [
|
||||||
|
"MarkupSafe>=2.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "markdown"
|
||||||
|
version = "3.3.7"
|
||||||
|
requires_python = ">=3.6"
|
||||||
|
summary = "Python implementation of Markdown."
|
||||||
|
dependencies = [
|
||||||
|
"importlib-metadata>=4.4; python_version < \"3.10\"",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "markupsafe"
|
||||||
|
version = "2.1.2"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Safely add untrusted strings to HTML/XML markup."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mergedeep"
|
||||||
|
version = "1.3.4"
|
||||||
|
requires_python = ">=3.6"
|
||||||
|
summary = "A deep merge function for 🐍."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mkdocs"
|
||||||
|
version = "1.4.3"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Project documentation with Markdown."
|
||||||
|
dependencies = [
|
||||||
|
"click>=7.0",
|
||||||
|
"colorama>=0.4; platform_system == \"Windows\"",
|
||||||
|
"ghp-import>=1.0",
|
||||||
|
"importlib-metadata>=4.3; python_version < \"3.10\"",
|
||||||
|
"jinja2>=2.11.1",
|
||||||
|
"markdown<3.4,>=3.2.1",
|
||||||
|
"mergedeep>=1.3.4",
|
||||||
|
"packaging>=20.5",
|
||||||
|
"pyyaml-env-tag>=0.1",
|
||||||
|
"pyyaml>=5.1",
|
||||||
|
"watchdog>=2.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mkdocs-material"
|
||||||
|
version = "9.1.15"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Documentation that simply works"
|
||||||
|
dependencies = [
|
||||||
|
"colorama>=0.4",
|
||||||
|
"jinja2>=3.0",
|
||||||
|
"markdown>=3.2",
|
||||||
|
"mkdocs-material-extensions>=1.1",
|
||||||
|
"mkdocs>=1.4.2",
|
||||||
|
"pygments>=2.14",
|
||||||
|
"pymdown-extensions>=9.9.1",
|
||||||
|
"regex>=2022.4.24",
|
||||||
|
"requests>=2.26",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mkdocs-material-extensions"
|
||||||
|
version = "1.1.1"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Extension pack for Python Markdown and MkDocs Material."
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mypy"
|
name = "mypy"
|
||||||
version = "1.3.0"
|
version = "1.3.0"
|
||||||
|
@ -50,6 +172,12 @@ dependencies = [
|
||||||
"setuptools",
|
"setuptools",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "packaging"
|
||||||
|
version = "23.1"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Core utilities for Python packages"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "platformdirs"
|
name = "platformdirs"
|
||||||
version = "3.5.1"
|
version = "3.5.1"
|
||||||
|
@ -69,18 +197,76 @@ dependencies = [
|
||||||
"virtualenv>=20.10.0",
|
"virtualenv>=20.10.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pygments"
|
||||||
|
version = "2.15.1"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Pygments is a syntax highlighting package written in Python."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pymdown-extensions"
|
||||||
|
version = "10.0.1"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Extension pack for Python Markdown."
|
||||||
|
dependencies = [
|
||||||
|
"markdown>=3.2",
|
||||||
|
"pyyaml",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-dateutil"
|
||||||
|
version = "2.8.2"
|
||||||
|
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
||||||
|
summary = "Extensions to the standard Python datetime module"
|
||||||
|
dependencies = [
|
||||||
|
"six>=1.5",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyyaml"
|
name = "pyyaml"
|
||||||
version = "6.0"
|
version = "6.0"
|
||||||
requires_python = ">=3.6"
|
requires_python = ">=3.6"
|
||||||
summary = "YAML parser and emitter for Python"
|
summary = "YAML parser and emitter for Python"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyyaml-env-tag"
|
||||||
|
version = "0.1"
|
||||||
|
requires_python = ">=3.6"
|
||||||
|
summary = "A custom YAML tag for referencing environment variables in YAML files. "
|
||||||
|
dependencies = [
|
||||||
|
"pyyaml",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex"
|
||||||
|
version = "2023.5.5"
|
||||||
|
requires_python = ">=3.6"
|
||||||
|
summary = "Alternative regular expression module, to replace re."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "requests"
|
||||||
|
version = "2.31.0"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Python HTTP for Humans."
|
||||||
|
dependencies = [
|
||||||
|
"certifi>=2017.4.17",
|
||||||
|
"charset-normalizer<4,>=2",
|
||||||
|
"idna<4,>=2.5",
|
||||||
|
"urllib3<3,>=1.21.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "67.8.0"
|
version = "67.8.0"
|
||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "Easily download, build, install, upgrade, and uninstall Python packages"
|
summary = "Easily download, build, install, upgrade, and uninstall Python packages"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "six"
|
||||||
|
version = "1.16.0"
|
||||||
|
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
summary = "Python 2 and 3 compatibility utilities"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tomli"
|
name = "tomli"
|
||||||
version = "2.0.1"
|
version = "2.0.1"
|
||||||
|
@ -93,6 +279,12 @@ version = "4.6.2"
|
||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "Backported and Experimental Type Hints for Python 3.7+"
|
summary = "Backported and Experimental Type Hints for Python 3.7+"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "urllib3"
|
||||||
|
version = "2.0.2"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "virtualenv"
|
name = "virtualenv"
|
||||||
version = "20.23.0"
|
version = "20.23.0"
|
||||||
|
@ -104,17 +296,118 @@ dependencies = [
|
||||||
"platformdirs<4,>=3.2",
|
"platformdirs<4,>=3.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "watchdog"
|
||||||
|
version = "3.0.0"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Filesystem events monitoring"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zipp"
|
||||||
|
version = "3.15.0"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "Backport of pathlib-compatible object wrapper for zip files"
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
lock_version = "4.2"
|
lock_version = "4.2"
|
||||||
cross_platform = true
|
cross_platform = true
|
||||||
groups = ["default", "dev"]
|
groups = ["default", "dev"]
|
||||||
content_hash = "sha256:951aef3816a5f14d87476b8ca712befbad8dc33b9624ba499f68e72cff9fcfe5"
|
content_hash = "sha256:3aa1e500dfae293335fe921d63174aaeff7c99e6d9b15d3268c65f7800e96ca1"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
|
"certifi 2023.5.7" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/93/71/752f7a4dd4c20d6b12341ed1732368546bc0ca9866139fe812f6009d9ac7/certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9d/19/59961b522e6757f0c9097e4493fa906031b95b3ebe9360b2c3083561a6b4/certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"},
|
||||||
|
]
|
||||||
"cfgv 3.3.1" = [
|
"cfgv 3.3.1" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/6d/82/0a0ebd35bae9981dea55c06f8e6aaf44a49171ad798795c72c6f64cba4c2/cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"},
|
{url = "https://files.pythonhosted.org/packages/6d/82/0a0ebd35bae9981dea55c06f8e6aaf44a49171ad798795c72c6f64cba4c2/cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"},
|
||||||
{url = "https://files.pythonhosted.org/packages/c4/bf/d0d622b660d414a47dc7f0d303791a627663f554345b21250e39e7acb48b/cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"},
|
{url = "https://files.pythonhosted.org/packages/c4/bf/d0d622b660d414a47dc7f0d303791a627663f554345b21250e39e7acb48b/cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"},
|
||||||
]
|
]
|
||||||
|
"charset-normalizer 3.1.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/00/47/f14533da238134f5067fb1d951eb03d5c4be895d6afb11c7ebd07d111acb/charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/01/c7/0407de35b70525dba2a58a2724a525cf882ee76c3d2171d834463c5d2881/charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/05/f3/86b5fcb5c8fe8b4231362918a7c4d8f549c56561c5fdb495a3c5b41c6862/charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/07/6b/98d41a0221991a806e88c95bfeecf8935fbf465b02eb4b469770d572183a/charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/0a/67/8d3d162ec6641911879651cdef670c3c6136782b711d7f8e82e2fffe06e0/charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/12/12/c5c39f5a149cd6788d2e40cea5618bae37380e2754fcdf53dc9e01bdd33a/charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/12/68/4812f9b05ac0a2b7619ac3dd7d7e3fc52c12006b84617021c615fc2fcf42/charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/13/b7/21729a6d512246aa0bb872b90aea0d9fcd1b293762cdb1d1d33c01140074/charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/16/58/19fd2f62e6ff44ba0db0cd44b584790555e2cde09293149f4409d654811b/charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/18/36/7ae10a3dd7f9117b61180671f8d1e4802080cca88ad40aaabd3dad8bab0e/charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/1c/9b/de2adc43345623da8e7c958719528a42b6d87d2601017ce1187d43b8a2d7/charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/1f/be/c6c76cf8fcf6918922223203c83ba8192eff1c6a709e8cfec7f5ca3e7d2d/charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/21/16/1b0d8fdcb81bbf180976af4f867ce0f2244d303ab10d452fde361dec3b5c/charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/23/13/cf5d7bb5bc95f120df64d6c470581189df51d7f011560b2a06a395b7a120/charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/26/20/83e1804a62b25891c4e770c94d9fd80233bbb3f2a51c4fadee7a196e5a5b/charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2c/2f/ec805104098085728b7cb610deede7195c6fa59f51942422f02cc427b6f6/charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2e/25/3eab2b38fef9ae59f7b4e9c1e62eb50609d911867e5acabace95fe25c0b1/charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/31/8b/81c3515a69d06b501fcce69506af57a7a19bd9f42cabd1a667b1b40f2c55/charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/33/10/c87ba15f779f8251ae55fa147631339cd91e7af51c3c133d2687c6e41800/charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/33/97/9967fb2d364a9da38557e4af323abcd58cc05bdd8f77e9fd5ae4882772cc/charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/45/3d/fa2683f5604f99fba5098a7313e5d4846baaecbee754faf115907f21a85f/charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4e/11/f7077d78b18aca8ea3186a706c0221aa2bc34c442a3d3bdf3ad401a29052/charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4f/18/92866f050f7114ba38aba4f4a69f83cc2a25dc2e5a8af4b44fd1bfd6d528/charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4f/7c/af43743567a7da2a069b4f9fa31874c3c02b963cd1fb84fe1e7568a567e6/charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4f/a2/9031ba4a008e11a21d7b7aa41751290d2f2035a2f14ecb6e589771a17c47/charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/56/24/5f2dedcf3d0673931b6200c410832ae44b376848bc899dbf1fa6c91c4ebe/charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5d/2b/4d8c80400c04ae3c8dbc847de092e282b5c7b17f8f9505d68bb3e5815c71/charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/61/e3/ad9ae58b28482d1069eba1edec2be87701f5dd6fd6024a665020d66677a0/charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/67/30/dbab1fe5ab2ce5d3d517ad9936170d896e9687f3860a092519f1fe359812/charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/67/df/660e9665ace7ad711e275194a86cb757fb4d4e513fae5ff3d39573db4984/charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/68/77/af702eba147ba963b27eb00832cef6b8c4cb9fcf7404a476993876434b93/charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/69/22/66351781e668158feef71c5e3b059a79ecc9efc3ef84a45888b0f3a933d5/charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/6d/59/59a3f4d8a59ee270da77f9e954a0e284c9d6884d39ec69d696d9aa5ff2f2/charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/72/90/667a6bc6abe42fc10adf4cd2c1e1c399d78e653dbac4c8018350843d4ab7/charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/74/5f/361202de730532028458b729781b8435f320e31a622c27f30e25eec80513/charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/74/f1/d0b8385b574f7e086fb6709e104b696707bd3742d54a6caf0cebbb7e975b/charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/76/ad/516fed8ffaf02e7a01cd6f6e9d101a6dec64d4db53bec89d30802bf30a96/charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/82/b9/51b66a647be8685dee75b7807e0f750edf5c1e4f29bc562ad285c501e3c7/charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/84/23/f60cda6c70ae922ad78368982f06e7fef258fba833212f26275fe4727dc4/charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/85/e8/18d408d8fe29a56012c10d6b15960940b83f06620e9d7481581cdc6d9901/charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/94/70/23981e7bf098efbc4037e7c66d28a10e950d9296c08c6dea8ef290f9c79e/charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9a/f1/ff81439aa09070fee64173e6ca6ce1342f2b1cca997bcaae89e443812684/charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9e/62/a1e0a8f8830c92014602c8a88a1a20b8a68d636378077381f671e6e1cec9/charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a2/6c/5167f08da5298f383036c33cb749ab5b3405fd07853edc8314c6882c01b8/charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a4/03/355281b62c26712a50c6a9dd75339d8cdd58488fd7bf2556ba1320ebd315/charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a9/83/138d2624fdbcb62b7e14715eb721d44347e41a1b4c16544661e940793f49/charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ac/7f/62d5dff4e9cb993e4b0d4ea78a74cc84d7d92120879529e0ce0965765936/charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ac/c5/990bc41a98b7fa2677c665737fdf278bb74ad4b199c56b6b564b3d4cbfc5/charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ad/83/994bfca99e29f1bab66b9248e739360ee70b5aae0a5ee488cd776501edbc/charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/b0/55/d8ef4c8c7d2a8b3a16e7d9b03c59475c2ee96a0e0c90b14c99faaac0ee3b/charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/bb/dc/58fdef3ab85e8e7953a8b89ef1d2c06938b8ad88d9617f22967e1a90e6b8/charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/bc/08/7e7c97399806366ca515a049c3a1e4b644a6a2048bed16e5e67bfaafd0aa/charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/bc/92/ac692a303e53cdc8852ce72b1ac364b493ca5c9206a5c8db5b30a7f3019c/charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c2/35/dfb4032f5712747d3dcfdd19d0768f6d8f60910ae24ed066ecbf442be013/charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c6/ab/43ea052756b2f2dcb6a131897811c0e2704b0288f090336217d3346cd682/charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c9/8c/a76dd9f2c8803eb147e1e715727f5c3ba0ef39adaadf66a7b3698c113180/charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/cc/f6/21a66e524658bd1dd7b89ac9d1ee8f7823f2d9701a2fbc458ab9ede53c63/charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d1/ff/51fe7e6446415f143b159740c727850172bc35622b2a06dde3354bdebaf3/charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d5/92/86c0f0e66e897f6818c46dadef328a5b345d061688f9960fc6ca1fd03dbe/charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d7/4c/37ad75674e8c6bc22ab01bef673d2d6e46ee44203498c9a26aa23959afe5/charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d8/ca/a7ff600781bf1e5f702ba26bb82f2ba1d3a873a3f8ad73cc44c79dfaefa9/charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/dd/39/6276cf5a395ffd39b77dadf0e2fcbfca8dbfe48c56ada250c40086055143/charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e1/7c/398600268fc98b7e007f5a716bd60903fff1ecff75e45f5700212df5cd76/charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e1/b4/53678b2a14e0496fc167fe9b9e726ad33d670cfd2011031aa5caeee6b784/charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e5/aa/9d2d60d6a566423da96c15cd11cbb88a70f9aff9a4db096094ee19179cab/charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e6/98/a3f65f57651da1cecaed91d6f75291995d56c97442fa2a43d2a421139adf/charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ea/38/d31c7906c4be13060c1a5034087966774ef33ab57ff2eee76d71265173c3/charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ef/81/14b3b8f01ddaddad6cdec97f2f599aa2fa466bd5ee9af99b08b7713ccd29/charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f2/b7/e21e16c98575616f4ce09dc766dbccdac0ca119c176b184d46105e971a84/charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f2/d7/6ee92c11eda3f3c9cac1e059901092bfdf07388be7d2e60ac627527eee62/charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f4/0a/8c03913ed1eca9d831db0c28759edb6ce87af22bb55dbc005a52525a75b6/charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f6/0f/de1c4030fd669e6719277043e3b0f152a83c118dd1020cf85b51d443d04a/charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f8/ed/500609cb2457b002242b090c814549997424d72690ef3058cfdfca91f68b/charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fa/8e/2e5c742c3082bce3eea2ddd5b331d08050cda458bc362d71c48e07a44719/charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"},
|
||||||
|
]
|
||||||
|
"click 8.1.3" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/59/87/84326af34517fca8c58418d148f2403df25303e02736832403587318e9e8/click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c2/f1/df59e28c642d583f7dacffb1e0965d0e00b218e0186d7858ac5233dce840/click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
|
||||||
|
]
|
||||||
|
"colorama 0.4.6" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
||||||
|
]
|
||||||
"distlib 0.3.6" = [
|
"distlib 0.3.6" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/58/07/815476ae605bcc5f95c87a62b95e74a1bce0878bc7a3119bc2bf4178f175/distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"},
|
{url = "https://files.pythonhosted.org/packages/58/07/815476ae605bcc5f95c87a62b95e74a1bce0878bc7a3119bc2bf4178f175/distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"},
|
||||||
{url = "https://files.pythonhosted.org/packages/76/cb/6bbd2b10170ed991cf64e8c8b85e01f2fb38f95d1bc77617569e0b0b26ac/distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"},
|
{url = "https://files.pythonhosted.org/packages/76/cb/6bbd2b10170ed991cf64e8c8b85e01f2fb38f95d1bc77617569e0b0b26ac/distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"},
|
||||||
|
@ -123,10 +416,98 @@ content_hash = "sha256:951aef3816a5f14d87476b8ca712befbad8dc33b9624ba499f68e72cf
|
||||||
{url = "https://files.pythonhosted.org/packages/24/85/cf4df939cc0a037ebfe18353005e775916faec24dcdbc7a2f6539ad9d943/filelock-3.12.0.tar.gz", hash = "sha256:fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"},
|
{url = "https://files.pythonhosted.org/packages/24/85/cf4df939cc0a037ebfe18353005e775916faec24dcdbc7a2f6539ad9d943/filelock-3.12.0.tar.gz", hash = "sha256:fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"},
|
||||||
{url = "https://files.pythonhosted.org/packages/ad/73/b094a662ae05cdc4ec95bc54e434e307986a5de5960166b8161b7c1373ee/filelock-3.12.0-py3-none-any.whl", hash = "sha256:ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"},
|
{url = "https://files.pythonhosted.org/packages/ad/73/b094a662ae05cdc4ec95bc54e434e307986a5de5960166b8161b7c1373ee/filelock-3.12.0-py3-none-any.whl", hash = "sha256:ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"},
|
||||||
]
|
]
|
||||||
|
"ghp-import 2.1.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"},
|
||||||
|
]
|
||||||
"identify 2.5.24" = [
|
"identify 2.5.24" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/4f/fd/2c46fba2bc032ba4c970bb8de59d25187087d7138a0ebf7c1dcc91d94f01/identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"},
|
{url = "https://files.pythonhosted.org/packages/4f/fd/2c46fba2bc032ba4c970bb8de59d25187087d7138a0ebf7c1dcc91d94f01/identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"},
|
||||||
{url = "https://files.pythonhosted.org/packages/c4/f8/498e13e408d25ee6ff04aa0acbf91ad8e9caae74be91720fc0e811e649b7/identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"},
|
{url = "https://files.pythonhosted.org/packages/c4/f8/498e13e408d25ee6ff04aa0acbf91ad8e9caae74be91720fc0e811e649b7/identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"},
|
||||||
]
|
]
|
||||||
|
"idna 3.4" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/8b/e1/43beb3d38dba6cb420cefa297822eac205a277ab43e5ba5d5c46faf96438/idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
|
||||||
|
]
|
||||||
|
"importlib-metadata 6.6.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/0b/1f/9de392c2b939384e08812ef93adf37684ec170b5b6e7ea302d9f163c2ea0/importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/30/bb/bf2944b8b88c65b797acc2c6a2cb0fb817f7364debf0675792e034013858/importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"},
|
||||||
|
]
|
||||||
|
"jinja2 3.1.2" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/7a/ff/75c28576a1d900e87eb6335b063fab47a8ef3c8b4d88524c4bf78f670cce/Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
|
||||||
|
]
|
||||||
|
"markdown 3.3.7" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d6/58/79df20de6e67a83f0d0bbfe6c19bb82adf68cdf362885257eb01099f930a/Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f3/df/ca72f352e15b6f8ce32b74af029f1189abffb906f7c137501ffe69c98a65/Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"},
|
||||||
|
]
|
||||||
|
"markupsafe 2.1.2" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/02/2c/18d55e5df6a9ea33709d6c33e08cb2e07d39e20ad05d8c6fbf9c9bcafd54/MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/04/cf/9464c3c41b7cdb8df660cda75676697e7fb49ce1be7691a1162fc88da078/MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/06/3b/d026c21cd1dbee89f41127e93113dcf5fa85c6660d108847760b59b3a66d/MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/0a/88/78cb3d95afebd183d8b04442685ab4c70cfc1138b850ba20e2a07aff2f53/MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/0d/15/82b108c697bec4c26c00aed6975b778cf0eac6cbb77598862b10550b7fcc/MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/19/00/3b8eb0093c885576a1ce7f2263e7b8c01e55b9977433f8246f57cd81b0be/MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/1f/20/76f6337f1e7238a626ab34405ddd634636011b2ff947dcbd8995f16a7776/MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/22/88/9c0cae2f5ada778182f2842b377dd273d6be689953345c10b165478831eb/MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/29/d2/243e6b860d97c18d848fc2bee2f39d102755a2b04a5ce4d018d839711b46/MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/30/3e/0a69a24adb38df83e2f6989c38d68627a5f27181c82ecaa1fd03d1236dca/MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/34/19/64b0abc021b22766e86efee32b0e2af684c4b731ce8ac1d519c791800c13/MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/37/b2/6f4d5cac75ba6fe9f17671304fe339ea45a73c5609b5f5e652aa79c915c8/MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/39/8d/5c5ce72deb8567ab48a18fbd99dc0af3dd651b6691b8570947e54a28e0f3/MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/3d/66/2f636ba803fd6eb4cee7b3106ae02538d1e84a7fb7f4f8775c6528a87d31/MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/41/54/6e88795c64ab5dcda31b06406c062c2740d1a64db18219d4e21fc90928c1/MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/46/0c/10ee33673c5e36fa3809cf136971f81d951ca38516188ee11a965d9b2fe9/MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/48/cc/d027612e17b56088cfccd2c8e083518995fcb25a7b4f17fc146362a0499d/MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4b/34/dc837e5ad9e14634aac4342eb8b12a9be20a4f74f50cc0d765f7aa2fc1e3/MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/50/41/1442b693a40eb76d835ca2016e86a01479f17d7fd8288f9830f6790e366a/MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/52/36/b35c577c884ea352fc0c1eaed9ca4946ffc22cc9c3527a70408bfa9e9496/MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/56/0d/c9818629672a3368b773fa94597d79da77bdacc3186f097bb85023f785f6/MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5a/94/d056bf5dbadf7f4b193ee2a132b3d49ffa1602371e3847518b2982045425/MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5e/f6/8eb8a5692c1986b6e863877b0b8a83628aff14e5fbfaf11d9522b532bd9d/MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/66/21/dadb671aade8eb67ef96e0d8f90b1bd5e8cfb6ad9d8c7fa2c870ec0c257b/MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/76/b5/05ce70a3e31ecebcd3628cd180dc4761293aa496db85170fdc085ed2d79a/MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/77/26/af46880038c6eac3832e751298f1965f3a550f38d1e9ddaabd674860076b/MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/78/e6/91c9a20a943ea231c59024e181c4c5480097daf132428f2272670974637f/MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/79/e2/b818bf277fa6b01244943498cb2127372c01dde5eff7682837cc72740618/MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/7b/0f/0e99c2f342933c43af69849a6ba63f2eef54e14c6d0e10a26470fb6b40a9/MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/7c/e6/454df09f18e0ea34d189b447a9e1a9f66c2aa332b77fd5577ebc7ca14d42/MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/80/64/ccb65aadd71e7685caa69a885885a673e8748525a243fb26acea37201b44/MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/82/70/b3978786c7b576c25d84b009d2a20a11b5300d252fc3ce984e37b932e97c/MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/82/e3/4efcd74f10a7999783955aec36386f71082e6d7dafcc06b77b9df72b325a/MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/87/a1/d0f05a09c6c1aef89d1eea0ab0ff1ea897d4117d27f1571034a7e3ff515b/MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/93/ca/1c3ae0c6a5712d4ba98610cada03781ea0448436b17d1dcd4759115b15a1/MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/93/fa/d72f68f84f8537ee8aa3e0764d1eb11e5e025a5ca90c16e94a40f894c2fc/MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/95/7e/68018b70268fb4a2a605e2be44ab7b4dd7ce7808adae6c5ef32e34f4b55a/MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/95/88/8c8cce021ac1b1eedde349c6a41f6c256da60babf95e572071361ff3f66b/MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/96/92/a873b4a7fa20c2e30bffe883bb560330f3b6ce03aaf278f75f96d161935b/MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9d/80/8320f182d06a9b289b1a9f266f593feb91d3781c7e104bbe09e0c4c11439/MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/be/18/988e1913a40cc8eb725b1e073eacc130f7803a061577bdc0b9343eb3c696/MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c3/e5/42842a44bfd9ba2955c562b1139334a2f64cedb687e8969777fd07de42a9/MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c7/0e/22d0c8e6ee84414e251bd1bc555b2705af6b3fb99f0ba1ead2a0f51d423b/MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/cf/c1/d7596976a868fe3487212a382cc121358a53dc8e8d85ff2ee2c3d3b40f04/MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d1/10/ff89b23d4a24051c4e4f689b79ee06f230d7e9431445e24f5dd9d9a89730/MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e3/a9/e366665c7eae59c9c9d34b747cd5a3994847719a2304e0c8dec8b604dd98/MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e6/ff/d2378ca3cb3ac4a37af767b820b0f0bf3f5e9193a6acce0eefc379425c1c/MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e9/c6/2da36728c1310f141395176556500aeedfdea8c2b02a3b72ba61b69280e8/MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ea/60/2400ba59cf2465fa136487ee7299f52121a9d04b2cf8539ad43ad10e70e8/MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f9/aa/ebcd114deab08f892b1d70badda4436dbad1747f9e5b72cffb3de4c7129d/MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"},
|
||||||
|
]
|
||||||
|
"mergedeep 1.3.4" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"},
|
||||||
|
]
|
||||||
|
"mkdocs 1.4.3" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/42/7a/5ed794942ace9d00bb77a8036c64c999cda6ebaab57e9b8a6ec1aa5fc900/mkdocs-1.4.3-py3-none-any.whl", hash = "sha256:6ee46d309bda331aac915cd24aab882c179a933bd9e77b80ce7d2eaaa3f689dd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/b0/ef/49b4427e5eec761b77a3c3c421d3fd63010e2798b7401dc0fa2b875ef6b5/mkdocs-1.4.3.tar.gz", hash = "sha256:5955093bbd4dd2e9403c5afaf57324ad8b04f16886512a3ee6ef828956481c57"},
|
||||||
|
]
|
||||||
|
"mkdocs-material 9.1.15" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/12/f0/e25212dc7a0b028ba95f6b2db0ff8efd3317d9631ecd56bcff434212c2fa/mkdocs_material-9.1.15.tar.gz", hash = "sha256:8513ab847c9a541ed3d11a3a7eed556caf72991ee786c31c5aac6691a121088a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/48/c7/9f4e97ea777e1dfa8e072cc07299a67509819f2d3da09dccf52d26a2eb4f/mkdocs_material-9.1.15-py3-none-any.whl", hash = "sha256:b49e12869ab464558e2dd3c5792da5b748a7e0c48ee83b4d05715f98125a7a39"},
|
||||||
|
]
|
||||||
|
"mkdocs-material-extensions 1.1.1" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/cd/3f/e5e3c9bfbb42e4cb661f71bcec787ae6bdf4a161b8c4bb68fd7d991c436c/mkdocs_material_extensions-1.1.1.tar.gz", hash = "sha256:9c003da71e2cc2493d910237448c672e00cefc800d3d6ae93d2fc69979e3bd93"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fd/c9/35af8ceabace3e33d1fb64b1749c6f4dac6129faa32f8a4229791f89f56a/mkdocs_material_extensions-1.1.1-py3-none-any.whl", hash = "sha256:e41d9f38e4798b6617ad98ca8f7f1157b1e4385ac1459ca1e4ea219b556df945"},
|
||||||
|
]
|
||||||
"mypy 1.3.0" = [
|
"mypy 1.3.0" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/09/7b/8eb0d648352c61b08cb364d278b5c12c3f1c5841724fdd2929d7172b7eaf/mypy-1.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f9dca1e257d4cc129517779226753dbefb4f2266c4eaad610fc15c6a7e14283e"},
|
{url = "https://files.pythonhosted.org/packages/09/7b/8eb0d648352c61b08cb364d278b5c12c3f1c5841724fdd2929d7172b7eaf/mypy-1.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f9dca1e257d4cc129517779226753dbefb4f2266c4eaad610fc15c6a7e14283e"},
|
||||||
{url = "https://files.pythonhosted.org/packages/11/41/d24f93eefc89c650782bf1f9acfdb02a32f327b841058a5b0ce5857b60af/mypy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c99c3ecf223cf2952638da9cd82793d8f3c0c5fa8b6ae2b2d9ed1e1ff51ba85"},
|
{url = "https://files.pythonhosted.org/packages/11/41/d24f93eefc89c650782bf1f9acfdb02a32f327b841058a5b0ce5857b60af/mypy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c99c3ecf223cf2952638da9cd82793d8f3c0c5fa8b6ae2b2d9ed1e1ff51ba85"},
|
||||||
|
@ -163,6 +544,10 @@ content_hash = "sha256:951aef3816a5f14d87476b8ca712befbad8dc33b9624ba499f68e72cf
|
||||||
{url = "https://files.pythonhosted.org/packages/1a/e6/6d2ead760a9ddb35e65740fd5a57e46aadd7b0c49861ab24f94812797a1c/nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"},
|
{url = "https://files.pythonhosted.org/packages/1a/e6/6d2ead760a9ddb35e65740fd5a57e46aadd7b0c49861ab24f94812797a1c/nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"},
|
||||||
{url = "https://files.pythonhosted.org/packages/48/92/8e83a37d3f4e73c157f9fcf9fb98ca39bd94701a469dc093b34dca31df65/nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"},
|
{url = "https://files.pythonhosted.org/packages/48/92/8e83a37d3f4e73c157f9fcf9fb98ca39bd94701a469dc093b34dca31df65/nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"},
|
||||||
]
|
]
|
||||||
|
"packaging 23.1" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ab/c3/57f0601a2d4fe15de7a553c00adbc901425661bf048f2a22dfc500caf121/packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/b9/6c/7c6658d258d7971c5eb0d9b69fa9265879ec9a9158031206d47800ae2213/packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"},
|
||||||
|
]
|
||||||
"platformdirs 3.5.1" = [
|
"platformdirs 3.5.1" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/89/7e/c6ff9ddcf93b9b36c90d88111c4db354afab7f9a58c7ac3257fa717f1268/platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"},
|
{url = "https://files.pythonhosted.org/packages/89/7e/c6ff9ddcf93b9b36c90d88111c4db354afab7f9a58c7ac3257fa717f1268/platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"},
|
||||||
{url = "https://files.pythonhosted.org/packages/9c/0e/ae9ef1049d4b5697e79250c4b2e72796e4152228e67733389868229c92bb/platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"},
|
{url = "https://files.pythonhosted.org/packages/9c/0e/ae9ef1049d4b5697e79250c4b2e72796e4152228e67733389868229c92bb/platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"},
|
||||||
|
@ -171,6 +556,18 @@ content_hash = "sha256:951aef3816a5f14d87476b8ca712befbad8dc33b9624ba499f68e72cf
|
||||||
{url = "https://files.pythonhosted.org/packages/21/55/fccc69a49b66c54dcb9a7d8620131a2566db973837c6611b516a2d4e87d7/pre_commit-3.3.2.tar.gz", hash = "sha256:66e37bec2d882de1f17f88075047ef8962581f83c234ac08da21a0c58953d1f0"},
|
{url = "https://files.pythonhosted.org/packages/21/55/fccc69a49b66c54dcb9a7d8620131a2566db973837c6611b516a2d4e87d7/pre_commit-3.3.2.tar.gz", hash = "sha256:66e37bec2d882de1f17f88075047ef8962581f83c234ac08da21a0c58953d1f0"},
|
||||||
{url = "https://files.pythonhosted.org/packages/45/30/c3d5d192b97de482b9adfa356724dfbb07e293b54d94c3b98dd2e5f24759/pre_commit-3.3.2-py2.py3-none-any.whl", hash = "sha256:8056bc52181efadf4aac792b1f4f255dfd2fb5a350ded7335d251a68561e8cb6"},
|
{url = "https://files.pythonhosted.org/packages/45/30/c3d5d192b97de482b9adfa356724dfbb07e293b54d94c3b98dd2e5f24759/pre_commit-3.3.2-py2.py3-none-any.whl", hash = "sha256:8056bc52181efadf4aac792b1f4f255dfd2fb5a350ded7335d251a68561e8cb6"},
|
||||||
]
|
]
|
||||||
|
"pygments 2.15.1" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/34/a7/37c8d68532ba71549db4212cb036dbd6161b40e463aba336770e80c72f84/Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/89/6b/2114e54b290824197006e41be3f9bbe1a26e9c39d1f5fa20a6d62945a0b3/Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"},
|
||||||
|
]
|
||||||
|
"pymdown-extensions 10.0.1" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a2/17/607fc71d709c0df9cca39ed57ed6f8b1cb77863073004c7def8a02a45fe2/pymdown_extensions-10.0.1-py3-none-any.whl", hash = "sha256:ae66d84013c5d027ce055693e09a4628b67e9dec5bce05727e45b0918e36f274"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/cb/06/5779fe8fa684080bcb0eeabcbcb9bfe2cf14dcf776b687001e7820fba660/pymdown_extensions-10.0.1.tar.gz", hash = "sha256:b44e1093a43b8a975eae17b03c3a77aad4681b3b56fce60ce746dbef1944c8cb"},
|
||||||
|
]
|
||||||
|
"python-dateutil 2.8.2" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4c/c4/13b4776ea2d76c115c1d1b84579f3764ee6d57204f6be27119f13a61d0a9/python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
|
||||||
|
]
|
||||||
"pyyaml 6.0" = [
|
"pyyaml 6.0" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/02/25/6ba9f6bb50a3d4fbe22c1a02554dc670682a07c8701d1716d19ddea2c940/PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"},
|
{url = "https://files.pythonhosted.org/packages/02/25/6ba9f6bb50a3d4fbe22c1a02554dc670682a07c8701d1716d19ddea2c940/PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"},
|
||||||
{url = "https://files.pythonhosted.org/packages/08/f4/ffa743f860f34a5e8c60abaaa686f82c9ac7a2b50e5a1c3b1eb564d59159/PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"},
|
{url = "https://files.pythonhosted.org/packages/08/f4/ffa743f860f34a5e8c60abaaa686f82c9ac7a2b50e5a1c3b1eb564d59159/PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"},
|
||||||
|
@ -213,10 +610,112 @@ content_hash = "sha256:951aef3816a5f14d87476b8ca712befbad8dc33b9624ba499f68e72cf
|
||||||
{url = "https://files.pythonhosted.org/packages/f8/54/799b059314b13e1063473f76e908f44106014d18f54b16c83a16edccd5ec/PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"},
|
{url = "https://files.pythonhosted.org/packages/f8/54/799b059314b13e1063473f76e908f44106014d18f54b16c83a16edccd5ec/PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"},
|
||||||
{url = "https://files.pythonhosted.org/packages/fc/48/531ecd926fe0a374346dd811bf1eda59a95583595bb80eadad511f3269b8/PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"},
|
{url = "https://files.pythonhosted.org/packages/fc/48/531ecd926fe0a374346dd811bf1eda59a95583595bb80eadad511f3269b8/PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"},
|
||||||
]
|
]
|
||||||
|
"pyyaml-env-tag 0.1" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fb/8e/da1c6c58f751b70f8ceb1eb25bc25d524e8f14fe16edcce3f4e3ba08629c/pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"},
|
||||||
|
]
|
||||||
|
"regex 2023.5.5" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/01/36/aedf96310757fa5a421749be911ed750077171930f439a233bfd8f87e43c/regex-2023.5.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fee0016cc35a8a91e8cc9312ab26a6fe638d484131a7afa79e1ce6165328a135"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/02/b7/af3253bc0173045f9df1f8492705823ddf85150f71a52a51fd622796ae66/regex-2023.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a56c18f21ac98209da9c54ae3ebb3b6f6e772038681d6cb43b8d53da3b09ee81"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/09/26/925431262010b6e3efe962fa30a8cede87dd4c3f27d2c84c1ae3e54af5db/regex-2023.5.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18196c16a584619c7c1d843497c069955d7629ad4a3fdee240eb347f4a2c9dbe"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/0b/15/b0857fc4ccfc3f0262bfc580f0c3338ce11ab050879201fc16ee716890fe/regex-2023.5.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:59e4b729eae1a0919f9e4c0fc635fbcc9db59c74ad98d684f4877be3d2607dd6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/0d/3c/a61379572196a04a866c0013c500576b001832533bc12f80ec13c6872c22/regex-2023.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:256f7f4c6ba145f62f7a441a003c94b8b1af78cee2cccacfc1e835f93bc09426"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/16/9a/2ddd037546c1f6446b26bd9037f4b551c2f38e250038388626e5da88e7f1/regex-2023.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e22e4460f0245b468ee645156a4f84d0fc35a12d9ba79bd7d79bdcd2f9629d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/18/ba/538b878727ab58a55cad175ab5aececb979c21b8b1e1830094f35ac66882/regex-2023.5.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ced02e3bd55e16e89c08bbc8128cff0884d96e7f7a5633d3dc366b6d95fcd1d6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/1f/5a/ebddb94a8912c0cd08e9a501efb7fb9698fd011c49352a49516249f33643/regex-2023.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f08276466fedb9e36e5193a96cb944928301152879ec20c2d723d1031cd4ddd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/23/35/af9d7cd565526173cac5ec76549429f18476d64335c8fa8338f5f080cc13/regex-2023.5.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f5e06df94fff8c4c85f98c6487f6636848e1dc85ce17ab7d1931df4a081f657"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/27/30/69a2eb2a74c5098f3ff69e52c44f739f11fc19ecea84ce69ed6073bda9d2/regex-2023.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf123225945aa58b3057d0fba67e8061c62d14cc8a4202630f8057df70189051"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2a/b2/ff7e8650aad92b2486c27ba1bb87c473a7b000304a2e7cb9892f597aeca8/regex-2023.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a69cf0c00c4d4a929c6c7717fd918414cab0d6132a49a6d8fc3ded1988ed2ea"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2a/b6/5d44a38161062c48b8db4742bb7076315b08d267bbdfe77b1f8bee02f85a/regex-2023.5.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f83fe9e10f9d0b6cf580564d4d23845b9d692e4c91bd8be57733958e4c602956"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2b/06/ee0731f71dd2825393e56da78af9114eee083686105cc635daab2ab1b7d6/regex-2023.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1189fbbb21e2c117fda5303653b61905aeeeea23de4a94d400b0487eb16d2d60"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2d/db/d6e9577d4935e8bd6519fc502a3d032f4dabf6175b04f68a3e2e1dad244f/regex-2023.5.5-cp38-cp38-win32.whl", hash = "sha256:7923470d6056a9590247ff729c05e8e0f06bbd4efa6569c916943cb2d9b68b91"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/33/a8/12bdc84d78e2748cc7c2d990317930fe05e421937f42a05e9621a2d90a89/regex-2023.5.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e645c757183ee0e13f0bbe56508598e2d9cd42b8abc6c0599d53b0d0b8dd1479"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/35/d7/33315abe1555850bfdf9cae6175344858b6614fb9a0bca58c8102dd42a42/regex-2023.5.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a623564d810e7a953ff1357f7799c14bc9beeab699aacc8b7ab7822da1e952b8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/37/10/3e47ec258cd5319202cc11b2956bd52b1e8613240b276662d96aa4ba2f71/regex-2023.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f764e4dfafa288e2eba21231f455d209f4709436baeebb05bdecfb5d8ddc3d35"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/3b/0f/d3bd4ad92c1c530c344414b1438d826da72825d41b64db397e903aa7c260/regex-2023.5.5-cp39-cp39-win32.whl", hash = "sha256:732176f5427e72fa2325b05c58ad0b45af341c459910d766f814b0584ac1f9ac"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/41/fb/2eee67ebd59417a0a329ae5ae88b6a1bded20e66693c1851adf9cfcb065a/regex-2023.5.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:18f05d14f14a812fe9723f13afafefe6b74ca042d99f8884e62dbd34dcccf3e2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/44/1c/bbe0e8507361ce6f70902dbf6c23839ab548364c95dfaefe3c7fdf60cc49/regex-2023.5.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db09e6c18977a33fea26fe67b7a842f706c67cf8bda1450974d0ae0dd63570df"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/44/a2/b3eae40cab9864fc784a4c1709cafa95db47d875a2297b70daf1afd7fbe6/regex-2023.5.5-cp36-cp36m-win32.whl", hash = "sha256:821a88b878b6589c5068f4cc2cfeb2c64e343a196bc9d7ac68ea8c2a776acd46"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/45/27/03118528e248b3a6df85d8bbc87bea77d5324488ae27f387aafaa7cc24e6/regex-2023.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6b8d0c153f07a953636b9cdb3011b733cadd4178123ef728ccc4d5969e67f3c2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4e/fa/dd1b555c71aa7d6e834165c882cefdafd9865eee990985aba01990a7280c/regex-2023.5.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fb2b495dd94b02de8215625948132cc2ea360ae84fe6634cd19b6567709c8ae2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/51/56/cc303c524837c15aa305ea00cc898b57add23f7db9753f8856a351dda54f/regex-2023.5.5-cp310-cp310-win32.whl", hash = "sha256:40005cbd383438aecf715a7b47fe1e3dcbc889a36461ed416bdec07e0ef1db66"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/53/95/27d4887cf0cd2c6e94920bcc5877280cb943888686db85049df18a66e4dd/regex-2023.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a4c5da39bca4f7979eefcbb36efea04471cd68db2d38fcbb4ee2c6d440699833"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/54/8d/3e346fc5c6e63383c6e6a62a31e7b9cdf5d9539e127aa6f6a7f6b2e4d47e/regex-2023.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2910502f718828cecc8beff004917dcf577fc5f8f5dd40ffb1ea7612124547b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/57/5e/6dff6880b5ab4aa6e9e6f658b34de97ad4cba6488a8ad7328acb3b689daa/regex-2023.5.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2e9c4f778514a560a9c9aa8e5538bee759b55f6c1dcd35613ad72523fd9175b8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5b/aa/c63c8b23cca132c1688078ccc56c0654cd3cbc6a639d0ac9fa8e48d8b7de/regex-2023.5.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:6893544e06bae009916a5658ce7207e26ed17385149f35a3125f5259951f1bbe"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5e/15/4ac85a6ce5c46223e312de2a38137f7ff1e6c5b4b233054cd7e72466345b/regex-2023.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fda3e50abad8d0f48df621cf75adc73c63f7243cbe0e3b2171392b445401550"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5f/32/9a6c6af6f6013a7bfe12469a910f577ac27d6c6767adef69ebf798f07a7f/regex-2023.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a99757ad7fe5c8a2bb44829fc57ced11253e10f462233c1255fe03888e06bc19"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/61/78/d3e53ac70db4eeea69d51093c1c1667a58a72cb603fa094e721b35eaaf67/regex-2023.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33d430a23b661629661f1fe8395be2004006bc792bb9fc7c53911d661b69dd7e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/61/f8/4f94b89fbacfd301ab1b96fc54d3d942260202701f25a4c549b2c5406dbe/regex-2023.5.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:144b5b017646b5a9392a5554a1e5db0000ae637be4971c9747566775fc96e1b2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/67/e9/3d300456309174e7c431fd3575bb8e6c5d057d03f647cda787038c3cfb51/regex-2023.5.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:445d6f4fc3bd9fc2bf0416164454f90acab8858cd5a041403d7a11e3356980e8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/6a/36/9ac9b08bc8bbe006041cc2155347b4a29593d448941d036ea8b8023a6add/regex-2023.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02f4541550459c08fdd6f97aa4e24c6f1932eec780d58a2faa2068253df7d6ff"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/6a/36/d5e3666b761525204dadfd8ad684c231e56c5936cbfd8359bd7ff1ba4383/regex-2023.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:811040d7f3dd9c55eb0d8b00b5dcb7fd9ae1761c454f444fd9f37fe5ec57143a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/77/5d/98efc9cf46d60f3704cf00f8b3bd81319493639fd4367efb5d02fd29ffc1/regex-2023.5.5.tar.gz", hash = "sha256:7d76a8a1fc9da08296462a18f16620ba73bcbf5909e42383b253ef34d9d5141e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/78/86/530a560a506ef8c461fb055c1fed355aed79caa6f7de04ae83f7b7be0bda/regex-2023.5.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:e2205a81f815b5bb17e46e74cc946c575b484e5f0acfcb805fb252d67e22938d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/78/db/a9fb9a194d340cb507aabae958280b8f8c24bd3038361b209fb7ded9b989/regex-2023.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:586a011f77f8a2da4b888774174cd266e69e917a67ba072c7fc0e91878178a80"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/79/87/da8099926c2d627839159126ed5a58980b18408b9304110435b7ec06bfc6/regex-2023.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:7918a1b83dd70dc04ab5ed24c78ae833ae8ea228cef84e08597c408286edc926"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/7c/81/b064cc2c67ca2182137641f9d3fd47fe470f1a84674d9b9f91fd39bf0e6f/regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad5524c2aedaf9aa14ef1bc9327f8abd915699dea457d339bebbe2f0d218f86"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/7f/2a/5d4c1315e17eb54e8524952b80a03308735a5e6d3288ba04b19845b56f92/regex-2023.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b6365703e8cf1644b82104cdd05270d1a9f043119a168d66c55684b1b557d008"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/80/07/518121c35e002a73f8fb75fcac23f9c6a5a1784c149e9bcb98d3ec6bca78/regex-2023.5.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ac2b7d341dc1bd102be849d6dd33b09701223a851105b2754339e390be0627a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/80/f6/2edf65ed793b9d5ba39083776b83481c41555a2ad57bf6b6934c4d7dd9a8/regex-2023.5.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21e90a288e6ba4bf44c25c6a946cb9b0f00b73044d74308b5e0afd190338297c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/83/ba/da371627cb5df2216f2022a51eea6728b5048319cd1c41c967134a0df3f3/regex-2023.5.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:1ecf3dcff71f0c0fe3e555201cbe749fa66aae8d18f80d2cc4de8e66df37390a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/83/ff/7164610b30e447e3bb86171f95cf3172a013e475472c8b7a22314bdb54cc/regex-2023.5.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:921473a93bcea4d00295799ab929522fc650e85c6b9f27ae1e6bb32a790ea7d3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/8a/0c/65a0809640bcbb2e55c8c1c87ee300ab90481130676c26a4581985a6705e/regex-2023.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd966475e963122ee0a7118ec9024388c602d12ac72860f6eea119a3928be053"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/8d/d5/4d56a7655dcec858d697f0fa9b7eb1ff30ec4ed5a445fe60a432955cc30b/regex-2023.5.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:844671c9c1150fcdac46d43198364034b961bd520f2c4fdaabfc7c7d7138a2dd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/90/23/ff74c6c56fe82e1fa398b8a7f73e81848b05cbefe5af99f22f0f4b25e57c/regex-2023.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:50fd2d9b36938d4dcecbd684777dd12a407add4f9f934f235c66372e630772b0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/91/48/d2a23b461b7136df911ab50412a3e480ecf4c8b5caf8c6185244da6af7af/regex-2023.5.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:de2f780c3242ea114dd01f84848655356af4dd561501896c751d7b885ea6d3a1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/93/70/027e3599cb021b1462dcb4b4c5b8233dbfd8e4779eaf7738871b27c630cc/regex-2023.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:290fd35219486dfbc00b0de72f455ecdd63e59b528991a6aec9fdfc0ce85672e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9b/05/7fe34981c97401ab999f2bdc39b45578308748b1db69b27cb3cc1f034a8f/regex-2023.5.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:bd7b68fd2e79d59d86dcbc1ccd6e2ca09c505343445daaa4e07f43c8a9cc34da"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a0/90/34880cf20e335921095ba9ca8a5dce273c10ee70b970a7cd71f4d5eb1a8e/regex-2023.5.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8906669b03c63266b6a7693d1f487b02647beb12adea20f8840c1a087e2dfb5"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a0/dd/ce702f781c4fdd4dca86bda1f842f64e68c75840eba7beb5556f91c8b70d/regex-2023.5.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:72aa4746993a28c841e05889f3f1b1e5d14df8d3daa157d6001a34c98102b393"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a2/23/c9a511f32618ab757e6775c0e5c63a01fd17056c1158e72ea7845d796133/regex-2023.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:338994d3d4ca4cf12f09822e025731a5bdd3a37aaa571fa52659e85ca793fb67"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a8/e1/581b12525a47073e38517aeb4621b4e189ac949158c3bf3f2a9c87fd4910/regex-2023.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:59597cd6315d3439ed4b074febe84a439c33928dd34396941b4d377692eca810"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a9/bb/f37e451ab9870090f50eba06b118e3ed000d53940ebd97decfbf89ff4ade/regex-2023.5.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4a5059bd585e9e9504ef9c07e4bc15b0a621ba20504388875d66b8b30a5c4d18"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/aa/1a/aaf87f92c6d911256e7ddd78a80db2b089d7a15d30d82d26853c3ef5bedb/regex-2023.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:1307aa4daa1cbb23823d8238e1f61292fd07e4e5d8d38a6efff00b67a7cdb764"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/aa/9a/4eebbfedf7f0a3ae14307a9f7fb65bfe853b32b0f209e31bc21a548d3016/regex-2023.5.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3d45864693351c15531f7e76f545ec35000d50848daa833cead96edae1665559"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ab/cb/8518e23ada66106aaeddf551c7a5539854bf6782b13d453ac5ae7f244c59/regex-2023.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9b320677521aabf666cdd6e99baee4fb5ac3996349c3b7f8e7c4eee1c00dfe3a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ac/63/a6301bcb744b45756796fd35080d6dc0e2453cfdca28bee63fff20c239a4/regex-2023.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:48c9ec56579d4ba1c88f42302194b8ae2350265cb60c64b7b9a88dcb7fbde309"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ae/4b/9926dd761af4aa8e703ccef72ce7d3a5599e36153f871a270aeb68dab8ba/regex-2023.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2ce65bdeaf0a386bb3b533a28de3994e8e13b464ac15e1e67e4603dd88787fa"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/b8/bc/dc3b8c54628635802192f4b1fe4934f279da24692655ee203463e5326482/regex-2023.5.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8b942d8b3ce765dbc3b1dad0a944712a89b5de290ce8f72681e22b3c55f3cc8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/be/42/ffde1f44c3fa2ecbe285ee2f5949b491b0ac2a18dc13327f34e249e2a9a3/regex-2023.5.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:385992d5ecf1a93cb85adff2f73e0402dd9ac29b71b7006d342cc920816e6f32"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c0/e6/38875874e79498c998f9a19476fb2bd152840a4c7f34517eb0ee8d6f1fb0/regex-2023.5.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:690a17db524ee6ac4a27efc5406530dd90e7a7a69d8360235323d0e5dafb8f5b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c3/26/a561242ece9b3a84d60e1fc5d07f7ba1f64729bad37687094d5d83553de8/regex-2023.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:941b3f1b2392f0bcd6abf1bc7a322787d6db4e7457be6d1ffd3a693426a755f2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c5/3a/3dc14c9b1c0a32f3ddf45d993233395d115a89923c2190c33920e316be3b/regex-2023.5.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72a28979cc667e5f82ef433db009184e7ac277844eea0f7f4d254b789517941d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c6/86/f0bb334088b102e2bb3528b502d3c0c0a7301cbc2c8d2e0304ec4b1964d7/regex-2023.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84397d3f750d153ebd7f958efaa92b45fea170200e2df5e0e1fd4d85b7e3f58a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c7/17/5b76862f602277d33b2beeeba202657f6f1c1ed35c59466f4061bb0a97bd/regex-2023.5.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:10250a093741ec7bf74bcd2039e697f519b028518f605ff2aa7ac1e9c9f97423"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c9/e4/d82c1a857a5346a37c4a72af6d995f6aeea1f17d6163a39d68c6362d6143/regex-2023.5.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6164d4e2a82f9ebd7752a06bd6c504791bedc6418c0196cd0a23afb7f3e12b2d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d0/02/b3a2c110ed3d51c0138e12fa555920c3c81693ec9b5fb8dd229c6482355c/regex-2023.5.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b870b6f632fc74941cadc2a0f3064ed8409e6f8ee226cdfd2a85ae50473aa94"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/dc/15/be319fd51cb9980ec1abf855e1b358e1b20e3655f3cec8cf5d58f8f924e5/regex-2023.5.5-cp311-cp311-win32.whl", hash = "sha256:c8c143a65ce3ca42e54d8e6fcaf465b6b672ed1c6c90022794a802fb93105d22"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/de/01/71793c90f543c97848d09a9993ac6039a95190d92d69dce5bfb50b309462/regex-2023.5.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ba73a14e9c8f9ac409863543cde3290dba39098fc261f717dc337ea72d3ebad2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/de/d4/e44c3b5e5934ae90c67036e8d80ebc0ced7a8702e2dd1afd31b0c564f3fc/regex-2023.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:890a09cb0a62198bff92eda98b2b507305dd3abf974778bae3287f98b48907d3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e0/7c/941e5c89bbbcd6ba460444c6ec029d54e7147741078f1c8300a8cbf8abb9/regex-2023.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cbe6b5be3b9b698d8cc4ee4dee7e017ad655e83361cd0ea8e653d65e469468"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e1/d2/76a59a6483c32f5aa658fa8e56ec9dbe6e6025aba0270ce337e7fe5d965e/regex-2023.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:afb1c70ec1e594a547f38ad6bf5e3d60304ce7539e677c1429eebab115bce56e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e2/ff/80f795d39a4f7afc4c0912f57fdf7d3ae39d964d949bb0e6ea9e2eafb077/regex-2023.5.5-cp37-cp37m-win32.whl", hash = "sha256:10374c84ee58c44575b667310d5bbfa89fb2e64e52349720a0182c0017512f6c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e3/38/d7873187b26f1bedcb2db83b458156c348878844c0c293a74fc5e219b7e9/regex-2023.5.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c3efee9bb53cbe7b285760c81f28ac80dc15fa48b5fe7e58b52752e642553f1"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e4/0a/cc8a552c9ef9f65e07398a077872d7a9b611e663f4d7af4cbd63676d84c9/regex-2023.5.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a0f874ee8c0bc820e649c900243c6d1e6dc435b81da1492046716f14f1a2a96"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/eb/0d/ef48969f8626d3cbc8a82b8e9d46abe6294ca51f4bdcf2bb3a50cded4089/regex-2023.5.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:171c52e320fe29260da550d81c6b99f6f8402450dc7777ef5ced2e848f3b6f8f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/eb/d5/d992d17a298f3d4ec93f63437e2cca60924f924e4404ad5affd6d5e3892c/regex-2023.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0bbd5dcb19603ab8d2781fac60114fb89aee8494f4505ae7ad141a3314abb1f9"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f0/3c/99f8edd0feb2e97117d6e797a99455529d9ff725e45b9b902b0b2c1d02d2/regex-2023.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d19e57f888b00cd04fc38f5e18d0efbd91ccba2d45039453ab2236e6eec48d4d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f6/e6/5ebc73b4f1c9712369b30cc8f808cea1172bd5bcc1b025ddc9a7cf95a2d0/regex-2023.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aa7d032c1d84726aa9edeb6accf079b4caa87151ca9fabacef31fa028186c66d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f7/bd/a1cf5020abc1fbbc71bde9b645748f6dcd0f5303f7fc907ce54e09e823e6/regex-2023.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:4035d6945cb961c90c3e1c1ca2feb526175bcfed44dfb1cc77db4fdced060d3e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f7/d4/4c3eb7cdda7aafc3b17b620f5f52af985ed01a23b51ddadc639229e453b3/regex-2023.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cd46f30e758629c3ee91713529cfbe107ac50d27110fdcc326a42ce2acf4dafc"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f9/5f/f6b642b6b8be39e3bd081992b11bed06e78604431bce64e412b3d0735253/regex-2023.5.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5e3f4468b8c6fd2fd33c218bbd0a1559e6a6fcf185af8bb0cc43f3b5bfb7d636"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f9/d5/e31e1f8e3bad5fa2c988915e52f5899b0d5aa7ac823414ef0242c2454462/regex-2023.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c64d5abe91a3dfe5ff250c6bb267ef00dbc01501518225b45a5f9def458f31fb"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fa/84/21e97a9fd11d2156fc23b1b438514a3d6a40834c355d880c081a998f2eea/regex-2023.5.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a6e4b0e0531223f53bad07ddf733af490ba2b8367f62342b92b39b29f72735a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fb/5f/b1aad255ac39b12cd0c78ddaf4d55835653b0b0f790605e6117bbd8eb706/regex-2023.5.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23d86ad2121b3c4fc78c58f95e19173790e22ac05996df69b84e12da5816cb17"},
|
||||||
|
]
|
||||||
|
"requests 2.31.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
|
||||||
|
]
|
||||||
"setuptools 67.8.0" = [
|
"setuptools 67.8.0" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/03/20/630783571e76e5fa5f3e9f29398ca3ace377207b8196b54e0ffdf09f12c1/setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"},
|
{url = "https://files.pythonhosted.org/packages/03/20/630783571e76e5fa5f3e9f29398ca3ace377207b8196b54e0ffdf09f12c1/setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"},
|
||||||
{url = "https://files.pythonhosted.org/packages/f5/2c/074ab1c5be9c7d523d8d6d69d1f46f450fe7f11713147dc9e779aa4ca4ea/setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"},
|
{url = "https://files.pythonhosted.org/packages/f5/2c/074ab1c5be9c7d523d8d6d69d1f46f450fe7f11713147dc9e779aa4ca4ea/setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"},
|
||||||
]
|
]
|
||||||
|
"six 1.16.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
||||||
|
]
|
||||||
"tomli 2.0.1" = [
|
"tomli 2.0.1" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
{url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
||||||
{url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
{url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
||||||
|
@ -225,7 +724,44 @@ content_hash = "sha256:951aef3816a5f14d87476b8ca712befbad8dc33b9624ba499f68e72cf
|
||||||
{url = "https://files.pythonhosted.org/packages/38/60/300ad6f93adca578bf05d5f6cd1d854b7d140bebe2f9829561aa9977d9f3/typing_extensions-4.6.2-py3-none-any.whl", hash = "sha256:3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98"},
|
{url = "https://files.pythonhosted.org/packages/38/60/300ad6f93adca578bf05d5f6cd1d854b7d140bebe2f9829561aa9977d9f3/typing_extensions-4.6.2-py3-none-any.whl", hash = "sha256:3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98"},
|
||||||
{url = "https://files.pythonhosted.org/packages/be/fc/3d12393d634fcb31d5f4231c28feaf4ead225124ba08021046317d5f450d/typing_extensions-4.6.2.tar.gz", hash = "sha256:06006244c70ac8ee83fa8282cb188f697b8db25bc8b4df07be1873c43897060c"},
|
{url = "https://files.pythonhosted.org/packages/be/fc/3d12393d634fcb31d5f4231c28feaf4ead225124ba08021046317d5f450d/typing_extensions-4.6.2.tar.gz", hash = "sha256:06006244c70ac8ee83fa8282cb188f697b8db25bc8b4df07be1873c43897060c"},
|
||||||
]
|
]
|
||||||
|
"urllib3 2.0.2" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fb/c0/1abba1a1233b81cf2e36f56e05194f5e8a0cec8c03c244cab56cc9dfb5bd/urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"},
|
||||||
|
]
|
||||||
"virtualenv 20.23.0" = [
|
"virtualenv 20.23.0" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/d6/37/3ff25b2ad0d51cfd752dc68ee0ad4387f058a5ceba4d89b47ac478de3f59/virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"},
|
{url = "https://files.pythonhosted.org/packages/d6/37/3ff25b2ad0d51cfd752dc68ee0ad4387f058a5ceba4d89b47ac478de3f59/virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"},
|
||||||
{url = "https://files.pythonhosted.org/packages/f1/0a/18755fa6aec794fd539b050beeaa905fa5c77c64356aa8bdecb62c01581a/virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"},
|
{url = "https://files.pythonhosted.org/packages/f1/0a/18755fa6aec794fd539b050beeaa905fa5c77c64356aa8bdecb62c01581a/virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"},
|
||||||
]
|
]
|
||||||
|
"watchdog 3.0.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/00/9e/a9711f35f1ad6571e92dc2e955e7de9dfac21a1b33e9cd212f066a60a387/watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/06/fd/58b82550ebe4883bb2a5e1b6c14d8702b5ce0f36c58470bba51dc777df46/watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/21/72/46fd174352cd88b9157ade77e3b8835125d4b1e5186fc7f1e8c44664e029/watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2b/f0/456948b865ab259784f774154e7d65844fa9757522fdb11533fbf8ae7aca/watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2e/54/48527f3aea4f7ed331072352fee034a7f3d6ec7a2ed873681738b2586498/watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/30/65/9e36a3c821d47a22e54a8fc73681586b2d26e82d24ea3af63acf2ef78f97/watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/3a/9d/d6586a065968f3e5d89a2565dffa6ea9151ce9d46c541340bfff27b41231/watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/40/1b/4e6d3e0f587587931f590531b4ed08070d71a9efb35541d792a68d8ee593/watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/51/b9/444a984b1667013bac41b31b45d9718e069cc7502a43a924896806605d83/watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/55/0d/bfc2a0d425b12444a2dc245a934c065bbb7bd9833fff071cba79c21bb76e/watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/58/db/d419fdbd3051b42b0a8091ddf78f70540b6d9d277a84845f7c5955f9de92/watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/67/e4/229144d23093436a21a8b84aa5931d70759b81743dc8c10d0e836dbfd752/watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/71/3a/b12740f4f60861240d57b42a2ac6ac0a2821db506c4435f7872c1fad867d/watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/74/3c/e4b77f4f069aca2b6e35925db7a1aa6cb600dcb52fc3e962284640ca37f3/watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/75/fe/d9a37d8df76878853f68dd665ec6d2c7a984645de460164cb880a93ffe6b/watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/7f/6e/7ca8ed16928d7b11da69372f55c64a09dce649d2b24b03f7063cd8683c4b/watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/84/ab/67001e62603bf2ea35ace40023f7c74f61e8b047160d6bb078373cec1a67/watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/92/28/631872d7fbc45527037060db8c838b47a129a6c09d2297d6dddcfa283cf2/watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/92/dd/42f47ffdfadff4c41b89c54163f323f875eb963bf90088e477c43b8f7b15/watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/94/ce/70c65a6c4b0330129c402624d42f67ce82d6a0ba2036de67628aeffda3c1/watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/95/a6/d6ef450393dac5734c63c40a131f66808d2e6f59f6165ab38c98fbe4e6ec/watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9b/39/30bb3c2e4f8e89b5c60e98589acf5c5a001cb0efde249aa05d748d1734a2/watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/9b/6e/ce8d124d03cd3f2941365d9c81d62e3afe43f2dc7e6e86274fa9c2ec2d5b/watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ba/0c/cd0337069c468f22ef256e768ece74c78b511092f1004ab260268e1af4a9/watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c0/a2/4e3230bdc1fb878b152a2c66aa941732776f4545bd68135d490591d66713/watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/dc/89/3a3ce6dd01807ff918aec3bbcabc92ed1a7edc5bb2266c720bb39fec1bec/watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ea/76/bef1c6f6ac18041234a9f3e8bc995d611e255c44f10433bfaf255968c269/watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"},
|
||||||
|
]
|
||||||
|
"zipp 3.15.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/00/27/f0ac6b846684cecce1ee93d32450c45ab607f65c2e0255f0092032d91f07/zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5b/fa/c9e82bbe1af6266adf08afb563905eb87cab83fde00a0a08963510621047/zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"},
|
||||||
|
]
|
||||||
|
|
|
@ -24,8 +24,9 @@ version = { source = "scm" }
|
||||||
|
|
||||||
[tool.pdm.dev-dependencies]
|
[tool.pdm.dev-dependencies]
|
||||||
dev = [
|
dev = [
|
||||||
"pre-commit>=3",
|
"pre-commit>=3",
|
||||||
"mypy>=0.991"
|
"mypy>=0.991",
|
||||||
|
"mkdocs-material>=9.1.15",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
|
|
71
scripts/generate-svgs.py
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
from pathlib import Path
|
||||||
|
from subprocess import run
|
||||||
|
from textwrap import dedent
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
|
DOCS_PATH = Path(__file__).parent.parent / "docs"
|
||||||
|
(SAVE_PATH := DOCS_PATH / "svgs").mkdir(exist_ok=True)
|
||||||
|
VIV = Path(__file__).parent.parent / "src" / "viv" / "viv.py"
|
||||||
|
CLI_DOC_PATH = DOCS_PATH / "cli.md"
|
||||||
|
|
||||||
|
|
||||||
|
cmds = {
|
||||||
|
"list": [],
|
||||||
|
"exe": ["python", "pip"],
|
||||||
|
"remove": [],
|
||||||
|
"manage": ["update", "purge", "show", "install"],
|
||||||
|
"freeze": [],
|
||||||
|
"shim": [],
|
||||||
|
"run": [],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cli_doc = """
|
||||||
|
# cli
|
||||||
|
|
||||||
|
![help](/svgs/viv-help.svg)
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def yartsu(output: Path, args: Tuple[str, str] | str) -> None:
|
||||||
|
if isinstance(args, str):
|
||||||
|
args = (args,)
|
||||||
|
cmd = [
|
||||||
|
VIV,
|
||||||
|
"run",
|
||||||
|
"-k",
|
||||||
|
"yartsu",
|
||||||
|
"--",
|
||||||
|
"-w",
|
||||||
|
"70",
|
||||||
|
"-o",
|
||||||
|
output,
|
||||||
|
"--",
|
||||||
|
"viv",
|
||||||
|
*args,
|
||||||
|
"--help",
|
||||||
|
]
|
||||||
|
run(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
yartsu(SAVE_PATH / "viv-help.svg", "")
|
||||||
|
for cmd, subcmds in cmds.items():
|
||||||
|
p = SAVE_PATH / f"viv-{cmd}-help.svg"
|
||||||
|
cli_doc += dedent(
|
||||||
|
f"""
|
||||||
|
## {cmd}
|
||||||
|
![cmd](/svgs/{p.name})
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
yartsu(p, cmd)
|
||||||
|
for subcmd in subcmds:
|
||||||
|
p_sub = SAVE_PATH / f"viv-{cmd}-{subcmd}-help.svg"
|
||||||
|
cli_doc += dedent(
|
||||||
|
f"""
|
||||||
|
### {cmd} {subcmd}
|
||||||
|
![cmd](/svgs/{p_sub.name})
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
yartsu(p_sub, [cmd, subcmd])
|
||||||
|
|
||||||
|
CLI_DOC_PATH.write_text(cli_doc)
|
612
src/viv/viv.py
|
@ -50,42 +50,7 @@ from typing import (
|
||||||
from urllib.error import HTTPError
|
from urllib.error import HTTPError
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
__version__ = "23.5a4-15-gdf54955-dev"
|
__version__ = "23.5a4-30-g3cf2dce-dev"
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
|
||||||
"""viv config manager"""
|
|
||||||
|
|
||||||
def __init__(self) -> None:
|
|
||||||
self._cache = Path(os.getenv("XDG_CACHE_HOME", Path.home() / ".cache")) / "viv"
|
|
||||||
|
|
||||||
def _ensure(self, p: Path) -> Path:
|
|
||||||
p.mkdir(parents=True, exist_ok=True)
|
|
||||||
return p
|
|
||||||
|
|
||||||
@property
|
|
||||||
def venvcache(self) -> Path:
|
|
||||||
return self._ensure(self._cache / "venvs")
|
|
||||||
|
|
||||||
@property
|
|
||||||
def srccache(self) -> Path:
|
|
||||||
return self._ensure(self._cache / "src")
|
|
||||||
|
|
||||||
@property
|
|
||||||
def binparent(self) -> Path:
|
|
||||||
return self._ensure(
|
|
||||||
Path(os.getenv("VIV_BIN_DIR", Path.home() / ".local" / "bin"))
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def srcdefault(self) -> Path:
|
|
||||||
parent = (
|
|
||||||
Path(os.getenv("XDG_DATA_HOME", Path.home() / ".local" / "share")) / "viv"
|
|
||||||
)
|
|
||||||
return self._ensure(parent) / "viv.py"
|
|
||||||
|
|
||||||
|
|
||||||
c = Config()
|
|
||||||
|
|
||||||
|
|
||||||
class Spinner:
|
class Spinner:
|
||||||
|
@ -391,7 +356,7 @@ if __name__ == "__main__":
|
||||||
t = Template()
|
t = Template()
|
||||||
|
|
||||||
|
|
||||||
# TODO: convet the below functions into a proper file/stream logging interface
|
# TODO: convert the below functions into a proper file/stream logging interface
|
||||||
def echo(
|
def echo(
|
||||||
msg: str, style: str = "magenta", newline: bool = True, fd: TextIO = sys.stderr
|
msg: str, style: str = "magenta", newline: bool = True, fd: TextIO = sys.stderr
|
||||||
) -> None:
|
) -> None:
|
||||||
|
@ -746,20 +711,20 @@ class ViVenv:
|
||||||
verbose=bool(os.getenv("VIV_VERBOSE")),
|
verbose=bool(os.getenv("VIV_VERBOSE")),
|
||||||
)
|
)
|
||||||
|
|
||||||
def show(self, verbose: bool = False) -> None:
|
def touch(self) -> None:
|
||||||
if not verbose:
|
self.meta.accessed = str(datetime.today())
|
||||||
_id = (
|
|
||||||
self.meta.id[:8]
|
|
||||||
if self.meta.id == self.name
|
|
||||||
else (self.name[:5] + "..." if len(self.name) > 8 else self.name)
|
|
||||||
)
|
|
||||||
|
|
||||||
sys.stdout.write(
|
def show(self) -> None:
|
||||||
f"""{a.bold}{a.cyan}{_id}{a.end} """
|
_id = (
|
||||||
f"""{a.style(", ".join(self.meta.spec),'dim')}\n"""
|
self.meta.id[:8]
|
||||||
)
|
if self.meta.id == self.name
|
||||||
else:
|
else (self.name[:5] + "..." if len(self.name) > 8 else self.name)
|
||||||
self.tree()
|
)
|
||||||
|
|
||||||
|
sys.stdout.write(
|
||||||
|
f"""{a.bold}{a.cyan}{_id}{a.end} """
|
||||||
|
f"""{a.style(", ".join(self.meta.spec),'dim')}\n"""
|
||||||
|
)
|
||||||
|
|
||||||
def _tree_leaves(self, items: List[str], indent: str = "") -> str:
|
def _tree_leaves(self, items: List[str], indent: str = "") -> str:
|
||||||
tree_chars = ["├"] * (len(items) - 1) + ["╰"]
|
tree_chars = ["├"] * (len(items) - 1) + ["╰"]
|
||||||
|
@ -899,6 +864,41 @@ def make_executable(path: Path) -> None:
|
||||||
os.chmod(path, mode)
|
os.chmod(path, mode)
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
"""viv config manager"""
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self._cache = Path(os.getenv("XDG_CACHE_HOME", Path.home() / ".cache")) / "viv"
|
||||||
|
|
||||||
|
def _ensure(self, p: Path) -> Path:
|
||||||
|
p.mkdir(parents=True, exist_ok=True)
|
||||||
|
return p
|
||||||
|
|
||||||
|
@property
|
||||||
|
def venvcache(self) -> Path:
|
||||||
|
return self._ensure(self._cache / "venvs")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def srccache(self) -> Path:
|
||||||
|
return self._ensure(self._cache / "src")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def binparent(self) -> Path:
|
||||||
|
return self._ensure(
|
||||||
|
Path(os.getenv("VIV_BIN_DIR", Path.home() / ".local" / "bin"))
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def srcdefault(self) -> Path:
|
||||||
|
parent = (
|
||||||
|
Path(os.getenv("XDG_DATA_HOME", Path.home() / ".local" / "share")) / "viv"
|
||||||
|
)
|
||||||
|
return self._ensure(parent) / "viv.py"
|
||||||
|
|
||||||
|
|
||||||
|
c = Config()
|
||||||
|
|
||||||
|
|
||||||
class Viv:
|
class Viv:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.vivenvs = get_venvs()
|
self.vivenvs = get_venvs()
|
||||||
|
@ -981,6 +981,9 @@ class Viv:
|
||||||
else:
|
else:
|
||||||
echo("re-using existing vivenv")
|
echo("re-using existing vivenv")
|
||||||
|
|
||||||
|
vivenv.touch()
|
||||||
|
vivenv.meta.write()
|
||||||
|
|
||||||
echo("see below for import statements\n")
|
echo("see below for import statements\n")
|
||||||
|
|
||||||
if args.standalone:
|
if args.standalone:
|
||||||
|
@ -999,9 +1002,16 @@ class Viv:
|
||||||
sys.stdout.write("\n".join(self.vivenvs) + "\n")
|
sys.stdout.write("\n".join(self.vivenvs) + "\n")
|
||||||
elif len(self.vivenvs) == 0:
|
elif len(self.vivenvs) == 0:
|
||||||
echo("no vivenvs setup")
|
echo("no vivenvs setup")
|
||||||
|
elif args.full:
|
||||||
|
for _, vivenv in self.vivenvs.items():
|
||||||
|
vivenv.tree()
|
||||||
|
elif args.json:
|
||||||
|
sys.stdout.write(
|
||||||
|
json.dumps({k: v.meta.__dict__ for k, v in self.vivenvs.items()})
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
for _, vivenv in self.vivenvs.items():
|
for _, vivenv in self.vivenvs.items():
|
||||||
vivenv.show(args.verbose)
|
vivenv.show()
|
||||||
|
|
||||||
def exe(self, args: Namespace) -> None:
|
def exe(self, args: Namespace) -> None:
|
||||||
"""run python/pip in existing vivenv"""
|
"""run python/pip in existing vivenv"""
|
||||||
|
@ -1014,7 +1024,7 @@ class Viv:
|
||||||
|
|
||||||
cmd = (
|
cmd = (
|
||||||
f"{pip_path} {' '.join(args.cmd)}"
|
f"{pip_path} {' '.join(args.cmd)}"
|
||||||
if args.exe == "pip"
|
if args.subcmd == "pip"
|
||||||
else f"{python_path} {' '.join(args.cmd)}"
|
else f"{python_path} {' '.join(args.cmd)}"
|
||||||
) + " ".join(args.rest)
|
) + " ".join(args.rest)
|
||||||
|
|
||||||
|
@ -1028,8 +1038,10 @@ class Viv:
|
||||||
|
|
||||||
if not metadata_file.is_file():
|
if not metadata_file.is_file():
|
||||||
error(f"Unable to find metadata for vivenv: {args.vivenv}", code=1)
|
error(f"Unable to find metadata for vivenv: {args.vivenv}", code=1)
|
||||||
|
if args.json:
|
||||||
vivenv.show(verbose=True)
|
sys.stdout.write(json.dumps(vivenv.meta.__dict__))
|
||||||
|
else:
|
||||||
|
vivenv.tree()
|
||||||
|
|
||||||
def _install_local_src(self, sha256: str, src: Path, cli: Path) -> None:
|
def _install_local_src(self, sha256: str, src: Path, cli: Path) -> None:
|
||||||
echo("updating local source copy of viv")
|
echo("updating local source copy of viv")
|
||||||
|
@ -1058,7 +1070,7 @@ class Viv:
|
||||||
def manage(self, args: Namespace) -> None:
|
def manage(self, args: Namespace) -> None:
|
||||||
"""manage viv itself"""
|
"""manage viv itself"""
|
||||||
|
|
||||||
if args.cmd == "show":
|
if args.subcmd == "show":
|
||||||
if args.pythonpath:
|
if args.pythonpath:
|
||||||
if self.local and self.local_source:
|
if self.local and self.local_source:
|
||||||
sys.stdout.write(str(self.local_source.parent) + "\n")
|
sys.stdout.write(str(self.local_source.parent) + "\n")
|
||||||
|
@ -1074,7 +1086,7 @@ class Viv:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
elif args.cmd == "update":
|
elif args.subcmd == "update":
|
||||||
sha256, next_version = self._get_new_version(args.ref)
|
sha256, next_version = self._get_new_version(args.ref)
|
||||||
|
|
||||||
if self.local_version == next_version:
|
if self.local_version == next_version:
|
||||||
|
@ -1093,7 +1105,7 @@ class Viv:
|
||||||
args.cli,
|
args.cli,
|
||||||
)
|
)
|
||||||
|
|
||||||
elif args.cmd == "install":
|
elif args.subcmd == "install":
|
||||||
sha256, downloaded_version = self._get_new_version(args.ref)
|
sha256, downloaded_version = self._get_new_version(args.ref)
|
||||||
|
|
||||||
echo(f"Downloaded version: {downloaded_version}")
|
echo(f"Downloaded version: {downloaded_version}")
|
||||||
|
@ -1107,7 +1119,7 @@ class Viv:
|
||||||
):
|
):
|
||||||
self._install_local_src(sha256, args.src, args.cli)
|
self._install_local_src(sha256, args.src, args.cli)
|
||||||
|
|
||||||
elif args.cmd == "purge":
|
elif args.subcmd == "purge":
|
||||||
to_remove = []
|
to_remove = []
|
||||||
if c._cache.is_dir():
|
if c._cache.is_dir():
|
||||||
to_remove.append(c._cache)
|
to_remove.append(c._cache)
|
||||||
|
@ -1206,10 +1218,223 @@ class Viv:
|
||||||
else:
|
else:
|
||||||
vivenv.create()
|
vivenv.create()
|
||||||
vivenv.install_pkgs()
|
vivenv.install_pkgs()
|
||||||
vivenv.meta.write()
|
|
||||||
|
vivenv.touch()
|
||||||
|
vivenv.meta.write()
|
||||||
|
|
||||||
sys.exit(subprocess.run([vivenv.path / "bin" / bin, *args.rest]).returncode)
|
sys.exit(subprocess.run([vivenv.path / "bin" / bin, *args.rest]).returncode)
|
||||||
|
|
||||||
|
|
||||||
|
class Arg:
|
||||||
|
def __init__(self, *args: str, **kwargs: Any) -> None:
|
||||||
|
self.args = args
|
||||||
|
self.kwargs = kwargs
|
||||||
|
|
||||||
|
|
||||||
|
class Cli:
|
||||||
|
args = {
|
||||||
|
"list": [
|
||||||
|
Arg(
|
||||||
|
"-f",
|
||||||
|
"--full",
|
||||||
|
help="show full metadata for vivenvs",
|
||||||
|
action="store_true",
|
||||||
|
),
|
||||||
|
Arg(
|
||||||
|
"-q",
|
||||||
|
"--quiet",
|
||||||
|
help="suppress non-essential output",
|
||||||
|
action="store_true",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
"shim": [
|
||||||
|
Arg(
|
||||||
|
"-f",
|
||||||
|
"--freeze",
|
||||||
|
help="freeze/resolve all dependencies",
|
||||||
|
action="store_true",
|
||||||
|
),
|
||||||
|
Arg(
|
||||||
|
"-o",
|
||||||
|
"--output",
|
||||||
|
help="path/to/output file",
|
||||||
|
type=Path,
|
||||||
|
metavar="<path>",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
"remove": [Arg("vivenv", help="name/hash of vivenv", nargs="*")],
|
||||||
|
("exe|pip", "exe|python"): [Arg("vivenv", help="name/hash of vivenv")],
|
||||||
|
("list", "info"): [
|
||||||
|
Arg(
|
||||||
|
"--json",
|
||||||
|
help="name:metadata json for vivenvs ",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
("freeze", "shim"): [
|
||||||
|
Arg(
|
||||||
|
"-p",
|
||||||
|
"--path",
|
||||||
|
help="generate line to add viv to sys.path",
|
||||||
|
choices=["abs", "rel"],
|
||||||
|
),
|
||||||
|
Arg(
|
||||||
|
"-s",
|
||||||
|
"--standalone",
|
||||||
|
help="generate standalone activation function",
|
||||||
|
action="store_true",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
("run", "freeze", "shim"): [
|
||||||
|
Arg(
|
||||||
|
"-k",
|
||||||
|
"--keep",
|
||||||
|
help="preserve environment",
|
||||||
|
action="store_true",
|
||||||
|
),
|
||||||
|
Arg("reqs", help="requirements specifiers", nargs="*"),
|
||||||
|
Arg(
|
||||||
|
"-r",
|
||||||
|
"--requirements",
|
||||||
|
help="path/to/requirements.txt file",
|
||||||
|
metavar="<path>",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
("run", "shim"): [
|
||||||
|
Arg("-b", "--bin", help="console_script/script to invoke", metavar="<bin>"),
|
||||||
|
],
|
||||||
|
("manage|purge", "manage|update", "manage|install"): [
|
||||||
|
Arg(
|
||||||
|
"-r",
|
||||||
|
"--ref",
|
||||||
|
help="git reference (branch/tag/commit)",
|
||||||
|
default="latest",
|
||||||
|
metavar="<ref>",
|
||||||
|
),
|
||||||
|
Arg(
|
||||||
|
"-s",
|
||||||
|
"--src",
|
||||||
|
help="path/to/source_file",
|
||||||
|
default=c.srcdefault,
|
||||||
|
metavar="<src>",
|
||||||
|
),
|
||||||
|
Arg(
|
||||||
|
"-c",
|
||||||
|
"--cli",
|
||||||
|
help="path/to/cli (symlink to src)",
|
||||||
|
default=Path.home() / ".local" / "bin" / "viv",
|
||||||
|
metavar="<cli>",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
"manage|show": [
|
||||||
|
Arg(
|
||||||
|
"-p",
|
||||||
|
"--pythonpath",
|
||||||
|
help="show the path/to/install",
|
||||||
|
action="store_true",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
("exe|python", "exe|pip"): [
|
||||||
|
Arg(
|
||||||
|
"cmd",
|
||||||
|
help="command to to execute",
|
||||||
|
nargs="*",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
}
|
||||||
|
cmds = (
|
||||||
|
"list",
|
||||||
|
(
|
||||||
|
"exe",
|
||||||
|
dict(
|
||||||
|
pip=dict(help="run cmd with pip"),
|
||||||
|
python=dict(help="run cmd with python"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
"remove",
|
||||||
|
"freeze",
|
||||||
|
"info",
|
||||||
|
(
|
||||||
|
"manage",
|
||||||
|
dict(
|
||||||
|
show=dict(help="show current installation", aliases=["s"]),
|
||||||
|
install=dict(help="install fresh viv", aliases=["i"]),
|
||||||
|
update=dict(help="update viv version", aliases=["u"]),
|
||||||
|
purge=dict(help="remove traces of viv", aliases=["p"]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
"shim",
|
||||||
|
"run",
|
||||||
|
)
|
||||||
|
|
||||||
|
def __init__(self, viv: Viv) -> None:
|
||||||
|
self.viv = viv
|
||||||
|
self.parser = ArgumentParser(prog=viv.name, description=t.description)
|
||||||
|
self._cmd_arg_group_map()
|
||||||
|
self._make_parsers()
|
||||||
|
self._add_args()
|
||||||
|
|
||||||
|
def _cmd_arg_group_map(self) -> None:
|
||||||
|
self.cmd_arg_group_map = {}
|
||||||
|
for grp in self.args:
|
||||||
|
if isinstance(grp, str):
|
||||||
|
self.cmd_arg_group_map.setdefault(grp, []).append(grp)
|
||||||
|
else:
|
||||||
|
for cmd in grp:
|
||||||
|
self.cmd_arg_group_map.setdefault(cmd, []).append(grp)
|
||||||
|
|
||||||
|
def _make_parsers(self) -> None:
|
||||||
|
self.parsers = {**{grp: ArgumentParser(add_help=False) for grp in self.args}}
|
||||||
|
|
||||||
|
def _add_args(self) -> None:
|
||||||
|
for grp, args in self.args.items():
|
||||||
|
for arg in args:
|
||||||
|
self.parsers.get(grp).add_argument(*arg.args, **arg.kwargs)
|
||||||
|
|
||||||
|
def _validate_args(self, args: Namespace) -> None:
|
||||||
|
if args.func.__name__ in ("freeze", "shim", "run"):
|
||||||
|
if not args.reqs:
|
||||||
|
error("must specify a requirement", code=1)
|
||||||
|
if args.func.__name__ in ("freeze", "shim"):
|
||||||
|
if not self.viv.local_source and not (args.standalone or args.path):
|
||||||
|
warn(
|
||||||
|
"failed to find local copy of `viv` "
|
||||||
|
"make sure to add it to your PYTHONPATH "
|
||||||
|
"or consider using --path/--standalone"
|
||||||
|
)
|
||||||
|
|
||||||
|
if args.path and not self.viv.local_source:
|
||||||
|
error("No local viv found to import from", code=1)
|
||||||
|
|
||||||
|
if args.path and args.standalone:
|
||||||
|
error("-p/--path and -s/--standalone are mutually exclusive", code=1)
|
||||||
|
|
||||||
|
if args.func.__name__ == "manage":
|
||||||
|
if args.subcmd == "install" and self.viv.local_source:
|
||||||
|
error(f"found existing viv installation at {self.viv.local_source}")
|
||||||
|
echo(
|
||||||
|
"use "
|
||||||
|
+ a.style("viv manage update", "bold")
|
||||||
|
+ " to modify current installation.",
|
||||||
|
style="red",
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
if args.subcmd == "update":
|
||||||
|
if not self.viv.local_source:
|
||||||
|
error(
|
||||||
|
a.style("viv manage update", "bold")
|
||||||
|
+ " should be used with an exisiting installation",
|
||||||
|
1,
|
||||||
|
)
|
||||||
|
|
||||||
|
if self.viv.git:
|
||||||
|
error(
|
||||||
|
a.style("viv manage update", "bold")
|
||||||
|
+ " shouldn't be used with a git-based installation",
|
||||||
|
1,
|
||||||
|
)
|
||||||
|
|
||||||
def _get_subcmd_parser(
|
def _get_subcmd_parser(
|
||||||
self,
|
self,
|
||||||
subparsers: _SubParsersAction[ArgumentParser],
|
subparsers: _SubParsersAction[ArgumentParser],
|
||||||
|
@ -1217,8 +1442,13 @@ class Viv:
|
||||||
attr: Optional[str] = None,
|
attr: Optional[str] = None,
|
||||||
**kwargs: Any,
|
**kwargs: Any,
|
||||||
) -> ArgumentParser:
|
) -> ArgumentParser:
|
||||||
aliases = kwargs.pop("aliases", [name[0]])
|
# override for remove
|
||||||
cmd = getattr(self, attr if attr else name)
|
if name == "remove":
|
||||||
|
aliases = ["rm"]
|
||||||
|
else:
|
||||||
|
aliases = kwargs.pop("aliases", [name[0]])
|
||||||
|
|
||||||
|
cmd = getattr(self.viv, attr if attr else name)
|
||||||
parser: ArgumentParser = subparsers.add_parser(
|
parser: ArgumentParser = subparsers.add_parser(
|
||||||
name,
|
name,
|
||||||
help=cmd.__doc__.splitlines()[0],
|
help=cmd.__doc__.splitlines()[0],
|
||||||
|
@ -1230,252 +1460,48 @@ class Viv:
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def _validate_args(self, args: Namespace) -> None:
|
def run(self):
|
||||||
if args.func.__name__ in ("freeze", "shim", "run"):
|
self.parser.add_argument(
|
||||||
if not args.reqs:
|
|
||||||
error("must specify a requirement", code=1)
|
|
||||||
if args.func.__name__ in ("freeze", "shim"):
|
|
||||||
if not self.local_source and not (args.standalone or args.path):
|
|
||||||
warn(
|
|
||||||
"failed to find local copy of `viv` "
|
|
||||||
"make sure to add it to your PYTHONPATH "
|
|
||||||
"or consider using --path/--standalone"
|
|
||||||
)
|
|
||||||
|
|
||||||
if args.path and not self.local_source:
|
|
||||||
error("No local viv found to import from", code=1)
|
|
||||||
|
|
||||||
if args.path and args.standalone:
|
|
||||||
error("-p/--path and -s/--standalone are mutually exclusive", code=1)
|
|
||||||
|
|
||||||
if args.func.__name__ == "manage":
|
|
||||||
if args.cmd == "install" and self.local_source:
|
|
||||||
error(f"found existing viv installation at {self.local_source}")
|
|
||||||
echo(
|
|
||||||
"use "
|
|
||||||
+ a.style("viv manage update", "bold")
|
|
||||||
+ " to modify current installation.",
|
|
||||||
style="red",
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
if args.cmd == "update":
|
|
||||||
if not self.local_source:
|
|
||||||
error(
|
|
||||||
a.style("viv manage update", "bold")
|
|
||||||
+ " should be used with an exisiting installation",
|
|
||||||
1,
|
|
||||||
)
|
|
||||||
|
|
||||||
if self.git:
|
|
||||||
error(
|
|
||||||
a.style("viv manage update", "bold")
|
|
||||||
+ " shouldn't be used with a git-based installation",
|
|
||||||
1,
|
|
||||||
)
|
|
||||||
|
|
||||||
def cli(self) -> None:
|
|
||||||
"""cli entrypoint"""
|
|
||||||
|
|
||||||
parser = ArgumentParser(prog=self.name, description=t.description)
|
|
||||||
parser.add_argument(
|
|
||||||
"-V",
|
"-V",
|
||||||
"--version",
|
"--version",
|
||||||
action="version",
|
action="version",
|
||||||
version=f"{a.bold}viv{a.end}, version {a.cyan}{__version__}{a.end}",
|
version=f"{a.bold}viv{a.end}, version {a.cyan}{__version__}{a.end}",
|
||||||
)
|
)
|
||||||
|
|
||||||
subparsers = parser.add_subparsers(
|
cmd_p = self.parser.add_subparsers(
|
||||||
metavar="<sub-cmd>", title="subcommands", required=True
|
metavar="<sub-cmd>", title="subcommands", required=True
|
||||||
)
|
)
|
||||||
p_vivenv_arg = ArgumentParser(add_help=False)
|
|
||||||
p_vivenv_arg.add_argument("vivenv", help="name/hash of vivenv")
|
|
||||||
p_list = self._get_subcmd_parser(subparsers, "list")
|
|
||||||
|
|
||||||
p_list.add_argument(
|
for cmd in self.cmds:
|
||||||
"-v",
|
if isinstance(cmd, tuple):
|
||||||
"--verbose",
|
cmd, subcmds = cmd
|
||||||
help="show full metadata for vivenvs",
|
subcmd_p = self._get_subcmd_parser(cmd_p, cmd)
|
||||||
default=False,
|
subcmd_cmd_p = subcmd_p.add_subparsers(
|
||||||
action="store_true",
|
title="subcommand", metavar="<sub-cmd>", required=True
|
||||||
)
|
)
|
||||||
p_list.add_argument(
|
for subcmd, kwargs in subcmds.items():
|
||||||
"-q",
|
subcmd_cmd_p.add_parser(
|
||||||
"--quiet",
|
subcmd,
|
||||||
help="suppress non-essential output",
|
parents=[
|
||||||
action="store_true",
|
self.parsers.get(k)
|
||||||
default=False,
|
for k in self.cmd_arg_group_map[f"{cmd}|{subcmd}"]
|
||||||
)
|
],
|
||||||
|
**kwargs,
|
||||||
|
).set_defaults(func=getattr(self.viv, cmd), subcmd=subcmd)
|
||||||
|
|
||||||
p_exe = self._get_subcmd_parser(
|
else:
|
||||||
subparsers,
|
self._get_subcmd_parser(
|
||||||
"exe",
|
cmd_p,
|
||||||
)
|
cmd,
|
||||||
p_exe_sub = p_exe.add_subparsers(
|
parents=[self.parsers.get(k) for k in self.cmd_arg_group_map[cmd]],
|
||||||
title="subcommand", metavar="<sub-cmd>", required=True
|
)
|
||||||
)
|
|
||||||
|
|
||||||
p_exe_shared = ArgumentParser(add_help=False)
|
|
||||||
p_exe_shared.add_argument(
|
|
||||||
"cmd",
|
|
||||||
help="command to to execute",
|
|
||||||
nargs="*",
|
|
||||||
)
|
|
||||||
|
|
||||||
p_exe_sub.add_parser(
|
|
||||||
"python",
|
|
||||||
help="run command with python",
|
|
||||||
parents=[p_vivenv_arg, p_exe_shared],
|
|
||||||
).set_defaults(func=self.exe, exe="python")
|
|
||||||
|
|
||||||
p_exe_sub.add_parser(
|
|
||||||
"pip", help="run command with pip", parents=[p_vivenv_arg, p_exe_shared]
|
|
||||||
).set_defaults(func=self.exe, exe="pip")
|
|
||||||
|
|
||||||
p_remove = self._get_subcmd_parser(
|
|
||||||
subparsers,
|
|
||||||
"remove",
|
|
||||||
aliases=["rm"],
|
|
||||||
)
|
|
||||||
|
|
||||||
p_remove.add_argument("vivenv", help="name/hash of vivenv", nargs="*")
|
|
||||||
|
|
||||||
p_freeze_shim_shared = ArgumentParser(add_help=False)
|
|
||||||
|
|
||||||
p_freeze_shim_shared.add_argument(
|
|
||||||
"-p",
|
|
||||||
"--path",
|
|
||||||
help="generate line to add viv to sys.path",
|
|
||||||
choices=["abs", "rel"],
|
|
||||||
)
|
|
||||||
p_freeze_shim_shared.add_argument(
|
|
||||||
"-r",
|
|
||||||
"--requirements",
|
|
||||||
help="path/to/requirements.txt file",
|
|
||||||
metavar="<path>",
|
|
||||||
)
|
|
||||||
p_freeze_shim_shared.add_argument(
|
|
||||||
"-k",
|
|
||||||
"--keep",
|
|
||||||
help="preserve environment",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
p_freeze_shim_shared.add_argument(
|
|
||||||
"-s",
|
|
||||||
"--standalone",
|
|
||||||
help="generate standalone activation function",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
p_freeze_shim_shared.add_argument(
|
|
||||||
"reqs", help="requirements specifiers", nargs="*"
|
|
||||||
)
|
|
||||||
|
|
||||||
self._get_subcmd_parser(subparsers, "freeze", parents=[p_freeze_shim_shared])
|
|
||||||
self._get_subcmd_parser(
|
|
||||||
subparsers,
|
|
||||||
"info",
|
|
||||||
parents=[p_vivenv_arg],
|
|
||||||
)
|
|
||||||
p_manage_shared = ArgumentParser(add_help=False)
|
|
||||||
p_manage_shared.add_argument(
|
|
||||||
"-r",
|
|
||||||
"--ref",
|
|
||||||
help="git reference (branch/tag/commit)",
|
|
||||||
default="latest",
|
|
||||||
metavar="<ref>",
|
|
||||||
)
|
|
||||||
|
|
||||||
p_manage_shared.add_argument(
|
|
||||||
"-s",
|
|
||||||
"--src",
|
|
||||||
help="path/to/source_file",
|
|
||||||
default=c.srcdefault,
|
|
||||||
metavar="<src>",
|
|
||||||
)
|
|
||||||
p_manage_shared.add_argument(
|
|
||||||
"-c",
|
|
||||||
"--cli",
|
|
||||||
help="path/to/cli (symlink to src)",
|
|
||||||
default=Path.home() / ".local" / "bin" / "viv",
|
|
||||||
metavar="<cli>",
|
|
||||||
)
|
|
||||||
|
|
||||||
p_manage_sub = self._get_subcmd_parser(
|
|
||||||
subparsers,
|
|
||||||
name="manage",
|
|
||||||
).add_subparsers(title="subcommand", metavar="<sub-cmd>", required=True)
|
|
||||||
|
|
||||||
p_manage_sub.add_parser(
|
|
||||||
"install", help="install viv", aliases="i", parents=[p_manage_shared]
|
|
||||||
).set_defaults(func=self.manage, cmd="install")
|
|
||||||
|
|
||||||
p_manage_sub.add_parser(
|
|
||||||
"update",
|
|
||||||
help="update viv version",
|
|
||||||
aliases="u",
|
|
||||||
parents=[p_manage_shared],
|
|
||||||
).set_defaults(func=self.manage, cmd="update")
|
|
||||||
|
|
||||||
(
|
|
||||||
p_manage_show := p_manage_sub.add_parser(
|
|
||||||
"show", help="show current installation info", aliases="s"
|
|
||||||
)
|
|
||||||
).set_defaults(func=self.manage, cmd="show")
|
|
||||||
|
|
||||||
p_manage_show.add_argument(
|
|
||||||
"-p", "--pythonpath", help="show the path/to/install", action="store_true"
|
|
||||||
)
|
|
||||||
|
|
||||||
p_manage_sub.add_parser(
|
|
||||||
"purge", help="remove traces of viv", aliases="p", parents=[p_manage_shared]
|
|
||||||
).set_defaults(func=self.manage, cmd="purge")
|
|
||||||
|
|
||||||
p_shim = self._get_subcmd_parser(
|
|
||||||
subparsers, "shim", parents=[p_freeze_shim_shared]
|
|
||||||
)
|
|
||||||
|
|
||||||
p_shim.add_argument(
|
|
||||||
"-f",
|
|
||||||
"--freeze",
|
|
||||||
help="freeze/resolve all dependencies",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
p_shim.add_argument(
|
|
||||||
"-o",
|
|
||||||
"--output",
|
|
||||||
help="path/to/output file",
|
|
||||||
type=Path,
|
|
||||||
metavar="<path>",
|
|
||||||
)
|
|
||||||
p_shim.add_argument(
|
|
||||||
"-b", "--bin", help="console_script/script to invoke", metavar="<bin>"
|
|
||||||
)
|
|
||||||
|
|
||||||
p_run = self._get_subcmd_parser(subparsers, "run")
|
|
||||||
|
|
||||||
p_run.add_argument(
|
|
||||||
"-r",
|
|
||||||
"--requirements",
|
|
||||||
help="path/to/requirements.txt file",
|
|
||||||
metavar="<path>",
|
|
||||||
)
|
|
||||||
p_run.add_argument(
|
|
||||||
"-k",
|
|
||||||
"--keep",
|
|
||||||
help="preserve environment",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
p_run.add_argument("reqs", help="requirements specifiers", nargs="*")
|
|
||||||
|
|
||||||
p_run.add_argument(
|
|
||||||
"-b", "--bin", help="console_script/script to invoke", metavar="<bin>"
|
|
||||||
)
|
|
||||||
|
|
||||||
if "--" in sys.argv:
|
if "--" in sys.argv:
|
||||||
i = sys.argv.index("--")
|
i = sys.argv.index("--")
|
||||||
args = parser.parse_args(sys.argv[1:i])
|
args = self.parser.parse_args(sys.argv[1:i])
|
||||||
args.rest = sys.argv[i + 1 :]
|
args.rest = sys.argv[i + 1 :]
|
||||||
else:
|
else:
|
||||||
args = parser.parse_args()
|
args = self.parser.parse_args()
|
||||||
args.rest = []
|
args.rest = []
|
||||||
|
|
||||||
self._validate_args(args)
|
self._validate_args(args)
|
||||||
|
@ -1486,7 +1512,7 @@ class Viv:
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
viv = Viv()
|
viv = Viv()
|
||||||
viv.cli()
|
Cli(viv).run()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|