2021-09-11 20:14:14 +02:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
buildPythonPackage,
|
|
|
|
fetchPypi,
|
2025-06-09 09:55:55 +03:00
|
|
|
fetchpatch,
|
2025-05-24 02:06:52 +02:00
|
|
|
|
|
|
|
# build-system
|
2023-04-30 01:21:03 +02:00
|
|
|
hatchling,
|
2025-05-24 02:06:52 +02:00
|
|
|
|
|
|
|
# docs
|
|
|
|
sphinxHook,
|
|
|
|
|
|
|
|
# dependencies
|
|
|
|
soupsieve,
|
|
|
|
typing-extensions,
|
|
|
|
|
|
|
|
# optional-dependencies
|
|
|
|
chardet,
|
|
|
|
charset-normalizer,
|
|
|
|
faust-cchardet,
|
2021-09-11 20:14:14 +02:00
|
|
|
html5lib,
|
|
|
|
lxml,
|
2025-05-24 02:06:52 +02:00
|
|
|
|
|
|
|
# tests
|
2021-09-11 20:14:14 +02:00
|
|
|
pytestCheckHook,
|
2023-05-06 16:55:12 +01:00
|
|
|
|
|
|
|
# for passthru.tests
|
|
|
|
html-sanitizer,
|
|
|
|
markdownify,
|
|
|
|
mechanicalsoup,
|
|
|
|
nbconvert,
|
|
|
|
subliminal,
|
|
|
|
wagtail,
|
2021-09-11 20:14:14 +02:00
|
|
|
}:
|
2017-09-05 11:16:41 +02:00
|
|
|
|
|
|
|
buildPythonPackage rec {
|
|
|
|
pname = "beautifulsoup4";
|
2025-05-24 02:06:52 +02:00
|
|
|
version = "4.13.4";
|
2024-02-25 10:16:36 +01:00
|
|
|
pyproject = true;
|
2023-02-22 16:53:47 +01:00
|
|
|
|
2021-12-12 19:38:40 -04:00
|
|
|
outputs = [
|
|
|
|
"out"
|
|
|
|
"doc"
|
|
|
|
];
|
2021-09-11 20:14:14 +02:00
|
|
|
|
2017-09-05 11:16:41 +02:00
|
|
|
src = fetchPypi {
|
|
|
|
inherit pname version;
|
2025-05-24 02:06:52 +02:00
|
|
|
hash = "sha256-27PE4c6uau/r2vJCMkcmDNBiQwpBDjjGbyuqUKhDcZU=";
|
2017-09-05 11:16:41 +02:00
|
|
|
};
|
|
|
|
|
2025-06-09 09:55:55 +03:00
|
|
|
patches = [
|
|
|
|
# backport test fix for behavior changes in libxml 2.14.3
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://git.launchpad.net/beautifulsoup/patch/?id=53d328406ec8c37c0edbd00ace3782be63e2e7e5";
|
|
|
|
excludes = ["CHANGELOG"];
|
|
|
|
hash = "sha256-RtavbpnfT6x0A8L3tAvCXwKUpty1ASPGJKdks7evBr8=";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2025-05-24 02:06:52 +02:00
|
|
|
build-system = [ hatchling ];
|
2024-09-14 13:10:22 +02:00
|
|
|
|
2025-05-24 02:06:52 +02:00
|
|
|
nativeBuildInputs = [ sphinxHook ];
|
2022-06-05 22:07:38 +02:00
|
|
|
|
2025-05-24 02:06:52 +02:00
|
|
|
dependencies = [
|
2021-09-11 20:14:14 +02:00
|
|
|
soupsieve
|
2025-05-24 02:06:52 +02:00
|
|
|
typing-extensions
|
2021-09-11 20:14:14 +02:00
|
|
|
];
|
|
|
|
|
2024-09-28 22:35:45 -07:00
|
|
|
optional-dependencies = {
|
2025-05-24 02:06:52 +02:00
|
|
|
chardet = [ chardet ];
|
|
|
|
cchardet = [ faust-cchardet ];
|
|
|
|
charset-normalizer = [ charset-normalizer ];
|
2023-04-30 01:21:03 +02:00
|
|
|
html5lib = [ html5lib ];
|
|
|
|
lxml = [ lxml ];
|
|
|
|
};
|
|
|
|
|
2023-01-21 12:00:00 +00:00
|
|
|
nativeCheckInputs = [
|
2021-09-11 20:14:14 +02:00
|
|
|
pytestCheckHook
|
2025-05-24 02:06:52 +02:00
|
|
|
] ++ lib.flatten (lib.attrValues optional-dependencies);
|
2017-09-05 11:16:41 +02:00
|
|
|
|
2025-05-31 14:39:30 +02:00
|
|
|
disabledTests = [
|
2025-06-09 09:55:55 +03:00
|
|
|
# fail with latest libxml, by not actually rejecting
|
|
|
|
"test_rejected_markup"
|
|
|
|
"test_rejected_input"
|
2025-05-31 14:39:30 +02:00
|
|
|
];
|
|
|
|
|
2022-04-26 23:48:39 +02:00
|
|
|
pythonImportsCheck = [ "bs4" ];
|
2019-02-14 08:37:11 +01:00
|
|
|
|
2023-05-06 16:55:12 +01:00
|
|
|
passthru.tests = {
|
|
|
|
inherit
|
|
|
|
html-sanitizer
|
|
|
|
markdownify
|
|
|
|
mechanicalsoup
|
|
|
|
nbconvert
|
|
|
|
subliminal
|
|
|
|
wagtail
|
|
|
|
;
|
|
|
|
};
|
|
|
|
|
2021-01-11 08:54:33 +01:00
|
|
|
meta = with lib; {
|
2023-02-22 16:53:47 +01:00
|
|
|
changelog = "https://git.launchpad.net/beautifulsoup/tree/CHANGELOG?h=${version}";
|
2017-09-05 11:16:41 +02:00
|
|
|
description = "HTML and XML parser";
|
2023-04-30 01:21:03 +02:00
|
|
|
homepage = "http://crummy.com/software/BeautifulSoup/bs4/";
|
2017-09-05 11:16:41 +02:00
|
|
|
license = licenses.mit;
|
|
|
|
maintainers = with maintainers; [ domenkozar ];
|
|
|
|
};
|
|
|
|
}
|