1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 requests,
7 nominal-api,
8 nominal-api-protos,
9 python-dateutil,
10 conjure-python-client,
11 pandas,
12 typing-extensions,
13 click,
14 pyyaml,
15 tabulate,
16 ffmpeg-python,
17 pytest-cov-stub,
18 pytestCheckHook,
19}:
20
21buildPythonPackage rec {
22 pname = "nominal";
23 version = "1.71.0";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "nominal-io";
28 repo = "nominal-client";
29 tag = "v${version}";
30 hash = "sha256-C0afrzWlq2Z3a21MIJ/3XgvjkEZONwBgCZ+06XIYFGE=";
31 };
32
33 build-system = [ hatchling ];
34
35 dependencies = [
36 requests
37 conjure-python-client
38 nominal-api
39 python-dateutil
40 pandas
41 typing-extensions
42 click
43 pyyaml
44 tabulate
45 ffmpeg-python
46 ];
47
48 optional-dependencies = {
49 protos = [ nominal-api-protos ];
50 # tdms = [ nptdms ]; nptdms is not in nixpkgs
51 };
52
53 nativeCheckInputs = [
54 nominal-api-protos
55 pytest-cov-stub
56 pytestCheckHook
57 ];
58
59 pythonImportsCheck = [
60 "nominal"
61 "nominal.core"
62 ];
63
64 disabledTestPaths = [
65 "tests/cli/test_auth.py::test_good_request"
66 ];
67
68 meta = {
69 description = "Automate Nominal workflows in Python";
70 homepage = "https://github.com/nominal-io/nominal-client";
71 changelog = "https://github.com/nominal-io/nominal-client/releases/tag/${src.tag}";
72 license = lib.licenses.mit;
73 maintainers = with lib.maintainers; [ alkasm ];
74 };
75}