SUMMARY="Fast C based HTML 5 parsing for python" DESCRIPTION="A fast implementation of the HTML 5 parsing spec for Python. \ Parsing is done in C using a variant of the gumbo parser. The gumbo parse \ tree is then transformed into an lxml tree, also in C, yielding parse times \ that can be a thirtieth of the html5lib parse times. That is a speedup of \ 30x. This differs, for instance, from the gumbo python bindings, where the \ initial parsing is done in C but the transformation into the final tree \ is done in python." HOMEPAGE="https://html5-parser.readthedocs.io/ https://pypi.python.org/pypi/html5-parser/" COPYRIGHT="2017 Kovid Goyal 2010, 2011 Google Inc. 2015-2016 Kevin B. Hendricks, Stratford Ontario 2008-2009 Bjoern Hoehrmann" LICENSE="Apache v2" REVISION="3" SOURCE_URI="https://files.pythonhosted.org/packages/source/h/html5-parser/html5-parser-$portVersion.tar.gz" CHECKSUM_SHA256="25fe8f6848cbc15187f6748c0695df32bcf1b37df6420b6a01b4ebe1ec1ed48f" SOURCE_DIR="html5-parser-$portVersion" ARCHITECTURES="!x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86" PROVIDES=" html5_parser$secondaryArchSuffix = $portVersion " REQUIRES=" haiku$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel devel:libxml2$secondaryArchSuffix " BUILD_PREREQUIRES=" cmd:gcc$secondaryArchSuffix cmd:pkg_config$secondaryArchSuffix " PYTHON_PACKAGES=() PYTHON_VERSIONS=() PYTHON_LIBSUFFIXES=() # We don't have python2 for secondaryArch if [ -z "$secondaryArchSuffix" ]; then PYTHON_PACKAGES+=(python) PYTHON_VERSIONS+=(2.7) PYTHON_LIBSUFFIXES+=("") BUILD_REQUIRES+=" setuptools_python " BUILD_PREREQUIRES+=" cmd:python2 " fi # gcc2 does not support the flags passed by python3 if [ "$effectiveTargetArchitecture" != x86_gcc2 ]; then PYTHON_PACKAGES+=(python3 python38 python39) PYTHON_VERSIONS+=(3.7 3.8 3.9) PYTHON_LIBSUFFIXES+=(m '' '') BUILD_REQUIRES+=" setuptools_python3 setuptools_python38 setuptools_python39 " BUILD_PREREQUIRES+=" cmd:python3 cmd:python3.8 cmd:python3.9 " fi for i in "${!PYTHON_PACKAGES[@]}"; do pythonPackage=${PYTHON_PACKAGES[i]} pythonVersion=${PYTHON_VERSIONS[$i]} pythonLibSuffix=${PYTHON_LIBSUFFIXES[$i]} eval "PROVIDES_$pythonPackage=\" ${portName}_$pythonPackage = $portVersion \"" eval "REQUIRES_$pythonPackage=\" haiku$secondaryArchSuffix chardet_$pythonPackage lxml${secondaryArchSuffix}_$pythonPackage lib:libpython$pythonVersion$pythonLibSuffix$secondaryArchSuffix \"" TEST_REQUIRES+=" ${portName}_$pythonPackage beautifulsoup_$pythonPackage chardet_$pythonPackage lxml${secondaryArchSuffix}_$pythonPackage " done if [ "$targetArchitecture" = x86_gcc2 -a -n "$secondaryArchSuffix" ]; then PROVIDES_python3+=" html5_parser_python3 = $portVersion " PROVIDES_python38+=" html5_parser_python38 = $portVersion " PROVIDES_python39+=" html5_parser_python39 = $portVersion " fi BUILD() { for i in "${!PYTHON_PACKAGES[@]}"; do pythonPackage=${PYTHON_PACKAGES[i]} pythonVersion=${PYTHON_VERSIONS[$i]} rm -rf "$sourceDir"-$pythonPackage cp -a "$sourceDir" "$sourceDir"-$pythonPackage cd "$sourceDir"-$pythonPackage python=python$pythonVersion $python setup.py build done } INSTALL() { for i in "${!PYTHON_PACKAGES[@]}"; do pythonPackage=${PYTHON_PACKAGES[i]} pythonVersion=${PYTHON_VERSIONS[$i]} cd "$sourceDir"-$pythonPackage python=python$pythonVersion installLocation=$prefix/lib/$python/vendor-packages export PYTHONPATH=$installLocation mkdir -p "$installLocation" $python setup.py install \ --root=/ --prefix="$prefix" packageEntries $pythonPackage \ "$prefix"/lib/$python done cd "$sourceDir" install -m 755 -d "$docDir" install -m 644 -t "$docDir" README.rst } TEST() { for i in "${!PYTHON_PACKAGES[@]}"; do pythonPackage=${PYTHON_PACKAGES[i]} pythonVersion=${PYTHON_VERSIONS[$i]} cd "$sourceDir"-$pythonPackage python=python$pythonVersion $python run_tests.py done }