python workspace

This commit is contained in:
bluxmit 2022-07-17 14:25:48 +00:00
parent 5e30848c4d
commit 363dc2763f
44 changed files with 334 additions and 107 deletions

View file

@ -33,4 +33,3 @@ USER abc

View file

@ -0,0 +1,27 @@
ARG docker_registry=docker.io/alnoda
ARG image_tag=2.2
FROM ${docker_registry}/ide-workspace:${image_tag}
USER root
COPY python-requirements.txt /home/abc/installed-python-packages
COPY ./examples/ /home/examples/
COPY .pylintrc /home/abc/
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
RUN pip install -r /home/abc/installed-python-packages/python-requirements.txt \
&& echo "------------------------------------------------------ graphviz" \
&& apt-get update \
&& apt-get install -y graphviz \
&& apt-get install -y python3-pydotplus \
&& echo "------------------------------------------------------ utils" \
&& echo "alias python-report='/home/abc/utils/python-report.sh'" >> /home/abc/.zshrc \
&& chmod +x /home/abc/utils/python-report.sh && chown abc /home/abc/utils/python-report.sh \
&& echo "------------------------------------------------------ user" \
&& chown -R abc /home/abc/installed-python-packages \
&& find /home -type d | xargs -I{} chown -R abc {} \
&& find /home -type f | xargs -I{} chown abc {}
USER abc

View file

@ -0,0 +1,88 @@
<p align="center">
<img src="../../img/Alnoda-white.svg" alt="Alnoda logo" width="150">
</p>
# Python workspace
Docker image for Python development environment. Includes Python, python tooling together with browser-based IDE, file browser,
static server, job scheduler.
<p align="center">
<img src="img/python-wid-collage-sm.jpg" alt="Collage" width="750">
</p>
## Why this images
1. If you need isolated dev environment where you can code and install packages and apps without affecting the base operating system.
2. If you need self-hosted remote development environment.
3. If you need to be just one command away from coding in Python.
## Start
```
docker run --name space-1 -d -p 8020-8040:8020-8040 alnoda/python-workspace
```
and open [localhost:8020](http://localhost:8020) in browser.
## Features
**Python tools:**
- [IPython and Notebooks](https://ipython.readthedocs.io/en/stable/)
- [Pdoc3](https://github.com/pdoc3/pdoc)
- [Pytest-html-reporter](https://github.com/prashanth-sams/pytest-html-reporter)
- [SnakeViz](https://jiffyclub.github.io/snakeviz/)
- [Vprof](https://github.com/nvdv/vprof)
- [Pyinstrument](https://pypi.org/project/pyinstrument/3.0.0b3/)
- [Flameprof](https://github.com/baverman/flameprof/)
- [Pylint-json2html](https://github.com/Exirel/pylint-json2html)
- [Pre-commit](https://pre-commit.com/)
- [Flake8](https://flake8.pycqa.org/en/latest/)
- [Poetry](https://python-poetry.org/)
- [Black](https://github.com/psf/black)
**Dev tools:**
- [**Eclipse Theia**](https://theia-ide.org/docs/) - open source version of popular Visual Studio Code IDE. Theia is trully open-source, has
VS-Code extensions and works in browser. This means it can run inside a docker container on local machine or in cloud. A lot of beautiful color themes and many common plugins are already installed to save time.
- [**Terminal**](https://github.com/tsl0922/ttyd) - secure browser-based terminal.
- [**FileBrowser**](https://github.com/filebrowser/filebrowser) - manage files and folders inside the workspace, and exchange data between local environment and the workspace
- [**Cronicle**](https://github.com/jhuckaby/Cronicle) - task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer.
- [**Static File Server**](https://github.com/vercel/serve) - view any static html sites as easy as if you do it on your local machine. Serve static websites easily.
- [**Ungit**](https://github.com/FredrikNoren/ungit) - rings user friendliness to git without sacrificing the versatility of it.
- [**MkDocs**](https://squidfunk.github.io/mkdocs-material/) - create awesome documentation for your project with only markdown.
- [**Midnight Commander**](https://midnight-commander.org/) - Feature rich visual file manager with internal text viewer and editor.
- [**Process Monitor**](https://htop.dev/) - Monitor running process and resource utilization.
- Quicklaunch UI with getting started tutorial
Image is built from **Ubuntu 20.4** with the additional CLI apps
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
- Python 3, Pip
- Node/nodeenv
- curl, wget, telnet, jq
- **Git:** git, git-flow, lazygit
- **File browsers:** mc, xplr
- **Text editors:** nano, vim, mcedit
- **System monitors:** ncdu, htop, glances, vizex
- **Process Control:** supervisord
- **Job scheduler:** cron
## Docs
See our guides on
- [**getting started**](https://docs.alnoda.org/get-started/common-features/)
- [**workspace tutorial**](https://docs.alnoda.org/postgres-workspace/tutorial/)
- [**project docs**](https://docs.alnoda.org/)
## Demo
<div align="center" style="font-style: italic;">
Demo: Python workspace
</div>
<p align="center">
<img src="img/python-wid.gif" alt="postgres-wid-demo" width="750">
</p>

View file

Before

Width:  |  Height:  |  Size: 514 KiB

After

Width:  |  Height:  |  Size: 514 KiB

View file

Before

Width:  |  Height:  |  Size: 950 KiB

After

Width:  |  Height:  |  Size: 950 KiB

View file

Before

Width:  |  Height:  |  Size: 593 KiB

After

Width:  |  Height:  |  Size: 593 KiB

View file

Before

Width:  |  Height:  |  Size: 1 MiB

After

Width:  |  Height:  |  Size: 1 MiB

View file

Before

Width:  |  Height:  |  Size: 568 KiB

After

Width:  |  Height:  |  Size: 568 KiB

View file

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

View file

Before

Width:  |  Height:  |  Size: 372 KiB

After

Width:  |  Height:  |  Size: 372 KiB

View file

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 289 KiB

View file

Before

Width:  |  Height:  |  Size: 915 KiB

After

Width:  |  Height:  |  Size: 915 KiB

View file

Before

Width:  |  Height:  |  Size: 476 KiB

After

Width:  |  Height:  |  Size: 476 KiB

View file

Before

Width:  |  Height:  |  Size: 5.9 MiB

After

Width:  |  Height:  |  Size: 5.9 MiB

View file

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View file

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

View file

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View file

Before

Width:  |  Height:  |  Size: 16 MiB

After

Width:  |  Height:  |  Size: 16 MiB

View file

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View file

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

View file

Before

Width:  |  Height:  |  Size: 4.8 MiB

After

Width:  |  Height:  |  Size: 4.8 MiB

View file

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View file

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

@ -0,0 +1,70 @@
# ===========================================================
# NAVIGATION
# ===========================================================
nav:
- Home: README.md
- My apps: pages/my-apps.md
- Docs: https://docs.alnoda.org/python-workspace/
# ===========================================================
# CONFIGURATION
# ===========================================================
site_name: Python workspace
repo_url: https://github.com/bluxmit/alnoda-workspaces
site_url: https://docs.alnoda.org
edit_uri: ""
# ===========================================================
# APPEARANCE
# ===========================================================
theme:
name: 'material'
favicon: 'assets/favicon.ico'
logo: 'assets/Alnoda-logo.svg'
custom_dir: overrides
icon:
repo: fontawesome/brands/git-alt
features:
- navigation.instant
palette:
- scheme: slate
toggle:
icon: material/toggle-switch
name: Switch to dark mode
primary: light-blue
accent: deep orange
- scheme: default
toggle:
icon: material/toggle-switch-off-outline
name: Switch to light mode
primary: indigo
accent: deep orange
extra:
# Link to open when your logo is clicked
homepage: https://docs.alnoda.org
host_url: http://docs.alnoda.org
plugins:
- search
# Enable Macros and jinja2 templates
- macros:
module_name: macros/helpers
extra_javascript:
- javascripts/config.js
- https://polyfill.io/v3/polyfill.min.js?features=es6

View file

@ -0,0 +1,33 @@
poetry==1.1.14
# https://pypi.org/project/ipython/
ipython==8.4.0
jupyter==1.0.0
# https://pypi.org/project/prettyprinter/
prettyprinter==0.18.0
# https://github.com/antonbabenko/pre-commit-terraform
pre-commit==2.20.0
# https://github.com/pdoc3/pdoc
pdoc3==0.10.0
# https://github.com/baverman/flameprof/
flameprof==0.4
# https://jiffyclub.github.io/snakeviz/
snakeviz==2.1.1
# https://github.com/joerick/pyinstrument
pyinstrument==4.2.0
# https://github.com/nvdv/vprof
vprof==0.38
# https://pypi.org/project/pylint-json2html/
pylint-json2html==0.4.0
# https://pypi.org/project/pytest-html-reporter/
pytest-html-reporter==0.2.9
black==22.6.0
isort==5.10.1
flake8==4.0.1
mypy==0.961
pytest==7.1.2
pytest-regressions==2.3.1
logzero==1.7.0
pylint==2.14.4

View file

@ -1,27 +1,30 @@
ARG docker_registry=docker.io/alnoda
ARG image_tag=2.2
FROM ${docker_registry}/ide-workspace:${image_tag}
ARG image_tag=3.0
FROM ${docker_registry}/theia-workspace:${image_tag}
USER root
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
COPY ./mkdocs/python-circle.svg /home/docs/docs/assets/
COPY ./mkdocs/python-circle-white.svg /home/docs/docs/assets/
COPY ./mkdocs/extra.css /home/docs/docs/stylesheets/
COPY ./mkdocs/about.md /home/docs/docs/about.md
COPY settings.json /home/abc/.theia/settings.json
COPY python-requirements.txt /home/abc/installed-python-packages
COPY ./examples/ /home/examples/
COPY .pylintrc /home/abc/
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
RUN pip install -r /home/abc/installed-python-packages/python-requirements.txt \
&& echo "------------------------------------------------------ graphviz" \
&& apt-get update \
&& apt-get install -y graphviz \
&& apt-get install -y python3-pydotplus \
&& echo "------------------------------------------------------ utils" \
&& echo "alias python-report='/home/abc/utils/python-report.sh'" >> /home/abc/.zshrc \
&& chmod +x /home/abc/utils/python-report.sh && chown abc /home/abc/utils/python-report.sh \
RUN echo "------------------------------------------------------ Packages, Pipx " \
\ pip install -r /home/abc/installed-python-packages/python-requirements.txt \
\ python3 -m pip install --user pipx \
&& echo "------------------------------------------------------ user" \
&& chown -R abc /home/abc/installed-python-packages \
&& find /home -type d | xargs -I{} chown -R abc {} \
&& find /home -type f | xargs -I{} chown abc {}
USER abc
USER abc

View file

@ -1,21 +1,15 @@
<p align="center">
<img src="../../img/Alnoda-white.svg" alt="Alnoda logo" width="150">
<img src="./img/python-circle.svg" alt="Python logo" width="150">
</p>
# Python workspace
Docker image for Python development environment. Includes Python, python tooling together with browser-based IDE, file browser,
static server, job scheduler.
<p align="center">
<img src="img/python-wid-collage-sm.jpg" alt="Collage" width="750">
</p>
Containerized isolated development environment for Python.
## Why this images
1. If you need isolated dev environment where you can code and install packages and apps without affecting the base operating system.
2. If you need self-hosted remote development environment.
3. If you need to be just one command away from coding in Python.
1. If you need self-hosted remote development environment.
2. If you want to be one command away from coding in Python.
## Start
@ -23,51 +17,36 @@ static server, job scheduler.
docker run --name space-1 -d -p 8020-8040:8020-8040 alnoda/python-workspace
```
and open [localhost:8020](http://localhost:8020) in browser.
open [localhost:8020](http://localhost:8020) in browser.
## Features
**Python tools:**
- [IPython and Notebooks](https://ipython.readthedocs.io/en/stable/)
- [Pdoc3](https://github.com/pdoc3/pdoc)
- [Pytest-html-reporter](https://github.com/prashanth-sams/pytest-html-reporter)
- [SnakeViz](https://jiffyclub.github.io/snakeviz/)
- [Vprof](https://github.com/nvdv/vprof)
- [Pyinstrument](https://pypi.org/project/pyinstrument/3.0.0b3/)
- [Flameprof](https://github.com/baverman/flameprof/)
- [Pylint-json2html](https://github.com/Exirel/pylint-json2html)
- [IPython](https://ipython.readthedocs.io/en/stable/)
- [Pre-commit](https://pre-commit.com/)
- [Flake8](https://flake8.pycqa.org/en/latest/)
- [Poetry](https://python-poetry.org/)
- [Black](https://github.com/psf/black)
- [Pipx](https://github.com/pypa/pipx)
**Dev tools:**
- [**Eclipse Theia**](https://theia-ide.org/docs/) - open source version of popular Visual Studio Code IDE. Theia is trully open-source, has
VS-Code extensions and works in browser. This means it can run inside a docker container on local machine or in cloud. A lot of beautiful color themes and many common plugins are already installed to save time.
- [**Code-server**](https://github.com/cdr/code-server) - open source version of popular Visual Studio Code IDE. Codeserver has
VS-Code extensions and works in browser.
- [**Terminal**](https://github.com/tsl0922/ttyd) - secure browser-based terminal.
- [**FileBrowser**](https://github.com/filebrowser/filebrowser) - manage files and folders inside the workspace, and exchange data between local environment and the workspace
- [**Cronicle**](https://github.com/jhuckaby/Cronicle) - task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer.
- [**Static File Server**](https://github.com/vercel/serve) - view any static html sites as easy as if you do it on your local machine. Serve static websites easily.
- [**Ungit**](https://github.com/FredrikNoren/ungit) - rings user friendliness to git without sacrificing the versatility of it.
- [**MkDocs**](https://squidfunk.github.io/mkdocs-material/) - create awesome documentation for your project with only markdown.
- [**Midnight Commander**](https://midnight-commander.org/) - Feature rich visual file manager with internal text viewer and editor.
- [**Process Monitor**](https://htop.dev/) - Monitor running process and resource utilization.
- Quicklaunch UI with getting started tutorial
Image is built from **Ubuntu 20.4** with the additional CLI apps
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
- Python 3, Pip
- Node/nodeenv
- curl, wget, telnet, jq
- **Git:** git, git-flow, lazygit
- **File browsers:** mc, xplr
- **Text editors:** nano, vim, mcedit
- **System monitors:** ncdu, htop, glances, vizex
- **Process Control:** supervisord
- **Job scheduler:** cron
- **Ubuntu 20.4** with the following CLI apps
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
- Python 3, Pip
- Node/nodeenv
- curl, wget, telnet, jq
- **Git:** git, git-flow, lazygit
- **File browsers:** mc
- **Text editors:** nano, vim, mcedit
- **System monitors:** ncdu, htop, glances, vizex
- **Process Control:** supervisord
- **Job scheduler:** cron
- **Terminal multiplexer:** tmux
## Docs
@ -77,12 +56,3 @@ See our guides on
- [**workspace tutorial**](https://docs.alnoda.org/postgres-workspace/tutorial/)
- [**project docs**](https://docs.alnoda.org/)
## Demo
<div align="center" style="font-style: italic;">
Demo: Python workspace
</div>
<p align="center">
<img src="img/python-wid.gif" alt="postgres-wid-demo" width="750">
</p>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
<g id="g12" transform="scale(0.1)">
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
</g>
</g>
<title>Python icon</title>
<path d="M 515.297 105.249 L 541.418 111.084 L 562.603 118.666 L 579.726 127.415 L 592.786 136.749 L 602.653 146.666 L 609.909 156.582 L 614.552 166.207 L 617.455 174.957 L 618.615 182.541 L 619.195 188.374 L 618.906 192.166 L 618.906 347.916 L 617.455 366.291 L 613.681 382.334 L 607.587 395.75 L 600.041 406.834 L 591.335 415.875 L 581.757 423.166 L 571.6 428.709 L 561.443 432.791 L 551.866 435.709 L 543.158 437.75 L 535.613 438.916 L 529.519 439.5 L 356.26 439.5 L 336.234 440.957 L 319.113 445.042 L 304.602 451.458 L 292.703 459.332 L 283.125 468.666 L 275.29 478.875 L 269.486 489.375 L 265.132 500.166 L 262.23 510.375 L 260.199 519.708 L 259.038 527.582 L 258.457 533.709 L 258.457 622.959 L 193.738 622.959 L 187.644 622.084 L 179.519 620.041 L 170.231 616.542 L 160.074 611.291 L 149.626 603.709 L 139.178 593.209 L 129.021 579.792 L 119.734 562.582 L 111.607 541.291 L 105.513 515.625 L 101.451 485 L 100 449.125 L 101.741 413.542 L 106.385 383.208 L 113.35 357.832 L 122.636 337.125 L 133.084 320.5 L 144.692 307.666 L 156.881 298.041 L 169.071 291.041 L 180.679 286.375 L 191.127 283.458 L 200.414 281.999 L 207.38 281.707 L 212.023 281.707 L 213.764 281.999 L 450.58 281.999 L 450.58 257.791 L 281.094 257.791 L 280.805 177.584 L 280.223 166.791 L 281.674 156.874 L 284.866 147.832 L 289.801 139.666 L 297.056 132.082 L 306.053 125.374 L 317.08 119.541 L 329.851 114.291 L 344.651 109.916 L 361.484 106.416 L 380.057 103.499 L 400.663 101.75 L 423.009 100.583 L 447.388 100 L 484.245 101.457 L 515.297 105.249 Z M 332.463 163 L 325.787 172.625 L 323.466 184.582 L 325.787 196.541 L 332.463 206.457 L 342.039 212.875 L 353.938 215.499 L 365.838 212.875 L 375.414 206.457 L 382.09 196.541 L 384.411 184.582 L 382.09 172.625 L 375.414 163 L 365.838 156.582 L 353.938 153.958 L 342.039 156.582 L 332.463 163 Z M 712.355 278.207 L 720.481 279.957 L 729.768 283.458 L 739.925 288.709 L 750.373 296.582 L 760.821 306.791 L 770.978 320.5 L 780.266 337.707 L 788.391 359 L 794.486 384.666 L 798.549 414.999 L 800 450.875 L 798.259 486.75 L 793.616 517.084 L 786.65 542.166 L 777.364 562.874 L 766.915 579.499 L 755.308 592.625 L 743.117 602.25 L 730.929 609.25 L 719.32 613.916 L 708.873 616.542 L 699.586 618 L 692.62 618.584 L 687.977 618.291 L 449.419 618.291 L 449.419 642.207 L 618.906 642.207 L 619.195 722.709 L 619.775 733.209 L 618.324 743.125 L 615.132 752.166 L 610.2 760.625 L 602.944 767.917 L 593.947 774.916 L 582.919 780.75 L 570.15 785.708 L 555.347 790.084 L 538.516 793.875 L 519.941 796.5 L 499.335 798.541 L 476.99 799.709 L 452.612 800 L 415.753 798.832 L 384.7 794.75 L 358.582 788.916 L 337.396 781.625 L 320.272 772.875 L 307.215 763.25 L 297.347 753.334 L 290.091 743.416 L 285.448 733.791 L 282.545 725.041 L 281.385 717.75 L 280.805 711.916 L 281.094 708.125 L 281.094 552.375 L 282.545 533.709 L 286.317 517.958 L 292.413 504.541 L 299.959 493.459 L 308.665 484.125 L 318.241 477.125 L 328.4 471.291 L 338.557 467.209 L 348.133 464.291 L 356.839 462.541 L 364.387 461.374 L 370.481 460.791 L 374.253 460.5 L 543.74 460.5 L 563.764 459.041 L 580.887 454.958 L 595.398 448.834 L 607.297 440.666 L 616.874 431.332 L 624.711 421.125 L 630.514 410.625 L 634.868 400.124 L 637.77 389.916 L 639.801 380.584 L 640.962 372.416 L 641.542 366.291 L 641.542 277.041 L 702.196 277.041 L 706.26 277.334 L 712.355 278.207 Z M 524.586 693.832 L 517.91 703.459 L 515.588 715.416 L 517.91 727.375 L 524.586 737 L 534.162 743.707 L 546.061 746.042 L 557.96 743.707 L 567.537 737 L 574.211 727.375 L 576.534 715.416 L 574.211 703.459 L 567.537 693.832 L 557.96 687.125 L 546.061 684.792 L 534.162 687.125 L 524.586 693.832 Z" style=""/>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1 @@
Containerized isolated development environment for Python.

View file

@ -0,0 +1,21 @@
[data-md-color-scheme="python"] {
--md-primary-fg-color: #1E415E;
--md-primary-fg-color--light: #1E415E;
--md-primary-fg-color--dark: #1E415E;
--md-accent-fg-color: #ffda21;
--md-default-bg-color: #F0F5FA;
}
[data-md-color-scheme="python-dark"] {
--md-primary-fg-color: #316999;
--md-primary-fg-color--light: #316999;
--md-primary-fg-color--dark: #316999;
--md-accent-fg-color: #ffda21;
--md-default-bg-color: #1E2933;
--md-default-fg-color--light: #4495db;
--md-typeset-color: #4495db;
--md-typeset-a-color: #4495db;
}

View file

@ -5,6 +5,7 @@
nav:
- Home: README.md
- My apps: pages/my-apps.md
- About: about.md
- Docs: https://docs.alnoda.org/python-workspace/
@ -23,26 +24,24 @@ edit_uri: ""
theme:
name: 'material'
favicon: 'assets/favicon.ico'
logo: 'assets/Alnoda-logo.svg'
favicon: 'assets/python-circle.svg'
logo: 'assets/python-circle-white.svg'
custom_dir: overrides
font: Fira Sans
icon:
repo: fontawesome/brands/git-alt
repo: fontawesome/brands/github
features:
- navigation.instant
palette:
- scheme: slate
- scheme: python
toggle:
icon: material/toggle-switch
icon: material/brightness-7
name: Switch to dark mode
primary: light-blue
accent: deep orange
- scheme: default
- scheme: python-dark
toggle:
icon: material/toggle-switch-off-outline
name: Switch to light mode
primary: indigo
accent: deep orange
icon: material/brightness-4
name: Switch to light mode
extra:
# Link to open when your logo is clicked
@ -50,11 +49,12 @@ extra:
host_url: http://docs.alnoda.org
plugins:
- search
# Enable Macros and jinja2 templates
- macros:
module_name: macros/helpers
extra_css:
- stylesheets/extra.css
extra_javascript:
- javascripts/config.js

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
<g id="g12" transform="scale(0.1)">
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
</g>
</g>
<path d="M 515.297 105.249 L 541.418 111.084 L 562.603 118.666 L 579.726 127.415 L 592.786 136.749 L 602.653 146.666 L 609.909 156.582 L 614.552 166.207 L 617.455 174.957 L 618.615 182.541 L 619.195 188.374 L 618.906 192.166 L 618.906 347.916 L 617.455 366.291 L 613.681 382.334 L 607.587 395.75 L 600.041 406.834 L 591.335 415.875 L 581.757 423.166 L 571.6 428.709 L 561.443 432.791 L 551.866 435.709 L 543.158 437.75 L 535.613 438.916 L 529.519 439.5 L 356.26 439.5 L 336.234 440.957 L 319.113 445.042 L 304.602 451.458 L 292.703 459.332 L 283.125 468.666 L 275.29 478.875 L 269.486 489.375 L 265.132 500.166 L 262.23 510.375 L 260.199 519.708 L 259.038 527.582 L 258.457 533.709 L 258.457 622.959 L 193.738 622.959 L 187.644 622.084 L 179.519 620.041 L 170.231 616.542 L 160.074 611.291 L 149.626 603.709 L 139.178 593.209 L 129.021 579.792 L 119.734 562.582 L 111.607 541.291 L 105.513 515.625 L 101.451 485 L 100 449.125 L 101.741 413.542 L 106.385 383.208 L 113.35 357.832 L 122.636 337.125 L 133.084 320.5 L 144.692 307.666 L 156.881 298.041 L 169.071 291.041 L 180.679 286.375 L 191.127 283.458 L 200.414 281.999 L 207.38 281.707 L 212.023 281.707 L 213.764 281.999 L 450.58 281.999 L 450.58 257.791 L 281.094 257.791 L 280.805 177.584 L 280.223 166.791 L 281.674 156.874 L 284.866 147.832 L 289.801 139.666 L 297.056 132.082 L 306.053 125.374 L 317.08 119.541 L 329.851 114.291 L 344.651 109.916 L 361.484 106.416 L 380.057 103.499 L 400.663 101.75 L 423.009 100.583 L 447.388 100 L 484.245 101.457 L 515.297 105.249 Z M 332.463 163 L 325.787 172.625 L 323.466 184.582 L 325.787 196.541 L 332.463 206.457 L 342.039 212.875 L 353.938 215.499 L 365.838 212.875 L 375.414 206.457 L 382.09 196.541 L 384.411 184.582 L 382.09 172.625 L 375.414 163 L 365.838 156.582 L 353.938 153.958 L 342.039 156.582 L 332.463 163 Z M 712.355 278.207 L 720.481 279.957 L 729.768 283.458 L 739.925 288.709 L 750.373 296.582 L 760.821 306.791 L 770.978 320.5 L 780.266 337.707 L 788.391 359 L 794.486 384.666 L 798.549 414.999 L 800 450.875 L 798.259 486.75 L 793.616 517.084 L 786.65 542.166 L 777.364 562.874 L 766.915 579.499 L 755.308 592.625 L 743.117 602.25 L 730.929 609.25 L 719.32 613.916 L 708.873 616.542 L 699.586 618 L 692.62 618.584 L 687.977 618.291 L 449.419 618.291 L 449.419 642.207 L 618.906 642.207 L 619.195 722.709 L 619.775 733.209 L 618.324 743.125 L 615.132 752.166 L 610.2 760.625 L 602.944 767.917 L 593.947 774.916 L 582.919 780.75 L 570.15 785.708 L 555.347 790.084 L 538.516 793.875 L 519.941 796.5 L 499.335 798.541 L 476.99 799.709 L 452.612 800 L 415.753 798.832 L 384.7 794.75 L 358.582 788.916 L 337.396 781.625 L 320.272 772.875 L 307.215 763.25 L 297.347 753.334 L 290.091 743.416 L 285.448 733.791 L 282.545 725.041 L 281.385 717.75 L 280.805 711.916 L 281.094 708.125 L 281.094 552.375 L 282.545 533.709 L 286.317 517.958 L 292.413 504.541 L 299.959 493.459 L 308.665 484.125 L 318.241 477.125 L 328.4 471.291 L 338.557 467.209 L 348.133 464.291 L 356.839 462.541 L 364.387 461.374 L 370.481 460.791 L 374.253 460.5 L 543.74 460.5 L 563.764 459.041 L 580.887 454.958 L 595.398 448.834 L 607.297 440.666 L 616.874 431.332 L 624.711 421.125 L 630.514 410.625 L 634.868 400.124 L 637.77 389.916 L 639.801 380.584 L 640.962 372.416 L 641.542 366.291 L 641.542 277.041 L 702.196 277.041 L 706.26 277.334 L 712.355 278.207 Z M 524.586 693.832 L 517.91 703.459 L 515.588 715.416 L 517.91 727.375 L 524.586 737 L 534.162 743.707 L 546.061 746.042 L 557.96 743.707 L 567.537 737 L 574.211 727.375 L 576.534 715.416 L 574.211 703.459 L 567.537 693.832 L 557.96 687.125 L 546.061 684.792 L 534.162 687.125 L 524.586 693.832 Z" style="fill: rgb(255, 255, 255);"/>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
<g id="g12" transform="scale(0.1)">
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
</g>
</g>
<title>Python icon</title>
<path d="M 515.297 105.249 L 541.418 111.084 L 562.603 118.666 L 579.726 127.415 L 592.786 136.749 L 602.653 146.666 L 609.909 156.582 L 614.552 166.207 L 617.455 174.957 L 618.615 182.541 L 619.195 188.374 L 618.906 192.166 L 618.906 347.916 L 617.455 366.291 L 613.681 382.334 L 607.587 395.75 L 600.041 406.834 L 591.335 415.875 L 581.757 423.166 L 571.6 428.709 L 561.443 432.791 L 551.866 435.709 L 543.158 437.75 L 535.613 438.916 L 529.519 439.5 L 356.26 439.5 L 336.234 440.957 L 319.113 445.042 L 304.602 451.458 L 292.703 459.332 L 283.125 468.666 L 275.29 478.875 L 269.486 489.375 L 265.132 500.166 L 262.23 510.375 L 260.199 519.708 L 259.038 527.582 L 258.457 533.709 L 258.457 622.959 L 193.738 622.959 L 187.644 622.084 L 179.519 620.041 L 170.231 616.542 L 160.074 611.291 L 149.626 603.709 L 139.178 593.209 L 129.021 579.792 L 119.734 562.582 L 111.607 541.291 L 105.513 515.625 L 101.451 485 L 100 449.125 L 101.741 413.542 L 106.385 383.208 L 113.35 357.832 L 122.636 337.125 L 133.084 320.5 L 144.692 307.666 L 156.881 298.041 L 169.071 291.041 L 180.679 286.375 L 191.127 283.458 L 200.414 281.999 L 207.38 281.707 L 212.023 281.707 L 213.764 281.999 L 450.58 281.999 L 450.58 257.791 L 281.094 257.791 L 280.805 177.584 L 280.223 166.791 L 281.674 156.874 L 284.866 147.832 L 289.801 139.666 L 297.056 132.082 L 306.053 125.374 L 317.08 119.541 L 329.851 114.291 L 344.651 109.916 L 361.484 106.416 L 380.057 103.499 L 400.663 101.75 L 423.009 100.583 L 447.388 100 L 484.245 101.457 L 515.297 105.249 Z M 332.463 163 L 325.787 172.625 L 323.466 184.582 L 325.787 196.541 L 332.463 206.457 L 342.039 212.875 L 353.938 215.499 L 365.838 212.875 L 375.414 206.457 L 382.09 196.541 L 384.411 184.582 L 382.09 172.625 L 375.414 163 L 365.838 156.582 L 353.938 153.958 L 342.039 156.582 L 332.463 163 Z M 712.355 278.207 L 720.481 279.957 L 729.768 283.458 L 739.925 288.709 L 750.373 296.582 L 760.821 306.791 L 770.978 320.5 L 780.266 337.707 L 788.391 359 L 794.486 384.666 L 798.549 414.999 L 800 450.875 L 798.259 486.75 L 793.616 517.084 L 786.65 542.166 L 777.364 562.874 L 766.915 579.499 L 755.308 592.625 L 743.117 602.25 L 730.929 609.25 L 719.32 613.916 L 708.873 616.542 L 699.586 618 L 692.62 618.584 L 687.977 618.291 L 449.419 618.291 L 449.419 642.207 L 618.906 642.207 L 619.195 722.709 L 619.775 733.209 L 618.324 743.125 L 615.132 752.166 L 610.2 760.625 L 602.944 767.917 L 593.947 774.916 L 582.919 780.75 L 570.15 785.708 L 555.347 790.084 L 538.516 793.875 L 519.941 796.5 L 499.335 798.541 L 476.99 799.709 L 452.612 800 L 415.753 798.832 L 384.7 794.75 L 358.582 788.916 L 337.396 781.625 L 320.272 772.875 L 307.215 763.25 L 297.347 753.334 L 290.091 743.416 L 285.448 733.791 L 282.545 725.041 L 281.385 717.75 L 280.805 711.916 L 281.094 708.125 L 281.094 552.375 L 282.545 533.709 L 286.317 517.958 L 292.413 504.541 L 299.959 493.459 L 308.665 484.125 L 318.241 477.125 L 328.4 471.291 L 338.557 467.209 L 348.133 464.291 L 356.839 462.541 L 364.387 461.374 L 370.481 460.791 L 374.253 460.5 L 543.74 460.5 L 563.764 459.041 L 580.887 454.958 L 595.398 448.834 L 607.297 440.666 L 616.874 431.332 L 624.711 421.125 L 630.514 410.625 L 634.868 400.124 L 637.77 389.916 L 639.801 380.584 L 640.962 372.416 L 641.542 366.291 L 641.542 277.041 L 702.196 277.041 L 706.26 277.334 L 712.355 278.207 Z M 524.586 693.832 L 517.91 703.459 L 515.588 715.416 L 517.91 727.375 L 524.586 737 L 534.162 743.707 L 546.061 746.042 L 557.96 743.707 L 567.537 737 L 574.211 727.375 L 576.534 715.416 L 574.211 703.459 L 567.537 693.832 L 557.96 687.125 L 546.061 684.792 L 534.162 687.125 L 524.586 693.832 Z" style=""/>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -1,36 +1,17 @@
poetry==1.1.13
poetry==1.1.14
# https://pypi.org/project/ipython/
ipython==8.3.0
jupyter==1.0.0
ipython==8.4.0
# https://pypi.org/project/prettyprinter/
prettyprinter==0.18.0
# https://github.com/antonbabenko/pre-commit-terraform
pre-commit==2.19.0
# https://github.com/pdoc3/pdoc
pdoc3==0.10.0
# https://timothycrosley.github.io/portray/
portray==1.7.0
# https://github.com/baverman/flameprof/
flameprof==0.4
# https://jiffyclub.github.io/snakeviz/
snakeviz==2.1.1
# https://github.com/joerick/pyinstrument
pyinstrument==3.4.2
# https://github.com/nvdv/vprof
vprof==0.38
# https://pypi.org/project/pylint-json2html/
pylint-json2html==0.3.0
# https://pypi.org/project/pytest-html-reporter/
pytest-html-reporter==0.2.6
pre-commit==2.20.0
black==22.3.0
black==22.6.0
isort==5.10.1
flake8==4.0.1
mypy==0.812
mypy==0.961
pytest==7.1.2
pytest-regressions==2.3.1
logzero==1.7.0
pylint==2.13.8
pylint==2.14.4

View file

@ -0,0 +1,5 @@
{
"terminal.integrated.shell.linux": "/bin/zsh",
"workbench.colorTheme": "Atomize",
"git-graph.maxDepthOfRepoSearch": 3
}