1{ lib
2, buildPythonPackage
3, django
4, djangorestframework
5, falcon
6, fetchFromGitHub
7, flask
8, httpx
9, isodate
10, jsonschema-spec
11, mock
12, more-itertools
13, openapi-schema-validator
14, openapi-spec-validator
15, parse
16, pathable
17, poetry-core
18, pytestCheckHook
19, pythonOlder
20, responses
21, requests
22, starlette
23, typing-extensions
24, webob
25, werkzeug
26}:
27
28buildPythonPackage rec {
29 pname = "openapi-core";
30 version = "0.16.1";
31 format = "pyproject";
32
33 disabled = pythonOlder "3.7";
34
35 src = fetchFromGitHub {
36 owner = "p1c2u";
37 repo = "openapi-core";
38 rev = version;
39 hash = "sha256-J3n34HR5lfMM0ik5HAZ2JCr75fX5FTqBWrZ7E3/6XSE=";
40 };
41
42 postPatch = ''
43 sed -i "/--cov/d" pyproject.toml
44 '';
45
46 nativeBuildInputs = [
47 poetry-core
48 ];
49
50 propagatedBuildInputs = [
51 isodate
52 more-itertools
53 pathable
54 more-itertools
55 openapi-schema-validator
56 jsonschema-spec
57 openapi-spec-validator
58 typing-extensions
59 parse
60 werkzeug
61 ];
62
63 passthru.optional-dependencies = {
64 django = [
65 django
66 ];
67 falcon = [
68 falcon
69 ];
70 flask = [
71 flask
72 ];
73 requests = [
74 requests
75 ];
76 starlette = [
77 httpx
78 starlette
79 ];
80 };
81
82 checkInputs = [
83 mock
84 pytestCheckHook
85 responses
86 webob
87 ] ++ passthru.optional-dependencies.flask
88 ++ passthru.optional-dependencies.falcon
89 ++ passthru.optional-dependencies.django
90 ++ passthru.optional-dependencies.starlette
91 ++ passthru.optional-dependencies.requests;
92
93 disabledTestPaths = [
94 # AttributeError: 'str' object has no attribute '__name__'
95 #"tests/integration/validation"
96 # Requires secrets and additional configuration
97 "tests/integration/contrib/django/"
98 # Unable to detect SECRET_KEY and ROOT_URLCONF
99 "tests/integration/contrib/django/"
100 ];
101
102 pythonImportsCheck = [
103 "openapi_core"
104 "openapi_core.validation.request.validators"
105 "openapi_core.validation.response.validators"
106 ];
107
108 meta = with lib; {
109 description = "Client-side and server-side support for the OpenAPI Specification v3";
110 homepage = "https://github.com/p1c2u/openapi-core";
111 license = licenses.bsd3;
112 maintainers = with maintainers; [ dotlambda ];
113 };
114}