Internal utilities for projects following git-pull python package spec
Project description
gp-libs ·
Incubating / dogfooding some sphinx extensions and pytest plugins on git-pull projects, e.g. cihai, vcs-python, or tmux-python.
doctest
for reStructured and markdown
Two components:
-
doctest_docutils
module: Same specification asdoctest
, but can parse reStructuredText and markdown -
pytest_doctest_docutils
: Pytest plugin, collects test items for pytest for reStructuredText and markdown filesThis means you can do:
$ pytest docs
doctest module
This extends standard library doctest
to support anything docutils can parse.
It can parse reStructuredText (.rst) and markdown (.md).
See more: https://gp-libs.git-pull.com/doctest/
Supported styles
It supports two barebones directives:
-
docutils'
doctest_block
>>> 2 + 2 4
-
.. doctest::
directivereStructuredText:
.. doctest:: >>> 2 + 2 4
Markdown (requires myst-parser):
```{doctest} >>> 2 + 2 4 ```
Usage
The doctest_docutils
module preserves standard library's usage conventions:
reStructuredText
$ python -m doctest_docutils README.rst -v
That's what doctest
does by design.
Markdown
If you install myst-parser, doctest will run on .md files.
$ python -m doctest_docutils README.md -v
pytest plugin
This plugin disables pytest's standard doctest
plugin.
This plugin integrates with the doctest_docutils
module with pytest to enable seamless testing of docs, conftest.py
fixtures and all.
$ pytest docs/
Like the above module, it supports docutils' own doctest_block
and a basic
.. doctest::
directive.
See more: https://gp-libs.git-pull.com/doctest/pytest.html
sphinx plugins
Plain-text issue linker (linkify-issues
)
We need to parse plain text, e.g. #99999, to point to the project tracker at https://github.com/git-pull/gp-libs/issues/99999. This way the markdown looks good anywhere you render it, including GitHub and GitLab.
Configuration
In your conf.py:
-
Add
'linkify_issues'
toextensions
extensions = [ # ... "linkify_issues", ]
-
Configure your issue URL,
issue_url_tpl
:# linkify_issues issue_url_tpl = 'https://github.com/git-pull/gp-libs/issues/{issue_id}'
The config variable is formatted via {meth}
str.format
whereissue_id
is42
if the text is #42.
See more: https://gp-libs.git-pull.com/linkify_issues/
Install
$ pip install --user gp-libs
Developmental releases
You can test the unpublished version of g before its released.
-
pip:
$ pip install --user --upgrade --pre gp-libs
Minimum requirements
To lift the development burden of supporting legacy APIs, as this package is lightly used, minimum constraints have been pinned:
- docutils: 0.20.1+
- myst-parser: 2.0.0+
If you have even passing interested in supporting legacy versions, file an issue on the tracker.
More information
- Python support: >= 3.8, pypy
- Source: https://github.com/git-pull/gp-libs
- Docs: https://gp-libs.git-pull.com
- Changelog: https://gp-libs.git-pull.com/history.html
- Issues: https://github.com/git-pull/gp-libs/issues
- Test Coverage: https://codecov.io/gh/git-pull/gp-libs
- pypi: https://pypi.python.org/pypi/gp-libs
- License: MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gp_libs-0.0.8.tar.gz
.
File metadata
- Download URL: gp_libs-0.0.8.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c150ef6de4ab9287894fb6cb85c9a4efbaf1bd85dc021fd827c1903eb6a4ee77 |
|
MD5 | 887e02a7240148b35d4d3cf83bcae53d |
|
BLAKE2b-256 | 13ae4ae53e559046992edda1c18fb377449bf1064ea17f7601660bb4797addd1 |
File details
Details for the file gp_libs-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: gp_libs-0.0.8-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59b22a69f7162d9d6730a21b17c07d9f1ae054f348adf4179b2c3565fa93b59d |
|
MD5 | 7a82e8ffdbacb662a898a993893da7a2 |
|
BLAKE2b-256 | aabb69b3ed219a8d170c013338f63988acc0e818d9bbd8cc25eec08c09c90b5a |