diff --git a/pkgs/by-name/fr/fromager/package.nix b/pkgs/by-name/fr/fromager/package.nix index 91625a3276f2..34912d3be0d5 100644 --- a/pkgs/by-name/fr/fromager/package.nix +++ b/pkgs/by-name/fr/fromager/package.nix @@ -1,53 +1,55 @@ { lib, - stdenv, - python3, fetchFromGitHub, + python3Packages, writableTmpDirAsHomeHook, }: -python3.pkgs.buildPythonApplication (finalAttrs: { +python3Packages.buildPythonApplication (finalAttrs: { pname = "fromager"; - version = "0.71.0"; + version = "0.91.0"; pyproject = true; src = fetchFromGitHub { owner = "python-wheel-build"; repo = "fromager"; tag = finalAttrs.version; - hash = "sha256-3zz37BZx8FcKNl8mSmClIrZxvL+2AS0hJDct6K7BhBE="; + hash = "sha256-N+4DbKNUpQdkJAfr0vwlfXJS8FLLBOXxuzkLoJblJM4="; }; - build-system = with python3.pkgs; [ + build-system = with python3Packages; [ hatchling hatch-vcs ]; - dependencies = with python3.pkgs; [ + dependencies = with python3Packages; [ click elfdeps - html5lib + license-expression packaging - pkginfo + packageurl-python psutil pydantic + pypi-simple pyproject-hooks pyyaml requests - requests-mock resolvelib rich - setuptools + starlette stevedore tomlkit tqdm uv + uvicorn wheel ]; - nativeCheckInputs = with python3.pkgs; [ + nativeCheckInputs = with python3Packages; [ pytestCheckHook + pytest-xdist requests-mock + spdx-tools twine uv writableTmpDirAsHomeHook @@ -57,21 +59,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: { "fromager" ]; - disabledTestPaths = [ - # Depends on wheel.cli module that is private since wheel 0.46.0 - "tests/test_wheels.py" - ]; - - disabledTests = [ - # Accessing pypi.org (not allowed in sandbox) - "test_get_build_backend_dependencies" - "test_get_build_sdist_dependencies" - ] - ++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [ - # Assumes platform.machine() returns 'arm64' on ARM64, which is not true for Linux. - # Re-enable once https://github.com/python-wheel-build/fromager/pull/849 is merged. - "test_add_constraint_conflict" - ]; + # Upstream runs pytest with `--log-level DEBUG`, which this test suite + # relies on for caplog assertions against INFO records. + # Reported: https://github.com/python-wheel-build/fromager/issues/1274 + pytestFlags = [ "--log-level=DEBUG" ]; meta = { description = "Wheel maker"; diff --git a/pkgs/development/python-modules/mailbits/default.nix b/pkgs/development/python-modules/mailbits/default.nix new file mode 100644 index 000000000000..6e9e8f783aed --- /dev/null +++ b/pkgs/development/python-modules/mailbits/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + hatchling, + attrs, +}: + +buildPythonPackage (finalAttrs: { + pname = "mailbits"; + version = "0.2.3"; + pyproject = true; + + src = fetchPypi { + inherit (finalAttrs) pname version; + hash = "sha256-ExQL6Ugl1ECYbe4KbmU9gdO030sAWfvbbXi6jMsMTsA="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + attrs + ]; + + pythonImportsCheck = [ + "mailbits" + ]; + + meta = { + description = "Assorted e-mail utility functions"; + homepage = "https://pypi.org/project/mailbits"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ booxter ]; + }; +}) diff --git a/pkgs/development/python-modules/pypi-simple/default.nix b/pkgs/development/python-modules/pypi-simple/default.nix new file mode 100644 index 000000000000..1920760d56fb --- /dev/null +++ b/pkgs/development/python-modules/pypi-simple/default.nix @@ -0,0 +1,54 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + hatchling, + beautifulsoup4, + mailbits, + packaging, + pydantic, + requests, + tqdm, +}: + +buildPythonPackage (finalAttrs: { + pname = "pypi-simple"; + version = "1.8.0"; + pyproject = true; + + src = fetchPypi { + pname = "pypi_simple"; + inherit (finalAttrs) version; + hash = "sha256-Rm8vzQ1yOCKq46DM/aIuaP+M1/UKrmiRGUarHdHVh+E="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + beautifulsoup4 + mailbits + packaging + pydantic + requests + ]; + + optional-dependencies = { + tqdm = [ + tqdm + ]; + }; + + pythonImportsCheck = [ + "pypi_simple" + ]; + + meta = { + description = "PyPI Simple Repository API client library"; + homepage = "https://pypi.org/project/pypi-simple"; + changelog = "https://github.com/jwodder/pypi-simple/blob/master/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ booxter ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2dcf9f778080..b750e7dc86ca 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10022,6 +10022,8 @@ self: super: with self; { mail-parser = callPackage ../development/python-modules/mail-parser { }; + mailbits = callPackage ../development/python-modules/mailbits { }; + mailcap-fix = callPackage ../development/python-modules/mailcap-fix { }; mailchecker = callPackage ../development/python-modules/mailchecker { }; @@ -15401,6 +15403,8 @@ self: super: with self; { pyphotonfile = callPackage ../development/python-modules/pyphotonfile { }; + pypi-simple = callPackage ../development/python-modules/pypi-simple { }; + pypika = callPackage ../development/python-modules/pypika { }; pypillowfight = callPackage ../development/python-modules/pypillowfight { };