Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 19 additions & 15 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
FROM python:3.13.2-alpine3.21 AS base
WORKDIR /de-denker

FROM base AS requirements
RUN pip install poetry-plugin-export
COPY pyproject.toml poetry.lock ./
RUN poetry export --without-hashes --format=requirements.txt > requirements.txt

FROM base AS build

WORKDIR /dedenker

RUN apk add --no-cache build-base
ENV PYTHONDONTWRITEBYTECODE=1
COPY --from=requirements /de-denker/requirements.txt .
RUN pip install -r requirements.txt

FROM base AS artifact
RUN apk add --no-cache libgomp libstdc++
COPY --from=build /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
COPY --from=build /usr/local/bin /usr/local/bin
COPY config.py main.py models.py static_probabilities.py telraam_api.py ./
CMD ["python", "main.py"]
RUN pip install poetry==2.1
RUN poetry self add poetry-pyinstaller-plugin==1.4

COPY pyproject.toml poetry.lock .
RUN poetry install --no-root

COPY dedenker/ dedenker/
RUN PYTHONOPTIMIZE=2 poetry build --format=pyinstaller
RUN mv dist/pyinstaller/musllinux_1_2_x86_64/dedenker dist/


FROM scratch AS artifact
COPY --from=base /lib/ld-musl-x86_64.so.1 /usr/lib/libz.so.1 /lib/
COPY --from=base /tmp /tmp
COPY --from=build /dedenker/dist/dedenker /dedenker
CMD ["/dedenker"]
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ A possible `docker-compose.yml` can be the next one. Adapt where needed.

```yml
services:
de-denker:
dedenker:
image: ghcr.io/12urenloop/dedenker:main
restart: unless-stopped
environment:
Expand Down
Empty file added dedenker/__init__.py
Empty file.
File renamed without changes.
14 changes: 7 additions & 7 deletions main.py → dedenker/main.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
from time import time, sleep
from time import sleep, time

import colorlog
import numpy as np
import requests.exceptions
from hmmlearn.base import ConvergenceMonitor
from hmmlearn.hmm import CategoricalHMM
import numpy as np
import requests.exceptions

from config import RONNY_COUNT, SLEEP_DURATION
from models import Detection
from static_probabilities import START_PROBABILITIES_12UL, EMISSION_PROBABILITIES_12UL, TRANSITION_PROBABILITIES_12UL
from telraam_api import TelraamAPI
from dedenker.config import RONNY_COUNT, SLEEP_DURATION
from dedenker.models import Detection
from dedenker.static_probabilities import TRANSITION_PROBABILITIES_12UL, START_PROBABILITIES_12UL, EMISSION_PROBABILITIES_12UL
from dedenker.telraam_api import TelraamAPI

handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter('%(log_color)s%(levelname)s\t%(message)s'))
Expand Down
File renamed without changes.
File renamed without changes.
5 changes: 2 additions & 3 deletions telraam_api.py → dedenker/telraam_api.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from requests import get, post

from config import TELRAAM_URL
from models import Detection

from dedenker.config import TELRAAM_URL
from dedenker.models import Detection

class TelraamAPI:
"""
Expand Down
26 changes: 20 additions & 6 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 17 additions & 12 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
[tool.poetry]
package-mode = false
name = "De Denker"
[project]
name = "DeDenker"
version = "0.1.0"
description = "A HMM lapper for Telraam using the API"
license = "MIT"
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.11"
hmmlearn = "^0.3.0"
requests = "^2.31.0"
colorlog = "^6.7.0"

requires-python = ">=3.13"
dependencies = [
"hmmlearn (>=0.3.3,<1.0.0)",
"requests (>=2.32.2,<3.0.0)",
"colorlog (>=6.9.0,<7.0.0)",
]

[build-system]
requires = ["poetry-core"]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry-pyinstaller-plugin]
version = "6.12.0"

[tool.poetry-pyinstaller-plugin.scripts.dedenker]
source = "dedenker/main.py"
type = "onefile"