1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 orjson,
6 pandas,
7 poetry-core,
8 polars,
9 pytest-mock,
10 pytestCheckHook,
11 python-dateutil,
12 pythonOlder,
13 requests,
14 tqdm,
15 typer,
16 websocket-client,
17}:
18
19buildPythonPackage rec {
20 pname = "coinmetrics-api-client";
21 version = "2025.5.6.13";
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-EUxgT+LK0s7IV+EWrLKgkNMsuhZBOUfMN1PLjub9JWQ=";
32 };
33
34 pythonRelaxDeps = [ "typer" ];
35
36 build-system = [ poetry-core ];
37
38 dependencies = [
39 orjson
40 python-dateutil
41 requests
42 typer
43 tqdm
44 websocket-client
45 ];
46
47 optional-dependencies = {
48 pandas = [ pandas ];
49 polars = [ polars ];
50 };
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 pytest-mock
55 ]
56 ++ lib.flatten (builtins.attrValues optional-dependencies);
57
58 pythonImportsCheck = [ "coinmetrics.api_client" ];
59
60 meta = with lib; {
61 description = "Coin Metrics API v4 client library";
62 homepage = "https://coinmetrics.github.io/api-client-python/site/index.html";
63 license = licenses.mit;
64 maintainers = with maintainers; [ centromere ];
65 mainProgram = "coinmetrics";
66 };
67}