diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 82ec8c217134..5e07ee8279cd 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -27115,6 +27115,13 @@ githubId = 13378502; name = "Wulfsta"; }; + wulpine = { + name = "Wulpey"; + email = "wulpine@proton.me"; + matrix = "@wulpine:matrix.org"; + github = "wulpine"; + githubId = 59339992; + }; wunderbrick = { name = "Andrew Phipps"; email = "lambdafuzz@tutanota.com"; diff --git a/pkgs/development/python-modules/osrparse/default.nix b/pkgs/development/python-modules/osrparse/default.nix new file mode 100644 index 000000000000..2100dc311790 --- /dev/null +++ b/pkgs/development/python-modules/osrparse/default.nix @@ -0,0 +1,38 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + hypothesis, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "osrparse"; + version = "7.0.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "kszlim"; + repo = "osu-replay-parser"; + tag = "v${version}"; + hash = "sha256-MBE4z1SDkr0YA5ommF+WZyR2N67Y1/xmDhxrTrUhQJk="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ + hypothesis + pytestCheckHook + ]; + + pythonImportsCheck = [ "osrparse" ]; + + meta = { + description = "Parser for osr (osu! replays) file format"; + homepage = "https://github.com/kszlim/osu-replay-parser"; + changelog = "https://github.com/kszlim/osu-replay-parser/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ wulpine ]; + }; +} diff --git a/pkgs/development/python-modules/ossapi/default.nix b/pkgs/development/python-modules/ossapi/default.nix new file mode 100644 index 000000000000..894ae6dcf01b --- /dev/null +++ b/pkgs/development/python-modules/ossapi/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + aiohttp, + osrparse, + requests, + requests-oauthlib, + setuptools, + typing-utils, +}: + +buildPythonPackage rec { + pname = "ossapi"; + version = "5.2.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "tybug"; + repo = "ossapi"; + tag = "v${version}"; + hash = "sha256-eCq+NbDYoJ5y1ZC4RfVJUTYcT9AOLU1mtgpZkcSYZG8="; + }; + + build-system = [ setuptools ]; + + pythonRelaxDeps = [ "osrparse" ]; + + dependencies = [ + osrparse + requests + requests-oauthlib + typing-utils + ]; + + optional-dependencies = { + async = [ aiohttp ]; + }; + + # Tests require Internet access and an osu! API key + doCheck = false; + + pythonImportsCheck = [ "ossapi" ]; + + meta = { + description = "Python wrapper for the osu! API"; + homepage = "https://github.com/tybug/ossapi"; + changelog = "https://github.com/tybug/ossapi/releases/tag/${src.tag}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ wulpine ]; + }; +} diff --git a/pkgs/development/python-modules/typing-utils/default.nix b/pkgs/development/python-modules/typing-utils/default.nix new file mode 100644 index 000000000000..fef5f3bdc435 --- /dev/null +++ b/pkgs/development/python-modules/typing-utils/default.nix @@ -0,0 +1,34 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "typing-utils"; + version = "0.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "bojiang"; + repo = "typing_utils"; + tag = "v${version}"; + hash = "sha256-eXVGpe1wCH1JG+7ZP0evlxhw189GrrRzTwNDCALn3JI="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "typing_utils" ]; + + meta = { + description = "Utils to inspect Python type annotations"; + homepage = "https://github.com/bojiang/typing_utils"; + changelog = "https://github.com/bojiang/typing_utils/releases/tag/${src.tag}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ wulpine ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a067aa7bf69a..806b6489a407 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10891,8 +10891,12 @@ self: super: with self; { osqp = callPackage ../development/python-modules/osqp { }; + osrparse = callPackage ../development/python-modules/osrparse { }; + oss2 = callPackage ../development/python-modules/oss2 { }; + ossapi = callPackage ../development/python-modules/ossapi { }; + ossfs = callPackage ../development/python-modules/ossfs { }; osxphotos = callPackage ../development/python-modules/osxphotos { }; @@ -18635,6 +18639,8 @@ self: super: with self; { typing-inspection = callPackage ../development/python-modules/typing-inspection { }; + typing-utils = callPackage ../development/python-modules/typing-utils { }; + typing-validation = callPackage ../development/python-modules/typing-validation { }; typish = callPackage ../development/python-modules/typish { };