diff options
-rw-r--r-- | default.nix | 5 | ||||
-rw-r--r-- | nix/bandcamp-dl.nix | 10 | ||||
-rw-r--r-- | nix/beautifulsoup4.nix | 75 | ||||
-rw-r--r-- | pkgs.nix | 6 |
4 files changed, 92 insertions, 4 deletions
diff --git a/default.nix b/default.nix index 81e43a7..076488b 100644 --- a/default.nix +++ b/default.nix @@ -3,6 +3,7 @@ hostConfig, pkgs ? (import ./pkgs.nix).stable {}, + pkgsUnstable ? (import ./pkgs.nix).unstable {}, }: let @@ -144,7 +145,9 @@ in rec { pkgs.wireshark pkgs.electrum - (pkgs.callPackage ./nix/bandcamp-dl.nix {}) + (pkgsUnstable.callPackage ./nix/bandcamp-dl.nix { + beautifulsoup4 = pkgsUnstable.python3Packages.callPackage ./nix/beautifulsoup4.nix {}; + }) bin ((import ./nvim) {}).nvim diff --git a/nix/bandcamp-dl.nix b/nix/bandcamp-dl.nix index b55b539..74380e0 100644 --- a/nix/bandcamp-dl.nix +++ b/nix/bandcamp-dl.nix @@ -1,18 +1,21 @@ { python3Packages, + fetchPypi, makeWrapper, + beautifulsoup4, }: let - version = "v0.0.13"; + version = "v0.0.16"; src = builtins.fetchGit { url = "https://github.com/iheanyi/bandcamp-dl.git"; - rev = "fe2eafae4bfc901d2760aef9d4cc6db60528b4b4"; + rev = "cdf24c019d9014a6e203458b9a0cd3a03081e05a"; }; in python3Packages.buildPythonApplication { inherit version src; + format = "pyproject"; pname = "bandcamp-dl"; propagatedBuildInputs = [ - python3Packages.beautifulsoup4 + beautifulsoup4 python3Packages.demjson3 python3Packages.mutagen python3Packages.requests @@ -20,6 +23,7 @@ in python3Packages.docopt python3Packages.lxml python3Packages.mock + python3Packages.setuptools ]; nativeBuildInputs = [ makeWrapper ]; postInstall = '' diff --git a/nix/beautifulsoup4.nix b/nix/beautifulsoup4.nix new file mode 100644 index 0000000..b5c5a6e --- /dev/null +++ b/nix/beautifulsoup4.nix @@ -0,0 +1,75 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + fetchpatch, + chardet, + hatchling, + html5lib, + lxml, + pytestCheckHook, + pythonOlder, + soupsieve, + typing-extensions, + + # for passthru.tests + html-sanitizer, + markdownify, + mechanicalsoup, + nbconvert, + subliminal, + wagtail, +}: + +buildPythonPackage rec { + pname = "beautifulsoup4"; + version = "4.13.0b2"; + pyproject = true; + + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-xoTd7AcaoSCBmImqnolA+Fw/PNqgjiO5+iZRA4eJe9U="; + }; + + doCheck = false; + + nativeBuildInputs = [ + hatchling + ]; + + propagatedBuildInputs = [ + chardet + soupsieve + typing-extensions + ]; + + optional-dependencies = { + html5lib = [ html5lib ]; + lxml = [ lxml ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + ] ++ lib.flatten (builtins.attrValues optional-dependencies); + + passthru.tests = { + inherit + html-sanitizer + markdownify + mechanicalsoup + nbconvert + subliminal + wagtail + ; + }; + + meta = with lib; { + changelog = "https://git.launchpad.net/beautifulsoup/tree/CHANGELOG?h=${version}"; + description = "HTML and XML parser"; + homepage = "http://crummy.com/software/BeautifulSoup/bs4/"; + license = licenses.mit; + maintainers = with maintainers; [ domenkozar ]; + }; +} @@ -21,4 +21,10 @@ rec { url = "https://github.com/nixos/nixpkgs/archive/63dacb46bf939521bdc93981b4cbb7ecb58427a0.tar.gz"; sha256 = "sha256:1lr1h35prqkd1mkmzriwlpvxcb34kmhc9dnr48gkm8hh089hifmx"; }); + + unstable = mkPkgs (builtins.fetchTarball { + name = "nixpkgs-2411-beta"; + url = "https://github.com/nixos/nixpkgs/archive/8b27c1239e5c421a2bbc2c65d52e4a6fbf2ff296.tar.gz"; + sha256 = "sha256:1gx0hihb7kcddv5h0k7dysp2xhf1ny0aalxhjbpj2lmvj7h9g80a"; + }); } |