git: bfb9d85323b9 - main - math/py-hmmlearn: Unsupervised learning of Hidden Markov Models

From: Jason W. Bacon <jwb_at_FreeBSD.org>
Date: Fri, 29 Dec 2023 16:18:45 UTC
The branch main has been updated by jwb:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bfb9d85323b9c27d1c329a9230be3cf678763349

commit bfb9d85323b9c27d1c329a9230be3cf678763349
Author:     Jason W. Bacon <jwb@FreeBSD.org>
AuthorDate: 2023-12-29 16:18:01 +0000
Commit:     Jason W. Bacon <jwb@FreeBSD.org>
CommitDate: 2023-12-29 16:18:43 +0000

    math/py-hmmlearn: Unsupervised learning of Hidden Markov Models
    
    hmmlearn is a set of algorithms for unsupervised learning and inference
    of Hidden Markov Models. For supervised learning learning of HMMs and
    similar models see seqlearn.
---
 math/Makefile              |  1 +
 math/py-hmmlearn/Makefile  | 37 +++++++++++++++++++++++++++++++++++++
 math/py-hmmlearn/distinfo  |  3 +++
 math/py-hmmlearn/pkg-descr |  3 +++
 4 files changed, 44 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index 89953b27a37c..744598647931 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -951,6 +951,7 @@
     SUBDIR += py-hdmedians
     SUBDIR += py-hepstats
     SUBDIR += py-heyoka
+    SUBDIR += py-hmmlearn
     SUBDIR += py-igraph
     SUBDIR += py-iminuit
     SUBDIR += py-intspan
diff --git a/math/py-hmmlearn/Makefile b/math/py-hmmlearn/Makefile
new file mode 100644
index 000000000000..3baef7e19c21
--- /dev/null
+++ b/math/py-hmmlearn/Makefile
@@ -0,0 +1,37 @@
+PORTNAME=	hmmlearn
+DISTVERSION=	0.3.0
+CATEGORIES=	math python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	jwb@FreeBSD.org
+COMMENT=	Unsupervised learning and inference of Hidden Markov Models
+WWW=		https://github.com/hmmlearn/hmmlearn
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+BUILD_DEPENDS=	wheel-${PYTHON_VER}:devel/py-wheel@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools_scm>=3.4.3:devel/py-setuptools_scm@${PY_FLAVOR} \
+		${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}scipy>=0.19:science/py-scipy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}scikit-learn>=0.16:science/py-scikit-learn@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pybind11>=0:devel/py-pybind11@${PY_FLAVOR}
+RUN_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}scipy>=0.19:science/py-scipy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}scikit-learn>=0.16:science/py-scikit-learn@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist pep517 pytest
+
+post-stage:
+	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/hmmlearn/_hmmc.cpython-39.so
+
+# 2023-12-29: Tests currently fail due to known upstream issues
+do-test:
+	# setup.py builds directly to prefix by default, so we need to build
+	# again within the project for pytest to work
+	@(cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} setup.py develop)
+	(cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYTHON_VER} --capture=no)
+
+.include <bsd.port.mk>
diff --git a/math/py-hmmlearn/distinfo b/math/py-hmmlearn/distinfo
new file mode 100644
index 000000000000..0e1fdc68387f
--- /dev/null
+++ b/math/py-hmmlearn/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1703354335
+SHA256 (hmmlearn-0.3.0.tar.gz) = d13a91ea3695df881465e3d36132d7eef4e84d483f4ba538a4b46e24b5ea100f
+SIZE (hmmlearn-0.3.0.tar.gz) = 77889
diff --git a/math/py-hmmlearn/pkg-descr b/math/py-hmmlearn/pkg-descr
new file mode 100644
index 000000000000..1a2d7271b8c8
--- /dev/null
+++ b/math/py-hmmlearn/pkg-descr
@@ -0,0 +1,3 @@
+hmmlearn is a set of algorithms for unsupervised learning and inference
+of Hidden Markov Models. For supervised learning learning of HMMs and
+similar models see seqlearn.