let pkgs = import { }; in self: super: rec { python39 = super.python39.override { packageOverrides = python-self: python-super: { graphql-core = python-super.buildPythonPackage rec { pname = "graphql-core"; version = "3.2.0"; format = "setuptools"; src = python-super.fetchPypi { inherit pname version; sha256 = "sha256-huKgvgCL/eGe94OI3opyWh2UKpGQykMcJKYIN5c4A84="; }; checkInputs = [ python-super.pytest-asyncio python-super.pytest-benchmark python-super.pytestCheckHook ]; pythonImportsCheck = [ "graphql" ]; }; starlette = python-super.buildPythonPackage rec { pname = "starlette"; version = "0.19.0"; format = "setuptools"; src = fetchFromGitHub { owner = "encode"; repo = pname; rev = version; sha256 = "sha256-gjRTMzoQ8pqxjIusRwRXGs72VYo6xsp2DSUxmEr9KxU="; }; postPatch = '' # remove coverage arguments to pytest sed -i '/--cov/d' setup.cfg ''; propagatedBuildInputs = with self.python39Packages; [ aiofiles anyio itsdangerous jinja2 python-multipart pyyaml requests ]; checkInputs = with self.python39Packages; [ aiosqlite databases pytestCheckHook trio typing-extensions ]; disabledTests = [ # asserts fail due to inclusion of br in Accept-Encoding "test_websocket_headers" "test_request_headers" ]; pythonImportsCheck = [ "starlette" ]; }; fastapi = python-super.buildPythonPackage rec { pname = "fastapi"; version = "0.75.2"; format = "flit"; src = fetchFromGitHub { owner = "tiangolo"; repo = pname; rev = version; hash = "sha256-B4q3Q256Sj4jTQt1TDm3fiEaQKdVxddCF9+KsxkkTWo="; }; propagatedBuildInputs = with self.python39Packages; [ starlette pydantic ]; checkInputs = with self.python39Packages; [ aiosqlite databases flask httpx passlib peewee python-jose pytestCheckHook pytest-asyncio sqlalchemy trio bcrypt ]; patches = [ # Bump starlette, https://github.com/tiangolo/fastapi/pull/4483 (fetchpatch { name = "support-later-starlette.patch"; # PR contains multiple commits url = "https://patch-diff.githubusercontent.com/raw/tiangolo/fastapi/pull/4483.patch"; sha256 = "sha256-ZWaqAd/QYEYRL1hSQdXdFPgWgdmOill2GtmEn33vz2U="; }) ]; postPatch = '' substituteInPlace pyproject.toml \ --replace "starlette ==" "starlette >=" ''; pytestFlagsArray = [ # ignoring deprecation warnings to avoid test failure from # tests/test_tutorial/test_testing/test_tutorial001.py "-W ignore::DeprecationWarning" ]; disabledTestPaths = [ # Disabled tests require orjson which requires rust nightly "tests/test_default_response_class.py" # Don't test docs and examples "docs_src" ]; disabledTests = [ "test_get_custom_response" # Failed: DID NOT RAISE "test_websocket_invalid_data" "test_websocket_no_credentials" # TypeError: __init__() missing 1...starlette-releated "test_head" "test_options" "test_trace" ]; pythonImportsCheck = [ "fastapi" ]; }; strawberry_graphql = python-super.buildPythonPackage rec { pname = "strawberry-graphql"; version = "0.123.0"; format = "pyproject"; patches = [ ./strawberry-graphql.patch ]; propagatedBuildInputs = with self.python39Packages; [ typing-extensions graphql-core python-multipart python-dateutil flask pydantic pygments poetry ]; src = python-super.fetchPypi { inherit pname version; sha256 = "sha256-KsmZ5Xv8tUg6yBxieAEtvoKoRG60VS+iVGV0X6oCExo="; }; }; }; }; pythonPackages = python39.pkgs; selfprivacy-api = super.callPackage ./pkgs/selfprivacy-api { nixpkgs = pkgs; pythonPkgs = pythonPackages; }; selfprivacy-graphql-api = super.callPackage ./pkgs/selfprivacy-graphql-api { nixpkgs = pkgs; pythonPkgs = pythonPackages; }; }