mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 06:23:34 -07:00
Merge branch 'mealie-next' into patch-1
This commit is contained in:
commit
8183ed7077
29 changed files with 498 additions and 459 deletions
|
@ -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.9.3
|
rev: v0.9.4
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
|
|
|
@ -85,12 +85,13 @@ nav:
|
||||||
- OpenID Connect: "documentation/getting-started/authentication/oidc-v2.md"
|
- OpenID Connect: "documentation/getting-started/authentication/oidc-v2.md"
|
||||||
|
|
||||||
- Community Guides:
|
- Community Guides:
|
||||||
|
- Bring API without internet exposure: "documentation/community-guide/bring-api.md"
|
||||||
|
- Automate Backups with n8n: "documentation/community-guide/n8n-backup-automation.md"
|
||||||
|
- Bulk Url Import: "documentation/community-guide/bulk-url-import.md"
|
||||||
|
- Home Assistant: "documentation/community-guide/home-assistant.md"
|
||||||
|
- Import Bookmarklet: "documentation/community-guide/import-recipe-bookmarklet.md"
|
||||||
- iOS Shortcuts: "documentation/community-guide/ios.md"
|
- iOS Shortcuts: "documentation/community-guide/ios.md"
|
||||||
- Reverse Proxy (SWAG): "documentation/community-guide/swag.md"
|
- Reverse Proxy (SWAG): "documentation/community-guide/swag.md"
|
||||||
- Home Assistant: "documentation/community-guide/home-assistant.md"
|
|
||||||
- Bulk Url Import: "documentation/community-guide/bulk-url-import.md"
|
|
||||||
- Import Bookmarklet: "documentation/community-guide/import-recipe-bookmarklet.md"
|
|
||||||
- Automate Backups with n8n: "documentation/community-guide/n8n-backup-automation.md"
|
|
||||||
|
|
||||||
- API Reference: "api/redoc.md"
|
- API Reference: "api/redoc.md"
|
||||||
|
|
||||||
|
|
|
@ -236,14 +236,17 @@ export default defineComponent({
|
||||||
});
|
});
|
||||||
|
|
||||||
async function fetchRecipes(pageCount = 1) {
|
async function fetchRecipes(pageCount = 1) {
|
||||||
|
const orderDir = props.query?.orderDirection || preferences.value.orderDirection;
|
||||||
|
const orderByNullPosition = props.query?.orderByNullPosition || orderDir === "asc" ? "first" : "last";
|
||||||
return await fetchMore(
|
return await fetchMore(
|
||||||
page.value,
|
page.value,
|
||||||
perPage * pageCount,
|
perPage * pageCount,
|
||||||
props.query?.orderBy || preferences.value.orderBy,
|
props.query?.orderBy || preferences.value.orderBy,
|
||||||
props.query?.orderDirection || preferences.value.orderDirection,
|
orderDir,
|
||||||
|
orderByNullPosition,
|
||||||
props.query,
|
props.query,
|
||||||
// we use a computed queryFilter to filter out recipes that have a null value for the property we're sorting by
|
// we use a computed queryFilter to filter out recipes that have a null value for the property we're sorting by
|
||||||
queryFilter.value
|
queryFilter.value,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { useAsync, useRouter, ref } from "@nuxtjs/composition-api";
|
||||||
import { useAsyncKey } from "../use-utils";
|
import { useAsyncKey } from "../use-utils";
|
||||||
import { usePublicExploreApi } from "~/composables/api/api-client";
|
import { usePublicExploreApi } from "~/composables/api/api-client";
|
||||||
import { useUserApi } from "~/composables/api";
|
import { useUserApi } from "~/composables/api";
|
||||||
import { Recipe } from "~/lib/api/types/recipe";
|
import { OrderByNullPosition, Recipe } from "~/lib/api/types/recipe";
|
||||||
import { RecipeSearchQuery } from "~/lib/api/user/recipes/recipe";
|
import { RecipeSearchQuery } from "~/lib/api/user/recipes/recipe";
|
||||||
|
|
||||||
export const allRecipes = ref<Recipe[]>([]);
|
export const allRecipes = ref<Recipe[]>([]);
|
||||||
|
@ -11,12 +11,14 @@ export const recentRecipes = ref<Recipe[]>([]);
|
||||||
function getParams(
|
function getParams(
|
||||||
orderBy: string | null = null,
|
orderBy: string | null = null,
|
||||||
orderDirection = "desc",
|
orderDirection = "desc",
|
||||||
|
orderByNullPosition: OrderByNullPosition | null = null,
|
||||||
query: RecipeSearchQuery | null = null,
|
query: RecipeSearchQuery | null = null,
|
||||||
queryFilter: string | null = null
|
queryFilter: string | null = null
|
||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
orderBy,
|
orderBy,
|
||||||
orderDirection,
|
orderDirection,
|
||||||
|
orderByNullPosition,
|
||||||
paginationSeed: query?._searchSeed, // propagate searchSeed to stabilize random order pagination
|
paginationSeed: query?._searchSeed, // propagate searchSeed to stabilize random order pagination
|
||||||
searchSeed: query?._searchSeed, // unused, but pass it along for completeness of data
|
searchSeed: query?._searchSeed, // unused, but pass it along for completeness of data
|
||||||
search: query?.search,
|
search: query?.search,
|
||||||
|
@ -47,6 +49,7 @@ export const useLazyRecipes = function (publicGroupSlug: string | null = null) {
|
||||||
perPage: number,
|
perPage: number,
|
||||||
orderBy: string | null = null,
|
orderBy: string | null = null,
|
||||||
orderDirection = "desc",
|
orderDirection = "desc",
|
||||||
|
orderByNullPosition: OrderByNullPosition | null = null,
|
||||||
query: RecipeSearchQuery | null = null,
|
query: RecipeSearchQuery | null = null,
|
||||||
queryFilter: string | null = null,
|
queryFilter: string | null = null,
|
||||||
) {
|
) {
|
||||||
|
@ -54,7 +57,7 @@ export const useLazyRecipes = function (publicGroupSlug: string | null = null) {
|
||||||
const { data, error } = await api.recipes.getAll(
|
const { data, error } = await api.recipes.getAll(
|
||||||
page,
|
page,
|
||||||
perPage,
|
perPage,
|
||||||
getParams(orderBy, orderDirection, query, queryFilter),
|
getParams(orderBy, orderDirection, orderByNullPosition, query, queryFilter),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (error?.response?.status === 404) {
|
if (error?.response?.status === 404) {
|
||||||
|
@ -88,7 +91,7 @@ export const useLazyRecipes = function (publicGroupSlug: string | null = null) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getRandom(query: RecipeSearchQuery | null = null, queryFilter: string | null = null) {
|
async function getRandom(query: RecipeSearchQuery | null = null, queryFilter: string | null = null) {
|
||||||
const { data } = await api.recipes.getAll(1, 1, getParams("random", "desc", query, queryFilter));
|
const { data } = await api.recipes.getAll(1, 1, getParams("random", "desc", null, query, queryFilter));
|
||||||
if (data?.items.length) {
|
if (data?.items.length) {
|
||||||
return data.items[0];
|
return data.items[0];
|
||||||
}
|
}
|
||||||
|
|
|
@ -469,7 +469,7 @@
|
||||||
"categories": "Categorías",
|
"categories": "Categorías",
|
||||||
"cholesterol-content": "Colesterol",
|
"cholesterol-content": "Colesterol",
|
||||||
"comment-action": "Comentar",
|
"comment-action": "Comentar",
|
||||||
"comment": "Comentar",
|
"comment": "Comentario",
|
||||||
"comments": "Comentarios",
|
"comments": "Comentarios",
|
||||||
"delete-confirmation": "¿Estás seguro de eliminar esta receta?",
|
"delete-confirmation": "¿Estás seguro de eliminar esta receta?",
|
||||||
"delete-recipe": "Borrar receta",
|
"delete-recipe": "Borrar receta",
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"support": "Tuki",
|
"support": "Tuki",
|
||||||
"version": "Versio",
|
"version": "Versio",
|
||||||
"unknown-version": "tuntematon",
|
"unknown-version": "tuntematon",
|
||||||
"sponsor": "Yhteistyökumppani"
|
"sponsor": "Sponsori"
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
"assets": "Liitteet",
|
"assets": "Liitteet",
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
"enable-notifier": "Ota ilmoittaja käyttöön",
|
"enable-notifier": "Ota ilmoittaja käyttöön",
|
||||||
"what-events": "Mistä tapahtumista tulisi ilmoittaa?",
|
"what-events": "Mistä tapahtumista tulisi ilmoittaa?",
|
||||||
"user-events": "Käyttäjän tapahtumat",
|
"user-events": "Käyttäjän tapahtumat",
|
||||||
"mealplan-events": "Ateriasuunnittelun tapahtumat",
|
"mealplan-events": "Ateriasuunnitelman Tapahtumat",
|
||||||
"when-a-user-in-your-group-creates-a-new-mealplan": "Kun ryhmäsi käyttäjä tekee ateriasuunnitelman",
|
"when-a-user-in-your-group-creates-a-new-mealplan": "Kun ryhmäsi käyttäjä tekee ateriasuunnitelman",
|
||||||
"shopping-list-events": "Ostoslistatapahtumat",
|
"shopping-list-events": "Ostoslistatapahtumat",
|
||||||
"cookbook-events": "Keittokirjatapahtumat",
|
"cookbook-events": "Keittokirjatapahtumat",
|
||||||
|
@ -277,7 +277,7 @@
|
||||||
"admin-group-management-text": "Muutokset tähän ryhmään tulevat näkymään välittömästi.",
|
"admin-group-management-text": "Muutokset tähän ryhmään tulevat näkymään välittömästi.",
|
||||||
"group-id-value": "Ryhmän tunniste: {0}",
|
"group-id-value": "Ryhmän tunniste: {0}",
|
||||||
"total-households": "Kotitaloudet Yhteensä",
|
"total-households": "Kotitaloudet Yhteensä",
|
||||||
"you-must-select-a-group-before-selecting-a-household": "You must select a group before selecting a household"
|
"you-must-select-a-group-before-selecting-a-household": "Sinun tulee valita ryhmä ennen kuin valitset kotitalouden"
|
||||||
},
|
},
|
||||||
"household": {
|
"household": {
|
||||||
"household": "Kotitalous",
|
"household": "Kotitalous",
|
||||||
|
@ -518,7 +518,7 @@
|
||||||
"save-recipe-before-use": "Tallenna resepti ennen käyttöä",
|
"save-recipe-before-use": "Tallenna resepti ennen käyttöä",
|
||||||
"section-title": "Osion otsikko",
|
"section-title": "Osion otsikko",
|
||||||
"servings": "Annokset",
|
"servings": "Annokset",
|
||||||
"serves-amount": "Serves {amount}",
|
"serves-amount": "{amount} annosta",
|
||||||
"share-recipe-message": "Halusin jakaa reseptin {0} kanssasi.",
|
"share-recipe-message": "Halusin jakaa reseptin {0} kanssasi.",
|
||||||
"show-nutrition-values": "Näytä ravintoarvot",
|
"show-nutrition-values": "Näytä ravintoarvot",
|
||||||
"sodium-content": "Natrium",
|
"sodium-content": "Natrium",
|
||||||
|
@ -532,7 +532,7 @@
|
||||||
"no-recipe": "Ei reseptiä",
|
"no-recipe": "Ei reseptiä",
|
||||||
"locked-by-owner": "Omistajan lukitsema",
|
"locked-by-owner": "Omistajan lukitsema",
|
||||||
"join-the-conversation": "Liity keskusteluun",
|
"join-the-conversation": "Liity keskusteluun",
|
||||||
"add-recipe-to-mealplan": "Lisää resepti ateriasuunnitelmaan",
|
"add-recipe-to-mealplan": "Lisää resepti Ateriasuunnitelmaan",
|
||||||
"entry-type": "Merkinnän tyyppi",
|
"entry-type": "Merkinnän tyyppi",
|
||||||
"date-format-hint": "KK/PP/VVVV-muoto",
|
"date-format-hint": "KK/PP/VVVV-muoto",
|
||||||
"date-format-hint-yyyy-mm-dd": "VVVV-KK-PP-muoto",
|
"date-format-hint-yyyy-mm-dd": "VVVV-KK-PP-muoto",
|
||||||
|
@ -546,9 +546,9 @@
|
||||||
"failed-to-add-recipes-to-list": "Luetteloon lisääminen epäonnistui",
|
"failed-to-add-recipes-to-list": "Luetteloon lisääminen epäonnistui",
|
||||||
"failed-to-add-recipe-to-mealplan": "Reseptiä ei voitu lisätä ateriasuunnitelmaan",
|
"failed-to-add-recipe-to-mealplan": "Reseptiä ei voitu lisätä ateriasuunnitelmaan",
|
||||||
"failed-to-add-to-list": "Luetteloon lisääminen epäonnistui",
|
"failed-to-add-to-list": "Luetteloon lisääminen epäonnistui",
|
||||||
"yield": "Sato",
|
"yield": "Tuotto",
|
||||||
"yields-amount-with-text": "Yields {amount} {text}",
|
"yields-amount-with-text": "Tuottaa {amount} {text}",
|
||||||
"yield-text": "Yield Text",
|
"yield-text": "Tuotosteksti",
|
||||||
"quantity": "Määrä",
|
"quantity": "Määrä",
|
||||||
"choose-unit": "Valitse Yksikkö",
|
"choose-unit": "Valitse Yksikkö",
|
||||||
"press-enter-to-create": "Luo painamalla Enter",
|
"press-enter-to-create": "Luo painamalla Enter",
|
||||||
|
@ -637,9 +637,9 @@
|
||||||
"recipe-debugger-use-openai-description": "Käytä OpenAI:ta kaavinkirjaston sijaan tulosten jäsentämiseen. Luodessa reseptiä URL:n kautta tämä tehdään ilman eri kysymystä, kun kaavinkirjasto ei toimi, mutta voit kokeilla sitä tässä manuaalisesti.",
|
"recipe-debugger-use-openai-description": "Käytä OpenAI:ta kaavinkirjaston sijaan tulosten jäsentämiseen. Luodessa reseptiä URL:n kautta tämä tehdään ilman eri kysymystä, kun kaavinkirjasto ei toimi, mutta voit kokeilla sitä tässä manuaalisesti.",
|
||||||
"debug": "Vianhaku",
|
"debug": "Vianhaku",
|
||||||
"tree-view": "Puunäkymä",
|
"tree-view": "Puunäkymä",
|
||||||
"recipe-servings": "Recipe Servings",
|
"recipe-servings": "Reseptin annokset",
|
||||||
"recipe-yield": "Reseptin tekijä",
|
"recipe-yield": "Reseptin tuotto",
|
||||||
"recipe-yield-text": "Recipe Yield Text",
|
"recipe-yield-text": "Reseptin tuotosteksti",
|
||||||
"unit": "Yksikkö",
|
"unit": "Yksikkö",
|
||||||
"upload-image": "Lataa kuva",
|
"upload-image": "Lataa kuva",
|
||||||
"screen-awake": "Pidä näyttö aina päällä",
|
"screen-awake": "Pidä näyttö aina päällä",
|
||||||
|
@ -661,25 +661,25 @@
|
||||||
"missing-food": "Luo puuttuva ruoka: {food}",
|
"missing-food": "Luo puuttuva ruoka: {food}",
|
||||||
"no-food": "Ei ruokaa"
|
"no-food": "Ei ruokaa"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Reset Servings Count",
|
"reset-servings-count": "Palauta Annoksien Määrä",
|
||||||
"not-linked-ingredients": "Additional Ingredients"
|
"not-linked-ingredients": "Muut ainesosat"
|
||||||
},
|
},
|
||||||
"recipe-finder": {
|
"recipe-finder": {
|
||||||
"recipe-finder": "Recipe Finder",
|
"recipe-finder": "Reseptin etsijä",
|
||||||
"recipe-finder-description": "Search for recipes based on ingredients you have on hand. You can also filter by tools you have available, and set a maximum number of missing ingredients or tools.",
|
"recipe-finder-description": "Etsi sopivia reseptejä saatavilla olevien ainesosien perusteella. Voit myös suodattaa tulokset saatavilla olevien ruoanvalmistusvälineiden perusteella, ja asettaa enimmäismäärän puuttuvia ainesosia tai välineitä.",
|
||||||
"selected-ingredients": "Selected Ingredients",
|
"selected-ingredients": "Valitut ainesosat",
|
||||||
"no-ingredients-selected": "No ingredients selected",
|
"no-ingredients-selected": "Ei valittuja ainesosia",
|
||||||
"missing": "Missing",
|
"missing": "Puuttuu",
|
||||||
"no-recipes-found": "No recipes found",
|
"no-recipes-found": "Reseptejä ei löytynyt",
|
||||||
"no-recipes-found-description": "Try adding more ingredients to your search or adjusting your filters",
|
"no-recipes-found-description": "Kokeile lisätä enemmän ainesosia hakuun tai säätää suodattimia",
|
||||||
"include-ingredients-on-hand": "Include Ingredients On Hand",
|
"include-ingredients-on-hand": "Sisällytä saatavilla olevat ainesosat",
|
||||||
"include-tools-on-hand": "Include Tools On Hand",
|
"include-tools-on-hand": "Sisällytä saatavilla olevat välineet",
|
||||||
"max-missing-ingredients": "Max Missing Ingredients",
|
"max-missing-ingredients": "Puuttuvien ainesten enimmäismäärä",
|
||||||
"max-missing-tools": "Max Missing Tools",
|
"max-missing-tools": "Puuttuvien välineiden enimmäismäärä",
|
||||||
"selected-tools": "Selected Tools",
|
"selected-tools": "Valitut välineet",
|
||||||
"other-filters": "Other Filters",
|
"other-filters": "Muut suodattimet",
|
||||||
"ready-to-make": "Ready to Make",
|
"ready-to-make": "Valmis tekemään",
|
||||||
"almost-ready-to-make": "Almost Ready to Make"
|
"almost-ready-to-make": "Melkein valmis tekemään"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "Tarkennettu haku",
|
"advanced-search": "Tarkennettu haku",
|
||||||
|
@ -690,7 +690,7 @@
|
||||||
"or": "Tai",
|
"or": "Tai",
|
||||||
"has-any": "On Mikä Tahansa",
|
"has-any": "On Mikä Tahansa",
|
||||||
"has-all": "On Kaikki",
|
"has-all": "On Kaikki",
|
||||||
"clear-selection": "Clear Selection",
|
"clear-selection": "Tyhjennä valinnat",
|
||||||
"results": "Tulokset",
|
"results": "Tulokset",
|
||||||
"search": "Hae",
|
"search": "Hae",
|
||||||
"search-mealie": "Hae Mealiestä (paina /)",
|
"search-mealie": "Hae Mealiestä (paina /)",
|
||||||
|
@ -884,7 +884,7 @@
|
||||||
"are-you-sure-you-want-to-check-all-items": "Haluatko varmasti valita kaikki kohteet?",
|
"are-you-sure-you-want-to-check-all-items": "Haluatko varmasti valita kaikki kohteet?",
|
||||||
"are-you-sure-you-want-to-uncheck-all-items": "Haluatko varmasti poistaa kaikki valinnat?",
|
"are-you-sure-you-want-to-uncheck-all-items": "Haluatko varmasti poistaa kaikki valinnat?",
|
||||||
"are-you-sure-you-want-to-delete-checked-items": "Haluatko varmasti poistaa kaikki valitut kohteet?",
|
"are-you-sure-you-want-to-delete-checked-items": "Haluatko varmasti poistaa kaikki valitut kohteet?",
|
||||||
"no-shopping-lists-found": "No Shopping Lists Found"
|
"no-shopping-lists-found": "Ostoslistoja ei löytynyt"
|
||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"all-recipes": "Reseptit",
|
"all-recipes": "Reseptit",
|
||||||
|
@ -981,7 +981,7 @@
|
||||||
"register": "Rekisteröidy",
|
"register": "Rekisteröidy",
|
||||||
"reset-password": "Palauta salasana",
|
"reset-password": "Palauta salasana",
|
||||||
"sign-in": "Kirjaudu",
|
"sign-in": "Kirjaudu",
|
||||||
"total-mealplans": "Ateriasuunnitelmia",
|
"total-mealplans": "Ateriasuunnitelma Yhteensä",
|
||||||
"total-users": "Käyttäjien määrä",
|
"total-users": "Käyttäjien määrä",
|
||||||
"upload-photo": "Tuo kuva",
|
"upload-photo": "Tuo kuva",
|
||||||
"use-8-characters-or-more-for-your-password": "Salasanan pituuden on oltava vähintään kahdeksan merkkiä",
|
"use-8-characters-or-more-for-your-password": "Salasanan pituuden on oltava vähintään kahdeksan merkkiä",
|
||||||
|
@ -1030,7 +1030,7 @@
|
||||||
"administrator": "Ylläpitäjä",
|
"administrator": "Ylläpitäjä",
|
||||||
"user-can-invite-other-to-group": "Käyttäjä voi kutsua muita ryhmään",
|
"user-can-invite-other-to-group": "Käyttäjä voi kutsua muita ryhmään",
|
||||||
"user-can-manage-group": "Käyttäjä voi hallita ryhmää",
|
"user-can-manage-group": "Käyttäjä voi hallita ryhmää",
|
||||||
"user-can-manage-household": "User can manage household",
|
"user-can-manage-household": "Käyttäjä voi hallita kotitaloutta",
|
||||||
"user-can-organize-group-data": "Käyttäjä voi järjestellä ryhmän tietoja",
|
"user-can-organize-group-data": "Käyttäjä voi järjestellä ryhmän tietoja",
|
||||||
"enable-advanced-features": "Salli edistyneemmät ominaisuudet",
|
"enable-advanced-features": "Salli edistyneemmät ominaisuudet",
|
||||||
"it-looks-like-this-is-your-first-time-logging-in": "Tämä vaikuttaa olevan ensimmäinen kirjautumisesi.",
|
"it-looks-like-this-is-your-first-time-logging-in": "Tämä vaikuttaa olevan ensimmäinen kirjautumisesi.",
|
||||||
|
@ -1213,7 +1213,7 @@
|
||||||
"result": "Valittu teksti tulee näkymään aiemmin valitun kentän sisällä."
|
"result": "Valittu teksti tulee näkymään aiemmin valitun kentän sisällä."
|
||||||
},
|
},
|
||||||
"pan-and-zoom-mode": "Kääntö- ja zoomaustila",
|
"pan-and-zoom-mode": "Kääntö- ja zoomaustila",
|
||||||
"pan-and-zoom-desc": "Select pan and zoom by clicking the icon. This mode allows to zoom inside the image and move around to make using big images easier.",
|
"pan-and-zoom-desc": "Valitse panorointi ja zoomaus klikkaamalla kuvaketta. Tämä tila mahdollistaa zoomauksen kuvan sisällä ja liikkumisen niin, että isojen kuvien käyttö on helpompaa.",
|
||||||
"split-text-mode": "Jaa tekstitila",
|
"split-text-mode": "Jaa tekstitila",
|
||||||
"split-modes": {
|
"split-modes": {
|
||||||
"line-mode": "Rivitila (oletus)",
|
"line-mode": "Rivitila (oletus)",
|
||||||
|
@ -1232,37 +1232,37 @@
|
||||||
"summary-title": "Yhteenveto",
|
"summary-title": "Yhteenveto",
|
||||||
"button-label-get-summary": "Hae Yhteenveto",
|
"button-label-get-summary": "Hae Yhteenveto",
|
||||||
"button-label-open-details": "Tiedot",
|
"button-label-open-details": "Tiedot",
|
||||||
"info-description-data-dir-size": "Datahakemiston Koko",
|
"info-description-data-dir-size": "Datahakemiston koko",
|
||||||
"info-description-log-file-size": "Lokitiedoston Koko",
|
"info-description-log-file-size": "Lokitiedoston Koko",
|
||||||
"info-description-cleanable-directories": "Siivottavat Hakemistot",
|
"info-description-cleanable-directories": "Siivottavat hakemistot",
|
||||||
"info-description-cleanable-images": "Siivottavat Kuvat",
|
"info-description-cleanable-images": "Siivottavat kuvat",
|
||||||
"storage": {
|
"storage": {
|
||||||
"title-temporary-directory": "Väliaikainen Hakemisto (.temp)",
|
"title-temporary-directory": "Väliaikainen hakemisto (.temp)",
|
||||||
"title-backups-directory": "Varmuuskopiointihakemisto (varmuuskopiot)",
|
"title-backups-directory": "Varmuuskopiointihakemisto (varmuuskopiot)",
|
||||||
"title-groups-directory": "Ryhmien Hakemisto (ryhmät)",
|
"title-groups-directory": "Ryhmien hakemisto (ryhmät)",
|
||||||
"title-recipes-directory": "Reseptihakemisto (reseptit)",
|
"title-recipes-directory": "Reseptihakemisto (reseptit)",
|
||||||
"title-user-directory": "Käyttäjähakemisto (käyttäjä)"
|
"title-user-directory": "Käyttäjähakemisto (käyttäjä)"
|
||||||
},
|
},
|
||||||
"action-delete-log-files-name": "Poista Lokitiedostot",
|
"action-delete-log-files-name": "Poista Lokitiedostot",
|
||||||
"action-delete-log-files-description": "Poistaa kaikki lokitiedostot",
|
"action-delete-log-files-description": "Poistaa kaikki lokitiedostot",
|
||||||
"action-clean-directories-name": "Puhdista Hakemistot",
|
"action-clean-directories-name": "Puhdista hakemistot",
|
||||||
"action-clean-directories-description": "Poistaa kaikki reseptikansiot, jotka eivät ole kelvollisia UUID-koodeja",
|
"action-clean-directories-description": "Poistaa kaikki reseptikansiot, jotka eivät ole kelvollisia UUID-koodeja",
|
||||||
"action-clean-temporary-files-name": "Poista väliaikaiset tiedostot",
|
"action-clean-temporary-files-name": "Poista väliaikaiset tiedostot",
|
||||||
"action-clean-temporary-files-description": "Poistaa kaikki tiedostot ja kansiot .temp kansiosta",
|
"action-clean-temporary-files-description": "Poistaa kaikki tiedostot ja kansiot .temp kansiosta",
|
||||||
"action-clean-images-name": "Puhdista Kuvat",
|
"action-clean-images-name": "Puhdista kuvat",
|
||||||
"action-clean-images-description": "Poistaa kaikki kuvat, jotka eivät pääty .webp",
|
"action-clean-images-description": "Poistaa kaikki kuvat, jotka eivät pääty .webp",
|
||||||
"actions-description": "Maintenance actions are {destructive_in_bold} and should be used with caution. Performing any of these actions is {irreversible_in_bold}.",
|
"actions-description": "Huoltotoimenpiteet ovat {destructive_in_bold} ja niitä tulisi käyttää varoen. Kaikkien näiden toimenpiteiden suorittaminen on {irreversible_in_bold}.",
|
||||||
"actions-description-destructive": "lopullinen",
|
"actions-description-destructive": "tuhoisia",
|
||||||
"actions-description-irreversible": "peruuttamaton",
|
"actions-description-irreversible": "peruuttamatonta",
|
||||||
"logs-action-refresh": "Päivitä lokit",
|
"logs-action-refresh": "Päivitä lokit",
|
||||||
"logs-page-title": "Mealie- Lokit",
|
"logs-page-title": "Mealie- Lokit",
|
||||||
"logs-tail-lines-label": "Tail Lines"
|
"logs-tail-lines-label": "Loppurivit"
|
||||||
},
|
},
|
||||||
"mainentance": {
|
"mainentance": {
|
||||||
"actions-title": "Toiminnot"
|
"actions-title": "Toiminnot"
|
||||||
},
|
},
|
||||||
"ingredients-natural-language-processor": "Ingredients Natural Language Processor",
|
"ingredients-natural-language-processor": "Ingredients Natural Language Processor",
|
||||||
"ingredients-natural-language-processor-explanation": "Mealie uses Conditional Random Fields (CRFs) for parsing and processing ingredients. The model used for ingredients is based off a data set of over 100,000 ingredients from a dataset compiled by the New York Times. Note that as the model is trained in English only, you may have varied results when using the model in other languages. This page is a playground for testing the model.",
|
"ingredients-natural-language-processor-explanation": "Mealie käyttää Conditional Random Fields (CRF) ainesosien jäsentämiseen ja prosessointiin. Ainesosien osalta käytetty malli perustuu yli 100000 ainesosan aineistoon New York Timesin kokoamasta aineistosta. Huomaa, että koska malli on koulutettu vain englanniksi, mallilla voi olla vaihtelevia tuloksia, kun käytät mallia muilla kielillä. Tämä sivu on mallin testaamiseen tarkoitettu leikkipaikka.",
|
||||||
"ingredients-natural-language-processor-explanation-2": "Se ei ole täydellinen, mutta se tuottaa hyviä tuloksia yleensä ja on hyvä lähtökohta manuaalisesti jäsentää ainesosia yksittäisiin kenttiin. Vaihtoehtoisesti voit myös käyttää Brute-prosessori, joka käyttää kuvion täsmäystekniikkaa tunnistamaan ainesosia.",
|
"ingredients-natural-language-processor-explanation-2": "Se ei ole täydellinen, mutta se tuottaa hyviä tuloksia yleensä ja on hyvä lähtökohta manuaalisesti jäsentää ainesosia yksittäisiin kenttiin. Vaihtoehtoisesti voit myös käyttää Brute-prosessori, joka käyttää kuvion täsmäystekniikkaa tunnistamaan ainesosia.",
|
||||||
"nlp": "NLP",
|
"nlp": "NLP",
|
||||||
"brute": "Brute",
|
"brute": "Brute",
|
||||||
|
@ -1279,24 +1279,24 @@
|
||||||
"setup": {
|
"setup": {
|
||||||
"first-time-setup": "Ensiasetukset",
|
"first-time-setup": "Ensiasetukset",
|
||||||
"welcome-to-mealie-get-started": "Tervetuloa Mealieen! Aloitetaan",
|
"welcome-to-mealie-get-started": "Tervetuloa Mealieen! Aloitetaan",
|
||||||
"already-set-up-bring-to-homepage": "I'm already set up, just bring me to the homepage",
|
"already-set-up-bring-to-homepage": "Olen jo valmis, vie minut kotisivulle",
|
||||||
"common-settings-for-new-sites": "Here are some common settings for new sites",
|
"common-settings-for-new-sites": "Tässä muutamia yleisiä asetuksia uusille sivustoille",
|
||||||
"setup-complete": "Setup Complete!",
|
"setup-complete": "Asennus valmis.",
|
||||||
"here-are-a-few-things-to-help-you-get-started": "Näillä muutamilla asioilla pääset alkuun",
|
"here-are-a-few-things-to-help-you-get-started": "Näillä muutamilla asioilla pääset alkuun",
|
||||||
"restore-from-v1-backup": "Onko sinulla varmuuskopio aiemmasta Mealie v1 -instanssista? Palauta se tästä.",
|
"restore-from-v1-backup": "Onko sinulla varmuuskopio aiemmasta Mealie v1 -instanssista? Palauta se tästä.",
|
||||||
"manage-profile-or-get-invite-link": "Hallitse profiiliasi tai hanki kutsulinkki muille."
|
"manage-profile-or-get-invite-link": "Hallitse profiiliasi tai hanki kutsulinkki muille."
|
||||||
},
|
},
|
||||||
"debug-openai-services": "Debug OpenAI Services",
|
"debug-openai-services": "Debuggaa OpenAI-palveluita",
|
||||||
"debug-openai-services-description": "Use this page to debug OpenAI services. You can test your OpenAI connection and see the results here. If you have image services enabled, you can also provide an image.",
|
"debug-openai-services-description": "Käytä tätä sivua OpenAI-palveluiden debuggaamiseen. Voit testata OpenAI-yhteytesi ja nähdä tulokset täällä. Jos kuvapalvelut ovat käytössä, voit myös antaa kuvan.",
|
||||||
"run-test": "Run Test",
|
"run-test": "Suorita testi",
|
||||||
"test-results": "Test Results",
|
"test-results": "Testitulokset",
|
||||||
"group-delete-note": "Groups with users or households cannot be deleted",
|
"group-delete-note": "Ryhmiä, joilla on käyttäjiä tai kotitalouksia, ei voi poistaa",
|
||||||
"household-delete-note": "Households with users cannot be deleted"
|
"household-delete-note": "Kotitalouksia, joissa on käyttäjiä, ei voi poistaa"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"welcome-user": "👋 Tervetuloa, {0}!",
|
"welcome-user": "👋 Tervetuloa, {0}!",
|
||||||
"description": "Hallitse profiiliasi, reseptejäsi ja ryhmäasetuksiasi.",
|
"description": "Hallitse profiiliasi, reseptejäsi ja ryhmäasetuksiasi.",
|
||||||
"invite-link": "Invite Link",
|
"invite-link": "",
|
||||||
"get-invite-link": "Hanki Kutsulinkki",
|
"get-invite-link": "Hanki Kutsulinkki",
|
||||||
"get-public-link": "Julkinen linkki",
|
"get-public-link": "Julkinen linkki",
|
||||||
"account-summary": "Tilin Yhteenveto",
|
"account-summary": "Tilin Yhteenveto",
|
||||||
|
@ -1345,9 +1345,9 @@
|
||||||
},
|
},
|
||||||
"cookbook": {
|
"cookbook": {
|
||||||
"cookbooks": "Keittokirjat",
|
"cookbooks": "Keittokirjat",
|
||||||
"description": "Cookbooks are another way to organize recipes by creating cross sections of recipes, organizers, and other filters. Creating a cookbook will add an entry to the side-bar and all the recipes with the filters chosen will be displayed in the cookbook.",
|
"description": "Keittokirjat ovat toinen tapa järjestää reseptejä luomalla poikkileikkauksia resepteistä, järjestäjistä, sekä muista suodattimista. Keittokirjan luominen lisää merkinnän sivupalkkiin, ja kaikki reseptit näkyvät keittokirjassa valittujen suodatinten mukaisesti.",
|
||||||
"hide-cookbooks-from-other-households": "Hide Cookbooks from Other Households",
|
"hide-cookbooks-from-other-households": "Piilota keittokirjat muista kotitalouksista",
|
||||||
"hide-cookbooks-from-other-households-description": "When enabled, only cookbooks from your household will appear on the sidebar",
|
"hide-cookbooks-from-other-households-description": "Kun käytössä, sivupalkissa näkyy vain oman kotitaloutesi keittokirjoja",
|
||||||
"public-cookbook": "Julkinen Keittokirja",
|
"public-cookbook": "Julkinen Keittokirja",
|
||||||
"public-cookbook-description": "Julkisia keittokirjoja voidaan jakaa ei-Mealien käyttäjille, ja ne näkyvät ryhmäsi sivulla.",
|
"public-cookbook-description": "Julkisia keittokirjoja voidaan jakaa ei-Mealien käyttäjille, ja ne näkyvät ryhmäsi sivulla.",
|
||||||
"filter-options": "Suodatuksen asetukset",
|
"filter-options": "Suodatuksen asetukset",
|
||||||
|
@ -1363,25 +1363,25 @@
|
||||||
},
|
},
|
||||||
"query-filter": {
|
"query-filter": {
|
||||||
"logical-operators": {
|
"logical-operators": {
|
||||||
"and": "AND",
|
"and": "JA",
|
||||||
"or": "OR"
|
"or": "TAI"
|
||||||
},
|
},
|
||||||
"relational-operators": {
|
"relational-operators": {
|
||||||
"equals": "equals",
|
"equals": "on yhtä kuin",
|
||||||
"does-not-equal": "does not equal",
|
"does-not-equal": "ei ole yhtä kuin",
|
||||||
"is-greater-than": "is greater than",
|
"is-greater-than": "on suurempi kuin",
|
||||||
"is-greater-than-or-equal-to": "is greater than or equal to",
|
"is-greater-than-or-equal-to": "on suurempi tai yhtäsuuri kuin",
|
||||||
"is-less-than": "is less than",
|
"is-less-than": "on vähemmän kuin",
|
||||||
"is-less-than-or-equal-to": "is less than or equal to"
|
"is-less-than-or-equal-to": "on vähemmän tai yhtäsuuri kuin"
|
||||||
},
|
},
|
||||||
"relational-keywords": {
|
"relational-keywords": {
|
||||||
"is": "is",
|
"is": "on",
|
||||||
"is-not": "is not",
|
"is-not": "ei ole",
|
||||||
"is-one-of": "is one of",
|
"is-one-of": "on yksi näistä",
|
||||||
"is-not-one-of": "is not one of",
|
"is-not-one-of": "ei ole yksi näistä",
|
||||||
"contains-all-of": "contains all of",
|
"contains-all-of": "sisältää kaikki nämä",
|
||||||
"is-like": "is like",
|
"is-like": "on kuin",
|
||||||
"is-not-like": "is not like"
|
"is-not-like": "ei ole kuin"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -517,7 +517,7 @@
|
||||||
"saturated-fat-content": "Grassi saturi",
|
"saturated-fat-content": "Grassi saturi",
|
||||||
"save-recipe-before-use": "Salva la ricetta prima dell'uso",
|
"save-recipe-before-use": "Salva la ricetta prima dell'uso",
|
||||||
"section-title": "Titolo Sezione",
|
"section-title": "Titolo Sezione",
|
||||||
"servings": "Portate",
|
"servings": "Porzioni",
|
||||||
"serves-amount": "Porzioni {amount}",
|
"serves-amount": "Porzioni {amount}",
|
||||||
"share-recipe-message": "Volevo condividere la mia {0} ricetta con te.",
|
"share-recipe-message": "Volevo condividere la mia {0} ricetta con te.",
|
||||||
"show-nutrition-values": "Mostra Valori Nutrizionali",
|
"show-nutrition-values": "Mostra Valori Nutrizionali",
|
||||||
|
@ -546,9 +546,9 @@
|
||||||
"failed-to-add-recipes-to-list": "Impossibile aggiungere la ricetta alla lista",
|
"failed-to-add-recipes-to-list": "Impossibile aggiungere la ricetta alla lista",
|
||||||
"failed-to-add-recipe-to-mealplan": "Impossibile aggiungere la ricetta al piano alimentare",
|
"failed-to-add-recipe-to-mealplan": "Impossibile aggiungere la ricetta al piano alimentare",
|
||||||
"failed-to-add-to-list": "Errore durante l'aggiunta alla lista",
|
"failed-to-add-to-list": "Errore durante l'aggiunta alla lista",
|
||||||
"yield": "Porzioni",
|
"yield": "Quantità prodotta",
|
||||||
"yields-amount-with-text": "Rendimenti {amount} {text}",
|
"yields-amount-with-text": "Quantità prodotta: {amount} {text}",
|
||||||
"yield-text": "Testo di rendimento",
|
"yield-text": "Unità della quantità prodotta",
|
||||||
"quantity": "Quantità",
|
"quantity": "Quantità",
|
||||||
"choose-unit": "Scegli Unità",
|
"choose-unit": "Scegli Unità",
|
||||||
"press-enter-to-create": "Premi invio per creare",
|
"press-enter-to-create": "Premi invio per creare",
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
"loading": "Kraunasi",
|
"loading": "Kraunasi",
|
||||||
"loading-events": "Užkrovimo įvykiai",
|
"loading-events": "Užkrovimo įvykiai",
|
||||||
"loading-recipe": "Receptai kraunasi...",
|
"loading-recipe": "Receptai kraunasi...",
|
||||||
"loading-ocr-data": "Loading OCR data...",
|
"loading-ocr-data": "Įkeliami OCR duomenys...",
|
||||||
"loading-recipes": "Receptai kraunasi",
|
"loading-recipes": "Receptai kraunasi",
|
||||||
"message": "Pranešimas",
|
"message": "Pranešimas",
|
||||||
"monday": "Pirmadienis",
|
"monday": "Pirmadienis",
|
||||||
|
@ -210,14 +210,14 @@
|
||||||
"upload-file": "Įkelti failą",
|
"upload-file": "Įkelti failą",
|
||||||
"created-on-date": "Sukurta: {0}",
|
"created-on-date": "Sukurta: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
"clipboard-copy-failure": "Nepavyko nukopijuoti į iškarpinę.",
|
||||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
||||||
"organizers": "Organizers",
|
"organizers": "Organizers",
|
||||||
"caution": "Caution",
|
"caution": "Caution",
|
||||||
"show-advanced": "Show Advanced",
|
"show-advanced": "Rodyti plačiau",
|
||||||
"add-field": "Add Field",
|
"add-field": "Pridėti lauką",
|
||||||
"date-created": "Date Created",
|
"date-created": "Sukūrimo data",
|
||||||
"date-updated": "Date Updated"
|
"date-updated": "Atnaujinimo data"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Ar tikrai norite ištrinti <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Ar tikrai norite ištrinti <b>{groupName}<b/>?",
|
||||||
|
@ -322,7 +322,7 @@
|
||||||
"mealplan-update-failed": "Mitybos plano atnaujinti nepavyko",
|
"mealplan-update-failed": "Mitybos plano atnaujinti nepavyko",
|
||||||
"mealplan-updated": "Mitybos planas atnaujintas",
|
"mealplan-updated": "Mitybos planas atnaujintas",
|
||||||
"mealplan-households-description": "If no household is selected, recipes can be added from any household",
|
"mealplan-households-description": "If no household is selected, recipes can be added from any household",
|
||||||
"any-category": "Any Category",
|
"any-category": "Bet kuri kategorija",
|
||||||
"any-tag": "Any Tag",
|
"any-tag": "Any Tag",
|
||||||
"any-household": "Any Household",
|
"any-household": "Any Household",
|
||||||
"no-meal-plan-defined-yet": "Nėra nustatytų mitybos planų",
|
"no-meal-plan-defined-yet": "Nėra nustatytų mitybos planų",
|
||||||
|
|
|
@ -601,7 +601,7 @@
|
||||||
"create-recipe-from-an-image-description": "Create a recipe by uploading an image of it. Mealie will attempt to extract the text from the image using AI and create a recipe from it.",
|
"create-recipe-from-an-image-description": "Create a recipe by uploading an image of it. Mealie will attempt to extract the text from the image using AI and create a recipe from it.",
|
||||||
"crop-and-rotate-the-image": "Crop and rotate the image so that only the text is visible, and it's in the correct orientation.",
|
"crop-and-rotate-the-image": "Crop and rotate the image so that only the text is visible, and it's in the correct orientation.",
|
||||||
"create-from-image": "Create from Image",
|
"create-from-image": "Create from Image",
|
||||||
"should-translate-description": "Translate the recipe into my language",
|
"should-translate-description": "Перевести рецепт на мой язык",
|
||||||
"please-wait-image-procesing": "Подождите, идет обработка изображения.",
|
"please-wait-image-procesing": "Подождите, идет обработка изображения.",
|
||||||
"bulk-url-import": "Массовый импорт по URL",
|
"bulk-url-import": "Массовый импорт по URL",
|
||||||
"debug-scraper": "Отладка сканирования",
|
"debug-scraper": "Отладка сканирования",
|
||||||
|
@ -611,16 +611,16 @@
|
||||||
"scrape-recipe-description": "Отсканировать рецепт по ссылке. Предоставьте ссылку на страницу, которую вы хотите отсканировать, и Mealie попытается вырезать рецепт с этого сайта и добавить его в свою коллекцию.",
|
"scrape-recipe-description": "Отсканировать рецепт по ссылке. Предоставьте ссылку на страницу, которую вы хотите отсканировать, и Mealie попытается вырезать рецепт с этого сайта и добавить его в свою коллекцию.",
|
||||||
"scrape-recipe-have-a-lot-of-recipes": "Хотите отсканировать несколько рецептов за раз?",
|
"scrape-recipe-have-a-lot-of-recipes": "Хотите отсканировать несколько рецептов за раз?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Воспользуйтесь массовым импортом",
|
"scrape-recipe-suggest-bulk-importer": "Воспользуйтесь массовым импортом",
|
||||||
"scrape-recipe-have-raw-html-or-json-data": "Have raw HTML or JSON data?",
|
"scrape-recipe-have-raw-html-or-json-data": "У Вас есть данные HTML или JSON?",
|
||||||
"scrape-recipe-you-can-import-from-raw-data-directly": "You can import from raw data directly",
|
"scrape-recipe-you-can-import-from-raw-data-directly": "You can import from raw data directly",
|
||||||
"import-original-keywords-as-tags": "Импортировать исходные ключевые слова как теги",
|
"import-original-keywords-as-tags": "Импортировать исходные ключевые слова как теги",
|
||||||
"stay-in-edit-mode": "Остаться в режиме редактирования",
|
"stay-in-edit-mode": "Остаться в режиме редактирования",
|
||||||
"import-from-zip": "Импорт из архива",
|
"import-from-zip": "Импорт из архива",
|
||||||
"import-from-zip-description": "Импорт одного рецепта, который был экспортирован из другого экземпляра Mealie.",
|
"import-from-zip-description": "Импорт одного рецепта, который был экспортирован из другого экземпляра Mealie.",
|
||||||
"import-from-html-or-json": "Import from HTML or JSON",
|
"import-from-html-or-json": "Импортировать из HTML или JSON",
|
||||||
"import-from-html-or-json-description": "Import a single recipe from raw HTML or JSON. This is useful if you have a recipe from a site that Mealie can't scrape normally, or from some other external source.",
|
"import-from-html-or-json-description": "Import a single recipe from raw HTML or JSON. This is useful if you have a recipe from a site that Mealie can't scrape normally, or from some other external source.",
|
||||||
"json-import-format-description-colon": "To import via JSON, it must be in valid format:",
|
"json-import-format-description-colon": "To import via JSON, it must be in valid format:",
|
||||||
"json-editor": "JSON Editor",
|
"json-editor": "Редактор JSON",
|
||||||
"zip-files-must-have-been-exported-from-mealie": ".zip файлы должны быть экспортированы из Mealie",
|
"zip-files-must-have-been-exported-from-mealie": ".zip файлы должны быть экспортированы из Mealie",
|
||||||
"create-a-recipe-by-uploading-a-scan": "Создайте рецепт, загрузив скан.",
|
"create-a-recipe-by-uploading-a-scan": "Создайте рецепт, загрузив скан.",
|
||||||
"upload-a-png-image-from-a-recipe-book": "Загрузить png изображение из книги рецептов",
|
"upload-a-png-image-from-a-recipe-book": "Загрузить png изображение из книги рецептов",
|
||||||
|
@ -661,16 +661,16 @@
|
||||||
"missing-food": "Create missing food: {food}",
|
"missing-food": "Create missing food: {food}",
|
||||||
"no-food": "Нет еды"
|
"no-food": "Нет еды"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Reset Servings Count",
|
"reset-servings-count": "Сбросить количество порций",
|
||||||
"not-linked-ingredients": "Additional Ingredients"
|
"not-linked-ingredients": "Дополнительные ингредиенты"
|
||||||
},
|
},
|
||||||
"recipe-finder": {
|
"recipe-finder": {
|
||||||
"recipe-finder": "Recipe Finder",
|
"recipe-finder": "Поиск рецептов",
|
||||||
"recipe-finder-description": "Search for recipes based on ingredients you have on hand. You can also filter by tools you have available, and set a maximum number of missing ingredients or tools.",
|
"recipe-finder-description": "Search for recipes based on ingredients you have on hand. You can also filter by tools you have available, and set a maximum number of missing ingredients or tools.",
|
||||||
"selected-ingredients": "Selected Ingredients",
|
"selected-ingredients": "Выбранные ингредиенты",
|
||||||
"no-ingredients-selected": "No ingredients selected",
|
"no-ingredients-selected": "No ingredients selected",
|
||||||
"missing": "Missing",
|
"missing": "Missing",
|
||||||
"no-recipes-found": "No recipes found",
|
"no-recipes-found": "Рецепты не найдены",
|
||||||
"no-recipes-found-description": "Try adding more ingredients to your search or adjusting your filters",
|
"no-recipes-found-description": "Try adding more ingredients to your search or adjusting your filters",
|
||||||
"include-ingredients-on-hand": "Include Ingredients On Hand",
|
"include-ingredients-on-hand": "Include Ingredients On Hand",
|
||||||
"include-tools-on-hand": "Include Tools On Hand",
|
"include-tools-on-hand": "Include Tools On Hand",
|
||||||
|
@ -881,10 +881,10 @@
|
||||||
"completed-on": "Выполнено в {date}",
|
"completed-on": "Выполнено в {date}",
|
||||||
"you-are-offline": "Вы не в сети",
|
"you-are-offline": "Вы не в сети",
|
||||||
"you-are-offline-description": "Not all features are available while offline. You can still add, modify, and remove items, but you will not be able to sync your changes to the server until you are back online.",
|
"you-are-offline-description": "Not all features are available while offline. You can still add, modify, and remove items, but you will not be able to sync your changes to the server until you are back online.",
|
||||||
"are-you-sure-you-want-to-check-all-items": "Are you sure you want to check all items?",
|
"are-you-sure-you-want-to-check-all-items": "Вы уверены, что хотите выбрать все элементы?",
|
||||||
"are-you-sure-you-want-to-uncheck-all-items": "Are you sure you want to uncheck all items?",
|
"are-you-sure-you-want-to-uncheck-all-items": "Are you sure you want to uncheck all items?",
|
||||||
"are-you-sure-you-want-to-delete-checked-items": "Are you sure you want to delete all checked items?",
|
"are-you-sure-you-want-to-delete-checked-items": "Are you sure you want to delete all checked items?",
|
||||||
"no-shopping-lists-found": "No Shopping Lists Found"
|
"no-shopping-lists-found": "Списки покупок не найдены"
|
||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"all-recipes": "Все рецепты",
|
"all-recipes": "Все рецепты",
|
||||||
|
@ -1286,17 +1286,17 @@
|
||||||
"restore-from-v1-backup": "Have a backup from a previous instance of Mealie v1? You can restore it here.",
|
"restore-from-v1-backup": "Have a backup from a previous instance of Mealie v1? You can restore it here.",
|
||||||
"manage-profile-or-get-invite-link": "Manage your own profile, or grab an invite link to share with others."
|
"manage-profile-or-get-invite-link": "Manage your own profile, or grab an invite link to share with others."
|
||||||
},
|
},
|
||||||
"debug-openai-services": "Debug OpenAI Services",
|
"debug-openai-services": "Отладка OpenAI сервисов",
|
||||||
"debug-openai-services-description": "Use this page to debug OpenAI services. You can test your OpenAI connection and see the results here. If you have image services enabled, you can also provide an image.",
|
"debug-openai-services-description": "Use this page to debug OpenAI services. You can test your OpenAI connection and see the results here. If you have image services enabled, you can also provide an image.",
|
||||||
"run-test": "Run Test",
|
"run-test": "Запустить тест",
|
||||||
"test-results": "Test Results",
|
"test-results": "Результаты тестов",
|
||||||
"group-delete-note": "Groups with users or households cannot be deleted",
|
"group-delete-note": "Groups with users or households cannot be deleted",
|
||||||
"household-delete-note": "Households with users cannot be deleted"
|
"household-delete-note": "Households with users cannot be deleted"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"welcome-user": "👋 Добро пожаловать, {0}!",
|
"welcome-user": "👋 Добро пожаловать, {0}!",
|
||||||
"description": "Управление настройками профиля, рецептов и группы.",
|
"description": "Управление настройками профиля, рецептов и группы.",
|
||||||
"invite-link": "Invite Link",
|
"invite-link": "Ссылка-приглашение",
|
||||||
"get-invite-link": "Получить ссылку для приглашения",
|
"get-invite-link": "Получить ссылку для приглашения",
|
||||||
"get-public-link": "Получить публичную ссылку",
|
"get-public-link": "Получить публичную ссылку",
|
||||||
"account-summary": "Cведения об учетной записи",
|
"account-summary": "Cведения об учетной записи",
|
||||||
|
|
|
@ -93,6 +93,12 @@ export interface GroupSummary {
|
||||||
slug: string;
|
slug: string;
|
||||||
preferences?: ReadGroupPreferences | null;
|
preferences?: ReadGroupPreferences | null;
|
||||||
}
|
}
|
||||||
|
export interface LongLiveTokenCreateResponse {
|
||||||
|
name: string;
|
||||||
|
id: number;
|
||||||
|
createdAt?: string | null;
|
||||||
|
token: string;
|
||||||
|
}
|
||||||
export interface LongLiveTokenIn {
|
export interface LongLiveTokenIn {
|
||||||
name: string;
|
name: string;
|
||||||
integrationId?: string;
|
integrationId?: string;
|
||||||
|
@ -130,7 +136,6 @@ export interface PrivateUser {
|
||||||
lockedAt?: string | null;
|
lockedAt?: string | null;
|
||||||
}
|
}
|
||||||
export interface LongLiveTokenOut {
|
export interface LongLiveTokenOut {
|
||||||
token: string;
|
|
||||||
name: string;
|
name: string;
|
||||||
id: number;
|
id: number;
|
||||||
createdAt?: string | null;
|
createdAt?: string | null;
|
||||||
|
|
|
@ -84,6 +84,7 @@ export type RecipeSearchQuery = {
|
||||||
page?: number;
|
page?: number;
|
||||||
perPage?: number;
|
perPage?: number;
|
||||||
orderBy?: string;
|
orderBy?: string;
|
||||||
|
orderByNullPosition?: "first" | "last";
|
||||||
|
|
||||||
_searchSeed?: string;
|
_searchSeed?: string;
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,18 +4,18 @@
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Reseptien nimien täytyy olla yksilöllisiä",
|
"unique-name-error": "Reseptien nimien täytyy olla yksilöllisiä",
|
||||||
"recipe-created": "Recipe Created",
|
"recipe-created": "Resepti luotu",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 kuppi jauhoja",
|
"ingredient-note": "1 kupillinen jauhoja",
|
||||||
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
"step-text": "Reseptin vaiheet sekä muut kentät reseptisivulla tukevat markdown-syntaksia.\n\n**Lisää linkki**\n\n[Oma linkki](https://demo.mealie.io)\n"
|
||||||
},
|
},
|
||||||
"servings-text": {
|
"servings-text": {
|
||||||
"makes": "Makes",
|
"makes": "Tekee",
|
||||||
"serves": "Serves",
|
"serves": "Annoksia",
|
||||||
"serving": "Serving",
|
"serving": "Annos",
|
||||||
"servings": "Servings",
|
"servings": "Annosta",
|
||||||
"yield": "Yield",
|
"yield": "Tuotto",
|
||||||
"yields": "Yields"
|
"yields": "Tuottaa"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
"user-updated": "Käyttäjä päivitetty",
|
"user-updated": "Käyttäjä päivitetty",
|
||||||
"password-updated": "Salasana päivitetty",
|
"password-updated": "Salasana päivitetty",
|
||||||
"invalid-current-password": "Nykyinen salasana ei kelpaa",
|
"invalid-current-password": "Nykyinen salasana ei kelpaa",
|
||||||
"ldap-update-password-unavailable": "Salasanaa ei voitu päivittää. Käyttäjä hallinnoi LDAP:ia."
|
"ldap-update-password-unavailable": "Salasanaa ei voitu päivittää, sillä käyttäjä on LDAP-hakemiston alainen"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"report-deleted": "Raportti poistettu."
|
"report-deleted": "Raportti poistettu."
|
||||||
|
@ -56,25 +56,25 @@
|
||||||
},
|
},
|
||||||
"emails": {
|
"emails": {
|
||||||
"password": {
|
"password": {
|
||||||
"subject": "Mealie Forgot Password",
|
"subject": "Mealie Unohtunut salasana",
|
||||||
"header_text": "Forgot Password",
|
"header_text": "Unohdin salasanan",
|
||||||
"message_top": "You have requested to reset your password.",
|
"message_top": "Olet pyytänyt salasanasi nollausta.",
|
||||||
"message_bottom": "Please click the button above to reset your password.",
|
"message_bottom": "Klikkaa yllä olevaa painiketta nollataksesi salasanasi.",
|
||||||
"button_text": "Reset Password"
|
"button_text": "Nollaa salasana"
|
||||||
},
|
},
|
||||||
"invitation": {
|
"invitation": {
|
||||||
"subject": "Invitation to join Mealie",
|
"subject": "Kutsu liittyä Mealieen",
|
||||||
"header_text": "You're Invited!",
|
"header_text": "Sinut on kutsuttu.",
|
||||||
"message_top": "You have been invited to join Mealie.",
|
"message_top": "Sinut on kutsuttu liittymään Mealieen.",
|
||||||
"message_bottom": "Please click the button above to accept the invitation.",
|
"message_bottom": "Ole hyvä ja klikkaa yllä olevaa painiketta hyväksyäksesi kutsun.",
|
||||||
"button_text": "Accept Invitation"
|
"button_text": "Hyväksy kutsu"
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"subject": "Mealie Test Email",
|
"subject": "Mealie Testiviesti",
|
||||||
"header_text": "Test Email",
|
"header_text": "Testiviesti",
|
||||||
"message_top": "This is a test email.",
|
"message_top": "Tämä on testiviesti.",
|
||||||
"message_bottom": "Please click the button above to test the email.",
|
"message_bottom": "Ole hyvä ja klikkaa yllä olevaa painiketta testataksesi sähköpostia.",
|
||||||
"button_text": "Open Mealie"
|
"button_text": "Avaa Mealie"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,18 +4,18 @@
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Les noms de recette doivent être uniques",
|
"unique-name-error": "Les noms de recette doivent être uniques",
|
||||||
"recipe-created": "Recipe Created",
|
"recipe-created": "Recette créée",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "100 g de farine",
|
"ingredient-note": "100 g de farine",
|
||||||
"step-text": "Les étapes de la recette ainsi que les autres champs de la page de recette supportent la syntaxe markdown.\n\n**Ajouter un lien**\n\n[Mon lien](https://demo.mealie.io)\n"
|
"step-text": "Les étapes de la recette ainsi que les autres champs de la page de recette supportent la syntaxe markdown.\n\n**Ajouter un lien**\n\n[Mon lien](https://demo.mealie.io)\n"
|
||||||
},
|
},
|
||||||
"servings-text": {
|
"servings-text": {
|
||||||
"makes": "Makes",
|
"makes": "Fait",
|
||||||
"serves": "Serves",
|
"serves": "Pour",
|
||||||
"serving": "Serving",
|
"serving": "Portion",
|
||||||
"servings": "Servings",
|
"servings": "Portions",
|
||||||
"yield": "Yield",
|
"yield": "Quantité",
|
||||||
"yields": "Yields"
|
"yields": "Produit"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
|
|
|
@ -4,18 +4,18 @@
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Les noms de recette doivent être uniques",
|
"unique-name-error": "Les noms de recette doivent être uniques",
|
||||||
"recipe-created": "Recipe Created",
|
"recipe-created": "Recette créée",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 tasse de Farine",
|
"ingredient-note": "1 tasse de Farine",
|
||||||
"step-text": "Les étapes de la recette ainsi que les autres champs de la page de recette supportent la syntaxe markdown.\n\n**Ajouter un lien**\n\n[Mon lien](https://demo.mealie.io)\n"
|
"step-text": "Les étapes de la recette ainsi que les autres champs de la page de recette supportent la syntaxe markdown.\n\n**Ajouter un lien**\n\n[Mon lien](https://demo.mealie.io)\n"
|
||||||
},
|
},
|
||||||
"servings-text": {
|
"servings-text": {
|
||||||
"makes": "Makes",
|
"makes": "Fait",
|
||||||
"serves": "Serves",
|
"serves": "Pour",
|
||||||
"serving": "Serving",
|
"serving": "Portion",
|
||||||
"servings": "Servings",
|
"servings": "Portions",
|
||||||
"yield": "Yield",
|
"yield": "Quantité",
|
||||||
"yields": "Yields"
|
"yields": "Produit"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Receptų pavadinimai turi būti unikalūs",
|
"unique-name-error": "Receptų pavadinimai turi būti unikalūs",
|
||||||
"recipe-created": "Recipe Created",
|
"recipe-created": "Receptas sukurtas",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 Cup Flour",
|
"ingredient-note": "1 Cup Flour",
|
||||||
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"makes": "Makes",
|
"makes": "Makes",
|
||||||
"serves": "Serves",
|
"serves": "Serves",
|
||||||
"serving": "Serving",
|
"serving": "Serving",
|
||||||
"servings": "Servings",
|
"servings": "Porcijos",
|
||||||
"yield": "Yield",
|
"yield": "Yield",
|
||||||
"yields": "Yields"
|
"yields": "Yields"
|
||||||
}
|
}
|
||||||
|
@ -46,13 +46,13 @@
|
||||||
"generic-deleted": "{name} ištrintas"
|
"generic-deleted": "{name} ištrintas"
|
||||||
},
|
},
|
||||||
"datetime": {
|
"datetime": {
|
||||||
"year": "year|years",
|
"year": "metai|metai",
|
||||||
"day": "day|days",
|
"day": "diena|dienos",
|
||||||
"hour": "hour|hours",
|
"hour": "valanda|valandos",
|
||||||
"minute": "minute|minutes",
|
"minute": "minutė|minutės",
|
||||||
"second": "second|seconds",
|
"second": "sekundė|sekundės",
|
||||||
"millisecond": "millisecond|milliseconds",
|
"millisecond": "milisekundė|milisekundės",
|
||||||
"microsecond": "microsecond|microseconds"
|
"microsecond": "mikrosekundė|mikrosekundės"
|
||||||
},
|
},
|
||||||
"emails": {
|
"emails": {
|
||||||
"password": {
|
"password": {
|
||||||
|
@ -67,12 +67,12 @@
|
||||||
"header_text": "You're Invited!",
|
"header_text": "You're Invited!",
|
||||||
"message_top": "You have been invited to join Mealie.",
|
"message_top": "You have been invited to join Mealie.",
|
||||||
"message_bottom": "Please click the button above to accept the invitation.",
|
"message_bottom": "Please click the button above to accept the invitation.",
|
||||||
"button_text": "Accept Invitation"
|
"button_text": "Priimti pakvietimą"
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"subject": "Mealie Test Email",
|
"subject": "Mealie Test Email",
|
||||||
"header_text": "Test Email",
|
"header_text": "Test Email",
|
||||||
"message_top": "This is a test email.",
|
"message_top": "Tai bandomasis el. laiškas.",
|
||||||
"message_bottom": "Please click the button above to test the email.",
|
"message_bottom": "Please click the button above to test the email.",
|
||||||
"button_text": "Open Mealie"
|
"button_text": "Open Mealie"
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Название рецепта должно быть уникальным",
|
"unique-name-error": "Название рецепта должно быть уникальным",
|
||||||
"recipe-created": "Recipe Created",
|
"recipe-created": "Рецепт создан",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 Чашка муки",
|
"ingredient-note": "1 Чашка муки",
|
||||||
"step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n"
|
"step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n"
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
"servings-text": {
|
"servings-text": {
|
||||||
"makes": "Makes",
|
"makes": "Makes",
|
||||||
"serves": "Serves",
|
"serves": "Serves",
|
||||||
"serving": "Serving",
|
"serving": "Порция",
|
||||||
"servings": "Servings",
|
"servings": "Порции",
|
||||||
"yield": "Yield",
|
"yield": "Yield",
|
||||||
"yields": "Yields"
|
"yields": "Yields"
|
||||||
}
|
}
|
||||||
|
|
|
@ -337,7 +337,7 @@
|
||||||
},
|
},
|
||||||
"jackfruit": {
|
"jackfruit": {
|
||||||
"name": "τζάκφρουτ",
|
"name": "τζάκφρουτ",
|
||||||
"plural_name": "jackfruits"
|
"plural_name": "τζάκφρουτ"
|
||||||
},
|
},
|
||||||
"jaggery": {
|
"jaggery": {
|
||||||
"name": "ζάχαρη jaggery"
|
"name": "ζάχαρη jaggery"
|
||||||
|
@ -364,7 +364,7 @@
|
||||||
"name": "κούμαρα"
|
"name": "κούμαρα"
|
||||||
},
|
},
|
||||||
"leavening-agents": {
|
"leavening-agents": {
|
||||||
"name": "leavening agents"
|
"name": "διογκωτικά"
|
||||||
},
|
},
|
||||||
"leek": {
|
"leek": {
|
||||||
"name": "πράσο",
|
"name": "πράσο",
|
||||||
|
|
|
@ -3,73 +3,73 @@
|
||||||
"name": "koristekurpitsa"
|
"name": "koristekurpitsa"
|
||||||
},
|
},
|
||||||
"alfalfa-sprouts": {
|
"alfalfa-sprouts": {
|
||||||
"name": "alfalfaidut"
|
"name": "alfalfaituja"
|
||||||
},
|
},
|
||||||
"anchovies": {
|
"anchovies": {
|
||||||
"name": "anjovikset"
|
"name": "anjoviksia"
|
||||||
},
|
},
|
||||||
"apples": {
|
"apples": {
|
||||||
"name": "omenat",
|
"name": "omenat",
|
||||||
"plural_name": "apples"
|
"plural_name": "omenaa"
|
||||||
},
|
},
|
||||||
"artichoke": {
|
"artichoke": {
|
||||||
"name": "artisokka"
|
"name": "artisokkaa"
|
||||||
},
|
},
|
||||||
"arugula": {
|
"arugula": {
|
||||||
"name": "rukola"
|
"name": "rukola"
|
||||||
},
|
},
|
||||||
"asparagus": {
|
"asparagus": {
|
||||||
"name": "parsa"
|
"name": "parsaa"
|
||||||
},
|
},
|
||||||
"avocado": {
|
"avocado": {
|
||||||
"name": "avokado",
|
"name": "avokado",
|
||||||
"plural_name": "avocado"
|
"plural_name": "avokadoa"
|
||||||
},
|
},
|
||||||
"bacon": {
|
"bacon": {
|
||||||
"name": "pekoni"
|
"name": "pekonia"
|
||||||
},
|
},
|
||||||
"baking-powder": {
|
"baking-powder": {
|
||||||
"name": "leivinjauhe"
|
"name": "leivinjauhetta"
|
||||||
},
|
},
|
||||||
"baking-soda": {
|
"baking-soda": {
|
||||||
"name": "ruokasooda"
|
"name": "ruokasoodaa"
|
||||||
},
|
},
|
||||||
"baking-sugar": {
|
"baking-sugar": {
|
||||||
"name": "leivontasokeri"
|
"name": "leivontasokeria"
|
||||||
},
|
},
|
||||||
"bar-sugar": {
|
"bar-sugar": {
|
||||||
"name": "sirosokeri"
|
"name": "sirosokeri"
|
||||||
},
|
},
|
||||||
"basil": {
|
"basil": {
|
||||||
"name": "basilika"
|
"name": "basilikaa"
|
||||||
},
|
},
|
||||||
"beans": {
|
"beans": {
|
||||||
"name": "pavut"
|
"name": "pavut"
|
||||||
},
|
},
|
||||||
"bell-peppers": {
|
"bell-peppers": {
|
||||||
"name": "paprika",
|
"name": "paprika",
|
||||||
"plural_name": "bell peppers"
|
"plural_name": "paprikaa"
|
||||||
},
|
},
|
||||||
"blackberries": {
|
"blackberries": {
|
||||||
"name": "karhunvatukat"
|
"name": "karhunvatukoita"
|
||||||
},
|
},
|
||||||
"bok-choy": {
|
"bok-choy": {
|
||||||
"name": "paksoi"
|
"name": "paksoita"
|
||||||
},
|
},
|
||||||
"brassicas": {
|
"brassicas": {
|
||||||
"name": "kaalit"
|
"name": "kaalit"
|
||||||
},
|
},
|
||||||
"bread": {
|
"bread": {
|
||||||
"name": "leipä"
|
"name": "leipää"
|
||||||
},
|
},
|
||||||
"breadfruit": {
|
"breadfruit": {
|
||||||
"name": "leipäpuun hedelmä"
|
"name": "leipäpuun hedelmää"
|
||||||
},
|
},
|
||||||
"broccoflower": {
|
"broccoflower": {
|
||||||
"name": "parsakukkakaali"
|
"name": "parsakukkakaali"
|
||||||
},
|
},
|
||||||
"broccoli": {
|
"broccoli": {
|
||||||
"name": "parsakaali"
|
"name": "parsakaalia"
|
||||||
},
|
},
|
||||||
"broccoli-rabe": {
|
"broccoli-rabe": {
|
||||||
"name": "varsiparsakaali"
|
"name": "varsiparsakaali"
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
"name": "broccolini"
|
"name": "broccolini"
|
||||||
},
|
},
|
||||||
"brown-sugar": {
|
"brown-sugar": {
|
||||||
"name": "fariinisokeri"
|
"name": "fariinisokeria"
|
||||||
},
|
},
|
||||||
"brussels-sprouts": {
|
"brussels-sprouts": {
|
||||||
"name": "ruusukaalit"
|
"name": "ruusukaalit"
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
},
|
},
|
||||||
"cabbage": {
|
"cabbage": {
|
||||||
"name": "kaali",
|
"name": "kaali",
|
||||||
"plural_name": "cabbages"
|
"plural_name": "kaalia"
|
||||||
},
|
},
|
||||||
"cactus-edible": {
|
"cactus-edible": {
|
||||||
"name": "kaktus, syötävä"
|
"name": "kaktus, syötävä"
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
},
|
},
|
||||||
"carrot": {
|
"carrot": {
|
||||||
"name": "porkkana",
|
"name": "porkkana",
|
||||||
"plural_name": "carrots"
|
"plural_name": "porkkanaa"
|
||||||
},
|
},
|
||||||
"caster-sugar": {
|
"caster-sugar": {
|
||||||
"name": "castersokeri"
|
"name": "castersokeri"
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
},
|
},
|
||||||
"cauliflower": {
|
"cauliflower": {
|
||||||
"name": "kukkakaali",
|
"name": "kukkakaali",
|
||||||
"plural_name": "cauliflowers"
|
"plural_name": "kukkakaalia"
|
||||||
},
|
},
|
||||||
"cayenne-pepper": {
|
"cayenne-pepper": {
|
||||||
"name": "cayenne-pippuri"
|
"name": "cayenne-pippuri"
|
||||||
|
@ -154,7 +154,7 @@
|
||||||
},
|
},
|
||||||
"chilli-peppers": {
|
"chilli-peppers": {
|
||||||
"name": "chilipaprikat",
|
"name": "chilipaprikat",
|
||||||
"plural_name": "chilli peppers"
|
"plural_name": "chilipippuria"
|
||||||
},
|
},
|
||||||
"chinese-leaves": {
|
"chinese-leaves": {
|
||||||
"name": "kiinankaali"
|
"name": "kiinankaali"
|
||||||
|
@ -176,7 +176,7 @@
|
||||||
},
|
},
|
||||||
"coconut": {
|
"coconut": {
|
||||||
"name": "kookospähkinä",
|
"name": "kookospähkinä",
|
||||||
"plural_name": "coconuts"
|
"plural_name": "kookospähkinää"
|
||||||
},
|
},
|
||||||
"coconut-milk": {
|
"coconut-milk": {
|
||||||
"name": "kookosmaito"
|
"name": "kookosmaito"
|
||||||
|
@ -198,7 +198,7 @@
|
||||||
},
|
},
|
||||||
"corn": {
|
"corn": {
|
||||||
"name": "maissi",
|
"name": "maissi",
|
||||||
"plural_name": "corns"
|
"plural_name": "maissia"
|
||||||
},
|
},
|
||||||
"corn-syrup": {
|
"corn-syrup": {
|
||||||
"name": "maissisiirappi"
|
"name": "maissisiirappi"
|
||||||
|
@ -214,7 +214,7 @@
|
||||||
},
|
},
|
||||||
"cucumber": {
|
"cucumber": {
|
||||||
"name": "kurkku",
|
"name": "kurkku",
|
||||||
"plural_name": "cucumbers"
|
"plural_name": "kurkkua"
|
||||||
},
|
},
|
||||||
"cumin": {
|
"cumin": {
|
||||||
"name": "kumina"
|
"name": "kumina"
|
||||||
|
@ -240,15 +240,15 @@
|
||||||
},
|
},
|
||||||
"eggplant": {
|
"eggplant": {
|
||||||
"name": "munakoiso",
|
"name": "munakoiso",
|
||||||
"plural_name": "eggplants"
|
"plural_name": "munakoisoa"
|
||||||
},
|
},
|
||||||
"eggs": {
|
"eggs": {
|
||||||
"name": "munat",
|
"name": "munat",
|
||||||
"plural_name": "eggs"
|
"plural_name": "kananmunaa"
|
||||||
},
|
},
|
||||||
"endive": {
|
"endive": {
|
||||||
"name": "endiivit",
|
"name": "endiivit",
|
||||||
"plural_name": "endives"
|
"plural_name": "endiiviä"
|
||||||
},
|
},
|
||||||
"fats": {
|
"fats": {
|
||||||
"name": "rasvat"
|
"name": "rasvat"
|
||||||
|
@ -292,7 +292,7 @@
|
||||||
},
|
},
|
||||||
"garlic": {
|
"garlic": {
|
||||||
"name": "valkosipuli",
|
"name": "valkosipuli",
|
||||||
"plural_name": "garlics"
|
"plural_name": "valkosipuleja"
|
||||||
},
|
},
|
||||||
"gem-squash": {
|
"gem-squash": {
|
||||||
"name": "kurpitsa"
|
"name": "kurpitsa"
|
||||||
|
@ -317,7 +317,7 @@
|
||||||
},
|
},
|
||||||
"green-onion": {
|
"green-onion": {
|
||||||
"name": "vihreä sipuli",
|
"name": "vihreä sipuli",
|
||||||
"plural_name": "green onions"
|
"plural_name": "vihreää sipulia"
|
||||||
},
|
},
|
||||||
"heart-of-palm": {
|
"heart-of-palm": {
|
||||||
"name": "palmun sydän",
|
"name": "palmun sydän",
|
||||||
|
@ -337,7 +337,7 @@
|
||||||
},
|
},
|
||||||
"jackfruit": {
|
"jackfruit": {
|
||||||
"name": "jakkihedelmä",
|
"name": "jakkihedelmä",
|
||||||
"plural_name": "jackfruits"
|
"plural_name": "jakkihedelmää"
|
||||||
},
|
},
|
||||||
"jaggery": {
|
"jaggery": {
|
||||||
"name": "raakasokeri"
|
"name": "raakasokeri"
|
||||||
|
@ -368,7 +368,7 @@
|
||||||
},
|
},
|
||||||
"leek": {
|
"leek": {
|
||||||
"name": "purjo",
|
"name": "purjo",
|
||||||
"plural_name": "leeks"
|
"plural_name": "purjoa"
|
||||||
},
|
},
|
||||||
"legumes": {
|
"legumes": {
|
||||||
"name": "palkokasvit"
|
"name": "palkokasvit"
|
||||||
|
@ -384,7 +384,7 @@
|
||||||
},
|
},
|
||||||
"liver": {
|
"liver": {
|
||||||
"name": "maksa",
|
"name": "maksa",
|
||||||
"plural_name": "livers"
|
"plural_name": "maksaa"
|
||||||
},
|
},
|
||||||
"maize": {
|
"maize": {
|
||||||
"name": "maissi"
|
"name": "maissi"
|
||||||
|
@ -403,7 +403,7 @@
|
||||||
},
|
},
|
||||||
"mushroom": {
|
"mushroom": {
|
||||||
"name": "sieni",
|
"name": "sieni",
|
||||||
"plural_name": "mushrooms"
|
"plural_name": "sientä"
|
||||||
},
|
},
|
||||||
"mussels": {
|
"mussels": {
|
||||||
"name": "sinisimpukka"
|
"name": "sinisimpukka"
|
||||||
|
@ -425,13 +425,13 @@
|
||||||
},
|
},
|
||||||
"octopuses": {
|
"octopuses": {
|
||||||
"name": "mustekalat",
|
"name": "mustekalat",
|
||||||
"plural_name": "octopuses"
|
"plural_name": "mustekalaa"
|
||||||
},
|
},
|
||||||
"oils": {
|
"oils": {
|
||||||
"name": "öljyt"
|
"name": "öljyt"
|
||||||
},
|
},
|
||||||
"okra": {
|
"okra": {
|
||||||
"name": "okra"
|
"name": "okraa"
|
||||||
},
|
},
|
||||||
"olive": {
|
"olive": {
|
||||||
"name": "oliivi"
|
"name": "oliivi"
|
||||||
|
@ -450,10 +450,10 @@
|
||||||
},
|
},
|
||||||
"oranges": {
|
"oranges": {
|
||||||
"name": "appelsiinit",
|
"name": "appelsiinit",
|
||||||
"plural_name": "oranges"
|
"plural_name": "appelsiinia"
|
||||||
},
|
},
|
||||||
"oregano": {
|
"oregano": {
|
||||||
"name": "oregano"
|
"name": "oreganoa"
|
||||||
},
|
},
|
||||||
"oysters": {
|
"oysters": {
|
||||||
"name": "osterit"
|
"name": "osterit"
|
||||||
|
@ -462,40 +462,40 @@
|
||||||
"name": "panch puran"
|
"name": "panch puran"
|
||||||
},
|
},
|
||||||
"paprika": {
|
"paprika": {
|
||||||
"name": "paprika"
|
"name": "paprikajauhetta"
|
||||||
},
|
},
|
||||||
"parsley": {
|
"parsley": {
|
||||||
"name": "persilja"
|
"name": "persilja"
|
||||||
},
|
},
|
||||||
"parsnip": {
|
"parsnip": {
|
||||||
"name": "palsternakka",
|
"name": "palsternakka",
|
||||||
"plural_name": "parsnips"
|
"plural_name": "palsternakkaa"
|
||||||
},
|
},
|
||||||
"pear": {
|
"pear": {
|
||||||
"name": "päärynä",
|
"name": "päärynä",
|
||||||
"plural_name": "pears"
|
"plural_name": "päärynää"
|
||||||
},
|
},
|
||||||
"peas": {
|
"peas": {
|
||||||
"name": "herneet"
|
"name": "herneet"
|
||||||
},
|
},
|
||||||
"pepper": {
|
"pepper": {
|
||||||
"name": "pippuri",
|
"name": "pippuri",
|
||||||
"plural_name": "peppers"
|
"plural_name": "pippuria"
|
||||||
},
|
},
|
||||||
"pineapple": {
|
"pineapple": {
|
||||||
"name": "ananas",
|
"name": "ananas",
|
||||||
"plural_name": "pineapples"
|
"plural_name": "ananasta"
|
||||||
},
|
},
|
||||||
"plantain": {
|
"plantain": {
|
||||||
"name": "keittobanaani",
|
"name": "keittobanaani",
|
||||||
"plural_name": "plantains"
|
"plural_name": "keittobanaania"
|
||||||
},
|
},
|
||||||
"poppy-seeds": {
|
"poppy-seeds": {
|
||||||
"name": "unikonsiemenet"
|
"name": "unikonsiemenet"
|
||||||
},
|
},
|
||||||
"potato": {
|
"potato": {
|
||||||
"name": "peruna",
|
"name": "peruna",
|
||||||
"plural_name": "potatoes"
|
"plural_name": "perunaa"
|
||||||
},
|
},
|
||||||
"poultry": {
|
"poultry": {
|
||||||
"name": "siipikarja"
|
"name": "siipikarja"
|
||||||
|
@ -505,14 +505,14 @@
|
||||||
},
|
},
|
||||||
"pumpkin": {
|
"pumpkin": {
|
||||||
"name": "kurpitsa",
|
"name": "kurpitsa",
|
||||||
"plural_name": "pumpkins"
|
"plural_name": "kurpitsaa"
|
||||||
},
|
},
|
||||||
"pumpkin-seeds": {
|
"pumpkin-seeds": {
|
||||||
"name": "kurpitsansiemen"
|
"name": "kurpitsansiemen"
|
||||||
},
|
},
|
||||||
"radish": {
|
"radish": {
|
||||||
"name": "retiisi",
|
"name": "retiisi",
|
||||||
"plural_name": "radishes"
|
"plural_name": "retiisiä"
|
||||||
},
|
},
|
||||||
"raw-sugar": {
|
"raw-sugar": {
|
||||||
"name": "raakasokeri"
|
"name": "raakasokeri"
|
||||||
|
@ -543,7 +543,7 @@
|
||||||
},
|
},
|
||||||
"scallion": {
|
"scallion": {
|
||||||
"name": "vihersipuli",
|
"name": "vihersipuli",
|
||||||
"plural_name": "scallions"
|
"plural_name": "kevätsipulia"
|
||||||
},
|
},
|
||||||
"seafood": {
|
"seafood": {
|
||||||
"name": "merenelävät"
|
"name": "merenelävät"
|
||||||
|
@ -556,7 +556,7 @@
|
||||||
},
|
},
|
||||||
"shallot": {
|
"shallot": {
|
||||||
"name": "salottisipuli",
|
"name": "salottisipuli",
|
||||||
"plural_name": "shallots"
|
"plural_name": "salottisipulia"
|
||||||
},
|
},
|
||||||
"skate": {
|
"skate": {
|
||||||
"name": "skate-kala"
|
"name": "skate-kala"
|
||||||
|
@ -585,7 +585,7 @@
|
||||||
},
|
},
|
||||||
"spring-onion": {
|
"spring-onion": {
|
||||||
"name": "kevätsipuli",
|
"name": "kevätsipuli",
|
||||||
"plural_name": "spring onions"
|
"plural_name": "kevätsipulia"
|
||||||
},
|
},
|
||||||
"squash": {
|
"squash": {
|
||||||
"name": "kurpitsa",
|
"name": "kurpitsa",
|
||||||
|
@ -602,7 +602,7 @@
|
||||||
},
|
},
|
||||||
"sunchoke": {
|
"sunchoke": {
|
||||||
"name": "maa-artisokka",
|
"name": "maa-artisokka",
|
||||||
"plural_name": "sunchokes"
|
"plural_name": "maa-artisokkaa"
|
||||||
},
|
},
|
||||||
"sunflower-seeds": {
|
"sunflower-seeds": {
|
||||||
"name": "auringonkukansiemenet"
|
"name": "auringonkukansiemenet"
|
||||||
|
@ -612,35 +612,35 @@
|
||||||
},
|
},
|
||||||
"sweet-potato": {
|
"sweet-potato": {
|
||||||
"name": "bataatti",
|
"name": "bataatti",
|
||||||
"plural_name": "sweet potatoes"
|
"plural_name": "bataattia"
|
||||||
},
|
},
|
||||||
"sweetcorn": {
|
"sweetcorn": {
|
||||||
"name": "maissi",
|
"name": "maissi",
|
||||||
"plural_name": "sweetcorns"
|
"plural_name": "sokerimaissia"
|
||||||
},
|
},
|
||||||
"sweeteners": {
|
"sweeteners": {
|
||||||
"name": "makeutusaineet"
|
"name": "makeutusaineet"
|
||||||
},
|
},
|
||||||
"tahini": {
|
"tahini": {
|
||||||
"name": "tahini"
|
"name": "tahinia"
|
||||||
},
|
},
|
||||||
"taro": {
|
"taro": {
|
||||||
"name": "taaro",
|
"name": "taaro",
|
||||||
"plural_name": "taroes"
|
"plural_name": "taaroa"
|
||||||
},
|
},
|
||||||
"teff": {
|
"teff": {
|
||||||
"name": "teff"
|
"name": "teff"
|
||||||
},
|
},
|
||||||
"tomato": {
|
"tomato": {
|
||||||
"name": "tomaatti",
|
"name": "tomaatti",
|
||||||
"plural_name": "tomatoes"
|
"plural_name": "tomaattia"
|
||||||
},
|
},
|
||||||
"trout": {
|
"trout": {
|
||||||
"name": "taimen"
|
"name": "taimen"
|
||||||
},
|
},
|
||||||
"tubers": {
|
"tubers": {
|
||||||
"name": "mukulat",
|
"name": "mukulat",
|
||||||
"plural_name": "tubers"
|
"plural_name": "mukulaa"
|
||||||
},
|
},
|
||||||
"tuna": {
|
"tuna": {
|
||||||
"name": "tonnikala"
|
"name": "tonnikala"
|
||||||
|
@ -650,7 +650,7 @@
|
||||||
},
|
},
|
||||||
"turnip": {
|
"turnip": {
|
||||||
"name": "nauris",
|
"name": "nauris",
|
||||||
"plural_name": "turnips"
|
"plural_name": "naurista"
|
||||||
},
|
},
|
||||||
"unrefined-sugar": {
|
"unrefined-sugar": {
|
||||||
"name": "puhdistamaton sokeri"
|
"name": "puhdistamaton sokeri"
|
||||||
|
@ -666,11 +666,11 @@
|
||||||
},
|
},
|
||||||
"watermelon": {
|
"watermelon": {
|
||||||
"name": "vesimeloni",
|
"name": "vesimeloni",
|
||||||
"plural_name": "watermelons"
|
"plural_name": "vesimelonia"
|
||||||
},
|
},
|
||||||
"white-mushroom": {
|
"white-mushroom": {
|
||||||
"name": "herkkusieni",
|
"name": "herkkusieni",
|
||||||
"plural_name": "white mushrooms"
|
"plural_name": "herkkusientä"
|
||||||
},
|
},
|
||||||
"white-sugar": {
|
"white-sugar": {
|
||||||
"name": "valkoinen sokeri"
|
"name": "valkoinen sokeri"
|
||||||
|
@ -680,13 +680,13 @@
|
||||||
},
|
},
|
||||||
"yam": {
|
"yam": {
|
||||||
"name": "hillo",
|
"name": "hillo",
|
||||||
"plural_name": "yams"
|
"plural_name": "jamssia"
|
||||||
},
|
},
|
||||||
"yeast": {
|
"yeast": {
|
||||||
"name": "hiiva"
|
"name": "hiiva"
|
||||||
},
|
},
|
||||||
"zucchini": {
|
"zucchini": {
|
||||||
"name": "kesäkurpitsa",
|
"name": "kesäkurpitsa",
|
||||||
"plural_name": "zucchinis"
|
"plural_name": "kesäkurpitsaa"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -54,7 +54,7 @@
|
||||||
"name": "mûres"
|
"name": "mûres"
|
||||||
},
|
},
|
||||||
"bok-choy": {
|
"bok-choy": {
|
||||||
"name": "bok choy"
|
"name": "pakchoï"
|
||||||
},
|
},
|
||||||
"brassicas": {
|
"brassicas": {
|
||||||
"name": "crucifères"
|
"name": "crucifères"
|
||||||
|
@ -100,7 +100,7 @@
|
||||||
"name": "cactus, comestible"
|
"name": "cactus, comestible"
|
||||||
},
|
},
|
||||||
"calabrese": {
|
"calabrese": {
|
||||||
"name": "calabrese"
|
"name": "brocoli calabrese"
|
||||||
},
|
},
|
||||||
"cane-sugar": {
|
"cane-sugar": {
|
||||||
"name": "sucre de canne"
|
"name": "sucre de canne"
|
||||||
|
|
|
@ -221,7 +221,7 @@
|
||||||
},
|
},
|
||||||
"daikon": {
|
"daikon": {
|
||||||
"name": "rzodkiew japońska",
|
"name": "rzodkiew japońska",
|
||||||
"plural_name": "daikons"
|
"plural_name": "rzodkwie japońskie"
|
||||||
},
|
},
|
||||||
"dairy-products-and-dairy-substitutes": {
|
"dairy-products-and-dairy-substitutes": {
|
||||||
"name": "przetwory i substytuty mleczne"
|
"name": "przetwory i substytuty mleczne"
|
||||||
|
@ -321,7 +321,7 @@
|
||||||
},
|
},
|
||||||
"heart-of-palm": {
|
"heart-of-palm": {
|
||||||
"name": "serce palmy",
|
"name": "serce palmy",
|
||||||
"plural_name": "heart of palms"
|
"plural_name": "serca palm"
|
||||||
},
|
},
|
||||||
"hemp": {
|
"hemp": {
|
||||||
"name": "konopia"
|
"name": "konopia"
|
||||||
|
|
|
@ -261,7 +261,7 @@
|
||||||
},
|
},
|
||||||
"fiddlehead-fern": {
|
"fiddlehead-fern": {
|
||||||
"name": "побеги папоротника",
|
"name": "побеги папоротника",
|
||||||
"plural_name": "fiddlehead ferns"
|
"plural_name": "побеги папоротника"
|
||||||
},
|
},
|
||||||
"fish": {
|
"fish": {
|
||||||
"name": "рыба"
|
"name": "рыба"
|
||||||
|
@ -337,7 +337,7 @@
|
||||||
},
|
},
|
||||||
"jackfruit": {
|
"jackfruit": {
|
||||||
"name": "джекфрут",
|
"name": "джекфрут",
|
||||||
"plural_name": "jackfruits"
|
"plural_name": "джекфрут"
|
||||||
},
|
},
|
||||||
"jaggery": {
|
"jaggery": {
|
||||||
"name": "джаггери"
|
"name": "джаггери"
|
||||||
|
@ -469,7 +469,7 @@
|
||||||
},
|
},
|
||||||
"parsnip": {
|
"parsnip": {
|
||||||
"name": "пастернак",
|
"name": "пастернак",
|
||||||
"plural_name": "parsnips"
|
"plural_name": "пастернак"
|
||||||
},
|
},
|
||||||
"pear": {
|
"pear": {
|
||||||
"name": "груша",
|
"name": "груша",
|
||||||
|
@ -512,7 +512,7 @@
|
||||||
},
|
},
|
||||||
"radish": {
|
"radish": {
|
||||||
"name": "редис",
|
"name": "редис",
|
||||||
"plural_name": "radishes"
|
"plural_name": "редис"
|
||||||
},
|
},
|
||||||
"raw-sugar": {
|
"raw-sugar": {
|
||||||
"name": "нерафинированный сахар"
|
"name": "нерафинированный сахар"
|
||||||
|
@ -585,11 +585,11 @@
|
||||||
},
|
},
|
||||||
"spring-onion": {
|
"spring-onion": {
|
||||||
"name": "зелёный лук",
|
"name": "зелёный лук",
|
||||||
"plural_name": "spring onions"
|
"plural_name": "зелёный лук"
|
||||||
},
|
},
|
||||||
"squash": {
|
"squash": {
|
||||||
"name": "тыква",
|
"name": "тыква",
|
||||||
"plural_name": "squashes"
|
"plural_name": "кабачки"
|
||||||
},
|
},
|
||||||
"squash-family": {
|
"squash-family": {
|
||||||
"name": "тыквы"
|
"name": "тыквы"
|
||||||
|
@ -640,7 +640,7 @@
|
||||||
},
|
},
|
||||||
"tubers": {
|
"tubers": {
|
||||||
"name": "клубни",
|
"name": "клубни",
|
||||||
"plural_name": "tubers"
|
"plural_name": "клубни"
|
||||||
},
|
},
|
||||||
"tuna": {
|
"tuna": {
|
||||||
"name": "тунец"
|
"name": "тунец"
|
||||||
|
@ -650,7 +650,7 @@
|
||||||
},
|
},
|
||||||
"turnip": {
|
"turnip": {
|
||||||
"name": "репа",
|
"name": "репа",
|
||||||
"plural_name": "turnips"
|
"plural_name": "репа"
|
||||||
},
|
},
|
||||||
"unrefined-sugar": {
|
"unrefined-sugar": {
|
||||||
"name": "нерафинированный сахар"
|
"name": "нерафинированный сахар"
|
||||||
|
@ -666,7 +666,7 @@
|
||||||
},
|
},
|
||||||
"watermelon": {
|
"watermelon": {
|
||||||
"name": "арбуз",
|
"name": "арбуз",
|
||||||
"plural_name": "watermelons"
|
"plural_name": "арбузы"
|
||||||
},
|
},
|
||||||
"white-mushroom": {
|
"white-mushroom": {
|
||||||
"name": "белый гриб",
|
"name": "белый гриб",
|
||||||
|
@ -687,6 +687,6 @@
|
||||||
},
|
},
|
||||||
"zucchini": {
|
"zucchini": {
|
||||||
"name": "цуккини",
|
"name": "цуккини",
|
||||||
"plural_name": "zucchinis"
|
"plural_name": "цуккини"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Tuote"
|
"name": "HeVi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Vilja"
|
"name": "Viljat"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Hedelmät"
|
"name": "Hedelmät"
|
||||||
|
@ -21,16 +21,16 @@
|
||||||
"name": "Juomat"
|
"name": "Juomat"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Paistetut"
|
"name": "Leivonnaiset"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Tölkitetyt"
|
"name": "Säilykkeet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mausteet"
|
"name": "Maustekastikkeet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Makeiset"
|
"name": "Konditoriatuotteet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Maitotuotteet"
|
"name": "Maitotuotteet"
|
||||||
|
@ -39,16 +39,16 @@
|
||||||
"name": "Pakasteet"
|
"name": "Pakasteet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Terveelliset"
|
"name": "Terveysruoka"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Kotitaloudet"
|
"name": "Kotitalous"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Lihatuotteet"
|
"name": "Lihatuotteet"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Pienpurtavat"
|
"name": "Välipalat"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mausteet"
|
"name": "Mausteet"
|
||||||
|
|
|
@ -1,140 +1,140 @@
|
||||||
{
|
{
|
||||||
"teaspoon": {
|
"teaspoon": {
|
||||||
"name": "teelusikka",
|
"name": "teelusikallinen",
|
||||||
"plural_name": "teaspoons",
|
"plural_name": "teelusikallista",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "tl"
|
"abbreviation": "tl"
|
||||||
},
|
},
|
||||||
"tablespoon": {
|
"tablespoon": {
|
||||||
"name": "ruokalusikka",
|
"name": "ruokalusikallinen",
|
||||||
"plural_name": "tablespoons",
|
"plural_name": "ruokalusikallista",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "rkl"
|
"abbreviation": "rkl"
|
||||||
},
|
},
|
||||||
"cup": {
|
"cup": {
|
||||||
"name": "kuppi",
|
"name": "kupillinen",
|
||||||
"plural_name": "cups",
|
"plural_name": "kupillista",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "c"
|
"abbreviation": "k"
|
||||||
},
|
},
|
||||||
"fluid-ounce": {
|
"fluid-ounce": {
|
||||||
"name": "nesteunssi",
|
"name": "nesteunssi",
|
||||||
"plural_name": "fluid ounces",
|
"plural_name": "nesteunssia",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "fl oz"
|
"abbreviation": "fl oz"
|
||||||
},
|
},
|
||||||
"pint": {
|
"pint": {
|
||||||
"name": "tuoppi",
|
"name": "pintti",
|
||||||
"plural_name": "pints",
|
"plural_name": "pinttiä",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "pt"
|
"abbreviation": "pt"
|
||||||
},
|
},
|
||||||
"quart": {
|
"quart": {
|
||||||
"name": "kvartti",
|
"name": "vartti",
|
||||||
"plural_name": "quarts",
|
"plural_name": "varttia",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "qt"
|
"abbreviation": "qt"
|
||||||
},
|
},
|
||||||
"gallon": {
|
"gallon": {
|
||||||
"name": "gallona",
|
"name": "gallona",
|
||||||
"plural_name": "gallons",
|
"plural_name": "gallonaa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "gal"
|
"abbreviation": "gal"
|
||||||
},
|
},
|
||||||
"milliliter": {
|
"milliliter": {
|
||||||
"name": "millilitra",
|
"name": "millilitra",
|
||||||
"plural_name": "milliliters",
|
"plural_name": "millilitraa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "ml"
|
"abbreviation": "ml"
|
||||||
},
|
},
|
||||||
"liter": {
|
"liter": {
|
||||||
"name": "litra",
|
"name": "litra",
|
||||||
"plural_name": "liters",
|
"plural_name": "litraa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "l"
|
"abbreviation": "l"
|
||||||
},
|
},
|
||||||
"pound": {
|
"pound": {
|
||||||
"name": "pauna",
|
"name": "pauna",
|
||||||
"plural_name": "pounds",
|
"plural_name": "paunaa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "lb",
|
"abbreviation": "lb",
|
||||||
"plural_abbreviation": "lbs"
|
"plural_abbreviation": "lbs"
|
||||||
},
|
},
|
||||||
"ounce": {
|
"ounce": {
|
||||||
"name": "unssi",
|
"name": "unssi",
|
||||||
"plural_name": "ounces",
|
"plural_name": "unssia",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "oz"
|
"abbreviation": "oz"
|
||||||
},
|
},
|
||||||
"gram": {
|
"gram": {
|
||||||
"name": "gramma",
|
"name": "gramma",
|
||||||
"plural_name": "grams",
|
"plural_name": "grammaa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "g"
|
"abbreviation": "g"
|
||||||
},
|
},
|
||||||
"kilogram": {
|
"kilogram": {
|
||||||
"name": "kilogramma",
|
"name": "kilogramma",
|
||||||
"plural_name": "kilograms",
|
"plural_name": "kilogrammaa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "kg"
|
"abbreviation": "kg"
|
||||||
},
|
},
|
||||||
"milligram": {
|
"milligram": {
|
||||||
"name": "milligramma",
|
"name": "milligramma",
|
||||||
"plural_name": "milligrams",
|
"plural_name": "milligrammaa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "mg"
|
"abbreviation": "mg"
|
||||||
},
|
},
|
||||||
"splash": {
|
"splash": {
|
||||||
"name": "tilkka",
|
"name": "tilkka",
|
||||||
"plural_name": "splashes",
|
"plural_name": "tilkkaa",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"dash": {
|
"dash": {
|
||||||
"name": "ripaus",
|
"name": "ripaus",
|
||||||
"plural_name": "dashes",
|
"plural_name": "ripausta",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"serving": {
|
"serving": {
|
||||||
"name": "annos",
|
"name": "annos",
|
||||||
"plural_name": "servings",
|
"plural_name": "annosta",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"head": {
|
"head": {
|
||||||
"name": "pää",
|
"name": "pää",
|
||||||
"plural_name": "heads",
|
"plural_name": "päätä",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"clove": {
|
"clove": {
|
||||||
"name": "kynsi",
|
"name": "kynsi",
|
||||||
"plural_name": "cloves",
|
"plural_name": "kynttä",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"can": {
|
"can": {
|
||||||
"name": "tölkki",
|
"name": "tölkillinen",
|
||||||
"plural_name": "cans",
|
"plural_name": "tölkillistä",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"bunch": {
|
"bunch": {
|
||||||
"name": "bunch",
|
"name": "nippu",
|
||||||
"plural_name": "bunches",
|
"plural_name": "nippua",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"pack": {
|
"pack": {
|
||||||
"name": "pack",
|
"name": "pakkaus",
|
||||||
"plural_name": "packs",
|
"plural_name": "pakkausta",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
"pinch": {
|
"pinch": {
|
||||||
"name": "pinch",
|
"name": "hyppysellinen",
|
||||||
"plural_name": "pinches",
|
"plural_name": "hyppysellistä",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
},
|
},
|
||||||
"liter": {
|
"liter": {
|
||||||
"name": "litras",
|
"name": "litras",
|
||||||
"plural_name": "liters",
|
"plural_name": "litrų",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "l"
|
"abbreviation": "l"
|
||||||
},
|
},
|
||||||
|
@ -68,19 +68,19 @@
|
||||||
},
|
},
|
||||||
"gram": {
|
"gram": {
|
||||||
"name": "gramas",
|
"name": "gramas",
|
||||||
"plural_name": "grams",
|
"plural_name": "gramų",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "g"
|
"abbreviation": "g"
|
||||||
},
|
},
|
||||||
"kilogram": {
|
"kilogram": {
|
||||||
"name": "kilogramas",
|
"name": "kilogramas",
|
||||||
"plural_name": "kilograms",
|
"plural_name": "kilogramų",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "kg"
|
"abbreviation": "kg"
|
||||||
},
|
},
|
||||||
"milligram": {
|
"milligram": {
|
||||||
"name": "miligramas",
|
"name": "miligramas",
|
||||||
"plural_name": "milligrams",
|
"plural_name": "miligramų",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "mg"
|
"abbreviation": "mg"
|
||||||
},
|
},
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
},
|
},
|
||||||
"serving": {
|
"serving": {
|
||||||
"name": "porcijos",
|
"name": "porcijos",
|
||||||
"plural_name": "servings",
|
"plural_name": "porcijų",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": ""
|
"abbreviation": ""
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,14 +5,20 @@ from fastapi import HTTPException, status
|
||||||
from mealie.core.security import create_access_token
|
from mealie.core.security import create_access_token
|
||||||
from mealie.routes._base import BaseUserController, controller
|
from mealie.routes._base import BaseUserController, controller
|
||||||
from mealie.routes._base.routers import UserAPIRouter
|
from mealie.routes._base.routers import UserAPIRouter
|
||||||
from mealie.schema.user import CreateToken, DeleteTokenResponse, LongLiveTokenIn, LongLiveTokenInDB, LongLiveTokenOut
|
from mealie.schema.user import (
|
||||||
|
CreateToken,
|
||||||
|
DeleteTokenResponse,
|
||||||
|
LongLiveTokenCreateResponse,
|
||||||
|
LongLiveTokenIn,
|
||||||
|
LongLiveTokenInDB,
|
||||||
|
)
|
||||||
|
|
||||||
router = UserAPIRouter(prefix="/users", tags=["Users: Tokens"])
|
router = UserAPIRouter(prefix="/users", tags=["Users: Tokens"])
|
||||||
|
|
||||||
|
|
||||||
@controller(router)
|
@controller(router)
|
||||||
class UserApiTokensController(BaseUserController):
|
class UserApiTokensController(BaseUserController):
|
||||||
@router.post("/api-tokens", status_code=status.HTTP_201_CREATED, response_model=LongLiveTokenOut)
|
@router.post("/api-tokens", status_code=status.HTTP_201_CREATED, response_model=LongLiveTokenCreateResponse)
|
||||||
def create_api_token(
|
def create_api_token(
|
||||||
self,
|
self,
|
||||||
token_params: LongLiveTokenIn,
|
token_params: LongLiveTokenIn,
|
||||||
|
|
|
@ -10,6 +10,7 @@ from .user import (
|
||||||
GroupInDB,
|
GroupInDB,
|
||||||
GroupPagination,
|
GroupPagination,
|
||||||
GroupSummary,
|
GroupSummary,
|
||||||
|
LongLiveTokenCreateResponse,
|
||||||
LongLiveTokenIn,
|
LongLiveTokenIn,
|
||||||
LongLiveTokenInDB,
|
LongLiveTokenInDB,
|
||||||
LongLiveTokenOut,
|
LongLiveTokenOut,
|
||||||
|
@ -57,6 +58,7 @@ __all__ = [
|
||||||
"GroupInDB",
|
"GroupInDB",
|
||||||
"GroupPagination",
|
"GroupPagination",
|
||||||
"GroupSummary",
|
"GroupSummary",
|
||||||
|
"LongLiveTokenCreateResponse",
|
||||||
"LongLiveTokenIn",
|
"LongLiveTokenIn",
|
||||||
"LongLiveTokenInDB",
|
"LongLiveTokenInDB",
|
||||||
"LongLiveTokenOut",
|
"LongLiveTokenOut",
|
||||||
|
|
|
@ -31,7 +31,6 @@ class LongLiveTokenIn(MealieModel):
|
||||||
|
|
||||||
|
|
||||||
class LongLiveTokenOut(MealieModel):
|
class LongLiveTokenOut(MealieModel):
|
||||||
token: str
|
|
||||||
name: str
|
name: str
|
||||||
id: int
|
id: int
|
||||||
created_at: datetime | None = None
|
created_at: datetime | None = None
|
||||||
|
@ -42,6 +41,12 @@ class LongLiveTokenOut(MealieModel):
|
||||||
return [joinedload(LongLiveToken.user)]
|
return [joinedload(LongLiveToken.user)]
|
||||||
|
|
||||||
|
|
||||||
|
class LongLiveTokenCreateResponse(LongLiveTokenOut):
|
||||||
|
"""Should ONLY be used when creating a new token, as the token field is sensitive"""
|
||||||
|
|
||||||
|
token: str
|
||||||
|
|
||||||
|
|
||||||
class CreateToken(LongLiveTokenIn):
|
class CreateToken(LongLiveTokenIn):
|
||||||
user_id: UUID4
|
user_id: UUID4
|
||||||
token: str
|
token: str
|
||||||
|
|
328
poetry.lock
generated
328
poetry.lock
generated
|
@ -118,13 +118,13 @@ files = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "authlib"
|
name = "authlib"
|
||||||
version = "1.4.0"
|
version = "1.4.1"
|
||||||
description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients."
|
description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "Authlib-1.4.0-py2.py3-none-any.whl", hash = "sha256:4bb20b978c8b636222b549317c1815e1fe62234fc1c5efe8855d84aebf3a74e3"},
|
{file = "Authlib-1.4.1-py2.py3-none-any.whl", hash = "sha256:edc29c3f6a3e72cd9e9f45fff67fc663a2c364022eb0371c003f22d5405915c1"},
|
||||||
{file = "authlib-1.4.0.tar.gz", hash = "sha256:1c1e6608b5ed3624aeeee136ca7f8c120d6f51f731aa152b153d54741840e1f2"},
|
{file = "authlib-1.4.1.tar.gz", hash = "sha256:30ead9ea4993cdbab821dc6e01e818362f92da290c04c7f6a1940f86507a790d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -607,13 +607,13 @@ cli = ["requests"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi"
|
name = "fastapi"
|
||||||
version = "0.115.7"
|
version = "0.115.8"
|
||||||
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"
|
||||||
files = [
|
files = [
|
||||||
{file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"},
|
{file = "fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf"},
|
||||||
{file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"},
|
{file = "fastapi-0.115.8.tar.gz", hash = "sha256:0ce9111231720190473e222cdf0f07f7206ad7e53ea02beb1d2dc36e2f0741e9"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -1451,13 +1451,13 @@ pyyaml = ">=5.1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mkdocs-material"
|
name = "mkdocs-material"
|
||||||
version = "9.5.50"
|
version = "9.6.2"
|
||||||
description = "Documentation that simply works"
|
description = "Documentation that simply works"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "mkdocs_material-9.5.50-py3-none-any.whl", hash = "sha256:f24100f234741f4d423a9d672a909d859668a4f404796be3cf035f10d6050385"},
|
{file = "mkdocs_material-9.6.2-py3-none-any.whl", hash = "sha256:71d90dbd63b393ad11a4d90151dfe3dcbfcd802c0f29ce80bebd9bbac6abc753"},
|
||||||
{file = "mkdocs_material-9.5.50.tar.gz", hash = "sha256:ae5fe16f3d7c9ccd05bb6916a7da7420cf99a9ce5e33debd9d40403a090d5825"},
|
{file = "mkdocs_material-9.6.2.tar.gz", hash = "sha256:a3de1c5d4c745f10afa78b1a02f917b9dce0808fb206adc0f5bb48b58c1ca21f"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -1491,49 +1491,43 @@ files = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mypy"
|
name = "mypy"
|
||||||
version = "1.14.1"
|
version = "1.15.0"
|
||||||
description = "Optional static typing for Python"
|
description = "Optional static typing for Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb"},
|
{file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"},
|
||||||
{file = "mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0"},
|
{file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"},
|
||||||
{file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90716d8b2d1f4cd503309788e51366f07c56635a3309b0f6a32547eaaa36a64d"},
|
{file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"},
|
||||||
{file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae753f5c9fef278bcf12e1a564351764f2a6da579d4a81347e1d5a15819997b"},
|
{file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"},
|
||||||
{file = "mypy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0fe0f5feaafcb04505bcf439e991c6d8f1bf8b15f12b05feeed96e9e7bf1427"},
|
{file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"},
|
||||||
{file = "mypy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:7d54bd85b925e501c555a3227f3ec0cfc54ee8b6930bd6141ec872d1c572f81f"},
|
{file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"},
|
||||||
{file = "mypy-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f995e511de847791c3b11ed90084a7a0aafdc074ab88c5a9711622fe4751138c"},
|
{file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"},
|
||||||
{file = "mypy-1.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d64169ec3b8461311f8ce2fd2eb5d33e2d0f2c7b49116259c51d0d96edee48d1"},
|
{file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"},
|
||||||
{file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba24549de7b89b6381b91fbc068d798192b1b5201987070319889e93038967a8"},
|
{file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"},
|
||||||
{file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:183cf0a45457d28ff9d758730cd0210419ac27d4d3f285beda038c9083363b1f"},
|
{file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"},
|
||||||
{file = "mypy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f2a0ecc86378f45347f586e4163d1769dd81c5a223d577fe351f26b179e148b1"},
|
{file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"},
|
||||||
{file = "mypy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:ad3301ebebec9e8ee7135d8e3109ca76c23752bac1e717bc84cd3836b4bf3eae"},
|
{file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"},
|
||||||
{file = "mypy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:30ff5ef8519bbc2e18b3b54521ec319513a26f1bba19a7582e7b1f58a6e69f14"},
|
{file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"},
|
||||||
{file = "mypy-1.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb9f255c18052343c70234907e2e532bc7e55a62565d64536dbc7706a20b78b9"},
|
{file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"},
|
||||||
{file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b4e3413e0bddea671012b063e27591b953d653209e7a4fa5e48759cda77ca11"},
|
{file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"},
|
||||||
{file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:553c293b1fbdebb6c3c4030589dab9fafb6dfa768995a453d8a5d3b23784af2e"},
|
{file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"},
|
||||||
{file = "mypy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fad79bfe3b65fe6a1efaed97b445c3d37f7be9fdc348bdb2d7cac75579607c89"},
|
{file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"},
|
||||||
{file = "mypy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:8fa2220e54d2946e94ab6dbb3ba0a992795bd68b16dc852db33028df2b00191b"},
|
{file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"},
|
||||||
{file = "mypy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:92c3ed5afb06c3a8e188cb5da4984cab9ec9a77ba956ee419c68a388b4595255"},
|
{file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"},
|
||||||
{file = "mypy-1.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dbec574648b3e25f43d23577309b16534431db4ddc09fda50841f1e34e64ed34"},
|
{file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"},
|
||||||
{file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c6d94b16d62eb3e947281aa7347d78236688e21081f11de976376cf010eb31a"},
|
{file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"},
|
||||||
{file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4b19b03fdf54f3c5b2fa474c56b4c13c9dbfb9a2db4370ede7ec11a2c5927d9"},
|
{file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"},
|
||||||
{file = "mypy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0c911fde686394753fff899c409fd4e16e9b294c24bfd5e1ea4675deae1ac6fd"},
|
{file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"},
|
||||||
{file = "mypy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8b21525cb51671219f5307be85f7e646a153e5acc656e5cebf64bfa076c50107"},
|
{file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"},
|
||||||
{file = "mypy-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7084fb8f1128c76cd9cf68fe5971b37072598e7c31b2f9f95586b65c741a9d31"},
|
{file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"},
|
||||||
{file = "mypy-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8f845a00b4f420f693f870eaee5f3e2692fa84cc8514496114649cfa8fd5e2c6"},
|
{file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"},
|
||||||
{file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44bf464499f0e3a2d14d58b54674dee25c031703b2ffc35064bd0df2e0fac319"},
|
{file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"},
|
||||||
{file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c99f27732c0b7dc847adb21c9d47ce57eb48fa33a17bc6d7d5c5e9f9e7ae5bac"},
|
{file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"},
|
||||||
{file = "mypy-1.14.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:bce23c7377b43602baa0bd22ea3265c49b9ff0b76eb315d6c34721af4cdf1d9b"},
|
{file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"},
|
||||||
{file = "mypy-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:8edc07eeade7ebc771ff9cf6b211b9a7d93687ff892150cb5692e4f4272b0837"},
|
{file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"},
|
||||||
{file = "mypy-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3888a1816d69f7ab92092f785a462944b3ca16d7c470d564165fe703b0970c35"},
|
{file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"},
|
||||||
{file = "mypy-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46c756a444117c43ee984bd055db99e498bc613a70bbbc120272bd13ca579fbc"},
|
{file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"},
|
||||||
{file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:27fc248022907e72abfd8e22ab1f10e903915ff69961174784a3900a8cba9ad9"},
|
|
||||||
{file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:499d6a72fb7e5de92218db961f1a66d5f11783f9ae549d214617edab5d4dbdbb"},
|
|
||||||
{file = "mypy-1.14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57961db9795eb566dc1d1b4e9139ebc4c6b0cb6e7254ecde69d1552bf7613f60"},
|
|
||||||
{file = "mypy-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:07ba89fdcc9451f2ebb02853deb6aaaa3d2239a236669a63ab3801bbf923ef5c"},
|
|
||||||
{file = "mypy-1.14.1-py3-none-any.whl", hash = "sha256:b66a60cc4073aeb8ae00057f9c1f64d49e90f918fbcef9a977eb121da8b8f1d1"},
|
|
||||||
{file = "mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6"},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -1590,13 +1584,13 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openai"
|
name = "openai"
|
||||||
version = "1.60.1"
|
version = "1.61.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"
|
||||||
files = [
|
files = [
|
||||||
{file = "openai-1.60.1-py3-none-any.whl", hash = "sha256:714181ec1c452353d456f143c22db892de7b373e3165063d02a2b798ed575ba1"},
|
{file = "openai-1.61.0-py3-none-any.whl", hash = "sha256:e8c512c0743accbdbe77f3429a1490d862f8352045de8dc81969301eb4a4f666"},
|
||||||
{file = "openai-1.60.1.tar.gz", hash = "sha256:beb1541dfc38b002bd629ab68b0d6fe35b870c5f4311d9bc4404d85af3214d5e"},
|
{file = "openai-1.61.0.tar.gz", hash = "sha256:216f325a24ed8578e929b0f1b3fb2052165f3b04b0461818adaa51aa29c71f8a"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -2274,20 +2268,20 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pylint"
|
name = "pylint"
|
||||||
version = "3.3.3"
|
version = "3.3.4"
|
||||||
description = "python code static checker"
|
description = "python code static checker"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9.0"
|
python-versions = ">=3.9.0"
|
||||||
files = [
|
files = [
|
||||||
{file = "pylint-3.3.3-py3-none-any.whl", hash = "sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183"},
|
{file = "pylint-3.3.4-py3-none-any.whl", hash = "sha256:289e6a1eb27b453b08436478391a48cd53bb0efb824873f949e709350f3de018"},
|
||||||
{file = "pylint-3.3.3.tar.gz", hash = "sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a"},
|
{file = "pylint-3.3.4.tar.gz", hash = "sha256:74ae7a38b177e69a9b525d0794bd8183820bfa7eb68cc1bee6e8ed22a42be4ce"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
astroid = ">=3.3.8,<=3.4.0-dev0"
|
astroid = ">=3.3.8,<=3.4.0-dev0"
|
||||||
colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
|
colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
|
||||||
dill = {version = ">=0.3.7", markers = "python_version >= \"3.12\""}
|
dill = {version = ">=0.3.7", markers = "python_version >= \"3.12\""}
|
||||||
isort = ">=4.2.5,<5.13.0 || >5.13.0,<6"
|
isort = ">=4.2.5,<5.13.0 || >5.13.0,<7"
|
||||||
mccabe = ">=0.6,<0.8"
|
mccabe = ">=0.6,<0.8"
|
||||||
platformdirs = ">=2.2.0"
|
platformdirs = ">=2.2.0"
|
||||||
tomlkit = ">=0.10.1"
|
tomlkit = ">=0.10.1"
|
||||||
|
@ -2366,13 +2360,13 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytest-asyncio"
|
name = "pytest-asyncio"
|
||||||
version = "0.25.2"
|
version = "0.25.3"
|
||||||
description = "Pytest support for asyncio"
|
description = "Pytest support for asyncio"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "pytest_asyncio-0.25.2-py3-none-any.whl", hash = "sha256:0d0bb693f7b99da304a0634afc0a4b19e49d5e0de2d670f38dc4bfa5727c5075"},
|
{file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"},
|
||||||
{file = "pytest_asyncio-0.25.2.tar.gz", hash = "sha256:3f8ef9a98f45948ea91a0ed3dc4268b5326c0e7bce73892acc654df4262ad45f"},
|
{file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
@ -2530,99 +2524,99 @@ pyyaml = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rapidfuzz"
|
name = "rapidfuzz"
|
||||||
version = "3.11.0"
|
version = "3.12.1"
|
||||||
description = "rapid fuzzy string matching"
|
description = "rapid fuzzy string matching"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eb8a54543d16ab1b69e2c5ed96cabbff16db044a50eddfc028000138ca9ddf33"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbb7ea2fd786e6d66f225ef6eef1728832314f47e82fee877cb2a793ebda9579"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:231c8b2efbd7f8d2ecd1ae900363ba168b8870644bb8f2b5aa96e4a7573bde19"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ae41361de05762c1eaa3955e5355de7c4c6f30d1ef1ea23d29bf738a35809ab"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54e7f442fb9cca81e9df32333fb075ef729052bcabe05b0afc0441f462299114"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc3c39e0317e7f68ba01bac056e210dd13c7a0abf823e7b6a5fe7e451ddfc496"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:906f1f2a1b91c06599b3dd1be207449c5d4fc7bd1e1fa2f6aef161ea6223f165"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69f2520296f1ae1165b724a3aad28c56fd0ac7dd2e4cff101a5d986e840f02d4"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed59044aea9eb6c663112170f2399b040d5d7b162828b141f2673e822093fa8"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34dcbf5a7daecebc242f72e2500665f0bde9dd11b779246c6d64d106a7d57c99"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cb1965a28b0fa64abdee130c788a0bc0bb3cf9ef7e3a70bf055c086c14a3d7e"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:773ab37fccf6e0513891f8eb4393961ddd1053c6eb7e62eaa876e94668fc6d31"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b488b244931d0291412917e6e46ee9f6a14376625e150056fe7c4426ef28225"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ecf0e6de84c0bc2c0f48bc03ba23cef2c5f1245db7b26bc860c11c6fd7a097c"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f0ba13557fec9d5ffc0a22826754a7457cc77f1b25145be10b7bb1d143ce84c6"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4dc2ebad4adb29d84a661f6a42494df48ad2b72993ff43fad2b9794804f91e45"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3871fa7dfcef00bad3c7e8ae8d8fd58089bad6fb21f608d2bf42832267ca9663"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8389d98b9f54cb4f8a95f1fa34bf0ceee639e919807bb931ca479c7a5f2930bf"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b2669eafee38c5884a6e7cc9769d25c19428549dcdf57de8541cf9e82822e7db"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:165bcdecbfed9978962da1d3ec9c191b2ff9f1ccc2668fbaf0613a975b9aa326"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ffa1bb0e26297b0f22881b219ffc82a33a3c84ce6174a9d69406239b14575bd5"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:129d536740ab0048c1a06ccff73c683f282a2347c68069affae8dbc423a37c50"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:45b15b8a118856ac9caac6877f70f38b8a0d310475d50bc814698659eabc1cdb"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1b67e390261ffe98ec86c771b89425a78b60ccb610c3b5874660216fcdbded4b"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-win32.whl", hash = "sha256:22033677982b9c4c49676f215b794b0404073f8974f98739cb7234e4a9ade9ad"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-win32.whl", hash = "sha256:a66520180d3426b9dc2f8d312f38e19bc1fc5601f374bae5c916f53fa3534a7d"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:be15496e7244361ff0efcd86e52559bacda9cd975eccf19426a0025f9547c792"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:82260b20bc7a76556cecb0c063c87dad19246a570425d38f8107b8404ca3ac97"},
|
||||||
{file = "rapidfuzz-3.11.0-cp310-cp310-win_arm64.whl", hash = "sha256:714a7ba31ba46b64d30fccfe95f8013ea41a2e6237ba11a805a27cdd3bce2573"},
|
{file = "rapidfuzz-3.12.1-cp310-cp310-win_arm64.whl", hash = "sha256:3a860d103bbb25c69c2e995fdf4fac8cb9f77fb69ec0a00469d7fd87ff148f46"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8724a978f8af7059c5323d523870bf272a097478e1471295511cf58b2642ff83"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6d9afad7b16d01c9e8929b6a205a18163c7e61b6cd9bcf9c81be77d5afc1067a"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8b63cb1f2eb371ef20fb155e95efd96e060147bdd4ab9fc400c97325dfee9fe1"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb424ae7240f2d2f7d8dda66a61ebf603f74d92f109452c63b0dbf400204a437"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82497f244aac10b20710448645f347d862364cc4f7d8b9ba14bd66b5ce4dec18"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42149e6d13bd6d06437d2a954dae2184dadbbdec0fdb82dafe92860d99f80519"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:339607394941801e6e3f6c1ecd413a36e18454e7136ed1161388de674f47f9d9"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:760ac95d788f2964b73da01e0bdffbe1bf2ad8273d0437565ce9092ae6ad1fbc"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84819390a36d6166cec706b9d8f0941f115f700b7faecab5a7e22fc367408bc3"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2cf27e8e4bf7bf9d92ef04f3d2b769e91c3f30ba99208c29f5b41e77271a2614"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eea8d9e20632d68f653455265b18c35f90965e26f30d4d92f831899d6682149b"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00ceb8ff3c44ab0d6014106c71709c85dee9feedd6890eff77c814aa3798952b"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b659e1e2ea2784a9a397075a7fc395bfa4fe66424042161c4bcaf6e4f637b38"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b61c558574fbc093d85940c3264c08c2b857b8916f8e8f222e7b86b0bb7d12"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1315cd2a351144572e31fe3df68340d4b83ddec0af8b2e207cd32930c6acd037"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:346a2d8f17224e99f9ef988606c83d809d5917d17ad00207237e0965e54f9730"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a7743cca45b4684c54407e8638f6d07b910d8d811347b9d42ff21262c7c23245"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d60d1db1b7e470e71ae096b6456e20ec56b52bde6198e2dbbc5e6769fa6797dc"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5bb636b0150daa6d3331b738f7c0f8b25eadc47f04a40e5c23c4bfb4c4e20ae3"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2477da227e266f9c712f11393182c69a99d3c8007ea27f68c5afc3faf401cc43"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:42f4dd264ada7a9aa0805ea0da776dc063533917773cf2df5217f14eb4429eae"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8499c7d963ddea8adb6cffac2861ee39a1053e22ca8a5ee9de1197f8dc0275a5"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51f24cb39e64256221e6952f22545b8ce21cacd59c0d3e367225da8fc4b868d8"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:12802e5c4d8ae104fb6efeeb436098325ce0dca33b461c46e8df015c84fbef26"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-win32.whl", hash = "sha256:aaf391fb6715866bc14681c76dc0308f46877f7c06f61d62cc993b79fc3c4a2a"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-win32.whl", hash = "sha256:e1061311d07e7cdcffa92c9b50c2ab4192907e70ca01b2e8e1c0b6b4495faa37"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:ebadd5b8624d8ad503e505a99b8eb26fe3ea9f8e9c2234e805a27b269e585842"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6e4ed63e204daa863a802eec09feea5448617981ba5d150f843ad8e3ae071a4"},
|
||||||
{file = "rapidfuzz-3.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:d895998fec712544c13cfe833890e0226585cf0391dd3948412441d5d68a2b8c"},
|
{file = "rapidfuzz-3.12.1-cp311-cp311-win_arm64.whl", hash = "sha256:920733a28c3af47870835d59ca9879579f66238f10de91d2b4b3f809d1ebfc5b"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f382fec4a7891d66fb7163c90754454030bb9200a13f82ee7860b6359f3f2fa8"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f6235b57ae3faa3f85cb3f90c9fee49b21bd671b76e90fc99e8ca2bdf0b5e4a3"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dfaefe08af2a928e72344c800dcbaf6508e86a4ed481e28355e8d4b6a6a5230e"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:af4585e5812632c357fee5ab781c29f00cd06bea58f8882ff244cc4906ba6c9e"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92ebb7c12f682b5906ed98429f48a3dd80dd0f9721de30c97a01473d1a346576"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5942dc4460e5030c5f9e1d4c9383de2f3564a2503fe25e13e89021bcbfea2f44"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a1b3ebc62d4bcdfdeba110944a25ab40916d5383c5e57e7c4a8dc0b6c17211a"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b31ab59e1a0df5afc21f3109b6cfd77b34040dbf54f1bad3989f885cfae1e60"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c6d7fea39cb33e71de86397d38bf7ff1a6273e40367f31d05761662ffda49e4"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97c885a7a480b21164f57a706418c9bbc9a496ec6da087e554424358cadde445"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99aebef8268f2bc0b445b5640fd3312e080bd17efd3fbae4486b20ac00466308"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d844c0587d969ce36fbf4b7cbf0860380ffeafc9ac5e17a7cbe8abf528d07bb"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4469307f464ae3089acf3210b8fc279110d26d10f79e576f385a98f4429f7d97"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a93c95dce8917bf428064c64024de43ffd34ec5949dd4425780c72bd41f9d969"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:eb97c53112b593f89a90b4f6218635a9d1eea1d7f9521a3b7d24864228bbc0aa"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:834f6113d538af358f39296604a1953e55f8eeffc20cb4caf82250edbb8bf679"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ef8937dae823b889c0273dfa0f0f6c46a3658ac0d851349c464d1b00e7ff4252"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a940aa71a7f37d7f0daac186066bf6668d4d3b7e7ef464cb50bc7ba89eae1f51"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d95f9e9f3777b96241d8a00d6377cc9c716981d828b5091082d0fe3a2924b43e"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ec9eaf73501c9a7de2c6938cb3050392e2ee0c5ca3921482acf01476b85a7226"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:b1d67d67f89e4e013a5295e7523bc34a7a96f2dba5dd812c7c8cb65d113cbf28"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3c5ec360694ac14bfaeb6aea95737cf1a6cf805b5fe8ea7fd28814706c7fa838"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d994cf27e2f874069884d9bddf0864f9b90ad201fcc9cb2f5b82bacc17c8d5f2"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6b5e176524653ac46f1802bdd273a4b44a5f8d0054ed5013a8e8a4b72f254599"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-win32.whl", hash = "sha256:ba26d87fe7fcb56c4a53b549a9e0e9143f6b0df56d35fe6ad800c902447acd5b"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-win32.whl", hash = "sha256:6f463c6f1c42ec90e45d12a6379e18eddd5cdf74138804d8215619b6f4d31cea"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:b1f7efdd7b7adb32102c2fa481ad6f11923e2deb191f651274be559d56fc913b"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:b894fa2b30cd6498a29e5c470cb01c6ea898540b7e048a0342775a5000531334"},
|
||||||
{file = "rapidfuzz-3.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:ed78c8e94f57b44292c1a0350f580e18d3a3c5c0800e253f1583580c1b417ad2"},
|
{file = "rapidfuzz-3.12.1-cp312-cp312-win_arm64.whl", hash = "sha256:43bb17056c5d1332f517b888c4e57846c4b5f936ed304917eeb5c9ac85d940d4"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e60814edd0c9b511b5f377d48b9782b88cfe8be07a98f99973669299c8bb318a"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:97f824c15bc6933a31d6e3cbfa90188ba0e5043cf2b6dd342c2b90ee8b3fd47c"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f28952da055dbfe75828891cd3c9abf0984edc8640573c18b48c14c68ca5e06"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a973b3f5cabf931029a3ae4a0f72e3222e53d412ea85fc37ddc49e1774f00fbf"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e8f93bc736020351a6f8e71666e1f486bb8bd5ce8112c443a30c77bfde0eb68"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df7880e012228722dec1be02b9ef3898ed023388b8a24d6fa8213d7581932510"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76a4a11ba8f678c9e5876a7d465ab86def047a4fcc043617578368755d63a1bc"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c78582f50e75e6c2bc38c791ed291cb89cf26a3148c47860c1a04d6e5379c8e"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc0e0d41ad8a056a9886bac91ff9d9978e54a244deb61c2972cc76b66752de9c"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d7d9e6a04d8344b0198c96394c28874086888d0a2b2f605f30d1b27b9377b7d"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8ea35f2419c7d56b3e75fbde2698766daedb374f20eea28ac9b1f668ef4f74"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5620001fd4d6644a2f56880388179cc8f3767670f0670160fcb97c3b46c828af"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd340bbd025302276b5aa221dccfe43040c7babfc32f107c36ad783f2ffd8775"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0666ab4c52e500af7ba5cc17389f5d15c0cdad06412c80312088519fdc25686d"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:494eef2c68305ab75139034ea25328a04a548d297712d9cf887bf27c158c388b"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:27b4d440fa50b50c515a91a01ee17e8ede719dca06eef4c0cccf1a111a4cfad3"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5a167344c1d6db06915fb0225592afdc24d8bafaaf02de07d4788ddd37f4bc2f"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:83dccfd5a754f2a0e8555b23dde31f0f7920601bfa807aa76829391ea81e7c67"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8c7af25bda96ac799378ac8aba54a8ece732835c7b74cfc201b688a87ed11152"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b572b634740e047c53743ed27a1bb3b4f93cf4abbac258cd7af377b2c4a9ba5b"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d2a0f7e17f33e7890257367a1662b05fecaf56625f7dbb6446227aaa2b86448b"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7fa7b81fb52902d5f78dac42b3d6c835a6633b01ddf9b202a3ca8443be4b2d6a"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4d0d26c7172bdb64f86ee0765c5b26ea1dc45c52389175888ec073b9b28f4305"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b1d4fbff980cb6baef4ee675963c081f7b5d6580a105d6a4962b20f1f880e1fb"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-win32.whl", hash = "sha256:6ad02bab756751c90fa27f3069d7b12146613061341459abf55f8190d899649f"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-win32.whl", hash = "sha256:3fe8da12ea77271097b303fa7624cfaf5afd90261002314e3b0047d36f4afd8d"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:b1472986fd9c5d318399a01a0881f4a0bf4950264131bb8e2deba9df6d8c362b"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:6f7e92fc7d2a7f02e1e01fe4f539324dfab80f27cb70a30dd63a95445566946b"},
|
||||||
{file = "rapidfuzz-3.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c408f09649cbff8da76f8d3ad878b64ba7f7abdad1471efb293d2c075e80c822"},
|
{file = "rapidfuzz-3.12.1-cp313-cp313-win_arm64.whl", hash = "sha256:e31be53d7f4905a6a038296d8b773a79da9ee9f0cd19af9490c5c5a22e37d2e5"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1bac4873f6186f5233b0084b266bfb459e997f4c21fc9f029918f44a9eccd304"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bef5c91d5db776523530073cda5b2a276283258d2f86764be4a008c83caf7acd"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4f9f12c2d0aa52b86206d2059916153876a9b1cf9dfb3cf2f344913167f1c3d4"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:841e0c2a5fbe8fc8b9b1a56e924c871899932c0ece7fbd970aa1c32bfd12d4bf"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dd501de6f7a8f83557d20613b58734d1cb5f0be78d794cde64fe43cfc63f5f2"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:046fc67f3885d94693a2151dd913aaf08b10931639cbb953dfeef3151cb1027c"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4416ca69af933d4a8ad30910149d3db6d084781d5c5fdedb713205389f535385"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4d2d39b2e76c17f92edd6d384dc21fa020871c73251cdfa017149358937a41d"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f0821b9bdf18c5b7d51722b906b233a39b17f602501a966cfbd9b285f8ab83cd"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5857dda85165b986c26a474b22907db6b93932c99397c818bcdec96340a76d5"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0edecc3f90c2653298d380f6ea73b536944b767520c2179ec5d40b9145e47aa"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c26cd1b9969ea70dbf0dbda3d2b54ab4b2e683d0fd0f17282169a19563efeb1"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4513dd01cee11e354c31b75f652d4d466c9440b6859f84e600bdebfccb17735a"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf56ea4edd69005786e6c80a9049d95003aeb5798803e7a2906194e7a3cb6472"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d9727b85511b912571a76ce53c7640ba2c44c364e71cef6d7359b5412739c570"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fbe7580b5fb2db8ebd53819171ff671124237a55ada3f64d20fc9a149d133960"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ab9eab33ee3213f7751dc07a1a61b8d9a3d748ca4458fffddd9defa6f0493c16"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:018506a53c3b20dcbda8c93d4484b9eb1764c93d5ea16be103cf6b0d8b11d860"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:6b01c1ddbb054283797967ddc5433d5c108d680e8fa2684cf368be05407b07e4"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:325c9c71b737fcd32e2a4e634c430c07dd3d374cfe134eded3fe46e4c6f9bf5d"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3857e335f97058c4b46fa39ca831290b70de554a5c5af0323d2f163b19c5f2a6"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:930756639643e3aa02d3136b6fec74e5b9370a24f8796e1065cd8a857a6a6c50"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d98a46cf07c0c875d27e8a7ed50f304d83063e49b9ab63f21c19c154b4c0d08d"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0acbd27543b158cb915fde03877383816a9e83257832818f1e803bac9b394900"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-win32.whl", hash = "sha256:c36539ed2c0173b053dafb221458812e178cfa3224ade0960599bec194637048"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-win32.whl", hash = "sha256:80ff9283c54d7d29b2d954181e137deee89bec62f4a54675d8b6dbb6b15d3e03"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:ec8d7d8567e14af34a7911c98f5ac74a3d4a743cd848643341fc92b12b3784ff"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:fd37e53f0ed239d0cec27b250cec958982a8ba252ce64aa5e6052de3a82fa8db"},
|
||||||
{file = "rapidfuzz-3.11.0-cp39-cp39-win_arm64.whl", hash = "sha256:62171b270ecc4071be1c1f99960317db261d4c8c83c169e7f8ad119211fe7397"},
|
{file = "rapidfuzz-3.12.1-cp39-cp39-win_arm64.whl", hash = "sha256:4a4422e4f73a579755ab60abccb3ff148b5c224b3c7454a13ca217dfbad54da6"},
|
||||||
{file = "rapidfuzz-3.11.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f06e3c4c0a8badfc4910b9fd15beb1ad8f3b8fafa8ea82c023e5e607b66a78e4"},
|
{file = "rapidfuzz-3.12.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b7cba636c32a6fc3a402d1cb2c70c6c9f8e6319380aaf15559db09d868a23e56"},
|
||||||
{file = "rapidfuzz-3.11.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fe7aaf5a54821d340d21412f7f6e6272a9b17a0cbafc1d68f77f2fc11009dcd5"},
|
{file = "rapidfuzz-3.12.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b79286738a43e8df8420c4b30a92712dec6247430b130f8e015c3a78b6d61ac2"},
|
||||||
{file = "rapidfuzz-3.11.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25398d9ac7294e99876a3027ffc52c6bebeb2d702b1895af6ae9c541ee676702"},
|
{file = "rapidfuzz-3.12.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dc1937198e7ff67e217e60bfa339f05da268d91bb15fec710452d11fe2fdf60"},
|
||||||
{file = "rapidfuzz-3.11.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a52eea839e4bdc72c5e60a444d26004da00bb5bc6301e99b3dde18212e41465"},
|
{file = "rapidfuzz-3.12.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b85817a57cf8db32dd5d2d66ccfba656d299b09eaf86234295f89f91be1a0db2"},
|
||||||
{file = "rapidfuzz-3.11.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c87319b0ab9d269ab84f6453601fd49b35d9e4a601bbaef43743f26fabf496c"},
|
{file = "rapidfuzz-3.12.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04283c6f3e79f13a784f844cd5b1df4f518ad0f70c789aea733d106c26e1b4fb"},
|
||||||
{file = "rapidfuzz-3.11.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3048c6ed29d693fba7d2a7caf165f5e0bb2b9743a0989012a98a47b975355cca"},
|
{file = "rapidfuzz-3.12.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a718f740553aad5f4daef790191511da9c6eae893ee1fc2677627e4b624ae2db"},
|
||||||
{file = "rapidfuzz-3.11.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b04f29735bad9f06bb731c214f27253bd8bedb248ef9b8a1b4c5bde65b838454"},
|
{file = "rapidfuzz-3.12.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cbdf145c7e4ebf2e81c794ed7a582c4acad19e886d5ad6676086369bd6760753"},
|
||||||
{file = "rapidfuzz-3.11.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7864e80a0d4e23eb6194254a81ee1216abdc53f9dc85b7f4d56668eced022eb8"},
|
{file = "rapidfuzz-3.12.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0d03ad14a26a477be221fddc002954ae68a9e2402b9d85433f2d0a6af01aa2bb"},
|
||||||
{file = "rapidfuzz-3.11.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3794df87313dfb56fafd679b962e0613c88a293fd9bd5dd5c2793d66bf06a101"},
|
{file = "rapidfuzz-3.12.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1187aeae9c89e838d2a0a2b954b4052e4897e5f62e5794ef42527bf039d469e"},
|
||||||
{file = "rapidfuzz-3.11.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d71da0012face6f45432a11bc59af19e62fac5a41f8ce489e80c0add8153c3d1"},
|
{file = "rapidfuzz-3.12.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd47dfb1bca9673a48b923b3d988b7668ee8efd0562027f58b0f2b7abf27144c"},
|
||||||
{file = "rapidfuzz-3.11.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff38378346b7018f42cbc1f6d1d3778e36e16d8595f79a312b31e7c25c50bd08"},
|
{file = "rapidfuzz-3.12.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:187cdb402e223264eebed2fe671e367e636a499a7a9c82090b8d4b75aa416c2a"},
|
||||||
{file = "rapidfuzz-3.11.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6668321f90aa02a5a789d4e16058f2e4f2692c5230252425c3532a8a62bc3424"},
|
{file = "rapidfuzz-3.12.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d6899b41bf6c30282179f77096c1939f1454836440a8ab05b48ebf7026a3b590"},
|
||||||
{file = "rapidfuzz-3.11.0.tar.gz", hash = "sha256:a53ca4d3f52f00b393fab9b5913c5bafb9afc27d030c8a1db1283da6917a860f"},
|
{file = "rapidfuzz-3.12.1.tar.gz", hash = "sha256:6a98bbca18b4a37adddf2d8201856441c26e9c981d8895491b5bc857b5f780eb"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
|
@ -2832,29 +2826,29 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
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"
|
||||||
files = [
|
files = [
|
||||||
{file = "ruff-0.9.3-py3-none-linux_armv6l.whl", hash = "sha256:7f39b879064c7d9670197d91124a75d118d00b0990586549949aae80cdc16624"},
|
{file = "ruff-0.9.4-py3-none-linux_armv6l.whl", hash = "sha256:64e73d25b954f71ff100bb70f39f1ee09e880728efb4250c632ceed4e4cdf706"},
|
||||||
{file = "ruff-0.9.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a187171e7c09efa4b4cc30ee5d0d55a8d6c5311b3e1b74ac5cb96cc89bafc43c"},
|
{file = "ruff-0.9.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6ce6743ed64d9afab4fafeaea70d3631b4d4b28b592db21a5c2d1f0ef52934bf"},
|
||||||
{file = "ruff-0.9.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c59ab92f8e92d6725b7ded9d4a31be3ef42688a115c6d3da9457a5bda140e2b4"},
|
{file = "ruff-0.9.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:54499fb08408e32b57360f6f9de7157a5fec24ad79cb3f42ef2c3f3f728dfe2b"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc153c25e715be41bb228bc651c1e9b1a88d5c6e5ed0194fa0dfea02b026439"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37c892540108314a6f01f105040b5106aeb829fa5fb0561d2dcaf71485021137"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:646909a1e25e0dc28fbc529eab8eb7bb583079628e8cbe738192853dbbe43af5"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de9edf2ce4b9ddf43fd93e20ef635a900e25f622f87ed6e3047a664d0e8f810e"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a5a46e09355695fbdbb30ed9889d6cf1c61b77b700a9fafc21b41f097bfbba4"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87c90c32357c74f11deb7fbb065126d91771b207bf9bfaaee01277ca59b574ec"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c4bb09d2bbb394e3730d0918c00276e79b2de70ec2a5231cd4ebb51a57df9ba1"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:56acd6c694da3695a7461cc55775f3a409c3815ac467279dfa126061d84b314b"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96a87ec31dc1044d8c2da2ebbed1c456d9b561e7d087734336518181b26b3aa5"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0c93e7d47ed951b9394cf352d6695b31498e68fd5782d6cbc282425655f687a"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb7554aca6f842645022fe2d301c264e6925baa708b392867b7a62645304df4"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4c8772670aecf037d1bf7a07c39106574d143b26cfe5ed1787d2f31e800214"},
|
||||||
{file = "ruff-0.9.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cabc332b7075a914ecea912cd1f3d4370489c8018f2c945a30bcc934e3bc06a6"},
|
{file = "ruff-0.9.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfc5f1d7afeda8d5d37660eeca6d389b142d7f2b5a1ab659d9214ebd0e025231"},
|
||||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:33866c3cc2a575cbd546f2cd02bdd466fed65118e4365ee538a3deffd6fcb730"},
|
{file = "ruff-0.9.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:faa935fc00ae854d8b638c16a5f1ce881bc3f67446957dd6f2af440a5fc8526b"},
|
||||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:006e5de2621304c8810bcd2ee101587712fa93b4f955ed0985907a36c427e0c2"},
|
{file = "ruff-0.9.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a6c634fc6f5a0ceae1ab3e13c58183978185d131a29c425e4eaa9f40afe1e6d6"},
|
||||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ba6eea4459dbd6b1be4e6bfc766079fb9b8dd2e5a35aff6baee4d9b1514ea519"},
|
{file = "ruff-0.9.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:433dedf6ddfdec7f1ac7575ec1eb9844fa60c4c8c2f8887a070672b8d353d34c"},
|
||||||
{file = "ruff-0.9.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:90230a6b8055ad47d3325e9ee8f8a9ae7e273078a66401ac66df68943ced029b"},
|
{file = "ruff-0.9.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d612dbd0f3a919a8cc1d12037168bfa536862066808960e0cc901404b77968f0"},
|
||||||
{file = "ruff-0.9.3-py3-none-win32.whl", hash = "sha256:eabe5eb2c19a42f4808c03b82bd313fc84d4e395133fb3fc1b1516170a31213c"},
|
{file = "ruff-0.9.4-py3-none-win32.whl", hash = "sha256:db1192ddda2200671f9ef61d9597fcef89d934f5d1705e571a93a67fb13a4402"},
|
||||||
{file = "ruff-0.9.3-py3-none-win_amd64.whl", hash = "sha256:040ceb7f20791dfa0e78b4230ee9dce23da3b64dd5848e40e3bf3ab76468dcf4"},
|
{file = "ruff-0.9.4-py3-none-win_amd64.whl", hash = "sha256:05bebf4cdbe3ef75430d26c375773978950bbf4ee3c95ccb5448940dc092408e"},
|
||||||
{file = "ruff-0.9.3-py3-none-win_arm64.whl", hash = "sha256:800d773f6d4d33b0a3c60e2c6ae8f4c202ea2de056365acfa519aa48acf28e0b"},
|
{file = "ruff-0.9.4-py3-none-win_arm64.whl", hash = "sha256:585792f1e81509e38ac5123492f8875fbc36f3ede8185af0a26df348e5154f41"},
|
||||||
{file = "ruff-0.9.3.tar.gz", hash = "sha256:8293f89985a090ebc3ed1064df31f3b4b56320cdfcec8b60d3295bddb955c22a"},
|
{file = "ruff-0.9.4.tar.gz", hash = "sha256:6907ee3529244bb0ed066683e075f09285b38dd5b4039370df6ff06041ca19e7"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -17,6 +17,25 @@ def long_live_token(api_client: TestClient, admin_token):
|
||||||
def test_api_token_creation(api_client: TestClient, admin_token):
|
def test_api_token_creation(api_client: TestClient, admin_token):
|
||||||
response = api_client.post(api_routes.users_api_tokens, json={"name": "Test API Token"}, headers=admin_token)
|
response = api_client.post(api_routes.users_api_tokens, json={"name": "Test API Token"}, headers=admin_token)
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
|
assert response.json()["token"]
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_token_private(api_client: TestClient, admin_token):
|
||||||
|
response = api_client.post(api_routes.users_api_tokens, json={"name": "Test API Token"}, headers=admin_token)
|
||||||
|
assert response.status_code == 201
|
||||||
|
|
||||||
|
response = api_client.get(api_routes.users, headers=admin_token, params={"perPage": -1})
|
||||||
|
assert response.status_code == 200
|
||||||
|
for user in response.json()["items"]:
|
||||||
|
for user_token in user["tokens"] or []:
|
||||||
|
assert "token" not in user_token
|
||||||
|
|
||||||
|
response = api_client.get(api_routes.users_self, headers=admin_token)
|
||||||
|
assert response.status_code == 200
|
||||||
|
response_json = response.json()
|
||||||
|
assert response_json["tokens"]
|
||||||
|
for user_token in response_json["tokens"]:
|
||||||
|
assert "token" not in user_token
|
||||||
|
|
||||||
|
|
||||||
def test_use_token(api_client: TestClient, long_live_token):
|
def test_use_token(api_client: TestClient, long_live_token):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue