...
 
Commits (2)
......@@ -42,3 +42,97 @@ group = root
owner = root
group = root
universal = 1
[metadata]
name = weboob
# TODO fetch from __init__.py
version = 1.6
description = Weboob, Web Outside Of Browsers
long_description = file:README.md
author = Romain Bignon
author_email = weboob@weboob.org
maintainer = Romain Bignon
maintainer_email = romain@weboob.org
url = https://weboob.org/
license = GNU LGPL 3
classifiers =
Environment :: Console
License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python
Topic :: Communications :: Email
Topic :: Internet :: WWW/HTTP
Topic :: Internet :: WWW/HTTP :: Browsers
Topic :: Software Development :: Libraries :: Application Frameworks
Topic :: Software Development :: Libraries :: Python Modules
Topic :: Text Processing :: Markup :: HTML
[options]
python_requires = >= 3.5
install_requires =
lxml
cssselect
requests>=2.0.0
python-dateutil
PyYAML
html2text>=3.200
six
unidecode
Pillow
Babel
tests_require =
flake8
nose
xunitparser
coverage
# TODO [options.data_files]
[options.entry_points]
console_scripts =
boobank = weboob.applications.boobank:Boobank.run
boobathon = weboob.applications.boobathon:Boobathon.run
boobcoming = weboob.applications.boobill:Boobcoming.run
boobill = weboob.applications.boobank:Boobill.run
booblyrics = weboob.applications.booblyrics:Booblyrics.run
boobmsg = weboob.applications.boobmsg:Boobmsg.run
boobooks = weboob.applications.boobooks:Boobooks.run
boobsize = weboob.applications.boobsize:Boobsize.run
boobtracker = weboob.applications.boobtracker:BoobTracker.run
boomoney = weboob.applications.boomoney:Boomoney.run
cineoob = weboob.applications.cineoob:Cineoob.run
comparoob = weboob.applications.comparoob:Comparoob.run
cookboob = weboob.applications.cookboob:Cookboob.run
flatboob = weboob.applications.flatboob:Flatboob.run
galleroob = weboob.applications.galleroob:Galleroob.run
geolooc = weboob.applications.geolooc:Geolooc.run
handjoob = weboob.applications.handjoob:Handjoob.run
havedate = weboob.applications.havedate:HaveDate.run
monboob = weboob.applications.monboob:Monboob.run
parceloob = weboob.applications.parceloob:Parceloob.run
pastoob = weboob.applications.pastoob:Pastoob.run
radioob = weboob.applications.radioob:Radioob.run
shopoob = weboob.applications.shopoob:Shopoob.run
suboob = weboob.applications.suboob:Suboob.run
translaboob = weboob.applications.translaboob:Translaboob.run
traveloob = weboob.applications.traveloob:Traveloob.run
videoob = weboob.applications.videoob:Videoob.run
webcontentedit = weboob.applications.webcontentedit:WebContentEdit.run
weboob-cli = weboob.applications.weboobcli:WeboobCli.run
weboob-config = weboob.applications.weboobcfg:WeboobCfg.run
weboob-debug = weboob.applications.weboobdebug:WeboobDebug.run
weboob-repos = weboob.applications.weboobrepos:WeboobRepos.run
weboorrents = weboob.applications.weboorrents:Weboorrents.run
wetboobs = weboob.applications.wetboobs:WetBoobs.run
weboob = weboob.applications.weboobmain:WeboobMain.run
......@@ -22,10 +22,7 @@ from __future__ import print_function
import glob
import os
import subprocess
import sys
from distutils.cmd import Command
from distutils.log import WARN
from setuptools import find_packages, setup
......@@ -33,153 +30,13 @@ from setuptools import find_packages, setup
PY3 = sys.version_info.major >= 3
class BuildQt(Command):
description = 'build Qt applications'
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
self.announce('Building Qt applications...', WARN)
make = self.find_executable('make', ('gmake', 'make'))
if not PY3:
pyuic5 = self.find_executable(
'pyuic5',
('python2-pyuic5', 'pyuic5-python2.7', 'pyuic5'))
else:
pyuic5 = self.find_executable(
'pyuic5',
('python3-pyuic5', 'pyuic5-python3.7', 'pyuic5-python3.6', 'pyuic5-python3.5', 'pyuic5'))
if not pyuic5 or not make:
print('Install missing component(s) (see above) or disable Qt applications (with --no-qt).',
file=sys.stderr)
sys.exit(1)
subprocess.check_call(
[make,
'-f', 'build.mk',
'-s', '-j2',
'all',
'PYUIC=%s%s' % (pyuic5, ' WIN32=1' if sys.platform == 'win32' else '')])
@staticmethod
def find_executable(name, names):
envname = '%s_EXECUTABLE' % name.upper()
if os.getenv(envname):
return os.getenv(envname)
paths = os.getenv('PATH', os.defpath).split(os.pathsep)
exts = os.getenv('PATHEXT', os.pathsep).split(os.pathsep)
for name in names:
for path in paths:
for ext in exts:
fpath = os.path.join(path, name) + ext
if os.path.exists(fpath) and os.access(fpath, os.X_OK):
return fpath
print('Could not find executable: %s' % name, file=sys.stderr)
def install_weboob(qt, xdg):
def install_weboob():
packages = set(find_packages(exclude=['modules', 'modules.*']))
entry_points = {
'console_scripts': [
'boobank = weboob.applications.boobank:Boobank.run',
'boobathon = weboob.applications.boobathon:Boobathon.run',
'boobcoming = weboob.applications.boobill:Boobcoming.run',
'boobill = weboob.applications.boobank:Boobill.run',
'booblyrics = weboob.applications.booblyrics:Booblyrics.run',
'boobmsg = weboob.applications.boobmsg:Boobmsg.run',
'boobooks = weboob.applications.boobooks:Boobooks.run',
'boobsize = weboob.applications.boobsize:Boobsize.run',
'boobtracker = weboob.applications.boobtracker:BoobTracker.run',
'boomoney = weboob.applications.boomoney:Boomoney.run',
'cineoob = weboob.applications.cineoob:Cineoob.run',
'comparoob = weboob.applications.comparoob:Comparoob.run',
'cookboob = weboob.applications.cookboob:Cookboob.run',
'flatboob = weboob.applications.flatboob:Flatboob.run',
'galleroob = weboob.applications.galleroob:Galleroob.run',
'geolooc = weboob.applications.geolooc:Geolooc.run',
'handjoob = weboob.applications.handjoob:Handjoob.run',
'havedate = weboob.applications.havedate:HaveDate.run',
'monboob = weboob.applications.monboob:Monboob.run',
'parceloob = weboob.applications.parceloob:Parceloob.run',
'pastoob = weboob.applications.pastoob:Pastoob.run',
'radioob = weboob.applications.radioob:Radioob.run',
'shopoob = weboob.applications.shopoob:Shopoob.run',
'suboob = weboob.applications.suboob:Suboob.run',
'translaboob = weboob.applications.translaboob:Translaboob.run',
'traveloob = weboob.applications.traveloob:Traveloob.run',
'videoob = weboob.applications.videoob:Videoob.run',
'webcontentedit = weboob.applications.webcontentedit:WebContentEdit.run',
'weboob-cli = weboob.applications.weboobcli:WeboobCli.run',
'weboob-config = weboob.applications.weboobcfg:WeboobCfg.run',
'weboob-debug = weboob.applications.weboobdebug:WeboobDebug.run',
'weboob-repos = weboob.applications.weboobrepos:WeboobRepos.run',
'weboorrents = weboob.applications.weboorrents:Weboorrents.run',
'wetboobs = weboob.applications.wetboobs:WetBoobs.run',
'weboob = weboob.applications.weboobmain:WeboobMain.run',
],
}
qt_packages = set((
'weboob.applications.qboobmsg',
'weboob.applications.qboobmsg.ui',
'weboob.applications.qcineoob',
'weboob.applications.qcineoob.ui',
'weboob.applications.qcookboob',
'weboob.applications.qcookboob.ui',
'weboob.applications.qbooblyrics',
'weboob.applications.qbooblyrics.ui',
'weboob.applications.qhandjoob',
'weboob.applications.qhandjoob.ui',
'weboob.applications.qhavedate',
'weboob.applications.qhavedate.ui',
'weboob.applications.qvideoob',
'weboob.applications.qvideoob.ui',
'weboob.applications.qweboobcfg',
'weboob.applications.qweboobcfg.ui',
'weboob.applications.qwebcontentedit',
'weboob.applications.qwebcontentedit.ui'
'weboob.applications.qflatboob',
'weboob.applications.qflatboob.ui',
'weboob.applications.qboobtracker',
'weboob.applications.qboobtracker.ui',
'weboob.applications.qgalleroob',
'weboob.applications.qgalleroob.ui',
))
if qt:
entry_points['gui_scripts'] = [
'qbooblyrics = weboob.applications.qbooblyrics:QBooblyrics.run',
'qboobmsg = weboob.applications.qboobmsg:QBoobMsg.run',
'qboobtracker = weboob.applications.qboobtracker:QBoobTracker.run',
'qcineoob = weboob.applications.qcineoob:QCineoob.run',
'qcookboob = weboob.applications.qcookboob:QCookboob.run',
'qflatboob = weboob.applications.qflatboob:QFlatBoob.run',
'qgalleroob = weboob.applications.qgalleroob:QGalleroob.run',
'qhandjoob = weboob.applications.qhandjoob:QHandJoob.run',
'qhavedate = weboob.applications.qhavedate:QHaveDate.run',
'qvideoob = weboob.applications.qvideoob:QVideoob.run',
'qwebcontentedit = weboob.applications.qwebcontentedit:QWebContentEdit.run',
'weboob-config-qt = weboob.applications.qweboobcfg:QWeboobCfg.run',
]
else:
packages = packages - qt_packages
data_files = [
('share/man/man1', glob.glob('man/*')),
]
if xdg:
data_files.extend([
('share/applications', glob.glob('desktop/*')),
('share/icons/hicolor/64x64/apps', glob.glob('icons/*')),
])
# Do not put PyQt, it does not work properly.
requirements = [
'lxml',
'cssselect',
......@@ -201,80 +58,16 @@ def install_weboob(qt, xdg):
pass
setup(
name='weboob',
version='1.6',
description='Weboob, Web Outside Of Browsers',
long_description=open('README.md').read(),
author='Romain Bignon',
author_email='weboob@weboob.org',
maintainer='Romain Bignon',
maintainer_email='romain@weboob.org',
url='http://weboob.org/',
license='GNU LGPL 3',
classifiers=[
'Environment :: Console',
'Environment :: X11 Applications :: Qt',
'License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python',
'Topic :: Communications :: Email',
'Topic :: Internet :: WWW/HTTP',
'Topic :: Internet :: WWW/HTTP :: Browsers',
'Topic :: Software Development :: Libraries :: Application Frameworks',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: Text Processing :: Markup :: HTML',
],
packages=packages,
entry_points=entry_points,
data_files=data_files,
install_requires=requirements,
python_requires='>=3.5',
tests_require=[
'flake8',
'nose',
'xunitparser',
'coverage',
],
cmdclass={
'build_qt': BuildQt,
},
)
def extract_args(args, options, optlist):
for option in optlist:
yes = '--%s' % option
no = '--no-%s' % option
if yes in args and no in args:
print('%s and %s options are incompatible' % (yes, no), file=sys.stderr)
sys.exit(1)
if yes in args:
args.remove(yes)
options[option] = True
elif no in args:
args.remove(no)
options[option] = False
if os.getenv('WEBOOB_SETUP'):
args = os.getenv('WEBOOB_SETUP').split()
else:
args = sys.argv[1:]
options = {'qt': False, 'xdg': True}
extract_args(args, options, ('qt', 'xdg'))
if options['qt']:
args.insert(0, 'build_qt')
sys.argv = [sys.argv[0]] + args
install_weboob(**options)
install_weboob()