nixpkgs/pkgs/servers/apache-airflow/default.nix
Yueh-Shun Li 138565e8df apache-airflow: fix passthru overriding
Keep the `passthru` attributes from previousAttrs
while adding new attributes.

Co-authored-by: Graham Bennett <gbpdt@users.noreply.github.com>
2023-09-07 23:07:42 +02:00

57 lines
1.9 KiB
Nix

{ lib
, fetchFromGitHub
, fetchPypi
, python3
}:
let
python = python3.override {
packageOverrides = pySelf: pySuper: {
# flask-appbuilder doesn't work with sqlalchemy 2.x, flask-appbuilder 3.x
# https://github.com/dpgaspar/Flask-AppBuilder/issues/2038
flask-appbuilder = pySuper.flask-appbuilder.overridePythonAttrs (o: {
meta.broken = false;
});
# a knock-on effect from overriding the sqlalchemy version
flask-sqlalchemy = pySuper.flask-sqlalchemy.overridePythonAttrs (o: {
src = fetchPypi {
pname = "Flask-SQLAlchemy";
version = "2.5.1";
hash = "sha256-K9pEtD58rLFdTgX/PMH4vJeTbMRkYjQkECv8LDXpWRI=";
};
format = "setuptools";
});
# apache-airflow doesn't work with sqlalchemy 2.x
# https://github.com/apache/airflow/issues/28723
sqlalchemy = pySuper.sqlalchemy.overridePythonAttrs (o: rec {
version = "1.4.48";
src = fetchFromGitHub {
owner = "sqlalchemy";
repo = "sqlalchemy";
rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
hash = "sha256-qyD3uoxEnD2pdVvwpUlSqHB3drD4Zg/+ov4CzLFIlLs=";
};
disabledTestPaths = [
"test/aaa_profiling"
"test/ext/mypy"
];
});
apache-airflow = pySelf.callPackage ./python-package.nix { };
};
};
in
# See note in ./python-package.nix for
# instructions on manually testing the web UI
with python.pkgs; (toPythonApplication apache-airflow).overrideAttrs (previousAttrs: {
# Provide access to airflow's modified python package set
# for the cases where external scripts need to import
# airflow modules, though *caveat emptor* because many of
# these packages will not be built by hydra and many will
# not work at all due to the unexpected version overrides
# here.
passthru = (previousAttrs.passthru or { }) // {
pythonPackages = python.pkgs;
};
})