diff --git a/requirements-db.txt b/requirements-db.txt new file mode 100644 index 0000000..6e73d5b --- /dev/null +++ b/requirements-db.txt @@ -0,0 +1,2 @@ +# requirements for swh.core.db +psycopg2 diff --git a/requirements.txt b/requirements-http.txt similarity index 61% copy from requirements.txt copy to requirements-http.txt index e25273a..8be0a3e 100644 --- a/requirements.txt +++ b/requirements-http.txt @@ -1,11 +1,8 @@ -arrow +# requirements for swh.core.api aiohttp +arrow +decorator +Flask msgpack > 0.5 -psycopg2 python-dateutil -vcversioner -PyYAML requests -Flask -systemd-python -decorator diff --git a/requirements.txt b/requirements.txt index e25273a..cd36a30 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,13 @@ +PyYAML +systemd-python + +# these deps below are now handled in dedicated 'extras' and should be removed +# from this main requirement file ASAP arrow aiohttp msgpack > 0.5 psycopg2 python-dateutil -vcversioner -PyYAML requests Flask -systemd-python decorator diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index 3166637..dd9de8a --- a/setup.py +++ b/setup.py @@ -1,73 +1,78 @@ #!/usr/bin/env python3 # Copyright (C) 2015-2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import os from setuptools import setup, find_packages from os import path from io import open here = path.abspath(path.dirname(__file__)) # Get the long description from the README file with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() -def parse_requirements(name=None): - if name: - reqf = 'requirements-%s.txt' % name - else: - reqf = 'requirements.txt' - +def parse_requirements(*names): requirements = [] - if not os.path.exists(reqf): - return requirements + for name in names: + if name: + reqf = 'requirements-%s.txt' % name + else: + reqf = 'requirements.txt' + + if not os.path.exists(reqf): + return requirements - with open(reqf) as f: - for line in f.readlines(): - line = line.strip() - if not line or line.startswith('#'): - continue - requirements.append(line) + with open(reqf) as f: + for line in f.readlines(): + line = line.strip() + if not line or line.startswith('#'): + continue + requirements.append(line) return requirements setup( name='swh.core', description='Software Heritage core utilities', long_description=long_description, long_description_content_type='text/markdown', author='Software Heritage developers', author_email='swh-devel@inria.fr', url='https://forge.softwareheritage.org/diffusion/DCORE/', packages=find_packages(), scripts=[], - install_requires=parse_requirements() + parse_requirements('swh'), + install_requires=parse_requirements(None, 'swh'), setup_requires=['vcversioner'], - extras_require={'testing': parse_requirements('test')}, + extras_require={ + 'testing': parse_requirements('test', 'db', 'http'), + 'db': parse_requirements('db'), + 'http': parse_requirements('http'), + }, vcversioner={}, include_package_data=True, entry_points=''' [console_scripts] swh=swh.core.cli:main swh-db-init=swh.core.cli.db:db_init [swh.cli.subcommands] db-init=swh.core.cli.db:db_init ''', classifiers=[ "Programming Language :: Python :: 3", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Development Status :: 5 - Production/Stable", ], project_urls={ 'Bug Reports': 'https://forge.softwareheritage.org/maniphest', 'Funding': 'https://www.softwareheritage.org/donate', 'Source': 'https://forge.softwareheritage.org/source/swh-core', }, )