1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-18 03:30:45 +00:00
nixpkgs/pkgs/by-name/ap/apache-airflow/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

115 lines
3.6 KiB
Nix

{ fetchFromGitHub
, fetchPypi
, python3
}:
let
python = python3.override {
self = python;
packageOverrides = pySelf: pySuper: {
connexion = pySuper.connexion.overridePythonAttrs (o: rec {
version = "2.14.2";
src = fetchFromGitHub {
owner = "spec-first";
repo = "connexion";
rev = "refs/tags/${version}";
hash = "sha256-1v1xCHY3ZnZG/Vu9wN/it7rLKC/StoDefoMNs+hMjIs=";
};
nativeBuildInputs = with pySelf; [
setuptools
];
pythonRelaxDeps = [
"werkzeug"
];
propagatedBuildInputs = with pySelf; [
aiohttp
aiohttp-jinja2
aiohttp-swagger
clickclick
flask
inflection
jsonschema
openapi-spec-validator
packaging
pyyaml
requests
swagger-ui-bundle
];
nativeCheckInputs = with pySelf; [
aiohttp-remotes
decorator
pytest-aiohttp
pytestCheckHook
testfixtures
];
disabledTests = [
"test_app"
"test_openapi_yaml_behind_proxy"
"test_swagger_ui"
];
});
flask = pySuper.flask.overridePythonAttrs (o: rec {
version = "2.2.5";
src = fetchPypi {
pname = "Flask";
inherit version;
hash = "sha256-7e6bCn/yZiG9WowQ/0hK4oc3okENmbC7mmhQx/uXeqA=";
};
nativeBuildInputs = (o.nativeBuildInputs or []) ++ [
pySelf.setuptools
];
});
# 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";
});
httpcore = pySuper.httpcore.overridePythonAttrs (o: rec {
# nullify upstream's pytest flags which cause
# "TLS/SSL connection has been closed (EOF)"
# with pytest-httpbin 1.x
preCheck = ''
substituteInPlace pyproject.toml \
--replace '[tool.pytest.ini_options]' '[tool.notpytest.ini_options]'
'';
});
pytest-httpbin = pySuper.pytest-httpbin.overridePythonAttrs (o: rec {
version = "1.0.2";
src = fetchFromGitHub {
owner = "kevin1024";
repo = "pytest-httpbin";
rev = "refs/tags/v${version}";
hash = "sha256-S4ThQx4H3UlKhunJo35esPClZiEn7gX/Qwo4kE1QMTI=";
};
});
# apache-airflow doesn't work with sqlalchemy 2.x
# https://github.com/apache/airflow/issues/28723
sqlalchemy = pySuper.sqlalchemy_1_4;
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;
};
})