2016-06-27 14:12:56 -05:00
|
|
|
#!/usr/bin/env python
|
|
|
|
'''
|
|
|
|
setup.py - brozzler setup script
|
|
|
|
|
2022-01-18 17:45:58 -08:00
|
|
|
Copyright (C) 2014-2022 Internet Archive
|
2016-06-27 14:12:56 -05:00
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
'''
|
2016-04-25 20:02:11 +00:00
|
|
|
|
2014-05-20 02:42:40 -07:00
|
|
|
import setuptools
|
2016-07-29 12:56:10 -05:00
|
|
|
import os
|
|
|
|
|
|
|
|
def find_package_data(package):
|
|
|
|
pkg_data = []
|
|
|
|
depth = len(package.split('.'))
|
|
|
|
path = os.path.join(*package.split('.'))
|
|
|
|
for dirpath, dirnames, filenames in os.walk(path):
|
|
|
|
if not os.path.exists(os.path.join(dirpath, '__init__.py')):
|
|
|
|
relpath = os.path.join(*dirpath.split(os.sep)[depth:])
|
|
|
|
pkg_data.extend(os.path.join(relpath, f) for f in filenames)
|
|
|
|
return pkg_data
|
2014-01-21 06:41:46 +00:00
|
|
|
|
2016-05-11 12:05:50 -07:00
|
|
|
setuptools.setup(
|
|
|
|
name='brozzler',
|
2022-03-22 13:59:48 -07:00
|
|
|
version='1.5.27',
|
2015-07-13 17:09:39 -07:00
|
|
|
description='Distributed web crawling with browsers',
|
2016-06-16 14:18:24 -05:00
|
|
|
url='https://github.com/internetarchive/brozzler',
|
2015-07-13 17:09:39 -07:00
|
|
|
author='Noah Levitt',
|
|
|
|
author_email='nlevitt@archive.org',
|
2018-06-25 19:06:12 +00:00
|
|
|
long_description=open('README.rst', mode='rb').read().decode('UTF-8'),
|
2014-01-23 18:26:20 -05:00
|
|
|
license='Apache License 2.0',
|
2016-11-04 17:46:23 -07:00
|
|
|
packages=['brozzler', 'brozzler.dashboard'],
|
2016-07-29 12:56:10 -05:00
|
|
|
package_data={
|
2016-12-20 16:33:25 -08:00
|
|
|
'brozzler': [
|
|
|
|
'js-templates/*.js*', 'behaviors.yaml', 'job_schema.yaml'],
|
2016-11-04 17:46:23 -07:00
|
|
|
'brozzler.dashboard': find_package_data('brozzler.dashboard'),
|
2016-07-29 12:56:10 -05:00
|
|
|
},
|
2016-06-27 12:43:24 -05:00
|
|
|
entry_points={
|
|
|
|
'console_scripts': [
|
2016-06-27 14:12:56 -05:00
|
|
|
'brozzle-page=brozzler.cli:brozzle_page',
|
|
|
|
'brozzler-new-job=brozzler.cli:brozzler_new_job',
|
|
|
|
'brozzler-new-site=brozzler.cli:brozzler_new_site',
|
|
|
|
'brozzler-worker=brozzler.cli:brozzler_worker',
|
2016-06-30 15:16:04 -05:00
|
|
|
'brozzler-ensure-tables=brozzler.cli:brozzler_ensure_tables',
|
2016-11-30 00:52:14 +00:00
|
|
|
'brozzler-list-captures=brozzler.cli:brozzler_list_captures',
|
2017-01-12 07:50:58 +00:00
|
|
|
'brozzler-list-jobs=brozzler.cli:brozzler_list_jobs',
|
|
|
|
'brozzler-list-sites=brozzler.cli:brozzler_list_sites',
|
|
|
|
'brozzler-list-pages=brozzler.cli:brozzler_list_pages',
|
2017-04-14 18:06:15 -07:00
|
|
|
'brozzler-stop-crawl=brozzler.cli:brozzler_stop_crawl',
|
2018-09-25 14:56:26 -07:00
|
|
|
'brozzler-purge=brozzler.cli:brozzler_purge',
|
2016-11-04 17:46:23 -07:00
|
|
|
'brozzler-dashboard=brozzler.dashboard:main',
|
2016-07-05 18:46:42 -05:00
|
|
|
'brozzler-easy=brozzler.easy:main',
|
2016-09-14 17:04:01 -07:00
|
|
|
'brozzler-wayback=brozzler.pywb:main',
|
2016-06-27 12:43:24 -05:00
|
|
|
],
|
|
|
|
},
|
2015-09-23 00:49:20 +00:00
|
|
|
install_requires=[
|
2019-05-16 01:29:05 -07:00
|
|
|
'PyYAML>=5.1',
|
2022-02-23 22:32:00 -08:00
|
|
|
'yt_dlp',
|
2016-11-08 14:11:46 -08:00
|
|
|
'reppy==0.3.4',
|
2019-04-02 17:58:35 +00:00
|
|
|
'requests>=2.21',
|
2018-08-22 14:35:39 -07:00
|
|
|
'websocket-client>=0.39.0,<=0.48.0',
|
2018-09-04 10:52:34 -07:00
|
|
|
'pillow>=5.2.0',
|
|
|
|
'urlcanon>=0.1.dev23',
|
2019-03-14 20:03:17 +00:00
|
|
|
'doublethink>=0.2.0',
|
2019-03-18 15:08:36 -07:00
|
|
|
'rethinkdb>=2.3,<2.4',
|
2018-09-04 10:52:34 -07:00
|
|
|
'cerberus>=1.0.1',
|
|
|
|
'jinja2>=2.10',
|
|
|
|
'cryptography>=2.3',
|
2018-08-17 10:34:00 -07:00
|
|
|
'python-magic>=0.4.15',
|
2016-05-11 12:05:50 -07:00
|
|
|
],
|
2016-06-27 12:43:24 -05:00
|
|
|
extras_require={
|
2018-08-16 14:32:03 -07:00
|
|
|
'dashboard': [
|
2019-04-02 17:58:35 +00:00
|
|
|
'flask>=1.0',
|
2018-09-04 10:52:34 -07:00
|
|
|
'gunicorn>=19.8.1'
|
2018-08-16 14:32:03 -07:00
|
|
|
],
|
2017-03-15 14:59:51 -07:00
|
|
|
'easy': [
|
2018-09-04 10:52:34 -07:00
|
|
|
'warcprox>=2.4b2.dev173',
|
2018-08-16 14:32:03 -07:00
|
|
|
'pywb>=0.33.2,<2',
|
2019-04-02 17:58:35 +00:00
|
|
|
'flask>=1.0',
|
2018-09-04 10:52:34 -07:00
|
|
|
'gunicorn>=19.8.1'
|
2017-03-15 14:59:51 -07:00
|
|
|
],
|
2016-06-27 12:43:24 -05:00
|
|
|
},
|
2014-01-21 06:41:46 +00:00
|
|
|
zip_safe=False,
|
|
|
|
classifiers=[
|
2018-08-21 15:15:38 -07:00
|
|
|
'Development Status :: 5 - Production/Stable',
|
2014-01-21 06:41:46 +00:00
|
|
|
'Environment :: Console',
|
2014-01-23 16:18:13 -05:00
|
|
|
'License :: OSI Approved :: Apache Software License',
|
2016-12-19 17:30:09 -08:00
|
|
|
'Programming Language :: Python :: 3.5',
|
2017-05-26 13:28:00 -07:00
|
|
|
'Programming Language :: Python :: 3.6',
|
2019-03-18 15:49:44 -07:00
|
|
|
'Programming Language :: Python :: 3.7',
|
2015-07-13 17:09:39 -07:00
|
|
|
'Topic :: Internet :: WWW/HTTP',
|
2014-01-21 06:41:46 +00:00
|
|
|
'Topic :: System :: Archiving',
|
|
|
|
])
|