git: 17b6e6b29c43 - main - math/py-formulaic: New port: Implementation of Wilkinson formulas
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 28 Dec 2022 23:06:25 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=17b6e6b29c43644d908e93c83ce4297276e6be2a
commit 17b6e6b29c43644d908e93c83ce4297276e6be2a
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-28 22:30:03 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-28 23:06:22 +0000
math/py-formulaic: New port: Implementation of Wilkinson formulas
---
math/Makefile | 1 +
math/py-formulaic/Makefile | 41 ++++++++++++
math/py-formulaic/distinfo | 3 +
math/py-formulaic/pkg-descr | 16 +++++
math/py-formulaic/pkg-plist | 148 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 209 insertions(+)
diff --git a/math/Makefile b/math/Makefile
index 4c59c69777fc..442c1af203e8 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -905,6 +905,7 @@
SUBDIR += py-fenics-ffcx
SUBDIR += py-fenics-ufl
SUBDIR += py-flax
+ SUBDIR += py-formulaic
SUBDIR += py-fpylll
SUBDIR += py-fraction
SUBDIR += py-fvcore
diff --git a/math/py-formulaic/Makefile b/math/py-formulaic/Makefile
new file mode 100644
index 000000000000..b9f2463bb499
--- /dev/null
+++ b/math/py-formulaic/Makefile
@@ -0,0 +1,41 @@
+PORTNAME= formulaic
+PORTVERSION= 0.5.2
+CATEGORIES= math python # statistics
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Implementation of Wilkinson formulas
+WWW= https://github.com/matthewwardrop/formulaic
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}astor>=0.8:devel/py-astor@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}cached-property>=1.3.0:devel/py-cached-property@${PY_FLAVOR} \
+ ${PYNUMY} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=1.0:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scipy>=1.6:science/py-scipy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.2.0:devel/py-typing-extensions@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wrapt>=1.0:devel/py-wrapt@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}build>0:devel/py-build@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}installer>0:devel/py-installer@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}hatch-vcs>0:devel/py-hatch-vcs@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \
+ ${PY_DEPENDS}
+RUN_DEPENDS= ${PY_DEPENDS}
+
+USES= python:3.7+
+USE_PYTHON= flavors pytest
+
+NO_ARCH= yes
+
+TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+do-build:
+ @cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} -m build --wheel --no-isolation --outdir ${WRKDIR}
+
+do-install:
+ @cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} -m installer ${WRKDIR}/*.whl --destdir ${STAGEDIR}
+
+.include <bsd.port.mk>
diff --git a/math/py-formulaic/distinfo b/math/py-formulaic/distinfo
new file mode 100644
index 000000000000..e7a9bac3b6de
--- /dev/null
+++ b/math/py-formulaic/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1672264736
+SHA256 (formulaic-0.5.2.tar.gz) = 25b1e1c8dff73f0b11c0028a6ab350222de6bbc47b316ccb770cec16189cef53
+SIZE (formulaic-0.5.2.tar.gz) = 259138
diff --git a/math/py-formulaic/pkg-descr b/math/py-formulaic/pkg-descr
new file mode 100644
index 000000000000..28318f1e5ed7
--- /dev/null
+++ b/math/py-formulaic/pkg-descr
@@ -0,0 +1,16 @@
+Formulaic is a high-performance implementation of Wilkinson formulas for Python.
+
+It provides:
+* high-performance dataframe to model-matrix conversions.
+* support for reusing the encoding choices made during conversion of one
+ data-set on other datasets.
+* extensible formula parsing.
+* extensible data input/output plugins, with implementations for:
+ * input:
+ * pandas.DataFrame
+ * pyarrow.Table
+ * output:
+ * pandas.DataFrame
+ * numpy.ndarray
+ * scipy.sparse.CSCMatrix
+* support for symbolic differentiation of formulas (and hence model matrices).
diff --git a/math/py-formulaic/pkg-plist b/math/py-formulaic/pkg-plist
new file mode 100644
index 000000000000..a5eb7e6497e4
--- /dev/null
+++ b/math/py-formulaic/pkg-plist
@@ -0,0 +1,148 @@
+%%PYTHON_SITELIBDIR%%/formulaic-0.5.2.dist-info/METADATA
+%%PYTHON_SITELIBDIR%%/formulaic-0.5.2.dist-info/RECORD
+%%PYTHON_SITELIBDIR%%/formulaic-0.5.2.dist-info/WHEEL
+%%PYTHON_SITELIBDIR%%/formulaic-0.5.2.dist-info/licenses/LICENSE
+%%PYTHON_SITELIBDIR%%/formulaic/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/_version%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/_version%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/errors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/errors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/formula%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/formula%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/model_matrix%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/model_matrix%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/model_spec%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/model_spec%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/sugar%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/__pycache__/sugar%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/_version.py
+%%PYTHON_SITELIBDIR%%/formulaic/errors.py
+%%PYTHON_SITELIBDIR%%/formulaic/formula.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/arrow%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/arrow%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/pandas%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/__pycache__/pandas%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/arrow.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/base.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/pandas.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/enums%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/enums%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/evaluated_factor%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/evaluated_factor%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/factor_values%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/factor_values%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/scoped_factor%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/scoped_factor%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/scoped_term%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/__pycache__/scoped_term%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/enums.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/evaluated_factor.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/factor_values.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/scoped_factor.py
+%%PYTHON_SITELIBDIR%%/formulaic/materializers/types/scoped_term.py
+%%PYTHON_SITELIBDIR%%/formulaic/model_matrix.py
+%%PYTHON_SITELIBDIR%%/formulaic/model_spec.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__pycache__/parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__pycache__/parser%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__pycache__/tokenize%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__pycache__/tokenize%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__pycache__/tokens_to_ast%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/__pycache__/tokens_to_ast%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/tokenize.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/algos/tokens_to_ast.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/parser.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/ast_node%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/ast_node%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/factor%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/factor%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/formula_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/formula_parser%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/operator%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/operator%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/operator_resolver%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/operator_resolver%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/structured%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/structured%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/term%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/term%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/token%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/__pycache__/token%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/ast_node.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/factor.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/formula_parser.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/operator.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/operator_resolver.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/structured.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/term.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/types/token.py
+%%PYTHON_SITELIBDIR%%/formulaic/parser/utils.py
+%%PYTHON_SITELIBDIR%%/formulaic/sugar.py
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/basis_spline%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/basis_spline%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/contrasts%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/contrasts%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/identity%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/identity%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/poly%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/poly%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/scale%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/__pycache__/scale%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/basis_spline.py
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/contrasts.py
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/identity.py
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/poly.py
+%%PYTHON_SITELIBDIR%%/formulaic/transforms/scale.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__init__.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/calculus%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/calculus%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/cast%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/cast%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/constraints%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/constraints%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/context%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/context%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/iterators%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/iterators%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/layered_mapping%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/layered_mapping%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/sentinels%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/sentinels%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/sparse%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/sparse%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/stateful_transforms%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/__pycache__/stateful_transforms%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/formulaic/utils/calculus.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/cast.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/constraints.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/context.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/iterators.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/layered_mapping.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/sentinels.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/sparse.py
+%%PYTHON_SITELIBDIR%%/formulaic/utils/stateful_transforms.py