1{ lib
2, buildPythonPackage
3, fastjsonschema
4, fetchFromGitHub
5, future-typing
6, inflection
7, mypy
8, orjson
9, pandas
10, pendulum
11, poetry-core
12, pydantic
13, pytestCheckHook
14, pythonOlder
15, sqlalchemy
16, ujson
17}:
18
19buildPythonPackage rec {
20 pname = "typical";
21 version = "2.8.1";
22 format = "pyproject";
23
24 disabled = pythonOlder "3.10";
25
26 src = fetchFromGitHub {
27 owner = "seandstewart";
28 repo = "typical";
29 rev = "refs/tags/v${version}";
30 hash = "sha256-2t9Jhdy9NmYBNzdtjjgUnoK2RDEUsAvDkYMcBRzEcmI=";
31 };
32
33 nativeBuildInputs = [
34 poetry-core
35 ];
36
37 propagatedBuildInputs = [
38 fastjsonschema
39 future-typing
40 inflection
41 orjson
42 pendulum
43 ujson
44 ];
45
46 nativeCheckInputs = [
47 pytestCheckHook
48 mypy
49 pydantic
50 sqlalchemy
51 pandas
52 ];
53
54 disabledTests = [
55 # ConstraintValueError: Given value <{'key...
56 "test_tagged_union_validate"
57 # TypeError: 'NoneType' object cannot be interpreted as an integer
58 "test_ujson"
59 ];
60
61 disabledTestPaths = [
62 # We don't care about benchmarks
63 "benchmark/"
64 # Tests are failing on Hydra
65 "tests/mypy/test_mypy.py"
66 ];
67
68 pythonImportsCheck = [
69 "typic"
70 ];
71
72 meta = with lib; {
73 description = "Python library for runtime analysis, inference and validation of Python types";
74 homepage = "https://python-typical.org/";
75 changelog = "https://github.com/seandstewart/typical/releases/tag/v${version}";
76 license = licenses.mit;
77 maintainers = with maintainers; [ kfollesdal ];
78 };
79}