diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml deleted file mode 100644 index 0c017f4..0000000 --- a/.github/workflows/doc.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Documentation - -on: - push: - branches: - - master - - main - paths: - - '*.md' - - docs/** - -jobs: - build-doc: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: pdm-project/setup-pdm@v2 - with: - python-version: 3.8 - architecture: 'x64' - - name: Build pages - run: | - pdm install -G doc - cd docs && pdm run mkdocs build - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/site diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9325de5..29d8dc1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,14 +2,14 @@ # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.2.0 + rev: v4.1.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-added-large-files - repo: https://github.com/psf/black - rev: 22.1.0 + rev: 22.3.0 hooks: - id: black @@ -19,7 +19,7 @@ repos: - id: isort - repo: https://gitlab.com/pycqa/flake8 - rev: 4.0.1 + rev: 3.9.2 hooks: - id: flake8 additional_dependencies: diff --git a/README.md b/README.md index 818abee..4cfb415 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Monas + + [![Tests](https://github.com/frostming/monas/workflows/Tests/badge.svg)](https://github.com/frostming/monas/actions?query=workflow%3Aci) [![pypi version](https://img.shields.io/pypi/v/monas.svg)](https://pypi.org/project/monas/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) @@ -11,14 +13,12 @@ Python monorepo made easy. ➡️ [Example Repository](https://github.com/frostming/monas-example-repo) -## Features +## About this project -**Monas** is a tool to manage multiple Python projects in a single monorepo. It is mainly inspired by [Lerna](https://lerna.js.org/). It supports the following build systems: +**Monas** is a tool to manage multiple Python projects in a single repository, or the so called ["Monorepo"](https://en.wikipedia.org/wiki/Monorepo). +It is mainly inspired by [Lerna](https://lerna.js.org/). In a monorepo, some dependencies are shared across packages while others are different. When you change the code of one of these shared dependencies, you may want to run the test suite across all dependant packages. Monas makes the workflow easier. -- [setuptools](https://setuptools.pypa.io/) -- [pdm](https://pdm.fming.dev/) -- [flit](https://flit.pypa.io/) -- [hatch](https://ofek.dev/hatch/latest/) + ## Installation @@ -27,13 +27,13 @@ Python monorepo made easy. It is recommended to install with `pipx`, if `pipx` haven't been installed yet, refer to the [pipx's docs](https://github.com/pipxproject/pipx) ```bash -$ pipx install monas +pipx install monas ``` Alternatively, install with `pip` to the user site: ```bash -$ python -m pip install --user monas +python -m pip install --user monas ``` ## To-do diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000..d9e79ba --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,3 @@ +```{include} ../CHANGELOG.md + +``` diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..d876e0b --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,61 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = "Monas" +copyright = "2022, Frost Ming" +author = "Frost Ming" + +# The full version, including alpha/beta/rc tags +release = "0.1.0" + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "sphinx.ext.todo", + "myst_parser", + "sphinx_copybutton", + "sphinx_click", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "furo" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100644 index 0000000..66c1f98 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,3 @@ +```{include} ../CONTRIBUTING.md + +``` diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md deleted file mode 100644 index 11fa8a5..0000000 --- a/docs/docs/changelog.md +++ /dev/null @@ -1 +0,0 @@ ---8<-- "../CHANGELOG.md" diff --git a/docs/docs/code_of_conduct.md b/docs/docs/code_of_conduct.md deleted file mode 100644 index d468a9d..0000000 --- a/docs/docs/code_of_conduct.md +++ /dev/null @@ -1 +0,0 @@ ---8<-- "../CODE_OF_CONDUCT.md" diff --git a/docs/docs/contributing.md b/docs/docs/contributing.md deleted file mode 100644 index 3f2d90d..0000000 --- a/docs/docs/contributing.md +++ /dev/null @@ -1 +0,0 @@ ---8<-- "../CONTRIBUTING.md" diff --git a/docs/docs/index.md b/docs/docs/index.md deleted file mode 100644 index f8898b5..0000000 --- a/docs/docs/index.md +++ /dev/null @@ -1 +0,0 @@ ---8<-- "../README.md" diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..d313dd2 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,27 @@ +# Mono Documentation + +```{include} ../README.md +:start-after: +:end-before: +``` + +```{toctree} + +quickstart +``` + +```{toctree} +:caption: CLI Reference + +reference +``` + +```{toctree} +:caption: Development +:hidden: + +changelog +contributing +GitHub +PyPI +``` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..32bb245 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml deleted file mode 100644 index 6e5895c..0000000 --- a/docs/mkdocs.yml +++ /dev/null @@ -1,38 +0,0 @@ -site_name: 'Monas' -site_description: 'Python monorepo made easy' -site_url: 'https://frostming.github.io/monas' -repo_url: 'https://github.com/frostming/monas' -repo_name: 'frostming/monas' -site_dir: 'site' - -nav: - - Home: - - Overview: index.md - - Changelog: changelog.md - - Development: - - Contributing: contributing.md - - Code of Conduct: code_of_conduct.md - -theme: - name: material - palette: - primary: deep purple - accent: teal - font: - text: Open Sans - code: Fira Code - -markdown_extensions: - - admonition - - pymdownx.emoji - - pymdownx.magiclink - - pymdownx.snippets: - check_paths: true - - pymdownx.superfences - - pymdownx.tabbed - - pymdownx.tasklist - - toc: - permalink: '#' - -plugins: - - search diff --git a/docs/quickstart.md b/docs/quickstart.md new file mode 100644 index 0000000..69d97f9 --- /dev/null +++ b/docs/quickstart.md @@ -0,0 +1,67 @@ +# Quick Start + +## Install Monas + +**Monas** requires Python >=3.7. + +It is recommended to install with `pipx`, if `pipx` haven't been installed yet, refer to the [pipx's docs](https://github.com/pipxproject/pipx) + +```bash +pipx install monas +``` + +Alternatively, install with `pip` to the user site: + +```bash +python -m pip install --user monas +``` + +## Create a monorepo + +Monas is integrated with Git. You need to install it if it isn't on your system. + +```bash +git init mono-project +cd mono-project +monas init +``` + +## Add a subpackage + +```bash +monas new foo +``` + +Answer a few questions and the subpackage `foo` will be created under `packages/` directory. + +See what packages are added: + +```bash +monas list +``` + +## Add dependencies to the subpackages + +```bash +monas add click +``` + +The dependencies will be installed into the `.venv` folder under each subpackage. + +## Submit and push + +```bash +git add . +git commit -m "initial commit" +git remote add origin +git push -u origin main +``` + +## Bump version and Publish + +```bash +monas bump +monas publish +``` + +A git tag of the specified version together with a PyPI release will be published. diff --git a/docs/reference.md b/docs/reference.md new file mode 100644 index 0000000..7cda4f8 --- /dev/null +++ b/docs/reference.md @@ -0,0 +1,7 @@ +# `monas` + +```{eval-rst} +.. click:: monas.cli:main + :prog: monas + :nested: full +``` diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..a498ba9 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,5 @@ +furo +sphinx +myst-parser +sphinx-copybutton +sphinx-click diff --git a/noxfile.py b/noxfile.py index e84e029..24f3ad2 100644 --- a/noxfile.py +++ b/noxfile.py @@ -5,7 +5,37 @@ os.environ["PDM_IGNORE_SAVED_PYTHON"] = "1" -@nox.session(python=("3.7", "3.8", "3.9")) +@nox.session(python=("3.7", "3.8", "3.9", "3.10")) def test(session): - session.run("pdm", "install", "-d", external=True) + session.run("pdm", "install", "-dGtest", external=True) session.run("pytest", "tests/") + + +@nox.session(python="3.9") +def docs(session): + session.install(".") + session.install("-r", "docs/requirements.txt") + + # Generate documentation into `build/docs` + session.run("sphinx-build", "-W", "-b", "html", "docs/", "build/docs") + + +@nox.session(name="docs-live", python="3.9") +def docs_live(session): + session.install("-e", ".") + session.install("-r", "docs/requirements.txt") + session.install("sphinx-autobuild") + + session.run( + "sphinx-autobuild", + "docs/", + "build/docs", + # Rebuild all files when rebuilding + "-a", + # Trigger rebuilds on code changes (for autodoc) + "--watch", + "src/monas", + # Use a not-common high-numbered port + "--port", + "8765", + ) diff --git a/pdm.lock b/pdm.lock index 2551cb1..3096524 100644 --- a/pdm.lock +++ b/pdm.lock @@ -90,7 +90,7 @@ summary = "Distribution utilities" [[package]] name = "docutils" -version = "0.18.1" +version = "0.17.1" requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" summary = "Docutils -- Python Documentation Utilities" @@ -100,14 +100,6 @@ version = "3.6.0" requires_python = ">=3.7" summary = "A platform independent file lock." -[[package]] -name = "ghp-import" -version = "2.0.2" -summary = "Copy your docs directly to the gh-pages branch." -dependencies = [ - "python-dateutil>=2.8.1", -] - [[package]] name = "gitdb" version = "4.0.9" @@ -180,65 +172,12 @@ dependencies = [ "pywin32-ctypes!=0.1.0,!=0.1.1; sys_platform == \"win32\"", ] -[[package]] -name = "markdown" -version = "3.3.6" -requires_python = ">=3.6" -summary = "Python implementation of Markdown." -dependencies = [ - "importlib-metadata>=4.4; python_version < \"3.10\"", -] - [[package]] name = "markupsafe" version = "2.1.1" 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.3.0" -requires_python = ">=3.6" -summary = "Project documentation with Markdown." -dependencies = [ - "Jinja2>=2.10.2", - "Markdown>=3.2.1", - "PyYAML>=3.10", - "click>=3.3", - "ghp-import>=1.0", - "importlib-metadata>=4.3", - "mergedeep>=1.3.4", - "packaging>=20.5", - "pyyaml-env-tag>=0.1", - "watchdog>=2.0", -] - -[[package]] -name = "mkdocs-material" -version = "8.2.8" -requires_python = ">=3.6" -summary = "A Material Design theme for MkDocs" -dependencies = [ - "jinja2>=2.11.1", - "markdown>=3.2", - "mkdocs-material-extensions>=1.0.3", - "mkdocs>=1.3.0", - "pygments>=2.10", - "pymdown-extensions>=9.0", -] - -[[package]] -name = "mkdocs-material-extensions" -version = "1.0.3" -requires_python = ">=3.6" -summary = "Extension pack for Python Markdown." - [[package]] name = "packaging" version = "21.3" @@ -306,15 +245,6 @@ version = "2.11.2" requires_python = ">=3.5" summary = "Pygments is a syntax highlighting package written in Python." -[[package]] -name = "pymdown-extensions" -version = "9.3" -requires_python = ">=3.7" -summary = "Extension pack for Python Markdown." -dependencies = [ - "Markdown>=3.2", -] - [[package]] name = "pyparsing" version = "3.0.7" @@ -338,35 +268,11 @@ dependencies = [ "tomli>=1.0.0", ] -[[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]] name = "pywin32-ctypes" version = "0.2.0" summary = "UNKNOWN" -[[package]] -name = "pyyaml" -version = "6.0" -requires_python = ">=3.6" -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 = "questionary" version = "1.10.0" @@ -539,12 +445,6 @@ dependencies = [ "six<2,>=1.9.0", ] -[[package]] -name = "watchdog" -version = "2.1.7" -requires_python = ">=3.6" -summary = "Filesystem events monitoring" - [[package]] name = "wcwidth" version = "0.2.5" @@ -563,7 +463,7 @@ summary = "Backport of pathlib-compatible object wrapper for zip files" [metadata] lock_version = "3.1" -content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f512a06cf" +content_hash = "sha256:b8d5895039e4287d7d2971ea28a309ec85db02780438c78c0b532ac7357086bd" [metadata.files] "arpeggio 1.10.2" = [ @@ -683,18 +583,14 @@ content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f5 {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, ] -"docutils 0.18.1" = [ - {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, - {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +"docutils 0.17.1" = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, ] "filelock 3.6.0" = [ {file = "filelock-3.6.0-py3-none-any.whl", hash = "sha256:f8314284bfffbdcfa0ff3d7992b023d4c628ced6feb957351d4c48d059f56bc0"}, {file = "filelock-3.6.0.tar.gz", hash = "sha256:9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85"}, ] -"ghp-import 2.0.2" = [ - {file = "ghp_import-2.0.2-py3-none-any.whl", hash = "sha256:5f8962b30b20652cdffa9c5a9812f7de6bcb56ec475acac579807719bf242c46"}, - {file = "ghp-import-2.0.2.tar.gz", hash = "sha256:947b3771f11be850c852c64b561c600fdddf794bab363060854c1ee7ad05e071"}, -] "gitdb 4.0.9" = [ {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, @@ -731,10 +627,6 @@ content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f5 {file = "keyring-23.5.0-py3-none-any.whl", hash = "sha256:b0d28928ac3ec8e42ef4cc227822647a19f1d544f21f96457965dc01cf555261"}, {file = "keyring-23.5.0.tar.gz", hash = "sha256:9012508e141a80bd1c0b6778d5c610dd9f8c464d75ac6774248500503f972fb9"}, ] -"markdown 3.3.6" = [ - {file = "Markdown-3.3.6-py3-none-any.whl", hash = "sha256:9923332318f843411e9932237530df53162e29dc7a4e2b91e35764583c46c9a3"}, - {file = "Markdown-3.3.6.tar.gz", hash = "sha256:76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006"}, -] "markupsafe 2.1.1" = [ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, @@ -777,22 +669,6 @@ content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f5 {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, ] -"mergedeep 1.3.4" = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] -"mkdocs 1.3.0" = [ - {file = "mkdocs-1.3.0-py3-none-any.whl", hash = "sha256:26bd2b03d739ac57a3e6eed0b7bcc86168703b719c27b99ad6ca91dc439aacde"}, - {file = "mkdocs-1.3.0.tar.gz", hash = "sha256:b504405b04da38795fec9b2e5e28f6aa3a73bb0960cb6d5d27ead28952bd35ea"}, -] -"mkdocs-material 8.2.8" = [ - {file = "mkdocs_material-8.2.8-py2.py3-none-any.whl", hash = "sha256:16ccd382431d5148a4bdbc37c949d0ea5f80e3e9bcce3bd0d774716e5aad9dff"}, - {file = "mkdocs-material-8.2.8.tar.gz", hash = "sha256:f0696538929b3778b064f650589eb2027e4a2c0b3ab37afa8900de7924100901"}, -] -"mkdocs-material-extensions 1.0.3" = [ - {file = "mkdocs_material_extensions-1.0.3-py3-none-any.whl", hash = "sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44"}, - {file = "mkdocs-material-extensions-1.0.3.tar.gz", hash = "sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2"}, -] "packaging 21.3" = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, @@ -829,10 +705,6 @@ content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f5 {file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"}, {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"}, ] -"pymdown-extensions 9.3" = [ - {file = "pymdown_extensions-9.3-py3-none-any.whl", hash = "sha256:b37461a181c1c8103cfe1660081726a0361a8294cbfda88e5b02cefe976f0546"}, - {file = "pymdown-extensions-9.3.tar.gz", hash = "sha256:a80553b243d3ed2d6c27723bcd64ca9887e560e6f4808baa96f36e93061eaf90"}, -] "pyparsing 3.0.7" = [ {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, @@ -841,53 +713,10 @@ content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f5 {file = "pytest-7.1.1-py3-none-any.whl", hash = "sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea"}, {file = "pytest-7.1.1.tar.gz", hash = "sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63"}, ] -"python-dateutil 2.8.2" = [ - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, -] "pywin32-ctypes 0.2.0" = [ {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"}, {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"}, ] -"pyyaml 6.0" = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "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"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -"pyyaml-env-tag 0.1" = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, -] "questionary 1.10.0" = [ {file = "questionary-1.10.0-py3-none-any.whl", hash = "sha256:fecfcc8cca110fda9d561cb83f1e97ecbb93c613ff857f655818839dac74ce90"}, {file = "questionary-1.10.0.tar.gz", hash = "sha256:600d3aefecce26d48d97eee936fdb66e4bc27f934c3ab6dd1e292c4f43946d90"}, @@ -965,32 +794,6 @@ content_hash = "sha256:cd0629648bf086eb571531ef412b0717205390c493dfe51265ff3c5f5 {file = "virtualenv-20.14.0-py2.py3-none-any.whl", hash = "sha256:1e8588f35e8b42c6ec6841a13c5e88239de1e6e4e4cedfd3916b306dc826ec66"}, {file = "virtualenv-20.14.0.tar.gz", hash = "sha256:8e5b402037287126e81ccde9432b95a8be5b19d36584f64957060a3488c11ca8"}, ] -"watchdog 2.1.7" = [ - {file = "watchdog-2.1.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:177bae28ca723bc00846466016d34f8c1d6a621383b6caca86745918d55c7383"}, - {file = "watchdog-2.1.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1d1cf7dfd747dec519486a98ef16097e6c480934ef115b16f18adb341df747a4"}, - {file = "watchdog-2.1.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7f14ce6adea2af1bba495acdde0e510aecaeb13b33f7bd2f6324e551b26688ca"}, - {file = "watchdog-2.1.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4d0e98ac2e8dd803a56f4e10438b33a2d40390a72750cff4939b4b274e7906fa"}, - {file = "watchdog-2.1.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:81982c7884aac75017a6ecc72f1a4fedbae04181a8665a34afce9539fc1b3fab"}, - {file = "watchdog-2.1.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0b4a1fe6201c6e5a1926f5767b8664b45f0fcb429b62564a41f490ff1ce1dc7a"}, - {file = "watchdog-2.1.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6e6ae29b72977f2e1ee3d0b760d7ee47896cb53e831cbeede3e64485e5633cc8"}, - {file = "watchdog-2.1.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b9777664848160449e5b4260e0b7bc1ae0f6f4992a8b285db4ec1ef119ffa0e2"}, - {file = "watchdog-2.1.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:19b36d436578eb437e029c6b838e732ed08054956366f6dd11875434a62d2b99"}, - {file = "watchdog-2.1.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b61acffaf5cd5d664af555c0850f9747cc5f2baf71e54bbac164c58398d6ca7b"}, - {file = "watchdog-2.1.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1e877c70245424b06c41ac258023ea4bd0c8e4ff15d7c1368f17cd0ae6e351dd"}, - {file = "watchdog-2.1.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d802d65262a560278cf1a65ef7cae4e2bc7ecfe19e5451349e4c67e23c9dc420"}, - {file = "watchdog-2.1.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b3750ee5399e6e9c69eae8b125092b871ee9e2fcbd657a92747aea28f9056a5c"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_aarch64.whl", hash = "sha256:ed6d9aad09a2a948572224663ab00f8975fae242aa540509737bb4507133fa2d"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_armv7l.whl", hash = "sha256:b26e13e8008dcaea6a909e91d39b629a39635d1a8a7239dd35327c74f4388601"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_i686.whl", hash = "sha256:0908bb50f6f7de54d5d31ec3da1654cb7287c6b87bce371954561e6de379d690"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_ppc64.whl", hash = "sha256:bdcbf75580bf4b960fb659bbccd00123d83119619195f42d721e002c1621602f"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:81a5861d0158a7e55fe149335fb2bbfa6f48cbcbd149b52dbe2cd9a544034bbd"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_s390x.whl", hash = "sha256:03b43d583df0f18782a0431b6e9e9965c5b3f7cf8ec36a00b930def67942c385"}, - {file = "watchdog-2.1.7-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ae934e34c11aa8296c18f70bf66ed60e9870fcdb4cc19129a04ca83ab23e7055"}, - {file = "watchdog-2.1.7-py3-none-win32.whl", hash = "sha256:49639865e3db4be032a96695c98ac09eed39bbb43fe876bb217da8f8101689a6"}, - {file = "watchdog-2.1.7-py3-none-win_amd64.whl", hash = "sha256:340b875aecf4b0e6672076a6f05cfce6686935559bb6d34cebedee04126a9566"}, - {file = "watchdog-2.1.7-py3-none-win_ia64.whl", hash = "sha256:351e09b6d9374d5bcb947e6ac47a608ec25b9d70583e9db00b2fcdb97b00b572"}, - {file = "watchdog-2.1.7.tar.gz", hash = "sha256:3fd47815353be9c44eebc94cc28fe26b2b0c5bd889dafc4a5a7cbdf924143480"}, -] "wcwidth 0.2.5" = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, diff --git a/pyproject.toml b/pyproject.toml index 0ec4996..a6e3ec3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,19 +40,14 @@ version = {from = "src/monas/cli.py"} package-dir = "src" [tool.pdm.dev-dependencies] -dev = [ +test = [ "pytest>=6.1", ] -test = [ +dev = [ "towncrier>=19.2", "parver>=0.3", ] -doc = [ - "mkdocs>=1.1", - "mkdocs-material>=6.2", -] - [tool.pdm.scripts] release = "python -m tasks.release" test = "pytest tests/"