Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at gcc-offload 126 lines 2.3 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 7 # build-system 8 pdm-backend, 9 10 # dependencies 11 fastapi-cli, 12 starlette, 13 pydantic, 14 typing-extensions, 15 16 # tests 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 httpx, 29 jinja2, 30 python-multipart, 31 itsdangerous, 32 pyyaml, 33 ujson, 34 orjson, 35 email-validator, 36 uvicorn, 37 pydantic-settings, 38 pydantic-extra-types, 39}: 40 41buildPythonPackage rec { 42 pname = "fastapi"; 43 version = "0.115.3"; 44 pyproject = true; 45 46 disabled = pythonOlder "3.7"; 47 48 src = fetchFromGitHub { 49 owner = "tiangolo"; 50 repo = "fastapi"; 51 rev = "refs/tags/${version}"; 52 hash = "sha256-JIaPgZVbz887liVwd3YtubJm+L4tFCM9Jcn9/smjiKo="; 53 }; 54 55 build-system = [ pdm-backend ]; 56 57 pythonRelaxDeps = [ 58 "anyio" 59 "starlette" 60 ]; 61 62 dependencies = [ 63 fastapi-cli 64 starlette 65 pydantic 66 typing-extensions 67 ]; 68 69 optional-dependencies.all = 70 [ 71 httpx 72 jinja2 73 python-multipart 74 itsdangerous 75 pyyaml 76 ujson 77 orjson 78 email-validator 79 uvicorn 80 ] 81 ++ lib.optionals (lib.versionAtLeast pydantic.version "2") [ 82 pydantic-settings 83 pydantic-extra-types 84 ] 85 ++ uvicorn.optional-dependencies.standard; 86 87 nativeCheckInputs = [ 88 dirty-equals 89 flask 90 inline-snapshot 91 passlib 92 pyjwt 93 pytestCheckHook 94 pytest-asyncio 95 trio 96 sqlalchemy 97 ] ++ optional-dependencies.all; 98 99 pytestFlagsArray = [ 100 # ignoring deprecation warnings to avoid test failure from 101 # tests/test_tutorial/test_testing/test_tutorial001.py 102 "-W ignore::DeprecationWarning" 103 "-W ignore::pytest.PytestUnraisableExceptionWarning" 104 ]; 105 106 disabledTests = [ 107 # Coverage test 108 "test_fastapi_cli" 109 ]; 110 111 disabledTestPaths = [ 112 # Don't test docs and examples 113 "docs_src" 114 "tests/test_tutorial/test_sql_databases" 115 ]; 116 117 pythonImportsCheck = [ "fastapi" ]; 118 119 meta = with lib; { 120 changelog = "https://github.com/fastapi/fastapi/releases/tag/${version}"; 121 description = "Web framework for building APIs"; 122 homepage = "https://github.com/fastapi/fastapi"; 123 license = licenses.mit; 124 maintainers = with maintainers; [ wd15 ]; 125 }; 126}