git: 1e43d311a385 - main - finance/py-financetoolkit: New port: Transparent and efficient financial analysis

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 10 Nov 2024 23:53:14 UTC
The branch main has been updated by yuri:

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

commit 1e43d311a385fd75db844795c36d53b35fa97ae7
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-11-10 22:34:05 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-11-10 23:53:11 +0000

    finance/py-financetoolkit: New port: Transparent and efficient financial analysis
---
 finance/Makefile                    |  1 +
 finance/py-financetoolkit/Makefile  | 42 +++++++++++++++++++++++++++++++++++++
 finance/py-financetoolkit/distinfo  |  3 +++
 finance/py-financetoolkit/pkg-descr | 19 +++++++++++++++++
 4 files changed, 65 insertions(+)

diff --git a/finance/Makefile b/finance/Makefile
index 1255e2b0904a..a3c57ffdbb3d 100644
--- a/finance/Makefile
+++ b/finance/Makefile
@@ -111,6 +111,7 @@
     SUBDIR += py-exchange-calendars
     SUBDIR += py-ffn
     SUBDIR += py-financedatabase
+    SUBDIR += py-financetoolkit
     SUBDIR += py-finnhub-python
     SUBDIR += py-finviz
     SUBDIR += py-finvizfinance
diff --git a/finance/py-financetoolkit/Makefile b/finance/py-financetoolkit/Makefile
new file mode 100644
index 000000000000..1e6a855a18b9
--- /dev/null
+++ b/finance/py-financetoolkit/Makefile
@@ -0,0 +1,42 @@
+PORTNAME=	financetoolkit
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.9.8
+CATEGORIES=	finance python
+#MASTER_SITES=	PYPI # no tests
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Transparent and efficient financial analysis
+WWW=		https://www.jeroenbouma.com/projects/financetoolkit \
+		https://github.com/JerBouma/FinanceToolkit
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+PY_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pandas>=2.1.0:math/py-pandas@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests>=2.32.3:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}scikit-learn>0:science/py-scikit-learn@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}yfinance>0:finance/py-yfinance@${PY_FLAVOR}
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}poetry-core>0:devel/py-poetry-core@${PY_FLAVOR} \
+		${PY_SETUPTOOLS} \
+		${PY_DEPENDS}
+RUN_DEPENDS=	${PY_DEPENDS}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}ipykernel>=6.29.5:devel/py-ipykernel@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-cov>=5.0.0:devel/py-pytest-cov@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-mock>0:devel/py-pytest-mock@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-recorder>=0.3.0:devel/py-pytest-recorder@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-recording>=0.13.2:devel/py-pytest-recording@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-timeout>0:devel/py-pytest-timeout@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 autoplist pytest # 3 errors in tests, see https://github.com/JerBouma/FinanceToolkit/issues/160
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	JerBouma
+GH_PROJECT=	FinanceToolkit
+
+NO_ARCH=	yes
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+.include <bsd.port.mk>
diff --git a/finance/py-financetoolkit/distinfo b/finance/py-financetoolkit/distinfo
new file mode 100644
index 000000000000..3fa0e6c0f99d
--- /dev/null
+++ b/finance/py-financetoolkit/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1731266273
+SHA256 (JerBouma-FinanceToolkit-v1.9.8_GH0.tar.gz) = 9c7eab74856ceb4184f722ba36746622bdf0387b3268a385df0fbd7a448a9d90
+SIZE (JerBouma-FinanceToolkit-v1.9.8_GH0.tar.gz) = 89641687
diff --git a/finance/py-financetoolkit/pkg-descr b/finance/py-financetoolkit/pkg-descr
new file mode 100644
index 000000000000..c7388c80d5c9
--- /dev/null
+++ b/finance/py-financetoolkit/pkg-descr
@@ -0,0 +1,19 @@
+FinanceToolkit is an open-source toolkit in which all relevant financial
+ratios (180+), indicators and performance measurements are written down in the
+most simplistic way allowing for complete transparency of the calculation method
+(proof). This allows you to not have to rely on metrics from other providers
+and, given a financial statement, allow for efficient manual calculations. This
+leads to one uniform method of calculation being applied that is available and
+understood by everyone.
+
+The Finance Toolkit not only supports Equities. Even for Options, Currencies,
+Cryptocurrencies, ETFs, Mutual Funds, Indices, Money Markets, Commodities, Key
+Economic Indicators and more, the Finance Toolkit can be used to obtain
+historical data as well as important performance and risk measurements such as
+the Sharpe Ratio and Value at Risk.
+
+The Finance Toolkit is complimented very well with the Finance Database, a
+database that features 300.000+ symbols containing Equities, ETFs, Funds,
+Indices, Currencies, Cryptocurrencies and Money Markets. By utilising both,
+it is possible to do a fully-fledged competitive analysis with the tickers found
+from the FinanceDatabase inputted into the FinanceToolkit.