From 449381ca09f86710a7f3a28353b196d207561de3 Mon Sep 17 00:00:00 2001 From: Ethan Paul Date: Fri, 19 May 2023 14:16:32 -0400 Subject: [PATCH] Update mdformat to mitigate CVE-2023-26303 Update markdown format with new version of mdformat --- CHANGELOG.md | 47 +++++++----- CODE_OF_CONDUCT.md | 15 ++-- README.md | 80 +++++++++++--------- poetry.lock | 177 ++++++++++++++++++++++++++++----------------- pyproject.toml | 4 +- 5 files changed, 191 insertions(+), 132 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76bbe8a..15d2e3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,8 +68,8 @@ View this release on: [Github](https://github.com/enpaul/tox-poetry-installer/releases/tag/0.8.4), [PyPI](https://pypi.org/project/tox-poetry-installer/0.8.4/) -- Fix issue where incompatible package versions were selected for installation when multiple - package versions were in the lockfile +- Fix issue where incompatible package versions were selected for installation when + multiple package versions were in the lockfile ## Version 0.8.3 @@ -86,9 +86,9 @@ View this release on: [PyPI](https://pypi.org/project/tox-poetry-installer/0.8.2/) - Improve debug-level logging for package installation, and time how long installing each - package takes. Contributed by [Rebecca - Turner](https://github.com/9999years) (#63). -- Fix crash caused by the package-under-test depending on Poetry's unsafe dependencies ([#65](https://github.com/enpaul/tox-poetry-installer/issues/65)) + package takes. Contributed by [Rebecca Turner](https://github.com/9999years) (#63). +- Fix crash caused by the package-under-test depending on Poetry's unsafe dependencies + ([#65](https://github.com/enpaul/tox-poetry-installer/issues/65)) ## Version 0.8.1 @@ -138,7 +138,8 @@ View this release on: process - Add integration with Poetry's compatibility [`Marker`](https://github.com/python-poetry/poetry-core/blob/master/poetry/core/version/markers.py) - object system for determining package compatibility with the current platform ([#43](https://github.com/enpaul/tox-poetry-installer/issues/43)) + object system for determining package compatibility with the current platform + ([#43](https://github.com/enpaul/tox-poetry-installer/issues/43)) - Add missing PyPI classifier for Python 3 ## Version 0.6.3 @@ -163,8 +164,8 @@ View this release on: [CVE-2020-29651](https://nvd.nist.gov/vuln/detail/CVE-2020-29651) - Fix dependency identification failing when the package under test is a transient dependency of a locked dependency specified for installation -- Fix `AttributeError` being raised while creating the Tox self-provisioned environment when - using either the +- Fix `AttributeError` being raised while creating the Tox self-provisioned environment + when using either the [`minversion`](https://tox.readthedocs.io/en/latest/config.html#conf-minversion) or [`requires`](https://tox.readthedocs.io/en/latest/config.html#conf-requires) Tox config options @@ -179,8 +180,8 @@ View this release on: installation problems - Fix regression around handling of Poetry's unsafe packages when the unsafe package is a transient dependency ([#33](https://github.com/enpaul/tox-poetry-installer/issues/33)) -- Fix handling of Poetry's unsafe packages when the unsafe package is a primary (environment - or package) dependency +- Fix handling of Poetry's unsafe packages when the unsafe package is a primary + (environment or package) dependency ## Version 0.6.0 @@ -204,7 +205,8 @@ View this release on: [Github](https://github.com/enpaul/tox-poetry-installer/releases/tag/0.5.2), [PyPI](https://pypi.org/project/tox-poetry-installer/0.5.2/) -- Fix always attempting to install dependencies with incompatible python version constraints +- Fix always attempting to install dependencies with incompatible python version + constraints - Fix always attempting to install dependencies with incompatible python platforms ## Version 0.5.1 @@ -226,8 +228,8 @@ View this release on: - Add option `locked_deps` to better support both locked and unlocked dependencies in a single environment -- Add blocking functionality when using `require_locked_deps = true` to prevent other hooks - from running after this one +- Add blocking functionality when using `require_locked_deps = true` to prevent other + hooks from running after this one - Update documentation to include new configuration options and errors - Update documentation to improve future maintainability - Update module structure to move from single-file module to multi-file directory module @@ -251,7 +253,8 @@ View this release on: [PyPI](https://pypi.org/project/tox-poetry-installer/0.3.1/) - Fix error when installing an environment with no extras specified in the configuration -- Fix problem where only the dependencies of the sequentially last extra would be installed +- Fix problem where only the dependencies of the sequentially last extra would be + installed - Fix regression causing no project dependencies to be installed ## Version 0.3.0 @@ -273,7 +276,8 @@ View this release on: [Github](https://github.com/enpaul/tox-poetry-installer/releases/tag/0.2.4), [PyPI](https://pypi.org/project/tox-poetry-installer/0.2.4/) -- Fix support for Poetry-1.1 ([#2](https://github.com/enpaul/tox-poetry-installer/issues/2)) +- Fix support for Poetry-1.1 + ([#2](https://github.com/enpaul/tox-poetry-installer/issues/2)) - Include tests in sdist ([#8](https://github.com/enpaul/tox-poetry-installer/issues/8)) ## Version 0.2.3 @@ -282,8 +286,10 @@ View this release on: [Github](https://github.com/enpaul/tox-poetry-installer/releases/tag/0.2.3), [PyPI](https://pypi.org/project/tox-poetry-installer/0.2.3/) -- Fix usage of the plugin in non-Poetry based projects ([#1](https://github.com/enpaul/tox-poetry-installer/issues/1)) -- Fix treating dependency names as case sensitive when they shouldn't be ([#7](https://github.com/enpaul/tox-poetry-installer/issues/7)) +- Fix usage of the plugin in non-Poetry based projects + ([#1](https://github.com/enpaul/tox-poetry-installer/issues/1)) +- Fix treating dependency names as case sensitive when they shouldn't be + ([#7](https://github.com/enpaul/tox-poetry-installer/issues/7)) ## Version 0.2.2 @@ -292,7 +298,8 @@ View this release on: [PyPI](https://pypi.org/project/tox-poetry-installer/0.2.2/) - Fix breaking when running Tox in projects that do not use Poetry for their - environment/dependency management ([#1](https://github.com/enpaul/tox-poetry-installer/issues/1)) + environment/dependency management + ([#1](https://github.com/enpaul/tox-poetry-installer/issues/1)) ## Version 0.2.1 @@ -343,8 +350,8 @@ View this release on: [PyPI](https://pypi.org/project/tox-poetry-installer/0.1.2/) - Test trivial functionality on Python-3.6 and Python-3.7 -- Fix disagreement between `pyproject.toml` and module metadata on what the current version - is +- Fix disagreement between `pyproject.toml` and module metadata on what the current + version is - Fix constant named for PEP-440 that should have been named for PEP-508 ## Version 0.1.1 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2382d9d..0530753 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -27,9 +27,10 @@ Examples of unacceptable behavior include: - The use of sexualized language or imagery, and sexual attention or advances of any kind - Trolling, insulting or derogatory comments, and personal or political attacks - Public or private harassment -- Publishing others' private information, such as a physical or email address, without their - explicit permission -- Other conduct which could reasonably be considered inappropriate in a professional setting +- Publishing others' private information, such as a physical or email address, without + their explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional + setting ## Enforcement Responsibilities @@ -52,8 +53,8 @@ offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the -community leaders responsible for enforcement at \[INSERT CONTACT METHOD\]. All -complaints will be reviewed and investigated promptly and fairly. +community leaders responsible for enforcement at \[INSERT CONTACT METHOD\]. All complaints +will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. @@ -105,8 +106,8 @@ toward or disparagement of classes of individuals. This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at diff --git a/README.md b/README.md index 9d1e4ae..e235b5d 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,8 @@ See the [Changelog](https://github.com/enpaul/tox-poetry-installer/blob/devel/CHANGELOG.md) for release history. -*See also: [official Tox plugins](https://tox.readthedocs.io/en/latest/plugins.html) and [the official Poetry documentation on using Tox](https://python-poetry.org/docs/faq/#is-tox-supported)* +*See also: [official Tox plugins](https://tox.readthedocs.io/en/latest/plugins.html) and +[the official Poetry documentation on using Tox](https://python-poetry.org/docs/faq/#is-tox-supported)* ## Feature Overview @@ -52,7 +53,9 @@ release history. ## User Documentation -*This section is for users looking to integrate the plugin with their project or CI system. For information on contributing to the plugin please see the [Developer Docs](#developer-documentation)* +*This section is for users looking to integrate the plugin with their project or CI +system. For information on contributing to the plugin please see the +[Developer Docs](#developer-documentation)* ### Installing @@ -145,9 +148,9 @@ locked_deps = commands = ... ``` -> ℹ️ **Note:** Settings configured on the main `testenv` environment are inherited by child -> test environments (for example, `testenv:foo`). To override this, specify the setting in -> the child environment with a different value. +> ℹ️ **Note:** Settings configured on the main `testenv` environment are inherited by +> child test environments (for example, `testenv:foo`). To override this, specify the +> setting in the child environment with a different value. Alternatively, we can skip specifying all of our dependencies for a test environment in the Tox config and install Poetry dependency groups directly: @@ -161,8 +164,8 @@ poetry_dep_groups = commands = ... ``` -> ℹ️ **Note:** The `install_dev_deps` configuration option is deprecated. See [Configuration -> Options](#configuration-options) for more information. +> ℹ️ **Note:** The `install_dev_deps` configuration option is deprecated. See +> [Configuration Options](#configuration-options) for more information. Finally, we can also install an unlocked dependency (a dependency which doesn't take its version from the Poetry lockfile) into the test environment alongside the locked ones. We @@ -190,9 +193,9 @@ All options listed below are Tox environment options and can be applied to one o environment sections of the `tox.ini` file. They cannot be applied to the global Tox configuration section. -> ℹ️ **Note:** Settings configured on the main `testenv` environment are inherited by child -> test environments (for example, `testenv:foo`). To override this, specify the setting in -> the child environment with a different value. +> ℹ️ **Note:** Settings configured on the main `testenv` environment are inherited by +> child test environments (for example, `testenv:foo`). To override this, specify the +> setting in the child environment with a different value. | Option | Type | Default | Description | | :--------------------- | :-----: | :-----: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -202,9 +205,9 @@ configuration section. | `require_poetry` | Boolean | False | Whether Tox should be forced to fail if the plugin cannot import Poetry locally. If `False` then the plugin will be skipped for the test environment if Poetry cannot be imported. If `True` then the plugin will force the environment to error and the Tox run to fail. | | `poetry_dep_groups` | List | `[]` | Names of Poetry dependency groups specified in `pyproject.toml` to install to the test environment. | -> ℹ️ **Note:** The `install_dev_deps` configuration option is deprecated and will be removed -> in version 1.0.0. Please set `poetry_dep_groups = [dev]` in `tox.ini` for environments -> that install the development dependencies. +> ℹ️ **Note:** The `install_dev_deps` configuration option is deprecated and will be +> removed in version 1.0.0. Please set `poetry_dep_groups = [dev]` in `tox.ini` for +> environments that install the development dependencies. ### Runtime Options @@ -238,8 +241,8 @@ error will be set to one of the "Status" values below to indicate what the error | `RequiresUnsafeDepError` | Indicates that the package-under-test depends on a package that Poetry has classified as unsafe and cannot be installed. | > ℹ️ **Note:** One or more of these errors can be caused by the `pyproject.toml` being out -> of sync with the Poetry lockfile. If this is the case, than a warning will be logged when -> Tox is run. +> of sync with the Poetry lockfile. If this is the case, than a warning will be logged +> when Tox is run. ### Other Notes @@ -250,8 +253,8 @@ these options are made obsolete by the Poetry lockfile: either they aren't neede equivalent functionality is instead taken directly from the package details Poetry stores in its lockfile. -> ℹ️ **Note:** The unsupported Tox config options will still apply to unlocked dependencies -> being installed with the default Tox installation backend. +> ℹ️ **Note:** The unsupported Tox config options will still apply to unlocked +> dependencies being installed with the default Tox installation backend. - [`install_command`](https://tox.readthedocs.io/en/latest/config.html#conf-install_command) - [`pip_pre`](https://tox.readthedocs.io/en/latest/config.html#conf-pip_pre) @@ -273,8 +276,8 @@ built-in option) for the new version to be found and installed. > ℹ️ **Note:** To force Tox to always recreate a test environment the -> [`recreate`](https://tox.readthedocs.io/en/latest/config.html#conf-recreate) config option -> can be set. +> [`recreate`](https://tox.readthedocs.io/en/latest/config.html#conf-recreate) config +> option can be set. #### Using with an unmanaged Poetry installation @@ -288,8 +291,8 @@ cases, this plugin specifies the `poetry` package as an optional dependency that installed using a setuptools extra also named `poetry`. > ⚠️ **Warning:** This plugin requires Poetry to function. If the plugin is installed -> without the `poetry` setuptools extra then Poetry must be installed independently for the -> plugin to function properly. +> without the `poetry` setuptools extra then Poetry must be installed independently for +> the plugin to function properly. To skip installing the `poetry` package as a dependency of `tox-poetry-installer`, do not specify the `poetry` extra when adding the plugin: @@ -324,7 +327,8 @@ python -c '\ ## Developer Documentation All project contributors and participants are expected to adhere to the -[Contributor Covenant Code of Conduct, v2](CODE_OF_CONDUCT.md) ([external link](https://www.contributor-covenant.org/version/2/0/code_of_conduct/)). +[Contributor Covenant Code of Conduct, v2](CODE_OF_CONDUCT.md) +([external link](https://www.contributor-covenant.org/version/2/0/code_of_conduct/)). The `devel` branch has the latest (and potentially unstable) changes. The stable releases are tracked on [Github](https://github.com/enpaul/tox-poetry-installer/releases), @@ -377,35 +381,39 @@ production environments on a provisional basis only. - Beta classification was assigned with [v0.6.0](https://github.com/enpaul/tox-poetry-installer/releases/tag/0.6.0) -- Stable classification will be assigned when the test suite covers an acceptable number of - use cases +- Stable classification will be assigned when the test suite covers an acceptable number + of use cases ### Path to Beta - [x] Verify that primary package dependencies (from the `.package` env) are installed correctly using the Poetry backend. -- [x] Support the [`extras`](https://tox.readthedocs.io/en/latest/config.html#conf-extras) Tox - configuration option ([#4](https://github.com/enpaul/tox-poetry-installer/issues/4)) +- [x] Support the [`extras`](https://tox.readthedocs.io/en/latest/config.html#conf-extras) + Tox configuration option ([#4](https://github.com/enpaul/tox-poetry-installer/issues/4)) - [x] Add per-environment Tox configuration option to fall back to default installation backend. -- [ ] ~Add warnings when an unsupported Tox configuration option is detected while using the - Poetry backend.~ ([#5](https://github.com/enpaul/tox-poetry-installer/issues/5)) -- [x] Add trivial tests to ensure the project metadata is consistent between the pyproject.toml - and the module constants. -- [x] Update to use [poetry-core](https://github.com/python-poetry/poetry-core) and improve - robustness of the Tox and Poetry module imports to avoid potentially breaking API changes - in upstream packages. ([#2](https://github.com/enpaul/tox-poetry-installer/issues/2)) +- [ ] ~Add warnings when an unsupported Tox configuration option is detected while using + the Poetry backend.~ ([#5](https://github.com/enpaul/tox-poetry-installer/issues/5)) +- [x] Add trivial tests to ensure the project metadata is consistent between the + pyproject.toml and the module constants. +- [x] Update to use [poetry-core](https://github.com/python-poetry/poetry-core) and + improve robustness of the Tox and Poetry module imports to avoid potentially breaking + API changes in upstream packages. + ([#2](https://github.com/enpaul/tox-poetry-installer/issues/2)) - [ ] ~Find and implement a way to mitigate the [UNSAFE_DEPENDENCIES issue](https://github.com/python-poetry/poetry/issues/1584) in Poetry.~ ([#6](https://github.com/enpaul/tox-poetry-installer/issues/6)) -- [x] Fix logging to make proper use of Tox's logging reporter infrastructure ([#3](https://github.com/enpaul/tox-poetry-installer/issues/3)) -- [x] Add configuration option for installing all dev-dependencies to a testenv ([#14](https://github.com/enpaul/tox-poetry-installer/issues/14)) +- [x] Fix logging to make proper use of Tox's logging reporter infrastructure + ([#3](https://github.com/enpaul/tox-poetry-installer/issues/3)) +- [x] Add configuration option for installing all dev-dependencies to a testenv + ([#14](https://github.com/enpaul/tox-poetry-installer/issues/14)) ### Path to Stable Everything in Beta plus... -- [ ] Fully replace dependency on `poetry` with dependency on `poetry-core` ([#2](https://github.com/enpaul/tox-poetry-installer/issues/2)) +- [ ] Fully replace dependency on `poetry` with dependency on `poetry-core` + ([#2](https://github.com/enpaul/tox-poetry-installer/issues/2)) - [x] Add comprehensive unit tests - [ ] ~Add tests for each feature version of Tox between 3.8 and 3.20~ - [x] Add tests for Python-3.6, 3.7, 3.8, and 3.9 diff --git a/poetry.lock b/poetry.lock index cc546f1..ab52d3d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -77,21 +77,25 @@ files = [ [[package]] name = "attrs" -version = "20.3.0" +version = "23.1.0" description = "Classes Without Boilerplate" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.7" files = [ - {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, - {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, + {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, + {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, ] +[package.dependencies] +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} + [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "furo", "hypothesis", "pre-commit", "pympler", "pytest (>=4.3.0)", "six", "sphinx", "zope.interface"] -docs = ["furo", "sphinx", "zope.interface"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] -tests-no-zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[docs,tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] [[package]] name = "backcall" @@ -481,21 +485,6 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -[[package]] -name = "commonmark" -version = "0.9.1" -description = "Python parser for the CommonMark Markdown spec" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, - {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, -] - -[package.extras] -test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] - [[package]] name = "coverage" version = "7.2.5" @@ -1132,6 +1121,27 @@ files = [ {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, ] +[[package]] +name = "linkify-it-py" +version = "2.0.2" +description = "Links recognition library with FULL unicode support." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "linkify-it-py-2.0.2.tar.gz", hash = "sha256:19f3060727842c254c808e99d465c80c49d2c7306788140987a1a7a29b0d6ad2"}, + {file = "linkify_it_py-2.0.2-py3-none-any.whl", hash = "sha256:a3a24428f6c96f27370d7fe61d2ac0be09017be5190d68d8658233171f1b6541"}, +] + +[package.dependencies] +uc-micro-py = "*" + +[package.extras] +benchmark = ["pytest", "pytest-benchmark"] +dev = ["black", "flake8", "isort", "pre-commit", "pyproject-flake8"] +doc = ["myst-parser", "sphinx", "sphinx-book-theme"] +test = ["coverage", "pytest", "pytest-cov"] + [[package]] name = "lockfile" version = "0.12.2" @@ -1146,26 +1156,30 @@ files = [ [[package]] name = "markdown-it-py" -version = "0.6.2" +version = "2.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" category = "dev" optional = false -python-versions = "~=3.6" +python-versions = ">=3.7" files = [ - {file = "markdown-it-py-0.6.2.tar.gz", hash = "sha256:c3b9f995be0792cbbc8ab2f53d74072eb7ff8a8b622be8d61d38ab879709eca3"}, - {file = "markdown_it_py-0.6.2-py3-none-any.whl", hash = "sha256:30b3e9f8198dc82a5df0dcb73fd31d56cd9a43bf8a747feb10b2ba74f962bcb1"}, + {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, + {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, ] [package.dependencies] -attrs = ">=19,<21" -mdit-py-plugins = ">=0.2.1,<0.3.0" +linkify-it-py = {version = ">=1,<3", optional = true, markers = "extra == \"linkify\""} +mdurl = ">=0.1,<1.0" +typing_extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [package.extras] -code-style = ["pre-commit (==2.6)"] -compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["myst-nb (>=0.11.1,<0.12.0)", "pyyaml", "sphinx (>=2,<4)", "sphinx-book-theme", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)"] -testing = ["coverage", "psutil", "pytest (>=3.6,<4)", "pytest-benchmark (>=3.2,<4.0)", "pytest-cov", "pytest-regressions"] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "matplotlib-inline" @@ -1196,75 +1210,89 @@ files = [ [[package]] name = "mdformat" -version = "0.6.4" +version = "0.7.16" description = "CommonMark compliant Markdown formatter" category = "dev" optional = false -python-versions = ">=3.6.1,<4.0.0" +python-versions = ">=3.7" files = [ - {file = "mdformat-0.6.4-py3-none-any.whl", hash = "sha256:857b5030bb7732eed181a957ac78c0667138f105d11103e55f723221e9131ad4"}, - {file = "mdformat-0.6.4.tar.gz", hash = "sha256:4f89cd5c6e43e664552bbc1e826bb5c42a13d0ce21e4e1c6415b5b1d1ac7fbd8"}, + {file = "mdformat-0.7.16-py3-none-any.whl", hash = "sha256:76398d03baa394f331fb560fd0aed8257cf77b65b1c8146b92d395af16253662"}, + {file = "mdformat-0.7.16.tar.gz", hash = "sha256:99b105033207d2ab70ba1ced8e07327ed4ef1e0a6bc1c7c00207ea73ab502782"}, ] [package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -markdown-it-py = ">=0.5.5,<0.7.0" +importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""} +markdown-it-py = ">=1.0.0,<3.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [[package]] name = "mdformat-gfm" -version = "0.2.0" +version = "0.3.5" description = "Mdformat plugin for GitHub Flavored Markdown compatibility" category = "dev" optional = false -python-versions = ">=3.6.1,<4.0.0" +python-versions = ">=3.7,<4.0" files = [ - {file = "mdformat-gfm-0.2.0.tar.gz", hash = "sha256:0242ff945968454f4c97a531ebc80fa164c4459385c75b5e9614f96c72a1d8df"}, - {file = "mdformat_gfm-0.2.0-py3-none-any.whl", hash = "sha256:b6f1381389f056170be438dc3192a5406b6a2efe5ba0886edb7a297ce4d2e2f0"}, + {file = "mdformat-gfm-0.3.5.tar.gz", hash = "sha256:5ee5f0de1d3b56d5edfced023bfff0aeed958be328e5460dac3221ac1b61ce7c"}, + {file = "mdformat_gfm-0.3.5-py3-none-any.whl", hash = "sha256:1e627edc7665b59e008b3b9e5decc18c40cbd625c196d77e5ea3bc624e80ac8a"}, ] [package.dependencies] -markdown-it-py = ">=0.5.8" -mdformat = ">=0.6.0,<0.7.0" -mdformat-tables = ">=0.3.0" -mdit-py-plugins = ">=0.2.0" +markdown-it-py = {version = "*", extras = ["linkify"]} +mdformat = ">=0.7.5,<0.8.0" +mdformat-tables = ">=0.4.0" +mdit-py-plugins = ">=0.2.0,<0.4.0" [[package]] name = "mdformat-tables" -version = "0.3.0" +version = "0.4.1" description = "An mdformat plugin for rendering tables." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.6.1" files = [ - {file = "mdformat_tables-0.3.0-py3-none-any.whl", hash = "sha256:cce24ca56a2a860f15475084b159bf71330480cb64afcf75a0f7411d62aeeaa9"}, - {file = "mdformat_tables-0.3.0.tar.gz", hash = "sha256:312feb8f0ac01f1d672c34fa22efb89469e11f9ba4849fbba8866a241eb0d442"}, + {file = "mdformat_tables-0.4.1-py3-none-any.whl", hash = "sha256:981f3dc7350027f78e3fd6a5fe8a16e123eec423af2d140e588d855751501019"}, + {file = "mdformat_tables-0.4.1.tar.gz", hash = "sha256:3024e88e9d29d7b8bb07fd6b59c9d5dcf14d2060122be29e30e72d27b65d7da9"}, ] [package.dependencies] -mdformat = ">=0.6.0,<0.7.0" +mdformat = ">=0.7.5,<0.8.0" [package.extras] test = ["coverage", "pytest (>=6.0,<7.0)", "pytest-cov"] [[package]] name = "mdit-py-plugins" -version = "0.2.6" +version = "0.3.5" description = "Collection of plugins for markdown-it-py" category = "dev" optional = false -python-versions = "~=3.6" +python-versions = ">=3.7" files = [ - {file = "mdit-py-plugins-0.2.6.tar.gz", hash = "sha256:1e467ca2ea056e8065cbd5d6c61e5052bb50826bde84c40f6a5ed77e82125710"}, - {file = "mdit_py_plugins-0.2.6-py3-none-any.whl", hash = "sha256:77fd75dad81109ee91f30eb49146196f79afbbae041f298ae4886c8c2b5e23d7"}, + {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, + {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, ] [package.dependencies] -markdown-it-py = ">=0.5.8,<2.0.0" +markdown-it-py = ">=1.0.0,<3.0.0" [package.extras] -code-style = ["pre-commit (==2.6)"] -testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] +code-style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] [[package]] name = "more-itertools" @@ -2118,23 +2146,23 @@ requests = ">=2.0.1,<3.0.0" [[package]] name = "rich" -version = "13.1.0" +version = "13.3.5" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" category = "dev" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.1.0-py3-none-any.whl", hash = "sha256:f846bff22a43e8508aebf3f0f2410ce1c6f4cde429098bd58d91fde038c57299"}, - {file = "rich-13.1.0.tar.gz", hash = "sha256:81c73a30b144bbcdedc13f4ea0b6ffd7fdc3b0d3cc259a9402309c8e4aee1964"}, + {file = "rich-13.3.5-py3-none-any.whl", hash = "sha256:69cdf53799e63f38b95b9bf9c875f8c90e78dd62b2f00c13a911c7a3b9fa4704"}, + {file = "rich-13.3.5.tar.gz", hash = "sha256:2d11b9b8dd03868f09b4fffadc84a6a8cda574e40dc90821bd845720ebb8e89c"}, ] [package.dependencies] -commonmark = ">=0.9.0,<0.10.0" -pygments = ">=2.6.0,<3.0.0" +markdown-it-py = ">=2.2.0,<3.0.0" +pygments = ">=2.13.0,<3.0.0" typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} [package.extras] -jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] +jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "ruamel-yaml" @@ -2479,6 +2507,21 @@ files = [ {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, ] +[[package]] +name = "uc-micro-py" +version = "1.0.2" +description = "Micro subset of unicode data files for linkify-it-py projects." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uc-micro-py-1.0.2.tar.gz", hash = "sha256:30ae2ac9c49f39ac6dce743bd187fcd2b574b16ca095fa74cd9396795c954c54"}, + {file = "uc_micro_py-1.0.2-py3-none-any.whl", hash = "sha256:8c9110c309db9d9e87302e2f4ad2c3152770930d88ab385cd544e7a7e75f3de0"}, +] + +[package.extras] +test = ["coverage", "pytest", "pytest-cov"] + [[package]] name = "urllib3" version = "1.26.15" @@ -2735,4 +2778,4 @@ poetry = ["poetry", "cleo"] [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "2222a799be98a260098caeee55567cf2b80afa59649ed6e81e307efd00f33962" +content-hash = "0a7ebe72f992c6dd6d03ed571866836a48fcf1b3a5d210aa9bcb5021776b1693" diff --git a/pyproject.toml b/pyproject.toml index 9dbb19c..2d99fb3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,8 +49,8 @@ bandit = "^1.6.2" black = "^22.3.0" blacken-docs = "^1.8.0" ipython = {version = "^8.10.1", python = "^3.8"} -mdformat = "^0.6" -mdformat-gfm = "^0.2" +mdformat = "^0.7" +mdformat-gfm = "^0.3" mypy = "^0.930" pre-commit = "^2.7.1" pre-commit-hooks = "^3.3.0"