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 pyyaml,
14 requests,
15 tqdm,
16 typer,
17 websocket-client,
18}:
19
20buildPythonPackage rec {
21 pname = "coinmetrics-api-client";
22 version = "2025.9.17.17";
23 pyproject = true;
24
25 disabled = pythonOlder "3.9";
26
27 __darwinAllowLocalNetworking = true;
28
29 src = fetchPypi {
30 inherit version;
31 pname = "coinmetrics_api_client";
32 hash = "sha256-Quupd3I5OM4VtTblHup0z0lX5fSy6h9U1dnbjocAziM=";
33 };
34
35 pythonRelaxDeps = [ "typer" ];
36
37 build-system = [ poetry-core ];
38
39 dependencies = [
40 orjson
41 python-dateutil
42 pyyaml
43 requests
44 typer
45 tqdm
46 websocket-client
47 ];
48
49 optional-dependencies = {
50 pandas = [ pandas ];
51 polars = [ polars ];
52 };
53
54 nativeCheckInputs = [
55 pytestCheckHook
56 pytest-mock
57 ]
58 ++ lib.flatten (builtins.attrValues optional-dependencies);
59
60 pythonImportsCheck = [ "coinmetrics.api_client" ];
61
62 meta = with lib; {
63 description = "Coin Metrics API v4 client library";
64 homepage = "https://coinmetrics.github.io/api-client-python/site/index.html";
65 license = licenses.mit;
66 maintainers = with maintainers; [ centromere ];
67 mainProgram = "coinmetrics";
68 };
69}