Use Poetry for requirements and project management
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
This commit is contained in:
parent
337b77fd1c
commit
adc6ca804f
10 changed files with 2537 additions and 52 deletions
21
.zuul.yaml
21
.zuul.yaml
|
@ -11,12 +11,29 @@
|
|||
- libmodulemd
|
||||
- python3.12
|
||||
- python3.12-devel
|
||||
- poetry
|
||||
- fi-tox-format:
|
||||
vars:
|
||||
tox_envlist: black
|
||||
dependencies:
|
||||
- cairo-devel
|
||||
- cairo-gobject-devel
|
||||
- gobject-introspection-devel
|
||||
- libmodulemd
|
||||
- python3.12
|
||||
- python3.12-devel
|
||||
- poetry
|
||||
- fi-tox-lint:
|
||||
vars:
|
||||
tox_envlist: flake8
|
||||
dependencies:
|
||||
- cairo-devel
|
||||
- cairo-gobject-devel
|
||||
- gobject-introspection-devel
|
||||
- libmodulemd
|
||||
- python3.12
|
||||
- python3.12-devel
|
||||
- poetry
|
||||
- fi-tox-python39:
|
||||
vars:
|
||||
dependencies:
|
||||
|
@ -24,6 +41,7 @@
|
|||
- cairo-gobject-devel
|
||||
- gobject-introspection-devel
|
||||
- libmodulemd
|
||||
- poetry
|
||||
- fi-tox-python310:
|
||||
vars:
|
||||
dependencies:
|
||||
|
@ -37,6 +55,7 @@
|
|||
- python3-pluggy
|
||||
- python3-py
|
||||
- python3-toml
|
||||
- poetry
|
||||
- fi-tox-python311:
|
||||
vars:
|
||||
dependencies:
|
||||
|
@ -49,6 +68,7 @@
|
|||
- python3-pluggy
|
||||
- python3-py
|
||||
- python3-toml
|
||||
- poetry
|
||||
- fi-tox-python312:
|
||||
vars:
|
||||
dependencies:
|
||||
|
@ -62,4 +82,5 @@
|
|||
- python3-pluggy
|
||||
- python3-py
|
||||
- python3-toml
|
||||
- poetry
|
||||
...
|
||||
|
|
|
@ -27,7 +27,7 @@ RUN dnf -y install \
|
|||
|
||||
|
||||
COPY . /code
|
||||
RUN cd /code && pip install -r requirements.txt
|
||||
RUN cd /code && pip install .
|
||||
#ENTRYPOINT ["/code/entrypoint.sh"]
|
||||
ENV PYTHONPATH=/code
|
||||
CMD ["fedora-messaging", "consume"]
|
||||
|
|
2435
poetry.lock
generated
Normal file
2435
poetry.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
45
pyproject.toml
Normal file
45
pyproject.toml
Normal file
|
@ -0,0 +1,45 @@
|
|||
[tool.poetry]
|
||||
name = "toddlers"
|
||||
version = "0.1.0"
|
||||
description = "Small fedora-messaging toddlers that keep running around"
|
||||
authors = ["Pierre-Yves Chibon <pingou@pingoured.fr>"]
|
||||
license = "GPL-2.0-or-later"
|
||||
readme = "README.rst"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.9"
|
||||
arrow = "^1.3.0"
|
||||
beanbag = "^1.9.2"
|
||||
bs4 = "^0.0.2"
|
||||
defusedxml = "^0.7.1"
|
||||
fasjson-client = "^1.0.8"
|
||||
fedora-messaging = "^3.6.0"
|
||||
fedora-messaging-git-hook-messages = "^1.0.1"
|
||||
gitpython = "^3.1.43"
|
||||
koji = "^1.34.2"
|
||||
requests = "^2.32.3"
|
||||
noggin-messages = "^1.1.0"
|
||||
pagure-messages = "^1.2.0"
|
||||
pygobject = "^3.48.2"
|
||||
python-fedora = "^1.1.1"
|
||||
python-bugzilla = ">=3.2.0"
|
||||
pdc-client = "^1.8.0"
|
||||
zstandard = "^0.23.0"
|
||||
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
pytest = "^8.2.2"
|
||||
pytest-cov = "^5.0.0"
|
||||
types-requests = "^2.32.0.20240622"
|
||||
types-toml = "^0.10.8.20240310"
|
||||
mypy = "^1.10.1"
|
||||
flake8 = "^7.1.0"
|
||||
flake8-import-order = "^0.18.2"
|
||||
black = ">=24.4.2"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
toddlers-playtime = "toddlers.playtime:main"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
build-backend = "poetry.core.masonry.api"
|
|
@ -1,17 +0,0 @@
|
|||
arrow
|
||||
beanbag
|
||||
bs4
|
||||
defusedxml
|
||||
fasjson-client
|
||||
fedora-messaging
|
||||
fedora-messaging-git-hook-messages
|
||||
GitPython
|
||||
koji
|
||||
requests
|
||||
noggin-messages
|
||||
pagure-messages
|
||||
pyGObject
|
||||
python-fedora
|
||||
python-bugzilla>=3.2.0
|
||||
pdc-client
|
||||
zstandard
|
|
@ -1,6 +0,0 @@
|
|||
pytest
|
||||
pytest-cov
|
||||
|
||||
# Typing libraries
|
||||
types-requests
|
||||
types-toml
|
|
@ -7,8 +7,25 @@ import pytest
|
|||
from toddlers.base import ToddlerBase
|
||||
|
||||
|
||||
class DummyToddlerBase(ToddlerBase):
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return super().name
|
||||
|
||||
def accepts_topic(self, topic):
|
||||
return super().accepts_topic(topic)
|
||||
|
||||
@property
|
||||
def amqp_topics(self):
|
||||
return super().amqp_topics
|
||||
|
||||
def process(self, *args, **kwargs):
|
||||
return super().process(*args, **kwargs)
|
||||
|
||||
|
||||
class TestToddlerBase:
|
||||
toddler_cls = ToddlerBase
|
||||
toddler_cls = DummyToddlerBase
|
||||
|
||||
def test_name(self, toddler):
|
||||
assert toddler.name == "base"
|
||||
|
|
|
@ -7,6 +7,9 @@ import fedora_messaging.exceptions
|
|||
from .utils.misc import merge_dicts
|
||||
|
||||
|
||||
_log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _get_toddler_config(toddler_name: str) -> dict:
|
||||
"""Merge default and private configuration for a toddler."""
|
||||
base_config = fedora_messaging.config.conf["consumer_config"]
|
||||
|
|
|
@ -68,7 +68,7 @@ def get_arguments(args):
|
|||
return parser.parse_args(args)
|
||||
|
||||
|
||||
def main(args=[]):
|
||||
def main(args=None):
|
||||
"""Main function of the playtime script"""
|
||||
args = get_arguments(args)
|
||||
setup_logging(log_level=args.log_level)
|
||||
|
@ -100,4 +100,4 @@ def main(args=[]):
|
|||
|
||||
|
||||
if __name__ == "__main__": # pragma: no cover
|
||||
sys.exit(main(sys.argv[1:]))
|
||||
sys.exit(main())
|
||||
|
|
37
tox.ini
37
tox.ini
|
@ -3,39 +3,26 @@ envlist = black,mypy,flake8,py3{9,10,11,12}
|
|||
# If the user is missing an interpreter, don't fail
|
||||
skip_missing_interpreters = True
|
||||
skipsdist = True
|
||||
isolated_build = true
|
||||
|
||||
[testenv]
|
||||
deps =
|
||||
-r requirements.txt
|
||||
-r test-requirements.txt
|
||||
sitepackages = True
|
||||
setenv =
|
||||
PYTHONPATH={toxinidir}
|
||||
passenv = HOME
|
||||
sitepackages = false
|
||||
skip_install = true
|
||||
allowlist_externals =
|
||||
poetry
|
||||
commands_pre =
|
||||
poetry install --all-extras
|
||||
commands =
|
||||
pytest {posargs}
|
||||
poetry run pytest -vv {posargs}
|
||||
|
||||
[testenv:black]
|
||||
deps =
|
||||
black
|
||||
sitepackages = False
|
||||
commands =
|
||||
black --check --diff .
|
||||
poetry run black --check --diff .
|
||||
|
||||
[testenv:mypy]
|
||||
basepython = python3.12
|
||||
allowlist_externals =
|
||||
mypy
|
||||
deps =
|
||||
{[testenv]deps}
|
||||
mypy
|
||||
setenv =
|
||||
{[testenv]setenv}
|
||||
commands = mypy --config-file {toxinidir}/mypy.cfg toddlers tests
|
||||
commands = poetry run mypy --config-file {toxinidir}/mypy.cfg toddlers tests
|
||||
|
||||
[testenv:flake8]
|
||||
deps =
|
||||
flake8
|
||||
flake8-import-order
|
||||
sitepackages = False
|
||||
commands =
|
||||
flake8 --ignore=W503 toddlers/ tests/ {posargs}
|
||||
commands = poetry run flake8 --ignore=W503 toddlers/ tests/ {posargs}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue