1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 orjson,
6 pandas,
7 poetry-core,
8 pytest-mock,
9 pytestCheckHook,
10 python-dateutil,
11 pythonOlder,
12 pythonRelaxDepsHook,
13 requests,
14 tqdm,
15 typer,
16 websocket-client,
17}:
18
19buildPythonPackage rec {
20 pname = "coinmetrics-api-client";
21 version = "2024.2.6.16";
22 pyproject = true;
23
24 disabled = pythonOlder "3.9";
25
26 __darwinAllowLocalNetworking = true;
27
28 src = fetchPypi {
29 inherit version;
30 pname = "coinmetrics_api_client";
31 hash = "sha256-rCj8nG7iQFJKs3Mic2wRZKBqx9T0lCPH5Po8k0nLppg=";
32 };
33
34 pythonRelaxDeps = [ "typer" ];
35
36 nativeBuildInputs = [
37 poetry-core
38 pythonRelaxDepsHook
39 ];
40
41 propagatedBuildInputs = [
42 orjson
43 python-dateutil
44 requests
45 typer
46 tqdm
47 websocket-client
48 ];
49
50 nativeCheckInputs = [
51 pytestCheckHook
52 pytest-mock
53 ] ++ passthru.optional-dependencies.pandas;
54
55 pythonImportsCheck = [ "coinmetrics.api_client" ];
56
57 passthru = {
58 optional-dependencies = {
59 pandas = [ pandas ];
60 };
61 };
62
63 meta = with lib; {
64 description = "Coin Metrics API v4 client library";
65 mainProgram = "coinmetrics";
66 homepage = "https://coinmetrics.github.io/api-client-python/site/index.html";
67 license = licenses.mit;
68 maintainers = with maintainers; [ centromere ];
69 };
70}