diff --git a/.woodpecker/containers.yaml b/.woodpecker/containers.yaml deleted file mode 100644 index 3a83407..0000000 --- a/.woodpecker/containers.yaml +++ /dev/null @@ -1,15 +0,0 @@ -when: - - event: push - branch: main - -steps: - - name: publish - image: woodpeckerci/plugin-docker-buildx - settings: - platforms: linux/amd64,linux/arm64/v8 - repo: git.comfy.city/emi/comfy-recipes - registry: git.comfy.city - tags: latest - username: ${CI_REPO_OWNER} - password: - from_secret: registry_token diff --git a/Dockerfile b/Dockerfile index e2b34a2..c9bddac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,4 +8,4 @@ FROM python:3.13-alpine COPY --from=build /build/dist/ /mnt RUN pip install /mnt/comfy_recipes-*-py3-none-any.whl && \ rm -r /mnt -ENTRYPOINT ["/usr/local/bin/recipes-cli"] +ENTRYPOINT ["/usr/bin/recipes-cli"] diff --git a/README.md b/README.md index 15c3e4b..3e886c8 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,7 @@ Comfy Recipes is a simple application that renders your recipes into HTML. Documentation is available at -## Running -```sh -docker run -v ./recipes:/recipes git.comfy.city/Emi/comfy-recipes:latest build /recipes -``` - -## Building -### Building the python package +## Building the python package Make sure you have hatchling and build modules installed. ```sh python3 -m build @@ -21,17 +15,17 @@ The package can now be installed with pip install dist/comfy-recipes-*-py3-none-any.whl ``` -### Building the docker container +## Building the docker container ```sh docker buildx build -t git.comfy.city/Emi/comfy-recipes:local . ``` The container can now be ran ```sh -docker run -v ./recipes:/recipes git.comfy.city/Emi/comfy-recipes:local build /recipes +docker run --rm git.comfy.city/Emi/comfy-recipes:local ``` -### Building the documentation +## Building the documentation ```sh cd docs mdbook build diff --git a/comfyrecipes/parsing.py b/comfyrecipes/parsing.py index fd61440..6778e05 100644 --- a/comfyrecipes/parsing.py +++ b/comfyrecipes/parsing.py @@ -197,24 +197,23 @@ class IngredientInstance(Element): def from_dict(cls, ctx: Context, dct: str | Dict[str, Any]) -> Self: if isinstance(dct, str): string = dct.strip() - p = re.compile(r"^(?:([0-9\.]+) ([a-zA-Z]+) )+([\w ]+)(?: \((.*)\))?$") + p = re.compile(r"^(?:([0-9\.]+) ([a-zA-Z]+) )?([\w ]+)(?: \((.*)\))?$") match = p.match(string) - - amount = float(1) + if match is None: + raise RuntimeError( + "ingredient {string} regex not matched, it should be in the format [amount(num) unit(string, one word)] name(string, any number of words) [(note(string))]" + ) + amount = float(match.group(1)) + unitstr = match.group(2) unit = ctx.default_unit - name = string - note = None - if match is not None: - amount = float(match.group(1)) - unitstr = match.group(2) - if unit is not None: - unitx = ctx.units.get(unitstr) - if unitx is None: - ctx.issues.error(issues.ISSUE_UNKNOWN_UNIT, f"unknown unit {unitstr}") - else: - unit = unitx - name = match.group(3) - note = match.group(4) + if unit is not None: + unitx = ctx.units.get(unitstr) + if unitx is None: + ctx.issues.error(issues.ISSUE_UNKNOWN_UNIT, "unknown unit {unitstr}") + else: + unit = unitx + name = match.group(3) + note = match.group(4) if note is None: note = "" return cls( diff --git a/pyproject.toml b/pyproject.toml index e6bf155..7cedace 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ description = "Smart recipe static site generator" authors = [{ name = "Emi Vasilek", email = "emi.vasilek@gmail.com" }] keywords = ["recipes", "recipe", "static site generator"] requires-python = ">= 3.8" -dependencies = ["jsonschema", "jinja2", "PyYAML", "mistune", "lxml", "lxml_html_clean"] +dependencies = ["jsonschema", "jinja2", "PyYAML", "mistune", "lxml"] classifiers = [ "Development Status :: 3 - Alpha", "Programming Language :: Python",