On Mon, Feb 15, 2016 at 03:28:03PM -0800, Christopher Allan Webber wrote: > From 12fea50a946441277e38cc6e7ef266c08738193e Mon Sep 17 00:00:00 2001 > From: Christopher Allan Webber <cweb...@dustycloud.org> > Date: Sat, 13 Feb 2016 18:35:57 -0800 > Subject: [PATCH 06/18] gnu: Add python-beautifulsoup4 > > * gnu/packages/python.scm (python-beautifulsoup4, python2-beautifulsoup4): > New variables.
I actually have a patch for this in one of my WIP branches, too :) > --- > gnu/packages/python.scm | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 3ef552d..d7498dd 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -4573,6 +4573,39 @@ libxml2 and libxslt.") > (define-public python2-lxml > (package-with-python2 python-lxml)) > > +;; beautifulsoup4 has a totally different namespace than 3.x, > +;; and pypi seems to put it under its own name, so I guess we should too > +(define-public python-beautifulsoup4 > + (package > + (name "python-beautifulsoup4") > + (version "4.4.1") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "beautifulsoup4" version)) > + (sha256 > + (base32 > + "1d36lc4pfkvl74fmzdib2nqnvknm0jddgf2n9yd7im150qyh3m47")))) > + (build-system python-build-system) > + (inputs > + `(("python-lxml" ,python-lxml) > + ("python-html5lib" ,python-html5lib))) I didn't find these necessary for the build process and test suite. Are you sure they aren't supposed to be provided by the application that uses beautifulsoup4? > + (home-page > + "http://www.crummy.com/software/BeautifulSoup/bs4/") > + (synopsis > + "Python screen-scraping library") > + (description > + "HTML/XML parser for quick-turnaround applications like screen-scraping. > +Can parse even extremely broken HTML.") How about this: "Beautiful Soup is a Python library designed for rapidly setting up screen-scraping projects. It offers Pythonic idioms for navigating, searching, and modifying a parse tree, providing a toolkit for dissecting a document and extracting what you need. It automatically converts incoming documents to Unicode and outgoing documents to UTF-8." > + (license bsd-3) It uses the Expat license, and has some code from html5lib, which is also Expat. > + (properties `((python2-variant . ,(delay python2-beautifulsoup4)))))) > + > +(define-public python2-beautifulsoup4 > + (package > + (inherit (package-with-python2 > + (strip-python2-variant python-beautifulsoup4))) > + (inputs `(("python2-setuptools" ,python2-setuptools))))) > + > (define-public python2-pil > (package > (name "python2-pil") > -- > 2.6.3 > >