Merge branch 'mealie-next' into feat/nuxt3-migration

This commit is contained in:
Michael Genson 2025-06-17 13:11:24 -05:00 committed by GitHub
commit 347c788606
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 220 additions and 211 deletions

View file

@ -12,7 +12,7 @@ repos:
exclude: ^tests/data/ exclude: ^tests/data/
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version. # Ruff version.
rev: v0.11.12 rev: v0.11.13
hooks: hooks:
- id: ruff - id: ruff
- id: ruff-format - id: ruff-format

View file

@ -1049,7 +1049,7 @@
"merge-dialog-text": "La combinaison des aliments sélectionnés fusionnera laliment source et laliment cible en un seul aliment. Laliment source sera supprimé et toutes les références à laliment source seront mises à jour pour pointer vers laliment cible.", "merge-dialog-text": "La combinaison des aliments sélectionnés fusionnera laliment source et laliment cible en un seul aliment. Laliment source sera supprimé et toutes les références à laliment source seront mises à jour pour pointer vers laliment cible.",
"merge-food-example": "Fusion de {food1} dans {food2}", "merge-food-example": "Fusion de {food1} dans {food2}",
"seed-dialog-text": "Initialisez la base de données avec des aliments basés sur votre langue locale. Cela permettra de créer plus de 200 aliments communs qui pourront être utilisés pour organiser votre base de données. Les aliments sont traduits grâce à un effort communautaire.", "seed-dialog-text": "Initialisez la base de données avec des aliments basés sur votre langue locale. Cela permettra de créer plus de 200 aliments communs qui pourront être utilisés pour organiser votre base de données. Les aliments sont traduits grâce à un effort communautaire.",
"seed-dialog-warning": "Vous avez déjà des éléments dans votre base de données. Cette action ne fusionnera pas les doublons, vous devrez les gérer manuellement.", "seed-dialog-warning": "Vous avez déjà des éléments dans votre base de données. Cette action ne conciliera pas les doublons, vous devrez les gérer manuellement.",
"combine-food": "Combiner les aliments", "combine-food": "Combiner les aliments",
"source-food": "Aliment source", "source-food": "Aliment source",
"target-food": "Aliment cible", "target-food": "Aliment cible",

View file

@ -45,13 +45,13 @@
"category-filter": "Kategória szűrő", "category-filter": "Kategória szűrő",
"category-update-failed": "Kategória frissítése sikertelen", "category-update-failed": "Kategória frissítése sikertelen",
"category-updated": "Kategória frissítve", "category-updated": "Kategória frissítve",
"uncategorized-count": "Kategórizálatlan {count}", "uncategorized-count": "Kategorizálatlan {count}",
"create-a-category": "Kategória létrehozása", "create-a-category": "Kategória létrehozása",
"category-name": "Kategória név", "category-name": "Kategória név",
"category": "Kategória" "category": "Kategória"
}, },
"events": { "events": {
"apprise-url": "Apprise URL", "apprise-url": "Apprise cím (URL)",
"database": "Adatbázis", "database": "Adatbázis",
"delete-event": "Esemény törlése", "delete-event": "Esemény törlése",
"event-delete-confirmation": "Biztosan törölni szeretné ezt az eseményt?", "event-delete-confirmation": "Biztosan törölni szeretné ezt az eseményt?",
@ -638,7 +638,7 @@
"tree-view": "Fa nézet", "tree-view": "Fa nézet",
"recipe-servings": "Recept tálalások", "recipe-servings": "Recept tálalások",
"recipe-yield": "Adagonkénti információk", "recipe-yield": "Adagonkénti információk",
"recipe-yield-text": "Recipe Yield Text", "recipe-yield-text": "Recept Késleltetés szöveg",
"unit": "Mennyiségi egység", "unit": "Mennyiségi egység",
"upload-image": "Kép feltöltése", "upload-image": "Kép feltöltése",
"screen-awake": "Képernyő ébren tartása", "screen-awake": "Képernyő ébren tartása",
@ -720,7 +720,7 @@
"backup-restore": "Biztonsági Mentés/Visszaállítás", "backup-restore": "Biztonsági Mentés/Visszaállítás",
"back-restore-description": "A biztonsági mentés visszaállítása felülírja az adatbázisban és az adatkönyvtárban lévő összes aktuális adatot, és a biztonsági mentés tartalmával helyettesíti azokat. {cannot-be-undone} Ha a visszaállítás sikeres, akkor a rendszer kilépteti Önt.", "back-restore-description": "A biztonsági mentés visszaállítása felülírja az adatbázisban és az adatkönyvtárban lévő összes aktuális adatot, és a biztonsági mentés tartalmával helyettesíti azokat. {cannot-be-undone} Ha a visszaállítás sikeres, akkor a rendszer kilépteti Önt.",
"cannot-be-undone": "Ezt a műveletet visszavonható - óvatosan használja.", "cannot-be-undone": "Ezt a műveletet visszavonható - óvatosan használja.",
"postgresql-note": "If you are using PostgreSQL, please review the {backup-restore-process} prior to restoring.", "postgresql-note": "Ha PostgreSQL-t használ, kérjük, a visszaállítás előtt tekintse át a {backup-restore-process}-t.",
"backup-restore-process-in-the-documentation": "biztonsági mentés/visszaállítás folyamata a dokumentációban", "backup-restore-process-in-the-documentation": "biztonsági mentés/visszaállítás folyamata a dokumentációban",
"irreversible-acknowledgment": "Tudomásul veszem, hogy ez a művelet visszafordíthatatlan, helyrehozhatatlan, és adatvesztéssel járhat", "irreversible-acknowledgment": "Tudomásul veszem, hogy ez a művelet visszafordíthatatlan, helyrehozhatatlan, és adatvesztéssel járhat",
"restore-backup": "Biztonsági mentés visszaállítása" "restore-backup": "Biztonsági mentés visszaállítása"

View file

@ -26,7 +26,7 @@
"sponsor": "Sponsor" "sponsor": "Sponsor"
}, },
"asset": { "asset": {
"assets": "Bijlagen", "assets": "Onderdelen",
"code": "Code", "code": "Code",
"file": "Bestand", "file": "Bestand",
"image": "Afbeelding", "image": "Afbeelding",

View file

@ -15,7 +15,7 @@
"serving": "Adag", "serving": "Adag",
"servings": "Adag", "servings": "Adag",
"yield": "Adag", "yield": "Adag",
"yields": "Yields" "yields": "Késleltetve"
} }
}, },
"mealplan": { "mealplan": {

View file

@ -3,10 +3,10 @@
"name": "acorn squash" "name": "acorn squash"
}, },
"alfalfa-sprouts": { "alfalfa-sprouts": {
"name": "alfalfa sprouts" "name": "lucernacsíra"
}, },
"anchovies": { "anchovies": {
"name": "anchovies" "name": "szardella"
}, },
"apples": { "apples": {
"name": "alma", "name": "alma",
@ -16,7 +16,7 @@
"name": "articsóka" "name": "articsóka"
}, },
"arugula": { "arugula": {
"name": "arugula" "name": "borsmustár"
}, },
"asparagus": { "asparagus": {
"name": "spárga" "name": "spárga"
@ -63,16 +63,16 @@
"name": "kenyér" "name": "kenyér"
}, },
"breadfruit": { "breadfruit": {
"name": "breadfruit" "name": "kenyérfa"
}, },
"broccoflower": { "broccoflower": {
"name": "broccoflower" "name": "brokkoli"
}, },
"broccoli": { "broccoli": {
"name": "brokkoli" "name": "brokkoli"
}, },
"broccoli-rabe": { "broccoli-rabe": {
"name": "broccoli rabe" "name": "rapini"
}, },
"broccolini": { "broccolini": {
"name": "broccolini" "name": "broccolini"
@ -138,109 +138,109 @@
"name": "zeller" "name": "zeller"
}, },
"celery": { "celery": {
"name": "celery" "name": "zeller"
}, },
"cereal-grains": { "cereal-grains": {
"name": "cereal grains" "name": "darált zeller"
}, },
"chard": { "chard": {
"name": "chard" "name": "mángold"
}, },
"cheese": { "cheese": {
"name": "cheese" "name": "sajt"
}, },
"chicory": { "chicory": {
"name": "chicory" "name": "katáng"
}, },
"chilli-peppers": { "chilli-peppers": {
"name": "chilli pepper", "name": "chili paprika",
"plural_name": "chilli peppers" "plural_name": "chili paprikák"
}, },
"chinese-leaves": { "chinese-leaves": {
"name": "chinese leaves" "name": "kínai kel"
}, },
"chives": { "chives": {
"name": "chives" "name": "metélőhagyma"
}, },
"chocolate": { "chocolate": {
"name": "chocolate" "name": "csoki"
}, },
"cilantro": { "cilantro": {
"name": "cilantro" "name": "cilantro"
}, },
"cinnamon": { "cinnamon": {
"name": "cinnamon" "name": "fahéj"
}, },
"clarified-butter": { "clarified-butter": {
"name": "clarified butter" "name": "tisztított vaj"
}, },
"coconut": { "coconut": {
"name": "coconut", "name": "kókusz",
"plural_name": "coconuts" "plural_name": "kókuszok"
}, },
"coconut-milk": { "coconut-milk": {
"name": "coconut milk" "name": "kókusztej"
}, },
"cod": { "cod": {
"name": "cod" "name": "tőkehal"
}, },
"coffee": { "coffee": {
"name": "coffee" "name": "kávé"
}, },
"collard-greens": { "collard-greens": {
"name": "collard greens" "name": "kelkáposzta"
}, },
"confectioners-sugar": { "confectioners-sugar": {
"name": "confectioners' sugar" "name": "porcukor"
}, },
"coriander": { "coriander": {
"name": "coriander" "name": "koriander"
}, },
"corn": { "corn": {
"name": "corn", "name": "kukorica",
"plural_name": "corns" "plural_name": "kukoricák"
}, },
"corn-syrup": { "corn-syrup": {
"name": "corn syrup" "name": "kukorica szirup"
}, },
"cottonseed-oil": { "cottonseed-oil": {
"name": "cottonseed oil" "name": "gyapotmag-olaj"
}, },
"courgette": { "courgette": {
"name": "courgette" "name": "cukkini"
}, },
"cream-of-tartar": { "cream-of-tartar": {
"name": "cream of tartar" "name": "cream of tartar"
}, },
"cucumber": { "cucumber": {
"name": "cucumber", "name": "uborka",
"plural_name": "cucumbers" "plural_name": "uborkák"
}, },
"cumin": { "cumin": {
"name": "cumin" "name": "kömény"
}, },
"daikon": { "daikon": {
"name": "daikon", "name": "jégcsapretek",
"plural_name": "daikons" "plural_name": "jégcsapretkek"
}, },
"dairy-products-and-dairy-substitutes": { "dairy-products-and-dairy-substitutes": {
"name": "dairy products and dairy substitutes" "name": "tejtermékek és tej helyettesítők"
}, },
"dandelion": { "dandelion": {
"name": "dandelion" "name": "pitypang"
}, },
"demerara-sugar": { "demerara-sugar": {
"name": "demerara sugar" "name": "demerara cukor"
}, },
"dough": { "dough": {
"name": "dough" "name": "tészta"
}, },
"edible-cactus": { "edible-cactus": {
"name": "edible cactus" "name": "ehető kaktusz"
}, },
"eggplant": { "eggplant": {
"name": "eggplant", "name": "padlizsán",
"plural_name": "eggplants" "plural_name": "padlizsánok"
}, },
"eggs": { "eggs": {
"name": "tojás", "name": "tojás",
@ -421,42 +421,42 @@
"name": "nutritional yeast flakes" "name": "nutritional yeast flakes"
}, },
"nuts": { "nuts": {
"name": "nuts" "name": "diófélék"
}, },
"octopuses": { "octopuses": {
"name": "octopus", "name": "polip",
"plural_name": "octopuses" "plural_name": "polipok"
}, },
"oils": { "oils": {
"name": "oils" "name": "olajok"
}, },
"okra": { "okra": {
"name": "okra" "name": "okra"
}, },
"olive": { "olive": {
"name": "olive" "name": "olívabogyó"
}, },
"olive-oil": { "olive-oil": {
"name": "olive oil" "name": "olivaolaj"
}, },
"onion": { "onion": {
"name": "onion" "name": "hagyma"
}, },
"onion-family": { "onion-family": {
"name": "onion family" "name": "hagymafélék"
}, },
"orange-blossom-water": { "orange-blossom-water": {
"name": "orange blossom water" "name": "orange blossom water"
}, },
"oranges": { "oranges": {
"name": "orange", "name": "narancs",
"plural_name": "oranges" "plural_name": "narancsok"
}, },
"oregano": { "oregano": {
"name": "oregano" "name": "oregánó"
}, },
"oysters": { "oysters": {
"name": "oysters" "name": "osztriga"
}, },
"panch-puran": { "panch-puran": {
"name": "panch puran" "name": "panch puran"
@ -465,66 +465,66 @@
"name": "paprika" "name": "paprika"
}, },
"parsley": { "parsley": {
"name": "parsley" "name": "petrezselyem"
}, },
"parsnip": { "parsnip": {
"name": "parsnip", "name": "paszternák",
"plural_name": "parsnips" "plural_name": "paszternákok"
}, },
"pear": { "pear": {
"name": "pear", "name": "körte",
"plural_name": "pears" "plural_name": "körték"
}, },
"peas": { "peas": {
"name": "peas" "name": "borsó"
}, },
"pepper": { "pepper": {
"name": "pepper", "name": "bors",
"plural_name": "peppers" "plural_name": "bors"
}, },
"pineapple": { "pineapple": {
"name": "pineapple", "name": "ananász",
"plural_name": "pineapples" "plural_name": "ananász"
}, },
"plantain": { "plantain": {
"name": "plantain", "name": "plantain",
"plural_name": "plantains" "plural_name": "plantains"
}, },
"poppy-seeds": { "poppy-seeds": {
"name": "poppy seeds" "name": "mák"
}, },
"potato": { "potato": {
"name": "potato", "name": "burgonya",
"plural_name": "potatoes" "plural_name": "burgonyák"
}, },
"poultry": { "poultry": {
"name": "poultry" "name": "baromfi"
}, },
"powdered-sugar": { "powdered-sugar": {
"name": "powdered sugar" "name": "porcukor"
}, },
"pumpkin": { "pumpkin": {
"name": "pumpkin", "name": "tök",
"plural_name": "pumpkins" "plural_name": "tökök"
}, },
"pumpkin-seeds": { "pumpkin-seeds": {
"name": "pumpkin seeds" "name": "tökmag"
}, },
"radish": { "radish": {
"name": "radish", "name": "retek",
"plural_name": "radishes" "plural_name": "retkek"
}, },
"raw-sugar": { "raw-sugar": {
"name": "raw sugar" "name": "barna cukor"
}, },
"refined-sugar": { "refined-sugar": {
"name": "refined sugar" "name": "finomitott cukor"
}, },
"rice": { "rice": {
"name": "rice" "name": "rizs"
}, },
"rice-flour": { "rice-flour": {
"name": "rice flour" "name": "rízsliszt"
}, },
"rock-sugar": { "rock-sugar": {
"name": "rock sugar" "name": "rock sugar"
@ -533,13 +533,13 @@
"name": "rum" "name": "rum"
}, },
"salmon": { "salmon": {
"name": "salmon" "name": "lazac"
}, },
"salt": { "salt": {
"name": "salt" "name": "só"
}, },
"salt-cod": { "salt-cod": {
"name": "salt cod" "name": "sózott tőkehal"
}, },
"scallion": { "scallion": {
"name": "scallion", "name": "scallion",
@ -649,44 +649,44 @@
"name": "turbanado sugar" "name": "turbanado sugar"
}, },
"turnip": { "turnip": {
"name": "turnip", "name": "fehér répa",
"plural_name": "turnips" "plural_name": "fehérrépák"
}, },
"unrefined-sugar": { "unrefined-sugar": {
"name": "unrefined sugar" "name": "finomitatlan cukor"
}, },
"vanilla": { "vanilla": {
"name": "vanilla" "name": "vanília"
}, },
"vegetables": { "vegetables": {
"name": "vegetables" "name": "zöldségek"
}, },
"watercress": { "watercress": {
"name": "watercress" "name": "watercress"
}, },
"watermelon": { "watermelon": {
"name": "watermelon", "name": "görögdinnye",
"plural_name": "watermelons" "plural_name": "görögdinnyék"
}, },
"white-mushroom": { "white-mushroom": {
"name": "white mushroom", "name": "fehér gomba",
"plural_name": "white mushrooms" "plural_name": "fehér gombák"
}, },
"white-sugar": { "white-sugar": {
"name": "white sugar" "name": "fehér cukor"
}, },
"xanthan-gum": { "xanthan-gum": {
"name": "xanthan gum" "name": "xantángumi"
}, },
"yam": { "yam": {
"name": "yam", "name": "jamgyökér",
"plural_name": "yams" "plural_name": "jamgyökerek"
}, },
"yeast": { "yeast": {
"name": "yeast" "name": "élesztő"
}, },
"zucchini": { "zucchini": {
"name": "zucchini", "name": "cukkini",
"plural_name": "zucchinis" "plural_name": "cukkinik"
} }
} }

View file

@ -23,7 +23,7 @@
}, },
"avocado": { "avocado": {
"name": "avocado", "name": "avocado",
"plural_name": "avocado" "plural_name": "avocados"
}, },
"bacon": { "bacon": {
"name": "spek\nontbijtspek\nbacon" "name": "spek\nontbijtspek\nbacon"
@ -47,7 +47,7 @@
"name": "bonen" "name": "bonen"
}, },
"bell-peppers": { "bell-peppers": {
"name": "paprikas", "name": "paprika",
"plural_name": "paprikas" "plural_name": "paprikas"
}, },
"blackberries": { "blackberries": {
@ -132,10 +132,10 @@
"plural_name": "bloemkolen" "plural_name": "bloemkolen"
}, },
"cayenne-pepper": { "cayenne-pepper": {
"name": "cayenne peper" "name": "cayennepeper"
}, },
"celeriac": { "celeriac": {
"name": "knolselder" "name": "knolselderij"
}, },
"celery": { "celery": {
"name": "selderij" "name": "selderij"
@ -153,8 +153,8 @@
"name": "witlof" "name": "witlof"
}, },
"chilli-peppers": { "chilli-peppers": {
"name": "chili peper", "name": "chilipeper",
"plural_name": "chili pepers" "plural_name": "chilipepers"
}, },
"chinese-leaves": { "chinese-leaves": {
"name": "chinese kool" "name": "chinese kool"
@ -201,7 +201,7 @@
"plural_name": "maïs" "plural_name": "maïs"
}, },
"corn-syrup": { "corn-syrup": {
"name": "maisstroop" "name": "maïsstroop"
}, },
"cottonseed-oil": { "cottonseed-oil": {
"name": "katoenzaadolie" "name": "katoenzaadolie"
@ -282,7 +282,7 @@
"name": "fruit" "name": "fruit"
}, },
"fruit-sugar": { "fruit-sugar": {
"name": "fruit suiker" "name": "fruitsuiker"
}, },
"ful": { "ful": {
"name": "peul" "name": "peul"
@ -402,7 +402,7 @@
"name": "mortadella" "name": "mortadella"
}, },
"mushroom": { "mushroom": {
"name": "paddestoel", "name": "paddenstoel",
"plural_name": "paddenstoelen" "plural_name": "paddenstoelen"
}, },
"mussels": { "mussels": {
@ -443,7 +443,7 @@
"name": "ui" "name": "ui"
}, },
"onion-family": { "onion-family": {
"name": "uien familie" "name": "uienfamilie"
}, },
"orange-blossom-water": { "orange-blossom-water": {
"name": "oranjebloesemwater" "name": "oranjebloesemwater"
@ -491,7 +491,7 @@
"plural_name": "bakbananen" "plural_name": "bakbananen"
}, },
"poppy-seeds": { "poppy-seeds": {
"name": "papaver zaden" "name": "papaverzaden"
}, },
"potato": { "potato": {
"name": "aardappel", "name": "aardappel",
@ -518,7 +518,7 @@
"name": "ruwe suiker" "name": "ruwe suiker"
}, },
"refined-sugar": { "refined-sugar": {
"name": "gerafineerde suiker" "name": "geraffineerde suiker"
}, },
"rice": { "rice": {
"name": "rijst" "name": "rijst"
@ -539,7 +539,7 @@
"name": "zout" "name": "zout"
}, },
"salt-cod": { "salt-cod": {
"name": "gezoute kabeljauw" "name": "gezouten kabeljauw"
}, },
"scallion": { "scallion": {
"name": "lente-ui", "name": "lente-ui",
@ -555,7 +555,7 @@
"name": "sesamzaad" "name": "sesamzaad"
}, },
"shallot": { "shallot": {
"name": "sjalotte", "name": "sjalot",
"plural_name": "sjalotjes" "plural_name": "sjalotjes"
}, },
"skate": { "skate": {
@ -571,8 +571,8 @@
"name": "sojaboon" "name": "sojaboon"
}, },
"spaghetti-squash": { "spaghetti-squash": {
"name": "spaghetti pompoen", "name": "spaghettipompoen",
"plural_name": "spaghetti pompoenen" "plural_name": "spaghettipompoenen"
}, },
"speck": { "speck": {
"name": "spek" "name": "spek"
@ -585,14 +585,14 @@
}, },
"spring-onion": { "spring-onion": {
"name": "lente-ui", "name": "lente-ui",
"plural_name": "lente-uitjes" "plural_name": "lente-uien"
}, },
"squash": { "squash": {
"name": "pompoen", "name": "pompoen",
"plural_name": "pompoenen" "plural_name": "pompoenen"
}, },
"squash-family": { "squash-family": {
"name": "pompoen familie" "name": "pompoenfamilie"
}, },
"stockfish": { "stockfish": {
"name": "stokvis" "name": "stokvis"
@ -626,7 +626,7 @@
}, },
"taro": { "taro": {
"name": "taro", "name": "taro",
"plural_name": "taroes" "plural_name": "taros"
}, },
"teff": { "teff": {
"name": "abessijns liefdegras" "name": "abessijns liefdegras"
@ -639,7 +639,7 @@
"name": "forel" "name": "forel"
}, },
"tubers": { "tubers": {
"name": "knolgewassen", "name": "knolgewas",
"plural_name": "knolgewassen" "plural_name": "knolgewassen"
}, },
"tuna": { "tuna": {
@ -653,7 +653,7 @@
"plural_name": "knolrapen" "plural_name": "knolrapen"
}, },
"unrefined-sugar": { "unrefined-sugar": {
"name": "ongerafineerde suiker" "name": "ongeraffineerde suiker"
}, },
"vanilla": { "vanilla": {
"name": "vanille" "name": "vanille"

View file

@ -46,5 +46,5 @@ class RecipeSharedController(BaseUserController):
return self.mixins.get_one(item_id) return self.mixins.get_one(item_id)
@router.delete("/{item_id}") @router.delete("/{item_id}")
def delete_one(self, item_id: UUID4 | None = None) -> None: def delete_one(self, item_id: UUID4) -> None:
return self.mixins.delete_one(item_id) return self.mixins.delete_one(item_id)

View file

@ -2,6 +2,7 @@ import contextlib
import functools import functools
import html import html
import json import json
import numbers
import operator import operator
import re import re
import typing import typing
@ -392,7 +393,7 @@ def clean_yield(yields: str | list[str] | None) -> tuple[float, float, str]:
return servings_qty, yld_qty, yld_str return servings_qty, yld_qty, yld_str
def clean_time(time_entry: str | timedelta | None, translator: Translator) -> None | str: def clean_time(time_entry: str | timedelta | int | float | None, translator: Translator) -> None | str:
"""_summary_ """_summary_
Supported Structures: Supported Structures:
@ -401,6 +402,7 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
- `"PT1H30M"` - returns "1 hour 30 minutes" - `"PT1H30M"` - returns "1 hour 30 minutes"
- `timedelta(hours=1, minutes=30)` - returns "1 hour 30 minutes" - `timedelta(hours=1, minutes=30)` - returns "1 hour 30 minutes"
- `{"minValue": "PT1H30M"}` - returns "1 hour 30 minutes" - `{"minValue": "PT1H30M"}` - returns "1 hour 30 minutes"
- `30` - as a `int` or `float` assumed to be in minutes, returns "30 minutes"
Raises: Raises:
TypeError: if the type is not supported a TypeError is raised TypeError: if the type is not supported a TypeError is raised
@ -412,6 +414,10 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
return None return None
match time_entry: match time_entry:
case numbers.Number():
# type checked by case statement
time_delta = timedelta(minutes=time_entry) # type: ignore
return pretty_print_timedelta(time_delta, translator)
case str(time_entry): case str(time_entry):
if not time_entry.strip(): if not time_entry.strip():
return None return None
@ -431,7 +437,9 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
# TODO: Not sure what to do here # TODO: Not sure what to do here
return str(time_entry) return str(time_entry)
case _: case _:
logger.warning("[SCRAPER] Unexpected type or structure for variable time_entry") logger.warning(
"[SCRAPER] Unexpected type(%s) or structure for variable time_entry: %s", type(time_entry), time_entry
)
return None return None

163
poetry.lock generated
View file

@ -684,14 +684,14 @@ cli = ["requests"]
[[package]] [[package]]
name = "fastapi" name = "fastapi"
version = "0.115.12" version = "0.115.13"
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, {file = "fastapi-0.115.13-py3-none-any.whl", hash = "sha256:0a0cab59afa7bab22f5eb347f8c9864b681558c278395e94035a741fc10cd865"},
{file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, {file = "fastapi-0.115.13.tar.gz", hash = "sha256:55d1d25c2e1e0a0a50aceb1c8705cd932def273c102bff0b1c1da88b3c6eb307"},
] ]
[package.dependencies] [package.dependencies]
@ -1666,44 +1666,44 @@ files = [
[[package]] [[package]]
name = "mypy" name = "mypy"
version = "1.16.0" version = "1.16.1"
description = "Optional static typing for Python" description = "Optional static typing for Python"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "mypy-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7909541fef256527e5ee9c0a7e2aeed78b6cda72ba44298d1334fe7881b05c5c"}, {file = "mypy-1.16.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b4f0fed1022a63c6fec38f28b7fc77fca47fd490445c69d0a66266c59dd0b88a"},
{file = "mypy-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e71d6f0090c2256c713ed3d52711d01859c82608b5d68d4fa01a3fe30df95571"}, {file = "mypy-1.16.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86042bbf9f5a05ea000d3203cf87aa9d0ccf9a01f73f71c58979eb9249f46d72"},
{file = "mypy-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:936ccfdd749af4766be824268bfe22d1db9eb2f34a3ea1d00ffbe5b5265f5491"}, {file = "mypy-1.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea7469ee5902c95542bea7ee545f7006508c65c8c54b06dc2c92676ce526f3ea"},
{file = "mypy-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4086883a73166631307fdd330c4a9080ce24913d4f4c5ec596c601b3a4bdd777"}, {file = "mypy-1.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:352025753ef6a83cb9e7f2427319bb7875d1fdda8439d1e23de12ab164179574"},
{file = "mypy-1.16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:feec38097f71797da0231997e0de3a58108c51845399669ebc532c815f93866b"}, {file = "mypy-1.16.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ff9fa5b16e4c1364eb89a4d16bcda9987f05d39604e1e6c35378a2987c1aac2d"},
{file = "mypy-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:09a8da6a0ee9a9770b8ff61b39c0bb07971cda90e7297f4213741b48a0cc8d93"}, {file = "mypy-1.16.1-cp310-cp310-win_amd64.whl", hash = "sha256:1256688e284632382f8f3b9e2123df7d279f603c561f099758e66dd6ed4e8bd6"},
{file = "mypy-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9f826aaa7ff8443bac6a494cf743f591488ea940dd360e7dd330e30dd772a5ab"}, {file = "mypy-1.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:472e4e4c100062488ec643f6162dd0d5208e33e2f34544e1fc931372e806c0cc"},
{file = "mypy-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82d056e6faa508501af333a6af192c700b33e15865bda49611e3d7d8358ebea2"}, {file = "mypy-1.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea16e2a7d2714277e349e24d19a782a663a34ed60864006e8585db08f8ad1782"},
{file = "mypy-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:089bedc02307c2548eb51f426e085546db1fa7dd87fbb7c9fa561575cf6eb1ff"}, {file = "mypy-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08e850ea22adc4d8a4014651575567b0318ede51e8e9fe7a68f25391af699507"},
{file = "mypy-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6a2322896003ba66bbd1318c10d3afdfe24e78ef12ea10e2acd985e9d684a666"}, {file = "mypy-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22d76a63a42619bfb90122889b903519149879ddbf2ba4251834727944c8baca"},
{file = "mypy-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:021a68568082c5b36e977d54e8f1de978baf401a33884ffcea09bd8e88a98f4c"}, {file = "mypy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c7ce0662b6b9dc8f4ed86eb7a5d505ee3298c04b40ec13b30e572c0e5ae17c4"},
{file = "mypy-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:54066fed302d83bf5128632d05b4ec68412e1f03ef2c300434057d66866cea4b"}, {file = "mypy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:211287e98e05352a2e1d4e8759c5490925a7c784ddc84207f4714822f8cf99b6"},
{file = "mypy-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5436d11e89a3ad16ce8afe752f0f373ae9620841c50883dc96f8b8805620b13"}, {file = "mypy-1.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:af4792433f09575d9eeca5c63d7d90ca4aeceda9d8355e136f80f8967639183d"},
{file = "mypy-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f2622af30bf01d8fc36466231bdd203d120d7a599a6d88fb22bdcb9dbff84090"}, {file = "mypy-1.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66df38405fd8466ce3517eda1f6640611a0b8e70895e2a9462d1d4323c5eb4b9"},
{file = "mypy-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d045d33c284e10a038f5e29faca055b90eee87da3fc63b8889085744ebabb5a1"}, {file = "mypy-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44e7acddb3c48bd2713994d098729494117803616e116032af192871aed80b79"},
{file = "mypy-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b4968f14f44c62e2ec4a038c8797a87315be8df7740dc3ee8d3bfe1c6bf5dba8"}, {file = "mypy-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ab5eca37b50188163fa7c1b73c685ac66c4e9bdee4a85c9adac0e91d8895e15"},
{file = "mypy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb14a4a871bb8efb1e4a50360d4e3c8d6c601e7a31028a2c79f9bb659b63d730"}, {file = "mypy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb6229b2c9086247e21a83c309754b9058b438704ad2f6807f0d8227f6ebdd"},
{file = "mypy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd4e1ebe126152a7bbaa4daedd781c90c8f9643c79b9748caa270ad542f12bec"}, {file = "mypy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:1f0435cf920e287ff68af3d10a118a73f212deb2ce087619eb4e648116d1fe9b"},
{file = "mypy-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e056237c89f1587a3be1a3a70a06a698d25e2479b9a2f57325ddaaffc3567b"}, {file = "mypy-1.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ddc91eb318c8751c69ddb200a5937f1232ee8efb4e64e9f4bc475a33719de438"},
{file = "mypy-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b07e107affb9ee6ce1f342c07f51552d126c32cd62955f59a7db94a51ad12c0"}, {file = "mypy-1.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:87ff2c13d58bdc4bbe7dc0dedfe622c0f04e2cb2a492269f3b418df2de05c536"},
{file = "mypy-1.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fb60cbd85dc65d4d63d37cb5c86f4e3a301ec605f606ae3a9173e5cf34997b"}, {file = "mypy-1.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a7cfb0fe29fe5a9841b7c8ee6dffb52382c45acdf68f032145b75620acfbd6f"},
{file = "mypy-1.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7e32297a437cc915599e0578fa6bc68ae6a8dc059c9e009c628e1c47f91495d"}, {file = "mypy-1.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:051e1677689c9d9578b9c7f4d206d763f9bbd95723cd1416fad50db49d52f359"},
{file = "mypy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:afe420c9380ccec31e744e8baff0d406c846683681025db3531b32db56962d52"}, {file = "mypy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d5d2309511cc56c021b4b4e462907c2b12f669b2dbeb68300110ec27723971be"},
{file = "mypy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:55f9076c6ce55dd3f8cd0c6fff26a008ca8e5131b89d5ba6d86bd3f47e736eeb"}, {file = "mypy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:4f58ac32771341e38a853c5d0ec0dfe27e18e27da9cdb8bbc882d2249c71a3ee"},
{file = "mypy-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f56236114c425620875c7cf71700e3d60004858da856c6fc78998ffe767b73d3"}, {file = "mypy-1.16.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7fc688329af6a287567f45cc1cefb9db662defeb14625213a5b7da6e692e2069"},
{file = "mypy-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:15486beea80be24ff067d7d0ede673b001d0d684d0095803b3e6e17a886a2a92"}, {file = "mypy-1.16.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e198ab3f55924c03ead626ff424cad1732d0d391478dfbf7bb97b34602395da"},
{file = "mypy-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f2ed0e0847a80655afa2c121835b848ed101cc7b8d8d6ecc5205aedc732b1436"}, {file = "mypy-1.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09aa4f91ada245f0a45dbc47e548fd94e0dd5a8433e0114917dc3b526912a30c"},
{file = "mypy-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb5fbc8063cb4fde7787e4c0406aa63094a34a2daf4673f359a1fb64050e9cb2"}, {file = "mypy-1.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13c7cd5b1cb2909aa318a90fd1b7e31f17c50b242953e7dd58345b2a814f6383"},
{file = "mypy-1.16.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a5fcfdb7318c6a8dd127b14b1052743b83e97a970f0edb6c913211507a255e20"}, {file = "mypy-1.16.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:58e07fb958bc5d752a280da0e890c538f1515b79a65757bbdc54252ba82e0b40"},
{file = "mypy-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:2e7e0ad35275e02797323a5aa1be0b14a4d03ffdb2e5f2b0489fa07b89c67b21"}, {file = "mypy-1.16.1-cp39-cp39-win_amd64.whl", hash = "sha256:f895078594d918f93337a505f8add9bd654d1a24962b4c6ed9390e12531eb31b"},
{file = "mypy-1.16.0-py3-none-any.whl", hash = "sha256:29e1499864a3888bca5c1542f2d7232c6e586295183320caa95758fc84034031"}, {file = "mypy-1.16.1-py3-none-any.whl", hash = "sha256:5fc2ac4027d0ef28d6ba69a0343737a23c4d1b83672bf38d1fe237bdc0643b37"},
{file = "mypy-1.16.0.tar.gz", hash = "sha256:84b94283f817e2aa6350a14b4a8fb2a35a53c286f97c9d30f53b63620e7af8ab"}, {file = "mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab"},
] ]
[package.dependencies] [package.dependencies]
@ -1855,14 +1855,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
[[package]] [[package]]
name = "openai" name = "openai"
version = "1.82.1" version = "1.86.0"
description = "The official Python library for the openai API" description = "The official Python library for the openai API"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "openai-1.82.1-py3-none-any.whl", hash = "sha256:334eb5006edf59aa464c9e932b9d137468d810b2659e5daea9b3a8c39d052395"}, {file = "openai-1.86.0-py3-none-any.whl", hash = "sha256:c8889c39410621fe955c230cc4c21bfe36ec887f4e60a957de05f507d7e1f349"},
{file = "openai-1.82.1.tar.gz", hash = "sha256:ffc529680018e0417acac85f926f92aa0bbcbc26e82e2621087303c66bc7f95d"}, {file = "openai-1.86.0.tar.gz", hash = "sha256:c64d5b788359a8fdf69bd605ae804ce41c1ce2e78b8dd93e2542e0ee267f1e4b"},
] ]
[package.dependencies] [package.dependencies]
@ -2377,14 +2377,14 @@ files = [
[[package]] [[package]]
name = "pydantic" name = "pydantic"
version = "2.11.5" version = "2.11.7"
description = "Data validation using Python type hints" description = "Data validation using Python type hints"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["main", "dev"] groups = ["main", "dev"]
files = [ files = [
{file = "pydantic-2.11.5-py3-none-any.whl", hash = "sha256:f9c26ba06f9747749ca1e5c94d6a85cb84254577553c8785576fd38fa64dc0f7"}, {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"},
{file = "pydantic-2.11.5.tar.gz", hash = "sha256:7f853db3d0ce78ce8bbb148c401c2cdd6431b3473c0cdff2755c7690952a7b7a"}, {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"},
] ]
[package.dependencies] [package.dependencies]
@ -2675,24 +2675,25 @@ requests = ">=2.32.3"
[[package]] [[package]]
name = "pytest" name = "pytest"
version = "8.3.5" version = "8.4.0"
description = "pytest: simple powerful testing with Python" description = "pytest: simple powerful testing with Python"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.9"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, {file = "pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e"},
{file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, {file = "pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6"},
] ]
[package.dependencies] [package.dependencies]
colorama = {version = "*", markers = "sys_platform == \"win32\""} colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""}
iniconfig = "*" iniconfig = ">=1"
packaging = "*" packaging = ">=20"
pluggy = ">=1.5,<2" pluggy = ">=1.5,<2"
pygments = ">=2.7.2"
[package.extras] [package.extras]
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"]
[[package]] [[package]]
name = "pytest-asyncio" name = "pytest-asyncio"
@ -3065,14 +3066,14 @@ orjson = ["orjson (>=3.9.14,<4)"]
[[package]] [[package]]
name = "recipe-scrapers" name = "recipe-scrapers"
version = "15.7.1" version = "15.8.0"
description = "Python package, scraping recipes from all over the internet" description = "Python package, scraping recipes from all over the internet"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "recipe_scrapers-15.7.1-py3-none-any.whl", hash = "sha256:f5131c3c9ce7c7a261ffe25514334c2b86b911fc3e53935c91cf7dd420b80855"}, {file = "recipe_scrapers-15.8.0-py3-none-any.whl", hash = "sha256:65015802f3d6e60493b9a9de4737c0aa42eb67c6d2ced43a1f32ffaf4fb9c48e"},
{file = "recipe_scrapers-15.7.1.tar.gz", hash = "sha256:7657a743994712fdb1f7ff463891e593a55c6f9597be4e64425dcadd3b9aa75f"}, {file = "recipe_scrapers-15.8.0.tar.gz", hash = "sha256:938d0510b88809fa181e49d95498bbc40db40d8d973637b3f7b77da837bcda12"},
] ]
[package.dependencies] [package.dependencies]
@ -3188,19 +3189,19 @@ files = [
[[package]] [[package]]
name = "requests" name = "requests"
version = "2.32.3" version = "2.32.4"
description = "Python HTTP for Humans." description = "Python HTTP for Humans."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
groups = ["main", "dev"] groups = ["main", "dev"]
files = [ files = [
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"},
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"},
] ]
[package.dependencies] [package.dependencies]
certifi = ">=2017.4.17" certifi = ">=2017.4.17"
charset-normalizer = ">=2,<4" charset_normalizer = ">=2,<4"
idna = ">=2.5,<4" idna = ">=2.5,<4"
urllib3 = ">=1.21.1,<3" urllib3 = ">=1.21.1,<3"
@ -3248,30 +3249,30 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.11.12" version = "0.11.13"
description = "An extremely fast Python linter and code formatter, written in Rust." description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "ruff-0.11.12-py3-none-linux_armv6l.whl", hash = "sha256:c7680aa2f0d4c4f43353d1e72123955c7a2159b8646cd43402de6d4a3a25d7cc"}, {file = "ruff-0.11.13-py3-none-linux_armv6l.whl", hash = "sha256:4bdfbf1240533f40042ec00c9e09a3aade6f8c10b6414cf11b519488d2635d46"},
{file = "ruff-0.11.12-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2cad64843da9f134565c20bcc430642de897b8ea02e2e79e6e02a76b8dcad7c3"}, {file = "ruff-0.11.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aef9c9ed1b5ca28bb15c7eac83b8670cf3b20b478195bd49c8d756ba0a36cf48"},
{file = "ruff-0.11.12-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9b6886b524a1c659cee1758140138455d3c029783d1b9e643f3624a5ee0cb0aa"}, {file = "ruff-0.11.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:53b15a9dfdce029c842e9a5aebc3855e9ab7771395979ff85b7c1dedb53ddc2b"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc3a3690aad6e86c1958d3ec3c38c4594b6ecec75c1f531e84160bd827b2012"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab153241400789138d13f362c43f7edecc0edfffce2afa6a68434000ecd8f69a"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f97fdbc2549f456c65b3b0048560d44ddd540db1f27c778a938371424b49fe4a"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c51f93029d54a910d3d24f7dd0bb909e31b6cd989a5e4ac513f4eb41629f0dc"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74adf84960236961090e2d1348c1a67d940fd12e811a33fb3d107df61eef8fc7"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1808b3ed53e1a777c2ef733aca9051dc9bf7c99b26ece15cb59a0320fbdbd629"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:b56697e5b8bcf1d61293ccfe63873aba08fdbcbbba839fc046ec5926bdb25a3a"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:d28ce58b5ecf0f43c1b71edffabe6ed7f245d5336b17805803312ec9bc665933"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d47afa45e7b0eaf5e5969c6b39cbd108be83910b5c74626247e366fd7a36a13"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55e4bc3a77842da33c16d55b32c6cac1ec5fb0fbec9c8c513bdce76c4f922165"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bf9603fe1bf949de8b09a2da896f05c01ed7a187f4a386cdba6760e7f61be"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:633bf2c6f35678c56ec73189ba6fa19ff1c5e4807a78bf60ef487b9dd272cc71"},
{file = "ruff-0.11.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08033320e979df3b20dba567c62f69c45e01df708b0f9c83912d7abd3e0801cd"}, {file = "ruff-0.11.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ffbc82d70424b275b089166310448051afdc6e914fdab90e08df66c43bb5ca9"},
{file = "ruff-0.11.12-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:929b7706584f5bfd61d67d5070f399057d07c70585fa8c4491d78ada452d3bef"}, {file = "ruff-0.11.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a9ddd3ec62a9a89578c85842b836e4ac832d4a2e0bfaad3b02243f930ceafcc"},
{file = "ruff-0.11.12-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7de4a73205dc5756b8e09ee3ed67c38312dce1aa28972b93150f5751199981b5"}, {file = "ruff-0.11.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d237a496e0778d719efb05058c64d28b757c77824e04ffe8796c7436e26712b7"},
{file = "ruff-0.11.12-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2635c2a90ac1b8ca9e93b70af59dfd1dd2026a40e2d6eebaa3efb0465dd9cf02"}, {file = "ruff-0.11.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26816a218ca6ef02142343fd24c70f7cd8c5aa6c203bca284407adf675984432"},
{file = "ruff-0.11.12-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d05d6a78a89166f03f03a198ecc9d18779076ad0eec476819467acb401028c0c"}, {file = "ruff-0.11.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:51c3f95abd9331dc5b87c47ac7f376db5616041173826dfd556cfe3d4977f492"},
{file = "ruff-0.11.12-py3-none-win32.whl", hash = "sha256:f5a07f49767c4be4772d161bfc049c1f242db0cfe1bd976e0f0886732a4765d6"}, {file = "ruff-0.11.13-py3-none-win32.whl", hash = "sha256:96c27935418e4e8e77a26bb05962817f28b8ef3843a6c6cc49d8783b5507f250"},
{file = "ruff-0.11.12-py3-none-win_amd64.whl", hash = "sha256:5a4d9f8030d8c3a45df201d7fb3ed38d0219bccd7955268e863ee4a115fa0832"}, {file = "ruff-0.11.13-py3-none-win_amd64.whl", hash = "sha256:29c3189895a8a6a657b7af4e97d330c8a3afd2c9c8f46c81e2fc5a31866517e3"},
{file = "ruff-0.11.12-py3-none-win_arm64.whl", hash = "sha256:65194e37853158d368e333ba282217941029a28ea90913c67e558c611d04daa5"}, {file = "ruff-0.11.13-py3-none-win_arm64.whl", hash = "sha256:b4385285e9179d608ff1d2fb9922062663c658605819a6876d8beef0c30b7f3b"},
{file = "ruff-0.11.12.tar.gz", hash = "sha256:43cf7f69c7d7c7d7513b9d59c5d8cafd704e05944f978614aa9faff6ac202603"}, {file = "ruff-0.11.13.tar.gz", hash = "sha256:26fa247dc68d1d4e72c179e08889a25ac0c7ba4d78aecfc835d49cbfd60bf514"},
] ]
[[package]] [[package]]
@ -3555,14 +3556,14 @@ files = [
[[package]] [[package]]
name = "typing-extensions" name = "typing-extensions"
version = "4.13.2" version = "4.14.0"
description = "Backported and Experimental Type Hints for Python 3.8+" description = "Backported and Experimental Type Hints for Python 3.9+"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.9"
groups = ["main", "dev"] groups = ["main", "dev"]
files = [ files = [
{file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"},
{file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"},
] ]
[[package]] [[package]]