From 14c922afe07d3488cdcc5759d6a23c39dfe7cc02 Mon Sep 17 00:00:00 2001 From: Konrad Malik Date: Tue, 27 Aug 2024 17:57:27 +0200 Subject: [PATCH] openapi-python-client: init at 0.21.5 --- .../op/openapi-python-client/package.nix | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 pkgs/by-name/op/openapi-python-client/package.nix diff --git a/pkgs/by-name/op/openapi-python-client/package.nix b/pkgs/by-name/op/openapi-python-client/package.nix new file mode 100644 index 000000000000..550fca6c7abb --- /dev/null +++ b/pkgs/by-name/op/openapi-python-client/package.nix @@ -0,0 +1,79 @@ +{ + lib, + stdenv, + darwin, + python3Packages, + fetchFromGitHub, + installShellFiles, + ruff, + testers, + openapi-python-client, +}: + +python3Packages.buildPythonApplication rec { + pname = "openapi-python-client"; + version = "0.21.5"; + pyproject = true; + + src = fetchFromGitHub { + inherit version; + owner = "openapi-generators"; + repo = "openapi-python-client"; + rev = "refs/tags/v${version}"; + hash = "sha256-/m/XXNqsr0FjYSEGMSw4zIUpWJDOqu9BzNuJKyb7fKY="; + }; + + nativeBuildInputs = + [ + installShellFiles + ] + ++ lib.optionals stdenv.isDarwin [ + darwin.ps + ]; + + build-system = with python3Packages; [ + hatchling + ]; + + dependencies = + (with python3Packages; [ + attrs + httpx + jinja2 + pydantic + python-dateutil + ruamel-yaml + shellingham + typer + typing-extensions + ]) + ++ [ ruff ]; + + # ruff is not packaged as a python module in nixpkgs + pythonRemoveDeps = [ "ruff" ]; + + postInstall = '' + # see: https://github.com/fastapi/typer/blob/5889cf82f4ed925f92e6b0750bf1b1ed9ee672f3/typer/completion.py#L54 + # otherwise shellingham throws exception on darwin + export _TYPER_COMPLETE_TEST_DISABLE_SHELL_DETECTION=1 + installShellCompletion --cmd openapi-python-client \ + --bash <($out/bin/openapi-python-client --show-completion bash) \ + --fish <($out/bin/openapi-python-client --show-completion fish) \ + --zsh <($out/bin/openapi-python-client --show-completion zsh) + ''; + + passthru = { + tests.version = testers.testVersion { + package = openapi-python-client; + }; + }; + + meta = { + description = "Generate modern Python clients from OpenAPI"; + homepage = "https://github.com/openapi-generators/openapi-python-client"; + changelog = "https://github.com/openapi-generators/openapi-python-client/releases/tag/v${version}"; + license = lib.licenses.mit; + mainProgram = "openapi-python-client"; + maintainers = with lib.maintainers; [ konradmalik ]; + }; +}