Migrate to copier-based swh-py-template
This commit is contained in:
parent
553884fa56
commit
c2402f405f
11 changed files with 144 additions and 179 deletions
11
.copier-answers.yml
Normal file
11
.copier-answers.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Changes here will be overwritten by Copier
|
||||
_commit: v0.1.5
|
||||
_src_path: https://gitlab.softwareheritage.org/swh/devel/swh-py-template.git
|
||||
description: Software Heritage lister
|
||||
distribution_name: swh-lister
|
||||
have_cli: true
|
||||
have_workers: true
|
||||
package_root: swh/lister
|
||||
project_name: swh.lister
|
||||
python_minimal_version: '3.7'
|
||||
readme_format: rst
|
16
.gitignore
vendored
16
.gitignore
vendored
|
@ -1,14 +1,12 @@
|
|||
*.egg-info/
|
||||
*.pyc
|
||||
*.sw?
|
||||
*~
|
||||
/.coverage
|
||||
/.coverage.*
|
||||
.coverage
|
||||
.eggs/
|
||||
.hypothesis
|
||||
.mypy_cache
|
||||
.tox
|
||||
__pycache__
|
||||
build/
|
||||
dist/
|
||||
*.egg-info
|
||||
version.txt
|
||||
.tox/
|
||||
.mypy_cache/
|
||||
/.hypothesis/
|
||||
docs/README.rst
|
||||
docs/README.md
|
||||
|
|
|
@ -1,13 +1,23 @@
|
|||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.3.0
|
||||
rev: v4.4.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: check-json
|
||||
- id: check-yaml
|
||||
|
||||
- repo: https://github.com/python/black
|
||||
rev: 23.1.0
|
||||
hooks:
|
||||
- id: black
|
||||
|
||||
- repo: https://github.com/PyCQA/isort
|
||||
rev: 5.12.0
|
||||
hooks:
|
||||
- id: isort
|
||||
|
||||
- repo: https://github.com/pycqa/flake8
|
||||
rev: 5.0.4
|
||||
rev: 6.0.0
|
||||
hooks:
|
||||
- id: flake8
|
||||
additional_dependencies: [flake8-bugbear==22.9.23]
|
||||
|
@ -31,12 +41,3 @@ repos:
|
|||
language: system
|
||||
types: [python]
|
||||
|
||||
- repo: https://github.com/PyCQA/isort
|
||||
rev: 5.11.5
|
||||
hooks:
|
||||
- id: isort
|
||||
|
||||
- repo: https://github.com/python/black
|
||||
rev: 22.10.0
|
||||
hooks:
|
||||
- id: black
|
||||
|
|
3
AUTHORS
Normal file
3
AUTHORS
Normal file
|
@ -0,0 +1,3 @@
|
|||
Copyright (C) 2019-2023 The Software Heritage developers
|
||||
|
||||
See http://www.softwareheritage.org/ for more information.
|
|
@ -1,8 +0,0 @@
|
|||
include Makefile
|
||||
include README
|
||||
include requirements*.txt
|
||||
include version.txt
|
||||
include conftest.py
|
||||
include swh/lister/cran/list_all_packages.R
|
||||
recursive-include swh/lister/*/tests/data/ *
|
||||
recursive-include swh py.typed
|
|
@ -1 +1 @@
|
|||
include ../../swh-docs/Makefile.sphinx
|
||||
include swh-docs/Makefile.sphinx
|
||||
|
|
8
mypy.ini
8
mypy.ini
|
@ -1,6 +1,9 @@
|
|||
[mypy]
|
||||
namespace_packages = True
|
||||
warn_unused_ignores = True
|
||||
explicit_package_bases = True
|
||||
# ^ Needed for mypy to detect py.typed from swh packages installed
|
||||
# in editable mode
|
||||
|
||||
# 3rd party libraries without stubs (yet)
|
||||
|
||||
|
@ -34,9 +37,6 @@ ignore_missing_imports = True
|
|||
[mypy-pyreadr.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
[mypy-pytest.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
[mypy-pytest_postgresql.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
|
@ -63,3 +63,5 @@ ignore_missing_imports = True
|
|||
|
||||
[mypy-defusedxml.*]
|
||||
ignore_missing_imports = True
|
||||
# [mypy-add_your_lib_here.*]
|
||||
# ignore_missing_imports = True
|
||||
|
|
|
@ -1,3 +1,89 @@
|
|||
[project]
|
||||
name = "swh.lister"
|
||||
authors = [
|
||||
{name="Software Heritage developers", email="swh-devel@inria.fr"},
|
||||
]
|
||||
|
||||
description = "Software Heritage lister"
|
||||
readme = {file = "README.rst", content-type = "text/x-rst"}
|
||||
requires-python = ">=3.7"
|
||||
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",
|
||||
]
|
||||
dynamic = ["version", "dependencies", "optional-dependencies"]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["swh.*"]
|
||||
|
||||
[tool.setuptools.dynamic]
|
||||
dependencies = {file = ["requirements.txt", "requirements-swh.txt"]}
|
||||
|
||||
[tool.setuptools.dynamic.optional-dependencies]
|
||||
testing = {file = ["requirements-test.txt"]}
|
||||
|
||||
[project.entry-points."swh.cli.subcommands"]
|
||||
"swh.lister" = "swh.lister.cli"
|
||||
|
||||
[project.entry-points."swh.workers"]
|
||||
"swh.lister.arch" = "swh.lister.arch:register"
|
||||
"swh.lister.aur" = "swh.lister.aur:register"
|
||||
"swh.lister.bitbucket" = "swh.lister.bitbucket:register"
|
||||
"swh.lister.bower" = "swh.lister.bower:register"
|
||||
"swh.lister.cgit" = "swh.lister.cgit:register"
|
||||
"swh.lister.conda" = "swh.lister.conda:register"
|
||||
"swh.lister.cpan" = "swh.lister.cpan:register"
|
||||
"swh.lister.cran" = "swh.lister.cran:register"
|
||||
"swh.lister.crates" = "swh.lister.crates:register"
|
||||
"swh.lister.debian" = "swh.lister.debian:register"
|
||||
"swh.lister.dlang" = "swh.lister.dlang:register"
|
||||
"swh.lister.gitea" = "swh.lister.gitea:register"
|
||||
"swh.lister.github" = "swh.lister.github:register"
|
||||
"swh.lister.gitiles" = "swh.lister.gitiles:register"
|
||||
"swh.lister.gitlab" = "swh.lister.gitlab:register"
|
||||
"swh.lister.gitweb" = "swh.lister.gitweb:register"
|
||||
"swh.lister.gnu" = "swh.lister.gnu:register"
|
||||
"swh.lister.golang" = "swh.lister.golang:register"
|
||||
"swh.lister.gogs" = "swh.lister.gogs:register"
|
||||
"swh.lister.hackage" = "swh.lister.hackage:register"
|
||||
"swh.lister.hex" = "swh.lister.hex:register"
|
||||
"swh.lister.julia" = "swh.lister.julia:register"
|
||||
"swh.lister.launchpad" = "swh.lister.launchpad:register"
|
||||
"swh.lister.nixguix" = "swh.lister.nixguix:register"
|
||||
"swh.lister.npm" = "swh.lister.npm:register"
|
||||
"swh.lister.nuget" = "swh.lister.nuget:register"
|
||||
"swh.lister.opam" = "swh.lister.opam:register"
|
||||
"swh.lister.packagist" = "swh.lister.packagist:register"
|
||||
"swh.lister.pagure" = "swh.lister.pagure:register"
|
||||
"swh.lister.phabricator" = "swh.lister.phabricator:register"
|
||||
"swh.lister.pubdev" = "swh.lister.pubdev:register"
|
||||
"swh.lister.puppet" = "swh.lister.puppet:register"
|
||||
"swh.lister.pypi" = "swh.lister.pypi:register"
|
||||
"swh.lister.rpm" = "swh.lister.rpm:register"
|
||||
"swh.lister.rubygems" = "swh.lister.rubygems:register"
|
||||
"swh.lister.sourceforge" = "swh.lister.sourceforge:register"
|
||||
"swh.lister.stagit" = "swh.lister.stagit:register"
|
||||
"swh.lister.tuleap" = "swh.lister.tuleap:register"
|
||||
"swh.lister.maven" = "swh.lister.maven:register"
|
||||
"swh.lister.bioconductor" = "swh.lister.bioconductor:register"
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://gitlab.softwareheritage.org/swh/devel/swh-lister"
|
||||
"Bug Reports" = "https://gitlab.softwareheritage.org/swh/devel/swh-lister/-/issues"
|
||||
"Funding" = "https://www.softwareheritage.org/donate"
|
||||
"Documentation" = "https://docs.softwareheritage.org/devel/swh-lister/"
|
||||
"Source" = "https://gitlab.softwareheritage.org/swh/devel/swh-lister.git"
|
||||
|
||||
[build-system]
|
||||
requires = ["setuptools", "setuptools-scm"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.setuptools_scm]
|
||||
fallback_version = "0.0.1"
|
||||
|
||||
[tool.black]
|
||||
target-version = ['py37']
|
||||
|
||||
|
|
112
setup.py
112
setup.py
|
@ -1,112 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# Copyright (C) 2015-2023 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(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.lister",
|
||||
description="Software Heritage lister",
|
||||
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/DLSGH/",
|
||||
packages=find_packages(),
|
||||
install_requires=parse_requirements() + parse_requirements("swh"),
|
||||
tests_require=parse_requirements("test"),
|
||||
setup_requires=["setuptools-scm"],
|
||||
extras_require={"testing": parse_requirements("test")},
|
||||
use_scm_version=True,
|
||||
include_package_data=True,
|
||||
entry_points="""
|
||||
[swh.cli.subcommands]
|
||||
lister=swh.lister.cli
|
||||
[swh.workers]
|
||||
lister.arch=swh.lister.arch:register
|
||||
lister.aur=swh.lister.aur:register
|
||||
lister.bitbucket=swh.lister.bitbucket:register
|
||||
lister.bower=swh.lister.bower:register
|
||||
lister.cgit=swh.lister.cgit:register
|
||||
lister.conda=swh.lister.conda:register
|
||||
lister.cpan=swh.lister.cpan:register
|
||||
lister.cran=swh.lister.cran:register
|
||||
lister.crates=swh.lister.crates:register
|
||||
lister.debian=swh.lister.debian:register
|
||||
lister.dlang=swh.lister.dlang:register
|
||||
lister.gitea=swh.lister.gitea:register
|
||||
lister.github=swh.lister.github:register
|
||||
lister.gitiles=swh.lister.gitiles:register
|
||||
lister.gitlab=swh.lister.gitlab:register
|
||||
lister.gitweb=swh.lister.gitweb:register
|
||||
lister.gnu=swh.lister.gnu:register
|
||||
lister.golang=swh.lister.golang:register
|
||||
lister.gogs=swh.lister.gogs:register
|
||||
lister.hackage=swh.lister.hackage:register
|
||||
lister.hex=swh.lister.hex:register
|
||||
lister.julia=swh.lister.julia:register
|
||||
lister.launchpad=swh.lister.launchpad:register
|
||||
lister.nixguix=swh.lister.nixguix:register
|
||||
lister.npm=swh.lister.npm:register
|
||||
lister.nuget=swh.lister.nuget:register
|
||||
lister.opam=swh.lister.opam:register
|
||||
lister.packagist=swh.lister.packagist:register
|
||||
lister.pagure=swh.lister.pagure:register
|
||||
lister.phabricator=swh.lister.phabricator:register
|
||||
lister.pubdev=swh.lister.pubdev:register
|
||||
lister.puppet=swh.lister.puppet:register
|
||||
lister.pypi=swh.lister.pypi:register
|
||||
lister.rpm=swh.lister.rpm:register
|
||||
lister.rubygems=swh.lister.rubygems:register
|
||||
lister.sourceforge=swh.lister.sourceforge:register
|
||||
lister.stagit=swh.lister.stagit:register
|
||||
lister.tuleap=swh.lister.tuleap:register
|
||||
lister.maven=swh.lister.maven:register
|
||||
lister.bioconductor=swh.lister.bioconductor:register
|
||||
""",
|
||||
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-lister",
|
||||
"Documentation": "https://docs.softwareheritage.org/devel/swh-lister/",
|
||||
},
|
||||
)
|
|
@ -1,3 +0,0 @@
|
|||
from pkgutil import extend_path
|
||||
|
||||
__path__ = extend_path(__path__, __name__)
|
51
tox.ini
51
tox.ini
|
@ -1,22 +1,27 @@
|
|||
[tox]
|
||||
requires =
|
||||
tox>4
|
||||
envlist=black,flake8,mypy,py3
|
||||
minversion = 4
|
||||
envlist =
|
||||
black
|
||||
flake8
|
||||
mypy
|
||||
py3
|
||||
|
||||
[testenv]
|
||||
extras =
|
||||
testing
|
||||
deps =
|
||||
swh.core[http] >= 0.0.61
|
||||
swh.scheduler[testing] >= 0.5.0
|
||||
amqp != 5.0.4
|
||||
pytest-cov
|
||||
dev: ipdb
|
||||
commands =
|
||||
pytest \
|
||||
!dev: --cov={envsitepackagesdir}/swh/lister/ --cov-branch \
|
||||
--doctest-modules \
|
||||
{envsitepackagesdir}/swh/lister/ {posargs}
|
||||
pytest --doctest-modules \
|
||||
--import-mode importlib \
|
||||
--rootdir {envsitepackagesdir} \
|
||||
--cov={envsitepackagesdir}/swh/lister \
|
||||
--cov-branch \
|
||||
{envsitepackagesdir}/swh/lister \
|
||||
{posargs}
|
||||
# --rootdir and --import-mode are required to make tests that depends
|
||||
# on the test file to be a proper submodule of the swh namespace after
|
||||
# migration to PEP420 (implicit namespace).
|
||||
|
||||
[testenv:black]
|
||||
skip_install = true
|
||||
|
@ -47,32 +52,14 @@ commands =
|
|||
# breaking doc build
|
||||
[testenv:sphinx]
|
||||
allowlist_externals = make
|
||||
usedevelop = true
|
||||
extras =
|
||||
testing
|
||||
deps =
|
||||
# fetch and install swh-docs in develop mode
|
||||
-e git+https://gitlab.softwareheritage.org/swh/devel/swh-docs.git\#egg=swh.docs
|
||||
# fetch and install swh-docs
|
||||
git+https://gitlab.softwareheritage.org/swh/devel/swh-docs.git\#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]
|
||||
allowlist_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
|
||||
make -I {env_dir}/share/ -C docs
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue