nixpkgs/pkgs/development/python-modules/prance/default.nix

89 lines
2.2 KiB
Nix

{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, chardet
, requests
, ruamel-yaml
, setuptools-scm
, six
, semver
, pytestCheckHook
, openapi-spec-validator
}:
buildPythonPackage rec {
pname = "prance";
version = "0.21.8.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "RonnyPfannschmidt";
repo = pname;
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-kGANMHfWwhW3ZBw2ZVCJZR/bV2EPhcydMKhDeDTVwcQ=";
};
patches = [
# Fix for openapi-spec-validator 0.5.0+:
# https://github.com/RonnyPfannschmidt/prance/pull/132
(fetchpatch {
name = "1-openapi-spec-validator-upgrade.patch";
url = "https://github.com/RonnyPfannschmidt/prance/commit/55503c9b12b685863c932ededac996369e7d288a.patch";
hash = "sha256-7SOgFsk2aaaaAYS8WJ9axqQFyEprurn6Zn12NcdQ9Bg=";
})
(fetchpatch {
name = "2-openapi-spec-validator-upgrade.patch";
url = "https://github.com/RonnyPfannschmidt/prance/commit/7e59cc69c6c62fd04875105773d9d220bb58fea6.patch";
hash = "sha256-j6vmY3NqDswp7v9682H+/MxMGtFObMxUeL9Wbiv9hYw=";
})
(fetchpatch {
name = "3-openapi-spec-validator-upgrade.patch";
url = "https://github.com/RonnyPfannschmidt/prance/commit/7e575781d83845d7ea0c2eff57644df9b465c7af.patch";
hash = "sha256-rexKoQ+TH3QmP20c3bA+7BLMLc+fkVhn7xsq+gle1Aw=";
})
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=prance --cov-report=term-missing --cov-fail-under=90" "" \
--replace "chardet>=3.0,<5.0" "chardet"
'';
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
propagatedBuildInputs = [
chardet
requests
ruamel-yaml
six
semver
];
checkInputs = [
pytestCheckHook
openapi-spec-validator
];
# Disable tests that require network
disabledTestPaths = [
"tests/test_convert.py"
];
disabledTests = [
"test_fetch_url_http"
];
pythonImportsCheck = [ "prance" ];
meta = with lib; {
description = "Resolving Swagger/OpenAPI 2.0 and 3.0.0 Parser";
homepage = "https://github.com/RonnyPfannschmidt/prance";
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}