diff --git a/.gitignore b/.gitignore index 014b793..88ba0f5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .venv/ __pycache__/ main.py +*.egg-info/ diff --git a/.woodpecker/.lint.yml b/.woodpecker/.lint.yml new file mode 100644 index 0000000..018bc18 --- /dev/null +++ b/.woodpecker/.lint.yml @@ -0,0 +1,10 @@ +branches: + exclude: [ main ] +platform: 'linux/amd64' + +pipeline: + lint: + image: 'python:alpine' + commands: + - pip install -e .[lint] + - flake8 aiovieter diff --git a/Makefile b/Makefile index 42683cd..8c267aa 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,22 @@ PYTHON ?= python3 VENV ?= .venv +SRC_DIR = aiovieter .PHONY: venv venv: $(VENV)/bin/activate -$(VENV)/bin/activate: requirements.txt +$(VENV)/bin/activate: setup.py setup.cfg rm -rf '$(VENV)' '$(PYTHON)' -m venv '$(VENV)' - '$(VENV)'/bin/pip install -r requirements.txt + '$(VENV)'/bin/pip install -e .[develop] .PHONY: shell shell: venv @ '$(VENV)'/bin/python + +.PHONY: lint +lint: venv + '$(VENV)/bin/flake8' '$(SRC_DIR)' + +.PHONY: format +format: venv + '$(VENV)/bin/black' '$(SRC_DIR)' diff --git a/vieter/__init__.py b/aiovieter/__init__.py similarity index 57% rename from vieter/__init__.py rename to aiovieter/__init__.py index 3d36d40..ae6d905 100644 --- a/vieter/__init__.py +++ b/aiovieter/__init__.py @@ -1,3 +1,3 @@ from .vieter import Vieter -__all__ = ('Vieter') +__all__ = "Vieter" diff --git a/aiovieter/logs.py b/aiovieter/logs.py new file mode 100644 index 0000000..1d57fc8 --- /dev/null +++ b/aiovieter/logs.py @@ -0,0 +1,8 @@ +class VieterBuildLogs: + def __init__(self, vieter): + self._vieter = vieter + + async def list(self, offset: int = 0, limit: int = 25): + params = {"offset": offset, "limit": limit} + + return await self._vieter._get("/api/logs", params=params) diff --git a/aiovieter/repos.py b/aiovieter/repos.py new file mode 100644 index 0000000..f1e813e --- /dev/null +++ b/aiovieter/repos.py @@ -0,0 +1,8 @@ +class VieterRepos: + def __init__(self, vieter): + self._vieter = vieter + + async def list(self, offset: int = 0, limit: int = 25): + params = {"offset": offset, "limit": limit} + + return await self._vieter._get("/api/repos", params=params) diff --git a/vieter/vieter.py b/aiovieter/vieter.py similarity index 74% rename from vieter/vieter.py rename to aiovieter/vieter.py index 40b8e7c..38f73f4 100644 --- a/vieter/vieter.py +++ b/aiovieter/vieter.py @@ -1,16 +1,19 @@ import aiohttp from .repos import VieterRepos +from .logs import VieterBuildLogs + class Vieter: def __init__(self, address: str, api_key: str) -> None: self._address = address self._api_key = api_key self._client = aiohttp.ClientSession( - base_url=address, headers={'X-Api-Key': api_key} + base_url=address, headers={"X-Api-Key": api_key} ) self.repos = VieterRepos(self) + self.logs = VieterBuildLogs(self) async def close(self): await self._client.close() @@ -18,6 +21,6 @@ class Vieter: async def _do_req(self, method: str, path: str, params: dict = None): async with self._client.request(method, path, params=params) as res: return await res.json() - + async def _get(self, *args, **kwargs): - return await self._do_req('GET', *args, **kwargs) + return await self._do_req("GET", *args, **kwargs) diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index aa983e7..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -aiohttp -aiodns diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..e73cad8 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,14 @@ +[options] +install_requires = + aiohttp + +[options.extras_require] +# Used inside tox for linting +lint = + black==22.3.0 + flake8==4.0.1 + flake8-black==0.3.3 +# Required for the developer +develop = + %(lint)s + jedi diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..91985c0 --- /dev/null +++ b/setup.py @@ -0,0 +1,8 @@ +from setuptools import setup +setup( + name="aiovieter", + version="0.1.0", + author="Jef Roosens", + description="Wrapper around the Vieter API.", + packages=["aiovieter"], +) diff --git a/vieter/repos.py b/vieter/repos.py deleted file mode 100644 index 3e253b8..0000000 --- a/vieter/repos.py +++ /dev/null @@ -1,11 +0,0 @@ -class VieterRepos: - def __init__(self, vieter): - self._vieter = vieter - - async def list(self, offset: int = 0, limit: int = 25): - params = { - 'offset': offset, - 'limit': limit - } - - return await self._vieter._get('/api/repos', params=params)