summaryrefslogtreecommitdiff
path: root/textproc/py-mkdocstrings-python
diff options
context:
space:
mode:
authorKai Knoblich <kai@FreeBSD.org>2023-08-31 07:22:23 +0200
committerKai Knoblich <kai@FreeBSD.org>2023-08-31 07:43:40 +0200
commit656e2aeca87724087da0235269e9d7ae1e6118e8 (patch)
treef38022f94a886fc42360950044c3821341450f69 /textproc/py-mkdocstrings-python
parenttextproc/py-mkdocstrings-crystal: New port (diff)
textproc/py-mkdocstrings-python: New port
This Python handler for the "mkdocstrings" package uses Griffe (= textproc/py-griffe) to collect documentation from Python source code. Features: * Data collection from source code: collection of the object-tree and the docstrings is done thanks to Griffe. * Support for type annotations: Griffe collects your type annotations and mkdocstrings uses them to display parameter types or return types. * Recursive documentation of Python objects: just use the module dotted-path as an identifier, and you get the full module docs. You don't need to inject documentation for each class, function, etc. * Support for documented attributes: attributes (variables) followed by a docstring (triple-quoted string) will be recognized by Griffe in modules, classes and even in __init__ methods. * Multiple docstring-styles support: common support for Google-style, Numpydoc-style, and Sphinx-style docstrings. See Griffe's documentation on docstrings support.
Diffstat (limited to 'textproc/py-mkdocstrings-python')
-rw-r--r--textproc/py-mkdocstrings-python/Makefile33
-rw-r--r--textproc/py-mkdocstrings-python/distinfo3
-rw-r--r--textproc/py-mkdocstrings-python/pkg-descr22
3 files changed, 58 insertions, 0 deletions
diff --git a/textproc/py-mkdocstrings-python/Makefile b/textproc/py-mkdocstrings-python/Makefile
new file mode 100644
index 000000000000..00b48cd5653b
--- /dev/null
+++ b/textproc/py-mkdocstrings-python/Makefile
@@ -0,0 +1,33 @@
+PORTNAME= mkdocstrings-python
+DISTVERSION= 1.6.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= mkdocstrings_python-${DISTVERSION}
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Python handler for mkdocstrings
+WWW= https://github.com/mkdocstrings/python
+
+LICENSE= ISCL
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}griffe>=0.35:textproc/py-griffe@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mkdocstrings>0:textproc/py-mkdocstrings@${PY_FLAVOR}
+# textproc/py-mkdocstrings belongs to RUN_DEPENDS as well but would cause
+# a circular dependency (via py-mkdocstrings' PYTHON option). It was therefore
+# moved to TEST_DEPENDS to at least allow the test suite to run.
+
+USES= python
+USE_PYTHON= autoplist pep517 pytest
+# These tests relies on files that aren't available in the sdist
+PYTEST_IGNORED_TESTS= test_render_themes test_render_docstring
+
+TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}mkdocstrings-python-legacy
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-mkdocstrings-python/distinfo b/textproc/py-mkdocstrings-python/distinfo
new file mode 100644
index 000000000000..24927e75743e
--- /dev/null
+++ b/textproc/py-mkdocstrings-python/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1693377377
+SHA256 (mkdocstrings_python-1.6.0.tar.gz) = 6164ccaa6e488abc2a8fbccdfd1f21948c2c344d3f347847783a5d1c6fa2bfbf
+SIZE (mkdocstrings_python-1.6.0.tar.gz) = 29909
diff --git a/textproc/py-mkdocstrings-python/pkg-descr b/textproc/py-mkdocstrings-python/pkg-descr
new file mode 100644
index 000000000000..d5f664a96b83
--- /dev/null
+++ b/textproc/py-mkdocstrings-python/pkg-descr
@@ -0,0 +1,22 @@
+This Python handler for the "mkdocstrings" package uses Griffe
+(= textproc/py-griffe) to collect documentation from Python source code.
+
+Features:
+
+* Data collection from source code: collection of the object-tree and the
+ docstrings is done thanks to Griffe.
+
+* Support for type annotations: Griffe collects your type annotations and
+ mkdocstrings uses them to display parameter types or return types.
+
+* Recursive documentation of Python objects: just use the module dotted-path as
+ an identifier, and you get the full module docs. You don't need to inject
+ documentation for each class, function, etc.
+
+* Support for documented attributes: attributes (variables) followed by a
+ docstring (triple-quoted string) will be recognized by Griffe in modules,
+ classes and even in __init__ methods.
+
+* Multiple docstring-styles support: common support for Google-style,
+ Numpydoc-style, and Sphinx-style docstrings. See Griffe's documentation on
+ docstrings support.