diff --git a/docs/README.rst b/docs/README.rst index 492778f..26db8e8 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -1,4 +1,5 @@ -Software Heritage - Python module template -========================================== +Software Heritage - Datastore Scrubber +====================================== -Python module template, used as skeleton to create new modules. +Tools to periodically checks data integrity in swh-storage and swh-objstorage, +reports errors, and (try to) fix them. diff --git a/setup.py b/setup.py index aa521d8..be63d80 100755 --- a/setup.py +++ b/setup.py @@ -1,75 +1,72 @@ #!/usr/bin/env python3 # Copyright (C) 2019-2021 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.rst"), encoding="utf-8") as f: long_description = f.read() def parse_requirements(*names): requirements = [] for name in names: if name: reqf = "requirements-%s.txt" % name else: reqf = "requirements.txt" 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 -# Edit this part to match your module, replace foo by its name -# Full sample: -# https://forge.softwareheritage.org/diffusion/DCORE/browse/master/setup.py setup( - name="swh.foo", # example: swh.loader.pypi - description="Software Heritage ", + name="swh.scrubber", # example: swh.loader.pypi + description="Software Heritage Datastore Scrubber", long_description=long_description, long_description_content_type="text/x-rst", python_requires=">=3.7", author="Software Heritage developers", author_email="swh-devel@inria.fr", - url="https://forge.softwareheritage.org/diffusion/", + url="https://forge.softwareheritage.org/diffusion/swh-scrubber", packages=find_packages(), # packages's modules install_requires=parse_requirements(None, "swh"), tests_require=parse_requirements("test"), setup_requires=["setuptools-scm"], use_scm_version=True, extras_require={"testing": parse_requirements("test")}, include_package_data=True, entry_points=""" [swh.cli.subcommands] - foo=swh.foo.cli + scrubber=swh.scrubber.cli """, classifiers=[ "Programming Language :: Python :: 3", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Development Status :: 3 - Alpha", ], project_urls={ "Bug Reports": "https://forge.softwareheritage.org/maniphest", "Funding": "https://www.softwareheritage.org/donate", - "Source": "https://forge.softwareheritage.org/source/swh-", - "Documentation": "https://docs.softwareheritage.org/devel/swh-/", + "Source": "https://forge.softwareheritage.org/source/swh-scrubber", + "Documentation": "https://docs.softwareheritage.org/devel/swh-scrubber/", }, ) diff --git a/swh/foo/cli.py b/swh/foo/cli.py deleted file mode 100644 index 07c279b..0000000 --- a/swh/foo/cli.py +++ /dev/null @@ -1,19 +0,0 @@ -import click - -from swh.core.cli import CONTEXT_SETTINGS -from swh.core.cli import swh as swh_cli_group - - -@swh_cli_group.group(name="foo", context_settings=CONTEXT_SETTINGS) -@click.pass_context -def foo_cli_group(ctx): - """Foo main command. - """ - - -@foo_cli_group.command() -@click.option("--bar", help="Something") -@click.pass_context -def bar(ctx, bar): - """Do something.""" - click.echo("bar") diff --git a/swh/foo/__init__.py b/swh/scrubber/__init__.py similarity index 100% rename from swh/foo/__init__.py rename to swh/scrubber/__init__.py diff --git a/swh/foo/bar.py b/swh/scrubber/bar.py similarity index 100% rename from swh/foo/bar.py rename to swh/scrubber/bar.py diff --git a/swh/scrubber/cli.py b/swh/scrubber/cli.py new file mode 100644 index 0000000..8bd7d7a --- /dev/null +++ b/swh/scrubber/cli.py @@ -0,0 +1,11 @@ +import click + +from swh.core.cli import CONTEXT_SETTINGS +from swh.core.cli import swh as swh_cli_group + + +@swh_cli_group.group(name="scrubber", context_settings=CONTEXT_SETTINGS) +@click.pass_context +def scrubber_cli_group(ctx): + """main command of the datastore scrubber + """ diff --git a/swh/foo/py.typed b/swh/scrubber/py.typed similarity index 100% rename from swh/foo/py.typed rename to swh/scrubber/py.typed diff --git a/swh/foo/tests/__init__.py b/swh/scrubber/tests/__init__.py similarity index 100% rename from swh/foo/tests/__init__.py rename to swh/scrubber/tests/__init__.py diff --git a/swh/foo/tests/test_nothing.py b/swh/scrubber/tests/test_nothing.py similarity index 100% rename from swh/foo/tests/test_nothing.py rename to swh/scrubber/tests/test_nothing.py diff --git a/tox.ini b/tox.ini index c27d4ab..5913c01 100644 --- a/tox.ini +++ b/tox.ini @@ -1,73 +1,73 @@ [tox] envlist=black,flake8,mypy,py3 [testenv] extras = testing deps = pytest-cov commands = pytest --doctest-modules \ - {envsitepackagesdir}/swh/foo \ - --cov={envsitepackagesdir}/swh/foo \ + {envsitepackagesdir}/swh/scrubber \ + --cov={envsitepackagesdir}/swh/scrubber \ --cov-branch {posargs} [testenv:black] skip_install = true deps = black==19.10b0 commands = {envpython} -m black --check swh [testenv:flake8] skip_install = true deps = flake8 commands = {envpython} -m flake8 [testenv:mypy] extras = testing deps = mypy==0.920 commands = mypy swh # build documentation outside swh-environment using the current # git HEAD of swh-docs, is executed on CI for each diff to prevent # breaking doc build [testenv:sphinx] whitelist_externals = make usedevelop = true extras = testing deps = # fetch and install swh-docs in develop mode -e git+https://forge.softwareheritage.org/source/swh-docs#egg=swh.docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx/src/swh-docs/swh/ -C docs # build documentation only inside swh-environment using local state # of swh-docs package [testenv:sphinx-dev] whitelist_externals = make usedevelop = true extras = testing deps = # install swh-docs in develop mode -e ../swh-docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx-dev/src/swh-docs/swh/ -C docs