summaryrefslogtreecommitdiff
path: root/nix/beautifulsoup4.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/beautifulsoup4.nix')
-rw-r--r--nix/beautifulsoup4.nix75
1 files changed, 75 insertions, 0 deletions
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 ];
+ };
+}