0
0
Fork 0
haikuports/dev-python/mechanize/mechanize-0.4.5.recipe

92 lines
2.4 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SUMMARY="Stateful programmatic web browsing in Python"
DESCRIPTION="Stateful programmatic web browsing in Python, after Andy \
Lesters Perl module WWW::Mechanize.
- mechanize.Browser and mechanize.UserAgentBase implement \
the interface of urllib2.OpenerDirector, so any URL can be opened, not \
just http.
- mechanize.UserAgentBase offers easy dynamic configuration \
of user-agent features like protocol, cookie, redirection and \
robots.txt handling, without having to make a new OpenerDirector \
each time, e.g. by calling build_opener().
- Easy HTML form filling.
- Convenient link parsing and following.
- Browser history (.back() and .reload() methods).
- The Referer HTTP header is added properly (optional).
- Automatic observance of robots.txt.
- Automatic handling of HTTP-Equiv and Refresh."
HOMEPAGE="https://github.com/python-mechanize/mechanize
http://pypi.python.org/pypi/mechanize"
COPYRIGHT="2002-2010 John J. Lee
1997-1999 Gisle Aas
1997-1999 Johnny Lee
2003 Andy Lester"
LICENSE="BSD (3-clause)"
REVISION="1"
SOURCE_URI="https://github.com/python-mechanize/mechanize/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="08515f36d315566b256888bbe50e3587293397028c45b5289f3e38fede3c574f"
ARCHITECTURES="any"
PROVIDES="
$portName = $portVersion
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
haiku_devel
"
PYTHON_PACKAGES=(python python3 python38 python39)
PYTHON_VERSIONS=(2.7 3.7 3.8 3.9)
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
eval "PROVIDES_${pythonPackage}=\"\
${portName}_$pythonPackage = $portVersion\
\"; \
REQUIRES_$pythonPackage=\"\
haiku\n\
html5lib_$pythonPackage\n\
cmd:python$pythonVersion\
\""
BUILD_REQUIRES="$BUILD_REQUIRES
html5lib_$pythonPackage
setuptools_$pythonPackage
"
BUILD_PREREQUIRES="$BUILD_PREREQUIRES
cmd:python$pythonVersion"
done
INSTALL()
{
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
python=python$pythonVersion
installLocation=$prefix/lib/$python/vendor-packages/
export PYTHONPATH=$installLocation:$PYTHONPATH
mkdir -p $installLocation
rm -rf build
$python setup.py build install \
--root=/ --prefix=$prefix
packageEntries $pythonPackage \
$prefix/lib/python*
done
}
TEST()
{
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
python=python$pythonVersion
$python run_tests.py
done
}