{ lib , buildPythonPackage , pythonOlder , fetchFromGitHub , chardet , click , flex , packaging , pyicu , requests , ruamel-yaml , setuptools-scm , six , swagger-spec-validator , pytestCheckHook , openapi-spec-validator }: buildPythonPackage rec { pname = "prance"; version = "23.06.21.0"; format = "pyproject"; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "RonnyPfannschmidt"; repo = pname; rev = "v${version}"; fetchSubmodules = true; hash = "sha256-p+LZbQal4DPeMp+eJ2O83rCaL+QIUDcU34pZhYdN4bE="; }; postPatch = '' substituteInPlace setup.cfg \ --replace "--cov=prance --cov-report=term-missing --cov-fail-under=90" "" ''; nativeBuildInputs = [ setuptools-scm ]; propagatedBuildInputs = [ chardet packaging requests ruamel-yaml six ]; passthru.optional-dependencies = { cli = [ click ]; flex = [ flex ]; icu = [ pyicu ]; osv = [ openapi-spec-validator ]; ssv = [ swagger-spec-validator ]; }; nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); # Disable tests that require network disabledTestPaths = [ "tests/test_convert.py" ]; disabledTests = [ "test_convert_defaults" "test_convert_output" "test_fetch_url_http" "test_openapi_spec_validator_validate_failure" ]; pythonImportsCheck = [ "prance" ]; meta = with lib; { changelog = "https://github.com/RonnyPfannschmidt/prance/blob/${src.rev}/CHANGES.rst"; description = "Resolving Swagger/OpenAPI 2.0 and 3.0.0 Parser"; mainProgram = "prance"; homepage = "https://github.com/RonnyPfannschmidt/prance"; license = licenses.mit; maintainers = [ ]; }; }