Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.7 kB · 100 lines
Nix
at litex
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101{ lib, buildPythonPackage, git, greenlet, fetchFromGitHub, pyee, python, pythonOlder, setuptools-scm, playwright-driver}:
let driver = playwright-driver;inbuildPythonPackage rec { pname = "playwright"; # run ./pkgs/development/python-modules/playwright/update.sh to update version = "1.34.0"; format = "setuptools"; disabled = pythonOlder "3.7";
src = fetchFromGitHub { owner = "microsoft"; repo = "playwright-python"; rev = "v${version}"; hash = "sha256-GIxMVuSSJsRDsHDOPnJsDsTcghGYtIFpRS5u7HJd+zY="; };
patches = [ # This patches two things: # - The driver location, which is now a static package in the Nix store. # - The setup script, which would try to download the driver package from # a CDN and patch wheels so that they include it. We don't want this # we have our own driver build. ./driver-location.patch ];
postPatch = '' # if setuptools_scm is not listing files via git almost all python files are excluded export HOME=$(mktemp -d) git init . git add -A . git config --global user.email "nixpkgs" git config --global user.name "nixpkgs" git commit -m "workaround setuptools-scm"
substituteInPlace setup.py \ --replace "greenlet==2.0.1" "greenlet>=2.0.1" \ --replace "pyee==8.1.0" "pyee>=8.1.0" \ --replace "setuptools-scm==7.0.5" "setuptools-scm>=7.0.5" \ --replace "wheel==0.38.1" "wheel>=0.37.1"
# Skip trying to download and extract the driver. # This is done manually in postInstall instead. substituteInPlace setup.py \ --replace "self._download_and_extract_local_driver(base_wheel_bundles)" ""
# Set the correct driver path with the help of a patch in patches substituteInPlace playwright/_impl/_driver.py \ --replace "@driver@" "${driver}/bin/playwright" '';
nativeBuildInputs = [ git setuptools-scm ];
propagatedBuildInputs = [ greenlet pyee ];
postInstall = '' ln -s ${driver} $out/${python.sitePackages}/playwright/driver '';
SETUPTOOLS_SCM_PRETEND_VERSION = version;
# Skip tests because they require network access. doCheck = false;
pythonImportsCheck = [ "playwright" ];
passthru = { inherit driver; tests = { driver = playwright-driver; browsers = playwright-driver.browsers; }; };
meta = with lib; { description = "Python version of the Playwright testing and automation library"; homepage = "https://github.com/microsoft/playwright-python"; license = licenses.asl20; maintainers = with maintainers; [ techknowlogick yrd SuperSandro2000 ]; platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; };}