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