7 python = python3.override {
9 packageOverrides = pySelf: pySuper: {
10 connexion = pySuper.connexion.overridePythonAttrs (o: rec {
12 src = fetchFromGitHub {
15 rev = "refs/tags/${version}";
16 hash = "sha256-1v1xCHY3ZnZG/Vu9wN/it7rLKC/StoDefoMNs+hMjIs=";
18 nativeBuildInputs = with pySelf; [
24 propagatedBuildInputs = with pySelf; [
32 openapi-spec-validator
38 nativeCheckInputs = with pySelf; [
47 "test_openapi_yaml_behind_proxy"
51 flask = pySuper.flask.overridePythonAttrs (o: rec {
56 hash = "sha256-7e6bCn/yZiG9WowQ/0hK4oc3okENmbC7mmhQx/uXeqA=";
58 nativeBuildInputs = (o.nativeBuildInputs or []) ++ [
62 # flask-appbuilder doesn't work with sqlalchemy 2.x, flask-appbuilder 3.x
63 # https://github.com/dpgaspar/Flask-AppBuilder/issues/2038
64 flask-appbuilder = pySuper.flask-appbuilder.overridePythonAttrs (o: {
67 # a knock-on effect from overriding the sqlalchemy version
68 flask-sqlalchemy = pySuper.flask-sqlalchemy.overridePythonAttrs (o: {
70 pname = "Flask-SQLAlchemy";
72 hash = "sha256-K9pEtD58rLFdTgX/PMH4vJeTbMRkYjQkECv8LDXpWRI=";
74 format = "setuptools";
76 httpcore = pySuper.httpcore.overridePythonAttrs (o: rec {
77 # nullify upstream's pytest flags which cause
78 # "TLS/SSL connection has been closed (EOF)"
79 # with pytest-httpbin 1.x
81 substituteInPlace pyproject.toml \
82 --replace '[tool.pytest.ini_options]' '[tool.notpytest.ini_options]'
85 pytest-httpbin = pySuper.pytest-httpbin.overridePythonAttrs (o: rec {
87 src = fetchFromGitHub {
89 repo = "pytest-httpbin";
90 rev = "refs/tags/v${version}";
91 hash = "sha256-S4ThQx4H3UlKhunJo35esPClZiEn7gX/Qwo4kE1QMTI=";
94 # apache-airflow doesn't work with sqlalchemy 2.x
95 # https://github.com/apache/airflow/issues/28723
96 sqlalchemy = pySuper.sqlalchemy_1_4;
98 apache-airflow = pySelf.callPackage ./python-package.nix { };
102 # See note in ./python-package.nix for
103 # instructions on manually testing the web UI
104 with python.pkgs; (toPythonApplication apache-airflow).overrideAttrs (previousAttrs: {
105 # Provide access to airflow's modified python package set
106 # for the cases where external scripts need to import
107 # airflow modules, though *caveat emptor* because many of
108 # these packages will not be built by hydra and many will
109 # not work at all due to the unexpected version overrides
111 passthru = (previousAttrs.passthru or { }) // {
112 pythonPackages = python.pkgs;