at 25.11-pre 2.8 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 7 # build-system 8 pdm-backend, 9 10 # dependencies 11 starlette, 12 pydantic, 13 typing-extensions, 14 15 # tests 16 anyio, 17 dirty-equals, 18 flask, 19 inline-snapshot, 20 passlib, 21 pyjwt, 22 pytest-asyncio, 23 pytestCheckHook, 24 sqlalchemy, 25 trio, 26 27 # optional-dependencies 28 fastapi-cli, 29 httpx, 30 jinja2, 31 itsdangerous, 32 python-multipart, 33 pyyaml, 34 ujson, 35 orjson, 36 email-validator, 37 uvicorn, 38 pydantic-settings, 39 pydantic-extra-types, 40}: 41 42buildPythonPackage rec { 43 pname = "fastapi"; 44 version = "0.115.12"; 45 pyproject = true; 46 47 disabled = pythonOlder "3.7"; 48 49 src = fetchFromGitHub { 50 owner = "tiangolo"; 51 repo = "fastapi"; 52 tag = version; 53 hash = "sha256-qUJFBOwXIizgIrTYbueflimni+/BhbuTEf45dsjShKE="; 54 }; 55 56 build-system = [ pdm-backend ]; 57 58 pythonRelaxDeps = [ 59 "anyio" 60 "starlette" 61 ]; 62 63 dependencies = [ 64 starlette 65 pydantic 66 typing-extensions 67 ]; 68 69 optional-dependencies = { 70 all = 71 [ 72 fastapi-cli 73 httpx 74 jinja2 75 python-multipart 76 itsdangerous 77 pyyaml 78 ujson 79 orjson 80 email-validator 81 uvicorn 82 ] 83 ++ lib.optionals (lib.versionAtLeast pydantic.version "2") [ 84 pydantic-settings 85 pydantic-extra-types 86 ] 87 ++ fastapi-cli.optional-dependencies.standard 88 ++ uvicorn.optional-dependencies.standard; 89 standard = 90 [ 91 fastapi-cli 92 httpx 93 jinja2 94 python-multipart 95 email-validator 96 uvicorn 97 ] 98 ++ fastapi-cli.optional-dependencies.standard 99 ++ uvicorn.optional-dependencies.standard; 100 }; 101 102 nativeCheckInputs = 103 [ 104 anyio 105 dirty-equals 106 flask 107 inline-snapshot 108 passlib 109 pyjwt 110 pytestCheckHook 111 pytest-asyncio 112 trio 113 sqlalchemy 114 ] 115 ++ anyio.optional-dependencies.trio 116 ++ passlib.optional-dependencies.bcrypt 117 ++ optional-dependencies.all; 118 119 pytestFlagsArray = [ 120 # ignoring deprecation warnings to avoid test failure from 121 # tests/test_tutorial/test_testing/test_tutorial001.py 122 "-W ignore::DeprecationWarning" 123 "-W ignore::pytest.PytestUnraisableExceptionWarning" 124 ]; 125 126 disabledTests = [ 127 # Coverage test 128 "test_fastapi_cli" 129 # Likely pydantic compat issue 130 "test_exception_handler_body_access" 131 ]; 132 133 disabledTestPaths = [ 134 # Don't test docs and examples 135 "docs_src" 136 "tests/test_tutorial/test_sql_databases" 137 ]; 138 139 pythonImportsCheck = [ "fastapi" ]; 140 141 meta = with lib; { 142 changelog = "https://github.com/fastapi/fastapi/releases/tag/${version}"; 143 description = "Web framework for building APIs"; 144 homepage = "https://github.com/fastapi/fastapi"; 145 license = licenses.mit; 146 maintainers = with maintainers; [ wd15 ]; 147 }; 148}