git: 5dbd8aa4b02a - main - finance/py-ccxt: New port: Cryptocurrency trading API with support for 100+ exchanges

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 27 Dec 2022 03:00:22 UTC
The branch main has been updated by yuri:

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

commit 5dbd8aa4b02a7ef3df62b3f199f867755c2594a3
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-27 02:59:58 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-27 02:59:58 +0000

    finance/py-ccxt: New port: Cryptocurrency trading API with support for 100+ exchanges
---
 finance/Makefile          |  1 +
 finance/py-ccxt/Makefile  | 30 ++++++++++++++++++++++++++++++
 finance/py-ccxt/distinfo  |  3 +++
 finance/py-ccxt/pkg-descr | 15 +++++++++++++++
 4 files changed, 49 insertions(+)

diff --git a/finance/Makefile b/finance/Makefile
index d25938f7d402..a307eb77d3cb 100644
--- a/finance/Makefile
+++ b/finance/Makefile
@@ -101,6 +101,7 @@
     SUBDIR += py-backtrader
     SUBDIR += py-bitcoin
     SUBDIR += py-bt
+    SUBDIR += py-ccxt
     SUBDIR += py-ebaysdk
     SUBDIR += py-exchange-calendars
     SUBDIR += py-ffn
diff --git a/finance/py-ccxt/Makefile b/finance/py-ccxt/Makefile
new file mode 100644
index 000000000000..9f911fc6c15f
--- /dev/null
+++ b/finance/py-ccxt/Makefile
@@ -0,0 +1,30 @@
+PORTNAME=	ccxt
+DISTVERSION=	2.4.60
+CATEGORIES=	finance python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Cryptocurrency trading API with support for 100+ exchanges
+WWW=		https://github.com/ccxt/ccxt
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+PY_DEPENDS=	${PYTHON_PKGNAMEPREFIX}certifi>=2018.1.18:security/py-certifi@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}cryptography>=2.6.1:security/py-cryptography@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests>=2.18.4:www/py-requests@${PY_FLAVOR}
+BUILD_DEPENDS=	${PY_DEPENDS}
+RUN_DEPENDS=	${PY_DEPENDS}
+
+USES=		python:3.6+
+USE_PYTHON=	distutils autoplist pytest # 2 tests fail, see https://github.com/ccxt/ccxt/issues/16221
+
+NO_ARCH=	yes
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+post-extract: # workaround for https://github.com/ccxt/ccxt/issues/16220
+	@${TOUCH} ${WRKSRC}/README.md
+
+.include <bsd.port.mk>
diff --git a/finance/py-ccxt/distinfo b/finance/py-ccxt/distinfo
new file mode 100644
index 000000000000..6cfff598e2b4
--- /dev/null
+++ b/finance/py-ccxt/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1672109046
+SHA256 (ccxt-2.4.60.tar.gz) = a4a4b6520d5b940d0532675642d9a73479c3d0e5e2edf9e3e1f245aab753e9bb
+SIZE (ccxt-2.4.60.tar.gz) = 3123924
diff --git a/finance/py-ccxt/pkg-descr b/finance/py-ccxt/pkg-descr
new file mode 100644
index 000000000000..c64fb0dfb517
--- /dev/null
+++ b/finance/py-ccxt/pkg-descr
@@ -0,0 +1,15 @@
+The CCXT library is used to connect and trade with cryptocurrency exchanges and
+payment processing services worldwide. It provides quick access to market data
+for storage, analysis, visualization, indicator development, algorithmic
+trading, strategy backtesting, bot programming, and related software
+engineering.
+
+It is intended to be used by coders, developers, technically-skilled traders,
+data-scientists and financial analysts for building trading algorithms.
+
+Current feature list:
+* support for many cryptocurrency exchanges - more coming soon
+* fully implemented public and private APIs
+* optional normalized data for cross-exchange analytics and arbitrage
+* an out of the box unified API that is extremely easy to integrate
+* works in Node 10.4+, Python 3, PHP 7.0+, and web browsers