diff --git a/requirements-swh.txt b/requirements-swh.txt index 8158005..f1b77b7 100644 --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,5 +1,5 @@ -swh.core[db,http] >= 0.0.65 +swh.core[db,http] >= 0.3 swh.model >= 0.3 swh.objstorage >= 0.0.17 swh.scheduler >= 0.0.39 swh.storage >= 0.0.106 diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index d578799..c7d4e98 --- a/setup.py +++ b/setup.py @@ -1,73 +1,71 @@ #!/usr/bin/env python3 # Copyright (C) 2015-2020 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 from io import open from os import path from setuptools import find_packages, setup 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" requirements = [] if not 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) return requirements setup( name="swh.vault", description="Software Heritage vault", long_description=long_description, long_description_content_type="text/markdown", python_requires=">=3.7", author="Software Heritage developers", author_email="swh-devel@inria.fr", url="https://forge.softwareheritage.org/diffusion/DVAU/", packages=find_packages(), install_requires=parse_requirements() + parse_requirements("swh"), setup_requires=["setuptools-scm"], use_scm_version=True, extras_require={"testing": parse_requirements("test")}, include_package_data=True, zip_safe=False, entry_points=""" - [console_scripts] - swh-vault=swh.vault.cli:vault [swh.cli.subcommands] - vault=swh.vault.cli:vault + vault=swh.vault.cli """, 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-vault", "Documentation": "https://docs.softwareheritage.org/devel/swh-vault/", }, ) diff --git a/swh/vault/cli.py b/swh/vault/cli.py index 0e3f055..7378f49 100644 --- a/swh/vault/cli.py +++ b/swh/vault/cli.py @@ -1,85 +1,85 @@ # Copyright (C) 2015-2020 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 # WARNING: do not import unnecessary things here to keep cli startup time under # control import logging import click -from swh.core.cli import CONTEXT_SETTINGS, AliasedGroup +from swh.core.cli import CONTEXT_SETTINGS, AliasedGroup, swh as swh_cli_group CFG_HELP = """Software Heritage Vault RPC server.""" -@click.group(name="vault", context_settings=CONTEXT_SETTINGS, cls=AliasedGroup) +@swh_cli_group.group(name="vault", context_settings=CONTEXT_SETTINGS, cls=AliasedGroup) @click.pass_context def vault(ctx): """Software Heritage Vault tools.""" pass @vault.command(name="rpc-serve", help=CFG_HELP) @click.option( "--config-file", "-C", default=None, metavar="CONFIGFILE", type=click.Path(exists=True, dir_okay=False,), help="Configuration file.", ) @click.option( "--no-stdout", is_flag=True, default=False, help="Do NOT output logs on the console" ) @click.option( "--host", default="0.0.0.0", metavar="IP", show_default=True, help="Host ip address to bind the server on", ) @click.option( "--port", default=5005, type=click.INT, metavar="PORT", help="Binding port of the server", ) @click.option( "--debug/--no-debug", default=True, help="Indicates if the server should run in debug mode", ) @click.pass_context def serve(ctx, config_file, no_stdout, host, port, debug): import aiohttp from swh.scheduler.celery_backend.config import setup_log_handler from swh.vault.api.server import make_app_from_configfile ctx.ensure_object(dict) setup_log_handler( loglevel=ctx.obj.get("log_level", logging.INFO), colorize=False, format="[%(levelname)s] %(name)s -- %(message)s", log_console=not no_stdout, ) try: app = make_app_from_configfile(config_file, debug=debug) except EnvironmentError as e: click.echo(e.msg, err=True) ctx.exit(1) aiohttp.web.run_app(app, host=host, port=int(port)) def main(): logging.basicConfig() return serve(auto_envvar_prefix="SWH_VAULT") if __name__ == "__main__": main()