mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-23 06:45:22 -07:00
Merge remote-tracking branch 'upstream/mealie-next' into pr/mrth2/5184
This commit is contained in:
commit
605863e6ca
15 changed files with 425 additions and 404 deletions
|
@ -12,7 +12,7 @@ repos:
|
|||
exclude: ^tests/data/
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
# Ruff version.
|
||||
rev: v0.11.9
|
||||
rev: v0.11.11
|
||||
hooks:
|
||||
- id: ruff
|
||||
- id: ruff-format
|
||||
|
|
|
@ -52,6 +52,8 @@ Before you can start using OIDC Authentication, you must first configure a new c
|
|||
|
||||
Take the client id and your discovery URL and update your environment variables to include the required OIDC variables described in [Installation - Backend Configuration](../installation/backend-config.md#openid-connect-oidc).
|
||||
|
||||
You might also want to set ALLOW_PASSWORD_LOGIN to false, to hide the username+password inputs, if you want to allow logins only via OIDC.
|
||||
|
||||
### Groups
|
||||
|
||||
There are two (optional) [environment variables](../installation/backend-config.md#openid-connect-oidc) that can control which of the users in your IdP can log in to Mealie and what permissions they will have. Keep in mind that these groups **do not necessarily correspond to groups in Mealie**. The groups claim is configurable via the `OIDC_GROUPS_CLAIM` environment variable. The groups should be **defined in your IdP** and be returned in the configured claim value.
|
||||
|
|
|
@ -36,6 +36,10 @@ Before you can start using OIDC Authentication, you must first configure a new c
|
|||
http://localhost:9091/login
|
||||
https://mealie.example.com/login
|
||||
|
||||
If you are hosting Mealie behind a reverse proxy (nginx, Caddy, ...) to terminate TLS, make sure to start Mealie's Gunicorn server
|
||||
with `--forwarded-allow-ips=<ip-of-proxy>`, otherwise the `X-Forwarded-*` headers will be ignored and the generated OIDC redirect
|
||||
URI will use the wrong scheme (http instead of https). This will lead to authentication errors with strict OIDC providers.
|
||||
|
||||
3. Configure origins
|
||||
|
||||
If your identity provider enforces CORS on any endpoints, you will need to specify your Mealie URL as an Allowed Origin.
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
| API_DOCS | True | Turns on/off access to the API documentation locally |
|
||||
| TZ | UTC | Must be set to get correct date/time on the server |
|
||||
| ALLOW_SIGNUP<super>\*</super> | false | Allow user sign-up without token |
|
||||
| ALLOW_PASSWORD_LOGIN | true | Whether or not to display the username+password input fields. Keep set to true unless you use OIDC authentication |
|
||||
| LOG_CONFIG_OVERRIDE | | Override the config for logging with a custom path |
|
||||
| LOG_LEVEL | info | Logging level (e.g. critical, error, warning, info, debug) |
|
||||
| DAILY_SCHEDULE_TIME | 23:45 | The time of day to run daily server tasks, in HH:MM format. Use the server's local time, *not* UTC |
|
||||
|
|
|
@ -851,13 +851,13 @@
|
|||
},
|
||||
"shopping-list": {
|
||||
"all-lists": "Όλες οι λίστες",
|
||||
"create-shopping-list": "Δημιουργία Λίστας Αγορών",
|
||||
"create-shopping-list": "Δημιουργία λίστας για ψώνια",
|
||||
"from-recipe": "Από Τη Συνταγή",
|
||||
"list-name": "Όνομα λίστας",
|
||||
"new-list": "Νέα λίστα",
|
||||
"quantity": "Ποσότητα: {0}",
|
||||
"shopping-list": "Λίστα αγορών",
|
||||
"shopping-lists": "Λίστες Αγορών",
|
||||
"shopping-list": "Λίστα για ψώνια",
|
||||
"shopping-lists": "Λίστες για ψώνια",
|
||||
"food": "Τρόφιμο",
|
||||
"note": "Σημείωση",
|
||||
"label": "Ετικέτα",
|
||||
|
@ -874,7 +874,7 @@
|
|||
"uncheck-all-items": "Αποεπιλογή όλων των αντικειμένων",
|
||||
"check-all-items": "Επιλογή όλων των αντικειμένων",
|
||||
"linked-recipes-count": "Χωρίς συνδεδεμένες συνταγές|Μία συνδεδεμένη συνταγή|{count} συνδεδεμένες συνταγές",
|
||||
"items-checked-count": "Δεν επιλέχθηκαν αντικείμενο|Επιλέχθηκε ένα αντικείμενο|Επιλέχθηκαν {count} αντικείμενα",
|
||||
"items-checked-count": "Δεν επιλέχθηκαν αντικείμενα|Επιλέχθηκε ένα αντικείμενο|Επιλέχθηκαν {count} αντικείμενα",
|
||||
"no-label": "Χωρίς ετικέτα",
|
||||
"completed-on": "Ολοκληρώθηκε στις {date}",
|
||||
"you-are-offline": "Είστε εκτός σύνδεσης",
|
||||
|
@ -882,7 +882,7 @@
|
|||
"are-you-sure-you-want-to-check-all-items": "Θέλετε σίγουρα να επιλέξετε όλα τα αντικείμενα;",
|
||||
"are-you-sure-you-want-to-uncheck-all-items": "Θέλετε σίγουρα να αποεπιλέξετε όλα τα αντικείμενα;",
|
||||
"are-you-sure-you-want-to-delete-checked-items": "Θέλετε σίγουρα να διαγράψετε όλα τα επιλεγμένα αντικείμενα;",
|
||||
"no-shopping-lists-found": "Δεν βρέθηκαν λίστες αγορών"
|
||||
"no-shopping-lists-found": "Δεν βρέθηκαν λίστες για ψώνια"
|
||||
},
|
||||
"sidebar": {
|
||||
"all-recipes": "Συνταγές όλες",
|
||||
|
@ -1060,7 +1060,7 @@
|
|||
"example-food-singular": "ex: Κρεμμύδι",
|
||||
"example-food-plural": "ex: Κρεμμύδια",
|
||||
"label-overwrite-warning": "Αυτό θα αντιστοιχίσει την επιλεγμένη ετικέτα σε όλα τα επιλεγμένα τρόφιμα και ενδεχομένως να αντικαταστήσει τις υπάρχουσες ετικέτες σας.",
|
||||
"on-hand-checkbox-label": "Η ρύθμιση αυτής της σημαίας θα κάνει αυτό το τρόφιμο αποεπιλεγμένο από προεπιλογή κατά την προσθήκη μιας συνταγής σε μια λίστα αγορών."
|
||||
"on-hand-checkbox-label": "Η ρύθμιση αυτής της σημαίας θα κάνει αυτό το τρόφιμο αποεπιλεγμένο από προεπιλογή κατά την προσθήκη μιας συνταγής σε μια λίστα για ψώνια."
|
||||
},
|
||||
"units": {
|
||||
"seed-dialog-text": "Τροφοδοτήστε τη βάση δεδομένων με κοινές μονάδες με βάση την τοπική σας γλώσσα.",
|
||||
|
@ -1151,7 +1151,7 @@
|
|||
"create-a-new-group": "Δημιουργία νέας ομάδας",
|
||||
"provide-registration-token-description": "Παρακαλώ δώστε το διακριτικό εγγραφής που σχετίζεται με την ομάδα που θα θέλατε να συμμετάσχετε. Θα χρειαστεί να το αποκτήσετε από ένα υπάρχον μέλος της ομάδας.",
|
||||
"group-details": "Λεπτομέρειες ομάδας",
|
||||
"group-details-description": "Πριν δημιουργήσετε ένα λογαριασμό θα πρέπει να δημιουργήσετε μια ομάδα. Η ομάδα σας θα περιέχει μόνο εσάς, αλλά θα μπορείτε να προσκαλέσετε άλλους αργότερα. Μέλη της ομάδας σας μπορούν να μοιραστούν προγράμματα γευμάτων, λίστες αγορών, συνταγές και πολλά άλλα!",
|
||||
"group-details-description": "Πριν δημιουργήσετε ένα λογαριασμό θα πρέπει να δημιουργήσετε μια ομάδα. Η ομάδα σας θα περιέχει μόνο εσάς, αλλά θα μπορείτε να προσκαλέσετε άλλους αργότερα. Μέλη της ομάδας σας μπορούν να μοιραστούν προγράμματα γευμάτων, λίστες για ψώνια, συνταγές και πολλά άλλα!",
|
||||
"use-seed-data": "Χρήση δεδομένων από τροφοδοσία",
|
||||
"use-seed-data-description": "Το Mealie έρχεται με μια συλλογή Τροφίμων, Μονάδων και Ετικετών που μπορούν να χρησιμοποιηθούν για τη συμπλήρωση της ομάδας σας με χρήσιμα δεδομένα για την οργάνωση των συνταγών σας.",
|
||||
"account-details": "Λεπτομέρειες λογαριασμού"
|
||||
|
|
|
@ -413,11 +413,11 @@
|
|||
"description-long": "Mealie может импортировать рецепты из Plan to Eat."
|
||||
},
|
||||
"myrecipebox": {
|
||||
"title": "My Recipe Box",
|
||||
"title": "Мой ящик с рецептами",
|
||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||
},
|
||||
"recipekeeper": {
|
||||
"title": "Recipe Keeper",
|
||||
"title": "Хранитель рецептов",
|
||||
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||
}
|
||||
},
|
||||
|
@ -432,7 +432,7 @@
|
|||
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Вставьте в данные рецепта. Каждая строка будет рассматриваться как отдельный предмет в списке",
|
||||
"recipe-markup-specification": "Спецификация разметки рецепта",
|
||||
"recipe-url": "URL-адрес рецепта",
|
||||
"recipe-html-or-json": "Recipe HTML or JSON",
|
||||
"recipe-html-or-json": "Рецепт в HTML или JSON",
|
||||
"upload-a-recipe": "Загрузить рецепт",
|
||||
"upload-individual-zip-file": "Загрузить отдельный .zip файл, экспортированный из другой Mealie.",
|
||||
"url-form-hint": "Скопируйте и вставьте ссылку из вашего любимого сайта рецептов",
|
||||
|
@ -518,7 +518,7 @@
|
|||
"save-recipe-before-use": "Сохранить рецепт перед использованием",
|
||||
"section-title": "Название раздела",
|
||||
"servings": "Порций",
|
||||
"serves-amount": "Serves {amount}",
|
||||
"serves-amount": "Серверов {amount}",
|
||||
"share-recipe-message": "Я хотел(а) поделиться с тобой моим рецептом {0}.",
|
||||
"show-nutrition-values": "Показать пищевую ценность",
|
||||
"sodium-content": "Соль",
|
||||
|
@ -528,7 +528,7 @@
|
|||
"total-time": "Общее время",
|
||||
"trans-fat-content": "Трансжиры",
|
||||
"unable-to-delete-recipe": "Не получилось удалить рецепт",
|
||||
"unsaturated-fat-content": "Unsaturated fat",
|
||||
"unsaturated-fat-content": "Насыщенные жиры",
|
||||
"no-recipe": "Нет рецепта",
|
||||
"locked-by-owner": "Заблокировано владельцем",
|
||||
"join-the-conversation": "Присоединиться к беседе",
|
||||
|
@ -596,10 +596,10 @@
|
|||
"create-recipe-description": "Создать новый рецепт с нуля.",
|
||||
"create-recipes": "Создать Рецепт",
|
||||
"import-with-zip": "Импорт из .zip",
|
||||
"create-recipe-from-an-image": "Create Recipe from an Image",
|
||||
"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": "Создать рецепт из изображения",
|
||||
"create-recipe-from-an-image-description": "Создайте рецепт, загрузив изображение. Mealie попытается извлечь текст из изображения с помощью ИИ и создать рецепт из него.",
|
||||
"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": "Создать из изображения",
|
||||
"should-translate-description": "Перевести рецепт на мой язык",
|
||||
"please-wait-image-procesing": "Подождите, идет обработка изображения.",
|
||||
"bulk-url-import": "Массовый импорт по URL",
|
||||
|
@ -618,7 +618,7 @@
|
|||
"import-from-zip-description": "Импорт одного рецепта, который был экспортирован из другого экземпляра Mealie.",
|
||||
"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.",
|
||||
"json-import-format-description-colon": "To import via JSON, it must be in valid format:",
|
||||
"json-import-format-description-colon": "Для импорта через JSON, он должен быть в правильном формате:",
|
||||
"json-editor": "Редактор JSON",
|
||||
"zip-files-must-have-been-exported-from-mealie": ".zip файлы должны быть экспортированы из Mealie",
|
||||
"create-a-recipe-by-uploading-a-scan": "Создайте рецепт, загрузив скан.",
|
||||
|
@ -636,7 +636,7 @@
|
|||
"recipe-debugger-use-openai-description": "Use OpenAI to parse the results instead of relying on the scraper library. When creating a recipe via URL, this is done automatically if the scraper library fails, but you may test it manually here.",
|
||||
"debug": "Отладка",
|
||||
"tree-view": "В виде дерева",
|
||||
"recipe-servings": "Recipe Servings",
|
||||
"recipe-servings": "Порции",
|
||||
"recipe-yield": "Количество порций",
|
||||
"recipe-yield-text": "Recipe Yield Text",
|
||||
"unit": "Единица измерения",
|
||||
|
@ -654,9 +654,9 @@
|
|||
"brute-parser": "Brute Parser",
|
||||
"openai-parser": "OpenAI Parser",
|
||||
"parse-all": "Обработать все",
|
||||
"no-unit": "No unit",
|
||||
"missing-unit": "Create missing unit: {unit}",
|
||||
"missing-food": "Create missing food: {food}",
|
||||
"no-unit": "Без единиц",
|
||||
"missing-unit": "Создать недостающую единицу: {unit}",
|
||||
"missing-food": "Создать недостающую еду: {food}",
|
||||
"no-food": "Нет еды"
|
||||
},
|
||||
"reset-servings-count": "Сбросить количество порций",
|
||||
|
@ -666,18 +666,18 @@
|
|||
"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.",
|
||||
"selected-ingredients": "Выбранные ингредиенты",
|
||||
"no-ingredients-selected": "No ingredients selected",
|
||||
"missing": "Missing",
|
||||
"no-ingredients-selected": "Нет выбранных ингредиентов",
|
||||
"missing": "Отсутствует",
|
||||
"no-recipes-found": "Рецепты не найдены",
|
||||
"no-recipes-found-description": "Try adding more ingredients to your search or adjusting your filters",
|
||||
"no-recipes-found-description": "Попробуйте добавить больше ингредиентов для поиска или измените настройки фильтров",
|
||||
"include-ingredients-on-hand": "Include Ingredients On Hand",
|
||||
"include-tools-on-hand": "Include Tools On Hand",
|
||||
"max-missing-ingredients": "Max Missing Ingredients",
|
||||
"max-missing-tools": "Max Missing Tools",
|
||||
"selected-tools": "Selected Tools",
|
||||
"other-filters": "Other Filters",
|
||||
"ready-to-make": "Ready to Make",
|
||||
"almost-ready-to-make": "Almost Ready to Make"
|
||||
"max-missing-ingredients": "Максимальное количество отсутствующих ингредиентов",
|
||||
"max-missing-tools": "Максимальное количество отсутствующих инструментов",
|
||||
"selected-tools": "Выбранные инструменты",
|
||||
"other-filters": "Другие фильтры",
|
||||
"ready-to-make": "Готово к созданию",
|
||||
"almost-ready-to-make": "Почти готово к созданию"
|
||||
},
|
||||
"search": {
|
||||
"advanced-search": "Расширенный поиск",
|
||||
|
@ -688,7 +688,7 @@
|
|||
"or": "Или",
|
||||
"has-any": "Включает любое",
|
||||
"has-all": "Включает все",
|
||||
"clear-selection": "Clear Selection",
|
||||
"clear-selection": "Очистить выделение",
|
||||
"results": "Результаты",
|
||||
"search": "Поиск",
|
||||
"search-mealie": "Поиск Mealie (нажмите /)",
|
||||
|
@ -707,7 +707,7 @@
|
|||
"backup-created-at-response-export_path": "Резервная копия создана в {path}",
|
||||
"backup-deleted": "Резервная копия удалена",
|
||||
"restore-success": "Восстановление прошло успешно",
|
||||
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||
"restore-fail": "Восстановление не удалось. Проверьте журналы сервера для более подробной информации",
|
||||
"backup-tag": "Тег резервной копии",
|
||||
"create-heading": "Создать резервную копию",
|
||||
"delete-backup": "Удалить резервную копию",
|
||||
|
@ -720,7 +720,7 @@
|
|||
"backup-restore": "Восстановление резервной копии",
|
||||
"back-restore-description": "Восстановление этой резервной копии перезапишет все текущие данные в вашей базе данных и в каталоге данных и заменит их содержимым этой резервной копии. {cannot-be-undone} при успешном восстановлении вы выйдете из системы.",
|
||||
"cannot-be-undone": "Это действие нельзя отменить, используйте с осторожностью.",
|
||||
"postgresql-note": "If you are using PostgreSQL, please review the {backup-restore-process} prior to restoring.",
|
||||
"postgresql-note": "Если вы используете PostgreSQL пожалуйста, просмотрите {backup-restore-process} перед восстановлением.",
|
||||
"backup-restore-process-in-the-documentation": "процесс резервного копирования/восстановления в документации",
|
||||
"irreversible-acknowledgment": "Я понимаю, что это действие является необратимым, разрушительным и может привести к потере данных",
|
||||
"restore-backup": "Восстановить резервную копию"
|
||||
|
|
|
@ -10,6 +10,7 @@ export interface AdminAboutInfo {
|
|||
version: string;
|
||||
demoStatus: boolean;
|
||||
allowSignup: boolean;
|
||||
allowPasswordLogin: boolean;
|
||||
defaultGroupSlug?: string | null;
|
||||
defaultHouseholdSlug?: string | null;
|
||||
enableOidc: boolean;
|
||||
|
@ -41,6 +42,7 @@ export interface AppInfo {
|
|||
version: string;
|
||||
demoStatus: boolean;
|
||||
allowSignup: boolean;
|
||||
allowPasswordLogin: boolean;
|
||||
defaultGroupSlug?: string | null;
|
||||
defaultHouseholdSlug?: string | null;
|
||||
enableOidc: boolean;
|
||||
|
|
|
@ -68,6 +68,7 @@
|
|||
<v-card-text class="w-100">
|
||||
<v-form @submit.prevent="authenticate">
|
||||
<v-text-field
|
||||
v-if="allowPasswordLogin"
|
||||
v-model="form.email"
|
||||
:prepend-inner-icon="$globals.icons.email"
|
||||
variant="solo-filled"
|
||||
|
@ -80,6 +81,7 @@
|
|||
type="text"
|
||||
/>
|
||||
<v-text-field
|
||||
v-if="allowPasswordLogin"
|
||||
id="password"
|
||||
v-model="form.password"
|
||||
:prepend-inner-icon="$globals.icons.lock"
|
||||
|
@ -97,7 +99,7 @@
|
|||
class="ml-2 mt-n2"
|
||||
:label="$t('user.remember-me')"
|
||||
/>
|
||||
<v-card-actions class="justify-center pt-0">
|
||||
<v-card-actions v-if="allowPasswordLogin" class="justify-center pt-0">
|
||||
<div class="max-button">
|
||||
<v-btn
|
||||
:loading="loggingIn"
|
||||
|
@ -279,6 +281,7 @@ export default defineNuxtComponent({
|
|||
const allowOidc = computed(() => appInfo.value?.enableOidc || false);
|
||||
const oidcRedirect = computed(() => appInfo.value?.oidcRedirect || false);
|
||||
const oidcProviderName = computed(() => appInfo.value?.oidcProviderName || "OAuth");
|
||||
const allowPasswordLogin = computed(() => appInfo.value?.allowPasswordLogin ?? true);
|
||||
|
||||
whenever(
|
||||
() => allowOidc.value && oidcRedirect.value && !isCallback() && !isDirectLogin() /* && !$auth.check().valid */,
|
||||
|
@ -364,6 +367,7 @@ export default defineNuxtComponent({
|
|||
form,
|
||||
loggingIn,
|
||||
allowSignup,
|
||||
allowPasswordLogin,
|
||||
allowOidc,
|
||||
authenticate,
|
||||
oidcAuthenticate,
|
||||
|
|
|
@ -129,6 +129,7 @@ class AppSettings(AppLoggingSettings):
|
|||
GIT_COMMIT_HASH: str = "unknown"
|
||||
|
||||
ALLOW_SIGNUP: bool = False
|
||||
ALLOW_PASSWORD_LOGIN: bool = True
|
||||
|
||||
DAILY_SCHEDULE_TIME: str = "23:45"
|
||||
"""Local server time, in HH:MM format. See `DAILY_SCHEDULE_TIME_UTC` for the parsed UTC equivalent"""
|
||||
|
|
|
@ -6,33 +6,33 @@
|
|||
"name": "alfalfa sprouts"
|
||||
},
|
||||
"anchovies": {
|
||||
"name": "anchovies"
|
||||
"name": "анчоусы"
|
||||
},
|
||||
"apples": {
|
||||
"name": "apple",
|
||||
"plural_name": "apples"
|
||||
"name": "яблоки",
|
||||
"plural_name": "яблоки"
|
||||
},
|
||||
"artichoke": {
|
||||
"name": "artichoke"
|
||||
"name": "артишок"
|
||||
},
|
||||
"arugula": {
|
||||
"name": "arugula"
|
||||
"name": "руккола"
|
||||
},
|
||||
"asparagus": {
|
||||
"name": "asparagus"
|
||||
"name": "спаржа"
|
||||
},
|
||||
"avocado": {
|
||||
"name": "avocado",
|
||||
"plural_name": "avocado"
|
||||
"name": "авокадо",
|
||||
"plural_name": "авокадо"
|
||||
},
|
||||
"bacon": {
|
||||
"name": "bacon"
|
||||
"name": "бекон"
|
||||
},
|
||||
"baking-powder": {
|
||||
"name": "baking powder"
|
||||
"name": "разрыхлитель"
|
||||
},
|
||||
"baking-soda": {
|
||||
"name": "baking soda"
|
||||
"name": "пищевая сода"
|
||||
},
|
||||
"baking-sugar": {
|
||||
"name": "baking sugar"
|
||||
|
@ -41,35 +41,35 @@
|
|||
"name": "bar sugar"
|
||||
},
|
||||
"basil": {
|
||||
"name": "basil"
|
||||
"name": "базилик"
|
||||
},
|
||||
"beans": {
|
||||
"name": "beans"
|
||||
"name": "фасоль"
|
||||
},
|
||||
"bell-peppers": {
|
||||
"name": "bell peppers",
|
||||
"plural_name": "bell peppers"
|
||||
"name": "болгарский перец",
|
||||
"plural_name": "болгарский перец"
|
||||
},
|
||||
"blackberries": {
|
||||
"name": "blackberries"
|
||||
"name": "ежевика"
|
||||
},
|
||||
"bok-choy": {
|
||||
"name": "bok choy"
|
||||
},
|
||||
"brassicas": {
|
||||
"name": "brassicas"
|
||||
"name": "капуста"
|
||||
},
|
||||
"bread": {
|
||||
"name": "bread"
|
||||
"name": "хлеб"
|
||||
},
|
||||
"breadfruit": {
|
||||
"name": "breadfruit"
|
||||
"name": "плод хлебного дерева"
|
||||
},
|
||||
"broccoflower": {
|
||||
"name": "broccoflower"
|
||||
},
|
||||
"broccoli": {
|
||||
"name": "broccoli"
|
||||
"name": "брокколи"
|
||||
},
|
||||
"broccoli-rabe": {
|
||||
"name": "broccoli rabe"
|
||||
|
@ -78,13 +78,13 @@
|
|||
"name": "broccolini"
|
||||
},
|
||||
"brown-sugar": {
|
||||
"name": "brown sugar"
|
||||
"name": "коричневый сахар"
|
||||
},
|
||||
"brussels-sprouts": {
|
||||
"name": "brussels sprouts"
|
||||
"name": "брюссельская капуста"
|
||||
},
|
||||
"butter": {
|
||||
"name": "butter"
|
||||
"name": "сливочное масло"
|
||||
},
|
||||
"butternut-pumpkin": {
|
||||
"name": "butternut pumpkin"
|
||||
|
@ -93,165 +93,165 @@
|
|||
"name": "butternut squash"
|
||||
},
|
||||
"cabbage": {
|
||||
"name": "cabbage",
|
||||
"plural_name": "cabbages"
|
||||
"name": "капуста",
|
||||
"plural_name": "капуста"
|
||||
},
|
||||
"cactus-edible": {
|
||||
"name": "cactus, edible"
|
||||
"name": "кактус, съедобный"
|
||||
},
|
||||
"calabrese": {
|
||||
"name": "calabrese"
|
||||
},
|
||||
"cane-sugar": {
|
||||
"name": "cane sugar"
|
||||
"name": "тростниковый сахар"
|
||||
},
|
||||
"cannabis": {
|
||||
"name": "cannabis"
|
||||
"name": "конопля"
|
||||
},
|
||||
"capsicum": {
|
||||
"name": "capsicum"
|
||||
"name": "стручковый перец"
|
||||
},
|
||||
"caraway": {
|
||||
"name": "caraway"
|
||||
"name": "тмин"
|
||||
},
|
||||
"carrot": {
|
||||
"name": "carrot",
|
||||
"plural_name": "carrots"
|
||||
"name": "морковь",
|
||||
"plural_name": ""
|
||||
},
|
||||
"caster-sugar": {
|
||||
"name": "caster sugar"
|
||||
"name": "мелкозернистый сахар"
|
||||
},
|
||||
"castor-sugar": {
|
||||
"name": "castor sugar"
|
||||
"name": "сахарная пудра"
|
||||
},
|
||||
"catfish": {
|
||||
"name": "catfish"
|
||||
"name": "сом"
|
||||
},
|
||||
"cauliflower": {
|
||||
"name": "cauliflower",
|
||||
"plural_name": "cauliflowers"
|
||||
"name": "цветная капуста",
|
||||
"plural_name": "цветная капуста"
|
||||
},
|
||||
"cayenne-pepper": {
|
||||
"name": "cayenne pepper"
|
||||
"name": "кайенский перец"
|
||||
},
|
||||
"celeriac": {
|
||||
"name": "celery root"
|
||||
"name": "корень сельдерея"
|
||||
},
|
||||
"celery": {
|
||||
"name": "celery"
|
||||
"name": "сельдерей"
|
||||
},
|
||||
"cereal-grains": {
|
||||
"name": "cereal grains"
|
||||
"name": "злаковое зерно"
|
||||
},
|
||||
"chard": {
|
||||
"name": "chard"
|
||||
"name": "мангольд"
|
||||
},
|
||||
"cheese": {
|
||||
"name": "cheese"
|
||||
"name": "сыр"
|
||||
},
|
||||
"chicory": {
|
||||
"name": "chicory"
|
||||
"name": "цикорий"
|
||||
},
|
||||
"chilli-peppers": {
|
||||
"name": "chilli pepper",
|
||||
"plural_name": "chilli peppers"
|
||||
"name": "перец чили",
|
||||
"plural_name": "перец чили"
|
||||
},
|
||||
"chinese-leaves": {
|
||||
"name": "chinese leaves"
|
||||
"name": "китайская капуста"
|
||||
},
|
||||
"chives": {
|
||||
"name": "chives"
|
||||
},
|
||||
"chocolate": {
|
||||
"name": "chocolate"
|
||||
"name": "шоколад"
|
||||
},
|
||||
"cilantro": {
|
||||
"name": "cilantro"
|
||||
"name": "кинза"
|
||||
},
|
||||
"cinnamon": {
|
||||
"name": "cinnamon"
|
||||
"name": "корица"
|
||||
},
|
||||
"clarified-butter": {
|
||||
"name": "clarified butter"
|
||||
"name": "топленое масло"
|
||||
},
|
||||
"coconut": {
|
||||
"name": "coconut",
|
||||
"plural_name": "coconuts"
|
||||
"name": "кокос",
|
||||
"plural_name": "кокосы"
|
||||
},
|
||||
"coconut-milk": {
|
||||
"name": "coconut milk"
|
||||
"name": "кокосовое молоко"
|
||||
},
|
||||
"cod": {
|
||||
"name": "cod"
|
||||
"name": "треска"
|
||||
},
|
||||
"coffee": {
|
||||
"name": "coffee"
|
||||
"name": "кофе"
|
||||
},
|
||||
"collard-greens": {
|
||||
"name": "collard greens"
|
||||
"name": "листовая капуста"
|
||||
},
|
||||
"confectioners-sugar": {
|
||||
"name": "confectioners' sugar"
|
||||
"name": "кондитерский сахар"
|
||||
},
|
||||
"coriander": {
|
||||
"name": "coriander"
|
||||
"name": "кориандр"
|
||||
},
|
||||
"corn": {
|
||||
"name": "corn",
|
||||
"plural_name": "corns"
|
||||
"name": "кукуруза",
|
||||
"plural_name": "кукуруза"
|
||||
},
|
||||
"corn-syrup": {
|
||||
"name": "corn syrup"
|
||||
"name": "кукурузный сироп"
|
||||
},
|
||||
"cottonseed-oil": {
|
||||
"name": "cottonseed oil"
|
||||
"name": ""
|
||||
},
|
||||
"courgette": {
|
||||
"name": "courgette"
|
||||
"name": "цукини"
|
||||
},
|
||||
"cream-of-tartar": {
|
||||
"name": "cream of tartar"
|
||||
},
|
||||
"cucumber": {
|
||||
"name": "cucumber",
|
||||
"plural_name": "cucumbers"
|
||||
"name": "огурец",
|
||||
"plural_name": "огурцы"
|
||||
},
|
||||
"cumin": {
|
||||
"name": "cumin"
|
||||
},
|
||||
"daikon": {
|
||||
"name": "daikon",
|
||||
"plural_name": "daikons"
|
||||
"name": "дайкон",
|
||||
"plural_name": "дайкон"
|
||||
},
|
||||
"dairy-products-and-dairy-substitutes": {
|
||||
"name": "dairy products and dairy substitutes"
|
||||
"name": "молочные продукты и их заменители"
|
||||
},
|
||||
"dandelion": {
|
||||
"name": "dandelion"
|
||||
"name": "одуванчик"
|
||||
},
|
||||
"demerara-sugar": {
|
||||
"name": "demerara sugar"
|
||||
},
|
||||
"dough": {
|
||||
"name": "dough"
|
||||
"name": "тесто"
|
||||
},
|
||||
"edible-cactus": {
|
||||
"name": "edible cactus"
|
||||
"name": "съедобный кактус"
|
||||
},
|
||||
"eggplant": {
|
||||
"name": "eggplant",
|
||||
"plural_name": "eggplants"
|
||||
"name": "баклажан",
|
||||
"plural_name": "баклажаны"
|
||||
},
|
||||
"eggs": {
|
||||
"name": "egg",
|
||||
"plural_name": "eggs"
|
||||
"name": "яйцо",
|
||||
"plural_name": "яйца"
|
||||
},
|
||||
"endive": {
|
||||
"name": "endive",
|
||||
"plural_name": "endives"
|
||||
},
|
||||
"fats": {
|
||||
"name": "fats"
|
||||
"name": "жиры"
|
||||
},
|
||||
"fava-beans": {
|
||||
"name": "fava beans"
|
||||
|
@ -264,22 +264,22 @@
|
|||
"plural_name": "fiddlehead ferns"
|
||||
},
|
||||
"fish": {
|
||||
"name": "fish"
|
||||
"name": "рыба"
|
||||
},
|
||||
"five-spice-powder": {
|
||||
"name": "five spice powder"
|
||||
"name": "фруктоза"
|
||||
},
|
||||
"flour": {
|
||||
"name": "flour"
|
||||
"name": "мука"
|
||||
},
|
||||
"frisee": {
|
||||
"name": "frisee"
|
||||
},
|
||||
"fructose": {
|
||||
"name": "fructose"
|
||||
"name": "фруктоза"
|
||||
},
|
||||
"fruit": {
|
||||
"name": "fruit"
|
||||
"name": "фрукт"
|
||||
},
|
||||
"fruit-sugar": {
|
||||
"name": "fruit sugar"
|
||||
|
@ -291,8 +291,8 @@
|
|||
"name": "garam masala"
|
||||
},
|
||||
"garlic": {
|
||||
"name": "garlic",
|
||||
"plural_name": "garlics"
|
||||
"name": "чеснок",
|
||||
"plural_name": "чеснок"
|
||||
},
|
||||
"gem-squash": {
|
||||
"name": "gem squash"
|
||||
|
@ -304,58 +304,58 @@
|
|||
"name": "giblets"
|
||||
},
|
||||
"ginger": {
|
||||
"name": "ginger"
|
||||
"name": "имбирь"
|
||||
},
|
||||
"grains": {
|
||||
"name": "grains"
|
||||
"name": "крупы"
|
||||
},
|
||||
"granulated-sugar": {
|
||||
"name": "granulated sugar"
|
||||
"name": "гранулированный сахар"
|
||||
},
|
||||
"grape-seed-oil": {
|
||||
"name": "grape seed oil"
|
||||
"name": "масло из семян винограда"
|
||||
},
|
||||
"green-onion": {
|
||||
"name": "green onion",
|
||||
"plural_name": "green onions"
|
||||
"name": "зеленый лук",
|
||||
"plural_name": "зелёный лук"
|
||||
},
|
||||
"heart-of-palm": {
|
||||
"name": "heart of palm",
|
||||
"plural_name": "heart of palms"
|
||||
},
|
||||
"hemp": {
|
||||
"name": "hemp"
|
||||
"name": "конопля"
|
||||
},
|
||||
"herbs": {
|
||||
"name": "herbs"
|
||||
"name": "травы"
|
||||
},
|
||||
"honey": {
|
||||
"name": "honey"
|
||||
"name": "мёд"
|
||||
},
|
||||
"isomalt": {
|
||||
"name": "isomalt"
|
||||
"name": "изомальт"
|
||||
},
|
||||
"jackfruit": {
|
||||
"name": "jackfruit",
|
||||
"plural_name": "jackfruits"
|
||||
"name": "джекфрут",
|
||||
"plural_name": "джекфрут"
|
||||
},
|
||||
"jaggery": {
|
||||
"name": "jaggery"
|
||||
"name": "пальмовый сахар"
|
||||
},
|
||||
"jams": {
|
||||
"name": "jams"
|
||||
"name": "джем"
|
||||
},
|
||||
"jellies": {
|
||||
"name": "jellies"
|
||||
"name": "желе"
|
||||
},
|
||||
"jerusalem-artichoke": {
|
||||
"name": "jerusalem artichoke"
|
||||
"name": "топинамбур"
|
||||
},
|
||||
"jicama": {
|
||||
"name": "jicama"
|
||||
},
|
||||
"kale": {
|
||||
"name": "kale"
|
||||
"name": "капуста"
|
||||
},
|
||||
"kohlrabi": {
|
||||
"name": "kohlrabi"
|
||||
|
@ -364,83 +364,83 @@
|
|||
"name": "kumara"
|
||||
},
|
||||
"leavening-agents": {
|
||||
"name": "leavening agents"
|
||||
"name": "разрыхлитель"
|
||||
},
|
||||
"leek": {
|
||||
"name": "leek",
|
||||
"plural_name": "leeks"
|
||||
"name": "лук-порей",
|
||||
"plural_name": "лук-порей"
|
||||
},
|
||||
"legumes": {
|
||||
"name": "legumes"
|
||||
"name": "бобовые"
|
||||
},
|
||||
"lemongrass": {
|
||||
"name": "lemongrass"
|
||||
"name": "лемонграсс"
|
||||
},
|
||||
"lentils": {
|
||||
"name": "lentils"
|
||||
"name": "чечевица"
|
||||
},
|
||||
"lettuce": {
|
||||
"name": "lettuce"
|
||||
"name": "салат"
|
||||
},
|
||||
"liver": {
|
||||
"name": "liver",
|
||||
"plural_name": "livers"
|
||||
"name": "печень",
|
||||
"plural_name": "печень"
|
||||
},
|
||||
"maize": {
|
||||
"name": "maize"
|
||||
},
|
||||
"maple-syrup": {
|
||||
"name": "maple syrup"
|
||||
"name": "кленовый сироп"
|
||||
},
|
||||
"meat": {
|
||||
"name": "meat"
|
||||
"name": "мясо"
|
||||
},
|
||||
"milk": {
|
||||
"name": "milk"
|
||||
"name": "молоко"
|
||||
},
|
||||
"mortadella": {
|
||||
"name": "mortadella"
|
||||
"name": "мортаделла"
|
||||
},
|
||||
"mushroom": {
|
||||
"name": "mushroom",
|
||||
"plural_name": "mushrooms"
|
||||
"name": "гриб",
|
||||
"plural_name": "грибы"
|
||||
},
|
||||
"mussels": {
|
||||
"name": "mussels"
|
||||
"name": "мидии"
|
||||
},
|
||||
"nanaimo-bar-mix": {
|
||||
"name": "nanaimo bar mix"
|
||||
},
|
||||
"nori": {
|
||||
"name": "nori"
|
||||
"name": "нори"
|
||||
},
|
||||
"nutmeg": {
|
||||
"name": "nutmeg"
|
||||
"name": "мускат"
|
||||
},
|
||||
"nutritional-yeast-flakes": {
|
||||
"name": "nutritional yeast flakes"
|
||||
"name": "пищевые дрожжи"
|
||||
},
|
||||
"nuts": {
|
||||
"name": "nuts"
|
||||
"name": "орехи"
|
||||
},
|
||||
"octopuses": {
|
||||
"name": "octopus",
|
||||
"plural_name": "octopuses"
|
||||
"name": "осьминог",
|
||||
"plural_name": "осьминоги"
|
||||
},
|
||||
"oils": {
|
||||
"name": "oils"
|
||||
"name": "масла"
|
||||
},
|
||||
"okra": {
|
||||
"name": "okra"
|
||||
},
|
||||
"olive": {
|
||||
"name": "olive"
|
||||
"name": "оливка"
|
||||
},
|
||||
"olive-oil": {
|
||||
"name": "olive oil"
|
||||
"name": "оливковое масло"
|
||||
},
|
||||
"onion": {
|
||||
"name": "onion"
|
||||
"name": "лук"
|
||||
},
|
||||
"onion-family": {
|
||||
"name": "onion family"
|
||||
|
@ -449,143 +449,143 @@
|
|||
"name": "orange blossom water"
|
||||
},
|
||||
"oranges": {
|
||||
"name": "orange",
|
||||
"plural_name": "oranges"
|
||||
"name": "апельсин",
|
||||
"plural_name": "апельсины"
|
||||
},
|
||||
"oregano": {
|
||||
"name": "oregano"
|
||||
"name": "орегано"
|
||||
},
|
||||
"oysters": {
|
||||
"name": "oysters"
|
||||
"name": "устрицы"
|
||||
},
|
||||
"panch-puran": {
|
||||
"name": "panch puran"
|
||||
},
|
||||
"paprika": {
|
||||
"name": "paprika"
|
||||
"name": "паприка"
|
||||
},
|
||||
"parsley": {
|
||||
"name": "parsley"
|
||||
"name": "петрушка"
|
||||
},
|
||||
"parsnip": {
|
||||
"name": "parsnip",
|
||||
"plural_name": "parsnips"
|
||||
"name": "пастернак",
|
||||
"plural_name": "пастернак"
|
||||
},
|
||||
"pear": {
|
||||
"name": "pear",
|
||||
"plural_name": "pears"
|
||||
"name": "груша",
|
||||
"plural_name": "груши"
|
||||
},
|
||||
"peas": {
|
||||
"name": "peas"
|
||||
"name": "горох"
|
||||
},
|
||||
"pepper": {
|
||||
"name": "pepper",
|
||||
"plural_name": "peppers"
|
||||
"name": "перец",
|
||||
"plural_name": "перцы"
|
||||
},
|
||||
"pineapple": {
|
||||
"name": "pineapple",
|
||||
"plural_name": "pineapples"
|
||||
"name": "ананас",
|
||||
"plural_name": "ананасы"
|
||||
},
|
||||
"plantain": {
|
||||
"name": "plantain",
|
||||
"plural_name": "plantains"
|
||||
},
|
||||
"poppy-seeds": {
|
||||
"name": "poppy seeds"
|
||||
"name": "семена мака"
|
||||
},
|
||||
"potato": {
|
||||
"name": "potato",
|
||||
"plural_name": "potatoes"
|
||||
"name": "картофель",
|
||||
"plural_name": "картофель"
|
||||
},
|
||||
"poultry": {
|
||||
"name": "poultry"
|
||||
"name": "мясо птицы"
|
||||
},
|
||||
"powdered-sugar": {
|
||||
"name": "powdered sugar"
|
||||
"name": "сахарная пудра"
|
||||
},
|
||||
"pumpkin": {
|
||||
"name": "pumpkin",
|
||||
"plural_name": "pumpkins"
|
||||
"name": "тыква",
|
||||
"plural_name": "тыквы"
|
||||
},
|
||||
"pumpkin-seeds": {
|
||||
"name": "pumpkin seeds"
|
||||
"name": "семена тыквы"
|
||||
},
|
||||
"radish": {
|
||||
"name": "radish",
|
||||
"plural_name": "radishes"
|
||||
"name": "редис",
|
||||
"plural_name": "редис"
|
||||
},
|
||||
"raw-sugar": {
|
||||
"name": "raw sugar"
|
||||
"name": "нерафинированный сахар"
|
||||
},
|
||||
"refined-sugar": {
|
||||
"name": "refined sugar"
|
||||
},
|
||||
"rice": {
|
||||
"name": "rice"
|
||||
"name": "рис"
|
||||
},
|
||||
"rice-flour": {
|
||||
"name": "rice flour"
|
||||
"name": "рисовая мука"
|
||||
},
|
||||
"rock-sugar": {
|
||||
"name": "rock sugar"
|
||||
},
|
||||
"rum": {
|
||||
"name": "rum"
|
||||
"name": "ром"
|
||||
},
|
||||
"salmon": {
|
||||
"name": "salmon"
|
||||
"name": "лосось"
|
||||
},
|
||||
"salt": {
|
||||
"name": "salt"
|
||||
"name": "соль"
|
||||
},
|
||||
"salt-cod": {
|
||||
"name": "salt cod"
|
||||
"name": "вяленая треска"
|
||||
},
|
||||
"scallion": {
|
||||
"name": "scallion",
|
||||
"plural_name": "scallions"
|
||||
},
|
||||
"seafood": {
|
||||
"name": "seafood"
|
||||
"name": "морепродукты"
|
||||
},
|
||||
"seeds": {
|
||||
"name": "seeds"
|
||||
"name": "семена"
|
||||
},
|
||||
"sesame-seeds": {
|
||||
"name": "sesame seeds"
|
||||
"name": "семена кунжута"
|
||||
},
|
||||
"shallot": {
|
||||
"name": "shallot",
|
||||
"plural_name": "shallots"
|
||||
},
|
||||
"skate": {
|
||||
"name": "skate"
|
||||
"name": "скат"
|
||||
},
|
||||
"soda": {
|
||||
"name": "soda"
|
||||
"name": "сода"
|
||||
},
|
||||
"soda-baking": {
|
||||
"name": "soda, baking"
|
||||
"name": "пищевая сода"
|
||||
},
|
||||
"soybean": {
|
||||
"name": "soybean"
|
||||
"name": "соевые бобы"
|
||||
},
|
||||
"spaghetti-squash": {
|
||||
"name": "spaghetti squash",
|
||||
"plural_name": "spaghetti squashes"
|
||||
},
|
||||
"speck": {
|
||||
"name": "speck"
|
||||
"name": "шпик"
|
||||
},
|
||||
"spices": {
|
||||
"name": "spices"
|
||||
"name": "специи"
|
||||
},
|
||||
"spinach": {
|
||||
"name": "spinach"
|
||||
"name": "шпинат"
|
||||
},
|
||||
"spring-onion": {
|
||||
"name": "spring onion",
|
||||
"plural_name": "spring onions"
|
||||
"name": "зелёный лук",
|
||||
"plural_name": "зелёный лук"
|
||||
},
|
||||
"squash": {
|
||||
"name": "squash",
|
||||
|
@ -595,98 +595,98 @@
|
|||
"name": "squash family"
|
||||
},
|
||||
"stockfish": {
|
||||
"name": "stockfish"
|
||||
"name": "вяленая рыба"
|
||||
},
|
||||
"sugar": {
|
||||
"name": "sugar"
|
||||
"name": "сахар"
|
||||
},
|
||||
"sunchoke": {
|
||||
"name": "sunchoke",
|
||||
"plural_name": "sunchokes"
|
||||
"name": "топинамбур",
|
||||
"plural_name": "топинамбур"
|
||||
},
|
||||
"sunflower-seeds": {
|
||||
"name": "sunflower seeds"
|
||||
"name": "семена подсолнечника"
|
||||
},
|
||||
"superfine-sugar": {
|
||||
"name": "superfine sugar"
|
||||
},
|
||||
"sweet-potato": {
|
||||
"name": "sweet potato",
|
||||
"plural_name": "sweet potatoes"
|
||||
"name": "сладкий картофель",
|
||||
"plural_name": "сладкий картофель"
|
||||
},
|
||||
"sweetcorn": {
|
||||
"name": "sweetcorn",
|
||||
"plural_name": "sweetcorns"
|
||||
},
|
||||
"sweeteners": {
|
||||
"name": "sweeteners"
|
||||
"name": "подсластители"
|
||||
},
|
||||
"tahini": {
|
||||
"name": "tahini"
|
||||
"name": "тахини"
|
||||
},
|
||||
"taro": {
|
||||
"name": "taro",
|
||||
"plural_name": "taroes"
|
||||
"name": "таро",
|
||||
"plural_name": "таро"
|
||||
},
|
||||
"teff": {
|
||||
"name": "teff"
|
||||
},
|
||||
"tomato": {
|
||||
"name": "tomato",
|
||||
"plural_name": "tomatoes"
|
||||
"name": "помидор",
|
||||
"plural_name": "помидоры"
|
||||
},
|
||||
"trout": {
|
||||
"name": "trout"
|
||||
"name": "форель"
|
||||
},
|
||||
"tubers": {
|
||||
"name": "tuber",
|
||||
"plural_name": "tubers"
|
||||
"name": "клубень",
|
||||
"plural_name": "клубни"
|
||||
},
|
||||
"tuna": {
|
||||
"name": "tuna"
|
||||
"name": "тунец"
|
||||
},
|
||||
"turbanado-sugar": {
|
||||
"name": "turbanado sugar"
|
||||
},
|
||||
"turnip": {
|
||||
"name": "turnip",
|
||||
"plural_name": "turnips"
|
||||
"name": "репа",
|
||||
"plural_name": "репа"
|
||||
},
|
||||
"unrefined-sugar": {
|
||||
"name": "unrefined sugar"
|
||||
"name": "нерафинированный сахар"
|
||||
},
|
||||
"vanilla": {
|
||||
"name": "vanilla"
|
||||
"name": "ваниль"
|
||||
},
|
||||
"vegetables": {
|
||||
"name": "vegetables"
|
||||
"name": "овощи"
|
||||
},
|
||||
"watercress": {
|
||||
"name": "watercress"
|
||||
},
|
||||
"watermelon": {
|
||||
"name": "watermelon",
|
||||
"plural_name": "watermelons"
|
||||
"name": "арбуз",
|
||||
"plural_name": "арбузы"
|
||||
},
|
||||
"white-mushroom": {
|
||||
"name": "white mushroom",
|
||||
"plural_name": "white mushrooms"
|
||||
"name": "белый гриб",
|
||||
"plural_name": "белые грибы"
|
||||
},
|
||||
"white-sugar": {
|
||||
"name": "white sugar"
|
||||
"name": "белый сахар"
|
||||
},
|
||||
"xanthan-gum": {
|
||||
"name": "xanthan gum"
|
||||
"name": "ксантановая камедь"
|
||||
},
|
||||
"yam": {
|
||||
"name": "yam",
|
||||
"plural_name": "yams"
|
||||
"name": "батат",
|
||||
"plural_name": "батат"
|
||||
},
|
||||
"yeast": {
|
||||
"name": "yeast"
|
||||
"name": "дрожжи"
|
||||
},
|
||||
"zucchini": {
|
||||
"name": "zucchini",
|
||||
"plural_name": "zucchinis"
|
||||
"name": "цуккини",
|
||||
"plural_name": "цуккини"
|
||||
}
|
||||
}
|
|
@ -29,6 +29,7 @@ class AdminAboutController(BaseAdminController):
|
|||
default_group=settings.DEFAULT_GROUP,
|
||||
default_household=settings.DEFAULT_HOUSEHOLD,
|
||||
allow_signup=settings.ALLOW_SIGNUP,
|
||||
allow_password_login=settings.ALLOW_PASSWORD_LOGIN,
|
||||
build_id=settings.GIT_COMMIT_HASH,
|
||||
recipe_scraper_version=recipe_scraper_version.__version__,
|
||||
enable_oidc=settings.OIDC_AUTH_ENABLED,
|
||||
|
|
|
@ -43,6 +43,7 @@ def get_app_info(session: Session = Depends(generate_session)):
|
|||
oidc_provider_name=settings.OIDC_PROVIDER_NAME,
|
||||
enable_openai=settings.OPENAI_ENABLED,
|
||||
enable_openai_image_services=settings.OPENAI_ENABLED and settings.OPENAI_ENABLE_IMAGE_SERVICES,
|
||||
allow_password_login=settings.ALLOW_PASSWORD_LOGIN,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ class AppInfo(MealieModel):
|
|||
version: str
|
||||
demo_status: bool
|
||||
allow_signup: bool
|
||||
allow_password_login: bool
|
||||
default_group_slug: str | None = None
|
||||
default_household_slug: str | None = None
|
||||
enable_oidc: bool
|
||||
|
|
334
poetry.lock
generated
334
poetry.lock
generated
|
@ -14,14 +14,14 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "alembic"
|
||||
version = "1.15.2"
|
||||
version = "1.16.1"
|
||||
description = "A database migration tool for SQLAlchemy."
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
groups = ["main"]
|
||||
files = [
|
||||
{file = "alembic-1.15.2-py3-none-any.whl", hash = "sha256:2e76bd916d547f6900ec4bb5a90aeac1485d2c92536923d0b138c02b126edc53"},
|
||||
{file = "alembic-1.15.2.tar.gz", hash = "sha256:1c72391bbdeffccfe317eefba686cb9a3c078005478885413b95c3b26c57a8a7"},
|
||||
{file = "alembic-1.16.1-py3-none-any.whl", hash = "sha256:0cdd48acada30d93aa1035767d67dff25702f8de74d7c3919f2e8492c8db2e67"},
|
||||
{file = "alembic-1.16.1.tar.gz", hash = "sha256:43d37ba24b3d17bc1eb1024fe0f51cd1dc95aeb5464594a02c6bb9ca9864bfa4"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -126,14 +126,14 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "authlib"
|
||||
version = "1.5.2"
|
||||
version = "1.6.0"
|
||||
description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients."
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
groups = ["main"]
|
||||
files = [
|
||||
{file = "authlib-1.5.2-py2.py3-none-any.whl", hash = "sha256:8804dd4402ac5e4a0435ac49e0b6e19e395357cfa632a3f624dcb4f6df13b4b1"},
|
||||
{file = "authlib-1.5.2.tar.gz", hash = "sha256:fe85ec7e50c5f86f1e2603518bb3b4f632985eb4a355e52256530790e326c512"},
|
||||
{file = "authlib-1.6.0-py2.py3-none-any.whl", hash = "sha256:91685589498f79e8655e8a8947431ad6288831d643f11c55c2143ffcc738048d"},
|
||||
{file = "authlib-1.6.0.tar.gz", hash = "sha256:4367d32031b7af175ad3a323d571dc7257b7099d55978087ceae4a0d88cd3210"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -478,75 +478,79 @@ markers = {main = "platform_system == \"Windows\" or sys_platform == \"win32\""}
|
|||
|
||||
[[package]]
|
||||
name = "coverage"
|
||||
version = "7.8.0"
|
||||
version = "7.8.2"
|
||||
description = "Code coverage measurement for Python"
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
groups = ["dev"]
|
||||
files = [
|
||||
{file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"},
|
||||
{file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"},
|
||||
{file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"},
|
||||
{file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"},
|
||||
{file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"},
|
||||
{file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa260de59dfb143af06dcf30c2be0b200bed2a73737a8a59248fcb9fa601ef0f"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:96121edfa4c2dfdda409877ea8608dd01de816a4dc4a0523356067b305e4e17a"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8af63b9afa1031c0ef05b217faa598f3069148eeee6bb24b79da9012423b82"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89b1f4af0d4afe495cd4787a68e00f30f1d15939f550e869de90a86efa7e0814"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ec0be97723ae72d63d3aa41961a0b9a6f5a53ff599813c324548d18e3b9e8c"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8a1d96e780bdb2d0cbb297325711701f7c0b6f89199a57f2049e90064c29f6bd"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f1d8a2a57b47142b10374902777e798784abf400a004b14f1b0b9eaf1e528ba4"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cf60dd2696b457b710dd40bf17ad269d5f5457b96442f7f85722bdb16fa6c899"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-win32.whl", hash = "sha256:be945402e03de47ba1872cd5236395e0f4ad635526185a930735f66710e1bd3f"},
|
||||
{file = "coverage-7.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:90e7fbc6216ecaffa5a880cdc9c77b7418c1dcb166166b78dbc630d07f278cc3"},
|
||||
{file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"},
|
||||
{file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"},
|
||||
{file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd8ec21e1443fd7a447881332f7ce9d35b8fbd2849e761bb290b584535636b0a"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c26c2396674816deaeae7ded0e2b42c26537280f8fe313335858ffff35019be"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1aec326ed237e5880bfe69ad41616d333712c7937bcefc1343145e972938f9b3"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e818796f71702d7a13e50c70de2a1924f729228580bcba1607cccf32eea46e6"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:546e537d9e24efc765c9c891328f30f826e3e4808e31f5d0f87c4ba12bbd1622"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab9b09a2349f58e73f8ebc06fac546dd623e23b063e5398343c5270072e3201c"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fd51355ab8a372d89fb0e6a31719e825cf8df8b6724bee942fb5b92c3f016ba3"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0774df1e093acb6c9e4d58bce7f86656aeed6c132a16e2337692c12786b32404"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-win32.whl", hash = "sha256:00f2e2f2e37f47e5f54423aeefd6c32a7dbcedc033fcd3928a4f4948e8b96af7"},
|
||||
{file = "coverage-7.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:145b07bea229821d51811bf15eeab346c236d523838eda395ea969d120d13347"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b99058eef42e6a8dcd135afb068b3d53aff3921ce699e127602efff9956457a9"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5feb7f2c3e6ea94d3b877def0270dff0947b8d8c04cfa34a17be0a4dc1836879"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:670a13249b957bb9050fab12d86acef7bf8f6a879b9d1a883799276e0d4c674a"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bdc8bf760459a4a4187b452213e04d039990211f98644c7292adf1e471162b5"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07a989c867986c2a75f158f03fdb413128aad29aca9d4dbce5fc755672d96f11"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2db10dedeb619a771ef0e2949ccba7b75e33905de959c2643a4607bef2f3fb3a"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e6ea7dba4e92926b7b5f0990634b78ea02f208d04af520c73a7c876d5a8d36cb"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ef2f22795a7aca99fc3c84393a55a53dd18ab8c93fb431004e4d8f0774150f54"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-win32.whl", hash = "sha256:641988828bc18a6368fe72355df5f1703e44411adbe49bba5644b941ce6f2e3a"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8ab4a51cb39dc1933ba627e0875046d150e88478dbe22ce145a68393e9652975"},
|
||||
{file = "coverage-7.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:8966a821e2083c74d88cca5b7dcccc0a3a888a596a04c0b9668a891de3a0cc53"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e2f6fe3654468d061942591aef56686131335b7a8325684eda85dacdf311356c"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76090fab50610798cc05241bf83b603477c40ee87acd358b66196ab0ca44ffa1"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd0a0a5054be160777a7920b731a0570284db5142abaaf81bcbb282b8d99279"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da23ce9a3d356d0affe9c7036030b5c8f14556bd970c9b224f9c8205505e3b99"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9392773cffeb8d7e042a7b15b82a414011e9d2b5fdbbd3f7e6a6b17d5e21b20"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:876cbfd0b09ce09d81585d266c07a32657beb3eaec896f39484b631555be0fe2"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3da9b771c98977a13fbc3830f6caa85cae6c9c83911d24cb2d218e9394259c57"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a990f6510b3292686713bfef26d0049cd63b9c7bb17e0864f133cbfd2e6167f"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-win32.whl", hash = "sha256:bf8111cddd0f2b54d34e96613e7fbdd59a673f0cf5574b61134ae75b6f5a33b8"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:86a323a275e9e44cdf228af9b71c5030861d4d2610886ab920d9945672a81223"},
|
||||
{file = "coverage-7.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:820157de3a589e992689ffcda8639fbabb313b323d26388d02e154164c57b07f"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea561010914ec1c26ab4188aef8b1567272ef6de096312716f90e5baa79ef8ca"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cb86337a4fcdd0e598ff2caeb513ac604d2f3da6d53df2c8e368e07ee38e277d"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26a4636ddb666971345541b59899e969f3b301143dd86b0ddbb570bd591f1e85"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5040536cf9b13fb033f76bcb5e1e5cb3b57c4807fef37db9e0ed129c6a094257"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc67994df9bcd7e0150a47ef41278b9e0a0ea187caba72414b71dc590b99a108"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e6c86888fd076d9e0fe848af0a2142bf606044dc5ceee0aa9eddb56e26895a0"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:684ca9f58119b8e26bef860db33524ae0365601492e86ba0b71d513f525e7050"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8165584ddedb49204c4e18da083913bdf6a982bfb558632a79bdaadcdafd0d48"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-win32.whl", hash = "sha256:34759ee2c65362163699cc917bdb2a54114dd06d19bab860725f94ef45a3d9b7"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:2f9bc608fbafaee40eb60a9a53dbfb90f53cc66d3d32c2849dc27cf5638a21e3"},
|
||||
{file = "coverage-7.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:9fe449ee461a3b0c7105690419d0b0aba1232f4ff6d120a9e241e58a556733f7"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8369a7c8ef66bded2b6484053749ff220dbf83cba84f3398c84c51a6f748a008"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:159b81df53a5fcbc7d45dae3adad554fdbde9829a994e15227b3f9d816d00b36"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6fcbbd35a96192d042c691c9e0c49ef54bd7ed865846a3c9d624c30bb67ce46"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05364b9cc82f138cc86128dc4e2e1251c2981a2218bfcd556fe6b0fbaa3501be"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46d532db4e5ff3979ce47d18e2fe8ecad283eeb7367726da0e5ef88e4fe64740"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4000a31c34932e7e4fa0381a3d6deb43dc0c8f458e3e7ea6502e6238e10be625"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:43ff5033d657cd51f83015c3b7a443287250dc14e69910577c3e03bd2e06f27b"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94316e13f0981cbbba132c1f9f365cac1d26716aaac130866ca812006f662199"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-win32.whl", hash = "sha256:3f5673888d3676d0a745c3d0e16da338c5eea300cb1f4ada9c872981265e76d8"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:2c08b05ee8d7861e45dc5a2cc4195c8c66dca5ac613144eb6ebeaff2d502e73d"},
|
||||
{file = "coverage-7.8.2-cp313-cp313t-win_arm64.whl", hash = "sha256:1e1448bb72b387755e1ff3ef1268a06617afd94188164960dba8d0245a46004b"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:496948261eaac5ac9cf43f5d0a9f6eb7a6d4cb3bedb2c5d294138142f5c18f2a"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eacd2de0d30871eff893bab0b67840a96445edcb3c8fd915e6b11ac4b2f3fa6d"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b039ffddc99ad65d5078ef300e0c7eed08c270dc26570440e3ef18beb816c1ca"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e49824808d4375ede9dd84e9961a59c47f9113039f1a525e6be170aa4f5c34d"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b069938961dfad881dc2f8d02b47645cd2f455d3809ba92a8a687bf513839787"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:de77c3ba8bb686d1c411e78ee1b97e6e0b963fb98b1637658dd9ad2c875cf9d7"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1676628065a498943bd3f64f099bb573e08cf1bc6088bbe33cf4424e0876f4b3"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8e1a26e7e50076e35f7afafde570ca2b4d7900a491174ca357d29dece5aacee7"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-win32.whl", hash = "sha256:6782a12bf76fa61ad9350d5a6ef5f3f020b57f5e6305cbc663803f2ebd0f270a"},
|
||||
{file = "coverage-7.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1efa4166ba75ccefd647f2d78b64f53f14fb82622bc94c5a5cb0a622f50f1c9e"},
|
||||
{file = "coverage-7.8.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:ec455eedf3ba0bbdf8f5a570012617eb305c63cb9f03428d39bf544cb2b94837"},
|
||||
{file = "coverage-7.8.2-py3-none-any.whl", hash = "sha256:726f32ee3713f7359696331a18daf0c3b3a70bb0ae71141b9d3c52be7c595e32"},
|
||||
{file = "coverage-7.8.2.tar.gz", hash = "sha256:a886d531373a1f6ff9fad2a2ba4a045b68467b779ae729ee0b3b10ac20033b27"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
|
@ -754,14 +758,14 @@ test = ["pytest", "pytest-cov", "pytest-mpl", "pytest-subtests"]
|
|||
|
||||
[[package]]
|
||||
name = "freezegun"
|
||||
version = "1.5.1"
|
||||
version = "1.5.2"
|
||||
description = "Let your Python tests travel through time"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
python-versions = ">=3.8"
|
||||
groups = ["dev"]
|
||||
files = [
|
||||
{file = "freezegun-1.5.1-py3-none-any.whl", hash = "sha256:bf111d7138a8abe55ab48a71755673dbaa4ab87f4cff5634a4442dfec34c15f1"},
|
||||
{file = "freezegun-1.5.1.tar.gz", hash = "sha256:b29dedfcda6d5e8e083ce71b2b542753ad48cfec44037b3fc79702e2980a89e9"},
|
||||
{file = "freezegun-1.5.2-py3-none-any.whl", hash = "sha256:5aaf3ba229cda57afab5bd311f0108d86b6fb119ae89d2cd9c43ec8c1733c85b"},
|
||||
{file = "freezegun-1.5.2.tar.gz", hash = "sha256:a54ae1d2f9c02dbf42e02c18a3ab95ab4295818b549a34dac55592d72a905181"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -1051,20 +1055,20 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "ingredient-parser-nlp"
|
||||
version = "2.1.0"
|
||||
version = "2.1.1"
|
||||
description = "A Python package to parse structured information from recipe ingredient sentences"
|
||||
optional = false
|
||||
python-versions = "<3.14,>=3.10"
|
||||
groups = ["main"]
|
||||
files = [
|
||||
{file = "ingredient_parser_nlp-2.1.0-py3-none-any.whl", hash = "sha256:b987cc8c3e4561ad5828d1529a0d973690c75b731f5a06619e72deeb78b904cc"},
|
||||
{file = "ingredient_parser_nlp-2.1.0.tar.gz", hash = "sha256:bd2edfd09ea4ecd9f12c2326aab36a61e1518e3bc96abd6946ada0fd2929e2ed"},
|
||||
{file = "ingredient_parser_nlp-2.1.1-py3-none-any.whl", hash = "sha256:e09f73b28d2805d33f5523b84a304225bf62ebdca47560aa8e6c7176442ef6b6"},
|
||||
{file = "ingredient_parser_nlp-2.1.1.tar.gz", hash = "sha256:e7070b849d05395006b6a27923304b01ed4da04b53a82047c5ddddf1bbfe1fc7"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
nltk = ">=3.9.1"
|
||||
numpy = "*"
|
||||
pint = ">=0.24.4"
|
||||
pint = "0.24.4"
|
||||
python-crfsuite = "*"
|
||||
|
||||
[[package]]
|
||||
|
@ -1850,14 +1854,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
|
|||
|
||||
[[package]]
|
||||
name = "openai"
|
||||
version = "1.78.1"
|
||||
version = "1.82.0"
|
||||
description = "The official Python library for the openai API"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
groups = ["main"]
|
||||
files = [
|
||||
{file = "openai-1.78.1-py3-none-any.whl", hash = "sha256:7368bf147ca499804cc408fe68cdb6866a060f38dec961bbc97b04f9d917907e"},
|
||||
{file = "openai-1.78.1.tar.gz", hash = "sha256:8b26b364531b100df1b961d03560042e5f5be11301d7d49a6cd1a2b9af824dca"},
|
||||
{file = "openai-1.82.0-py3-none-any.whl", hash = "sha256:8c40647fea1816516cb3de5189775b30b5f4812777e40b8768f361f232b61b30"},
|
||||
{file = "openai-1.82.0.tar.gz", hash = "sha256:b0a009b9a58662d598d07e91e4219ab4b1e3d8ba2db3f173896a92b9b874d1a7"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -2372,14 +2376,14 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "pydantic"
|
||||
version = "2.11.4"
|
||||
version = "2.11.5"
|
||||
description = "Data validation using Python type hints"
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
groups = ["main", "dev"]
|
||||
files = [
|
||||
{file = "pydantic-2.11.4-py3-none-any.whl", hash = "sha256:d9615eaa9ac5a063471da949c8fc16376a84afb5024688b3ff885693506764eb"},
|
||||
{file = "pydantic-2.11.4.tar.gz", hash = "sha256:32738d19d63a226a52eed76645a98ee07c1f410ee41d93b4afbfa85ed8111c2d"},
|
||||
{file = "pydantic-2.11.5-py3-none-any.whl", hash = "sha256:f9c26ba06f9747749ca1e5c94d6a85cb84254577553c8785576fd38fa64dc0f7"},
|
||||
{file = "pydantic-2.11.5.tar.gz", hash = "sha256:7f853db3d0ce78ce8bbb148c401c2cdd6431b3473c0cdff2755c7690952a7b7a"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -2691,14 +2695,14 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments
|
|||
|
||||
[[package]]
|
||||
name = "pytest-asyncio"
|
||||
version = "0.26.0"
|
||||
version = "1.0.0"
|
||||
description = "Pytest support for asyncio"
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
groups = ["dev"]
|
||||
files = [
|
||||
{file = "pytest_asyncio-0.26.0-py3-none-any.whl", hash = "sha256:7b51ed894f4fbea1340262bdae5135797ebbe21d8638978e35d31c6d19f72fb0"},
|
||||
{file = "pytest_asyncio-0.26.0.tar.gz", hash = "sha256:c4df2a697648241ff39e7f0e4a73050b03f123f760673956cf0d72a4990e312f"},
|
||||
{file = "pytest_asyncio-1.0.0-py3-none-any.whl", hash = "sha256:4f024da9f1ef945e680dc68610b52550e36590a67fd31bb3b4943979a1f90ef3"},
|
||||
{file = "pytest_asyncio-1.0.0.tar.gz", hash = "sha256:d15463d13f4456e1ead2594520216b225a16f781e144f8fdf6c5bb4667c48b3f"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -3243,30 +3247,30 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
|||
|
||||
[[package]]
|
||||
name = "ruff"
|
||||
version = "0.11.9"
|
||||
version = "0.11.11"
|
||||
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
groups = ["dev"]
|
||||
files = [
|
||||
{file = "ruff-0.11.9-py3-none-linux_armv6l.whl", hash = "sha256:a31a1d143a5e6f499d1fb480f8e1e780b4dfdd580f86e05e87b835d22c5c6f8c"},
|
||||
{file = "ruff-0.11.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:66bc18ca783b97186a1f3100e91e492615767ae0a3be584e1266aa9051990722"},
|
||||
{file = "ruff-0.11.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:bd576cd06962825de8aece49f28707662ada6a1ff2db848d1348e12c580acbf1"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b1d18b4be8182cc6fddf859ce432cc9631556e9f371ada52f3eaefc10d878de"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0f3f46f759ac623e94824b1e5a687a0df5cd7f5b00718ff9c24f0a894a683be7"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f34847eea11932d97b521450cf3e1d17863cfa5a94f21a056b93fb86f3f3dba2"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f33b15e00435773df97cddcd263578aa83af996b913721d86f47f4e0ee0ff271"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b27613a683b086f2aca8996f63cb3dd7bc49e6eccf590563221f7b43ded3f65"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e0d88756e63e8302e630cee3ce2ffb77859797cc84a830a24473939e6da3ca6"},
|
||||
{file = "ruff-0.11.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:537c82c9829d7811e3aa680205f94c81a2958a122ac391c0eb60336ace741a70"},
|
||||
{file = "ruff-0.11.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:440ac6a7029f3dee7d46ab7de6f54b19e34c2b090bb4f2480d0a2d635228f381"},
|
||||
{file = "ruff-0.11.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:71c539bac63d0788a30227ed4d43b81353c89437d355fdc52e0cda4ce5651787"},
|
||||
{file = "ruff-0.11.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c67117bc82457e4501473c5f5217d49d9222a360794bfb63968e09e70f340abd"},
|
||||
{file = "ruff-0.11.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e4b78454f97aa454586e8a5557facb40d683e74246c97372af3c2d76901d697b"},
|
||||
{file = "ruff-0.11.9-py3-none-win32.whl", hash = "sha256:7fe1bc950e7d7b42caaee2a8a3bc27410547cc032c9558ee2e0f6d3b209e845a"},
|
||||
{file = "ruff-0.11.9-py3-none-win_amd64.whl", hash = "sha256:52edaa4a6d70f8180343a5b7f030c7edd36ad180c9f4d224959c2d689962d964"},
|
||||
{file = "ruff-0.11.9-py3-none-win_arm64.whl", hash = "sha256:bcf42689c22f2e240f496d0c183ef2c6f7b35e809f12c1db58f75d9aa8d630ca"},
|
||||
{file = "ruff-0.11.9.tar.gz", hash = "sha256:ebd58d4f67a00afb3a30bf7d383e52d0e036e6195143c6db7019604a05335517"},
|
||||
{file = "ruff-0.11.11-py3-none-linux_armv6l.whl", hash = "sha256:9924e5ae54125ed8958a4f7de320dab7380f6e9fa3195e3dc3b137c6842a0092"},
|
||||
{file = "ruff-0.11.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:c8a93276393d91e952f790148eb226658dd275cddfde96c6ca304873f11d2ae4"},
|
||||
{file = "ruff-0.11.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d6e333dbe2e6ae84cdedefa943dfd6434753ad321764fd937eef9d6b62022bcd"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7885d9a5e4c77b24e8c88aba8c80be9255fa22ab326019dac2356cff42089fc6"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b5ab797fcc09121ed82e9b12b6f27e34859e4227080a42d090881be888755d4"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e231ff3132c1119ece836487a02785f099a43992b95c2f62847d29bace3c75ac"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a97c9babe1d4081037a90289986925726b802d180cca784ac8da2bbbc335f709"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8c4ddcbe8a19f59f57fd814b8b117d4fcea9bee7c0492e6cf5fdc22cfa563c8"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6224076c344a7694c6fbbb70d4f2a7b730f6d47d2a9dc1e7f9d9bb583faf390b"},
|
||||
{file = "ruff-0.11.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:882821fcdf7ae8db7a951df1903d9cb032bbe838852e5fc3c2b6c3ab54e39875"},
|
||||
{file = "ruff-0.11.11-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:dcec2d50756463d9df075a26a85a6affbc1b0148873da3997286caf1ce03cae1"},
|
||||
{file = "ruff-0.11.11-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99c28505ecbaeb6594701a74e395b187ee083ee26478c1a795d35084d53ebd81"},
|
||||
{file = "ruff-0.11.11-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9263f9e5aa4ff1dec765e99810f1cc53f0c868c5329b69f13845f699fe74f639"},
|
||||
{file = "ruff-0.11.11-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:64ac6f885e3ecb2fdbb71de2701d4e34526651f1e8503af8fb30d4915a3fe345"},
|
||||
{file = "ruff-0.11.11-py3-none-win32.whl", hash = "sha256:1adcb9a18802268aaa891ffb67b1c94cd70578f126637118e8099b8e4adcf112"},
|
||||
{file = "ruff-0.11.11-py3-none-win_amd64.whl", hash = "sha256:748b4bb245f11e91a04a4ff0f96e386711df0a30412b9fe0c74d5bdc0e4a531f"},
|
||||
{file = "ruff-0.11.11-py3-none-win_arm64.whl", hash = "sha256:6c51f136c0364ab1b774767aa8b86331bd8e9d414e2d107db7a2189f35ea1f7b"},
|
||||
{file = "ruff-0.11.11.tar.gz", hash = "sha256:7774173cc7c1980e6bf67569ebb7085989a78a103922fb83ef3dfe230cd0687d"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3328,69 +3332,69 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "sqlalchemy"
|
||||
version = "2.0.40"
|
||||
version = "2.0.41"
|
||||
description = "Database Abstraction Library"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
groups = ["main"]
|
||||
files = [
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ae9597cab738e7cc823f04a704fb754a9249f0b6695a6aeb63b74055cd417a96"},
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a5c21ab099a83d669ebb251fddf8f5cee4d75ea40a5a1653d9c43d60e20867"},
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bece9527f5a98466d67fb5d34dc560c4da964240d8b09024bb21c1246545e04e"},
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:8bb131ffd2165fae48162c7bbd0d97c84ab961deea9b8bab16366543deeab625"},
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:9408fd453d5f8990405cc9def9af46bfbe3183e6110401b407c2d073c3388f47"},
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-win32.whl", hash = "sha256:00a494ea6f42a44c326477b5bee4e0fc75f6a80c01570a32b57e89cf0fbef85a"},
|
||||
{file = "SQLAlchemy-2.0.40-cp37-cp37m-win_amd64.whl", hash = "sha256:c7b927155112ac858357ccf9d255dd8c044fd9ad2dc6ce4c4149527c901fa4c3"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1ea21bef99c703f44444ad29c2c1b6bd55d202750b6de8e06a955380f4725d7"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:afe63b208153f3a7a2d1a5b9df452b0673082588933e54e7c8aac457cf35e758"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8aae085ea549a1eddbc9298b113cffb75e514eadbb542133dd2b99b5fb3b6af"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ea9181284754d37db15156eb7be09c86e16e50fbe77610e9e7bee09291771a1"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5434223b795be5c5ef8244e5ac98056e290d3a99bdcc539b916e282b160dda00"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:15d08d5ef1b779af6a0909b97be6c1fd4298057504eb6461be88bd1696cb438e"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-win32.whl", hash = "sha256:cd2f75598ae70bcfca9117d9e51a3b06fe29edd972fdd7fd57cc97b4dbf3b08a"},
|
||||
{file = "sqlalchemy-2.0.40-cp310-cp310-win_amd64.whl", hash = "sha256:2cbafc8d39ff1abdfdda96435f38fab141892dc759a2165947d1a8fffa7ef596"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f6bacab7514de6146a1976bc56e1545bee247242fab030b89e5f70336fc0003e"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5654d1ac34e922b6c5711631f2da497d3a7bffd6f9f87ac23b35feea56098011"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35904d63412db21088739510216e9349e335f142ce4a04b69e2528020ee19ed4"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c7a80ed86d6aaacb8160a1caef6680d4ddd03c944d985aecee940d168c411d1"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:519624685a51525ddaa7d8ba8265a1540442a2ec71476f0e75241eb8263d6f51"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2ee5f9999a5b0e9689bed96e60ee53c3384f1a05c2dd8068cc2e8361b0df5b7a"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-win32.whl", hash = "sha256:c0cae71e20e3c02c52f6b9e9722bca70e4a90a466d59477822739dc31ac18b4b"},
|
||||
{file = "sqlalchemy-2.0.40-cp311-cp311-win_amd64.whl", hash = "sha256:574aea2c54d8f1dd1699449f332c7d9b71c339e04ae50163a3eb5ce4c4325ee4"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9d3b31d0a1c44b74d3ae27a3de422dfccd2b8f0b75e51ecb2faa2bf65ab1ba0d"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:37f7a0f506cf78c80450ed1e816978643d3969f99c4ac6b01104a6fe95c5490a"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bb933a650323e476a2e4fbef8997a10d0003d4da996aad3fd7873e962fdde4d"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6959738971b4745eea16f818a2cd086fb35081383b078272c35ece2b07012716"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:110179728e442dae85dd39591beb74072ae4ad55a44eda2acc6ec98ead80d5f2"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8040680eaacdce4d635f12c55c714f3d4c7f57da2bc47a01229d115bd319191"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-win32.whl", hash = "sha256:650490653b110905c10adac69408380688cefc1f536a137d0d69aca1069dc1d1"},
|
||||
{file = "sqlalchemy-2.0.40-cp312-cp312-win_amd64.whl", hash = "sha256:2be94d75ee06548d2fc591a3513422b873490efb124048f50556369a834853b0"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:915866fd50dd868fdcc18d61d8258db1bf9ed7fbd6dfec960ba43365952f3b01"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a4c5a2905a9ccdc67a8963e24abd2f7afcd4348829412483695c59e0af9a705"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55028d7a3ebdf7ace492fab9895cbc5270153f75442a0472d8516e03159ab364"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cfedff6878b0e0d1d0a50666a817ecd85051d12d56b43d9d425455e608b5ba0"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb19e30fdae77d357ce92192a3504579abe48a66877f476880238a962e5b96db"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:16d325ea898f74b26ffcd1cf8c593b0beed8714f0317df2bed0d8d1de05a8f26"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-win32.whl", hash = "sha256:a669cbe5be3c63f75bcbee0b266779706f1a54bcb1000f302685b87d1b8c1500"},
|
||||
{file = "sqlalchemy-2.0.40-cp313-cp313-win_amd64.whl", hash = "sha256:641ee2e0834812d657862f3a7de95e0048bdcb6c55496f39c6fa3d435f6ac6ad"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:50f5885bbed261fc97e2e66c5156244f9704083a674b8d17f24c72217d29baf5"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf0e99cdb600eabcd1d65cdba0d3c91418fee21c4aa1d28db47d095b1064a7d8"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe147fcd85aaed53ce90645c91ed5fca0cc88a797314c70dfd9d35925bd5d106"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf7cee56bd552385c1ee39af360772fbfc2f43be005c78d1140204ad6148438"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4aeb939bcac234b88e2d25d5381655e8353fe06b4e50b1c55ecffe56951d18c2"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c268b5100cfeaa222c40f55e169d484efa1384b44bf9ca415eae6d556f02cb08"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-win32.whl", hash = "sha256:46628ebcec4f23a1584fb52f2abe12ddb00f3bb3b7b337618b80fc1b51177aff"},
|
||||
{file = "sqlalchemy-2.0.40-cp38-cp38-win_amd64.whl", hash = "sha256:7e0505719939e52a7b0c65d20e84a6044eb3712bb6f239c6b1db77ba8e173a37"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c884de19528e0fcd9dc34ee94c810581dd6e74aef75437ff17e696c2bfefae3e"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1abb387710283fc5983d8a1209d9696a4eae9db8d7ac94b402981fe2fe2e39ad"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cfa124eda500ba4b0d3afc3e91ea27ed4754e727c7f025f293a22f512bcd4c9"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6b28d303b9d57c17a5164eb1fd2d5119bb6ff4413d5894e74873280483eeb5"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b5a5bbe29c10c5bfd63893747a1bf6f8049df607638c786252cb9243b86b6706"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f0fda83e113bb0fb27dc003685f32a5dcb99c9c4f41f4fa0838ac35265c23b5c"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-win32.whl", hash = "sha256:957f8d85d5e834397ef78a6109550aeb0d27a53b5032f7a57f2451e1adc37e98"},
|
||||
{file = "sqlalchemy-2.0.40-cp39-cp39-win_amd64.whl", hash = "sha256:1ffdf9c91428e59744f8e6f98190516f8e1d05eec90e936eb08b257332c5e870"},
|
||||
{file = "sqlalchemy-2.0.40-py3-none-any.whl", hash = "sha256:32587e2e1e359276957e6fe5dad089758bc042a971a8a09ae8ecf7a8fe23d07a"},
|
||||
{file = "sqlalchemy-2.0.40.tar.gz", hash = "sha256:d827099289c64589418ebbcaead0145cd19f4e3e8a93919a0100247af245fa00"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6854175807af57bdb6425e47adbce7d20a4d79bbfd6f6d6519cd10bb7109a7f8"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05132c906066142103b83d9c250b60508af556982a385d96c4eaa9fb9720ac2b"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b4af17bda11e907c51d10686eda89049f9ce5669b08fbe71a29747f1e876036"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:c0b0e5e1b5d9f3586601048dd68f392dc0cc99a59bb5faf18aab057ce00d00b2"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0b3dbf1e7e9bc95f4bac5e2fb6d3fb2f083254c3fdd20a1789af965caf2d2348"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-win32.whl", hash = "sha256:1e3f196a0c59b0cae9a0cd332eb1a4bda4696e863f4f1cf84ab0347992c548c2"},
|
||||
{file = "SQLAlchemy-2.0.41-cp37-cp37m-win_amd64.whl", hash = "sha256:6ab60a5089a8f02009f127806f777fca82581c49e127f08413a66056bd9166dd"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b1f09b6821406ea1f94053f346f28f8215e293344209129a9c0fcc3578598d7b"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1936af879e3db023601196a1684d28e12f19ccf93af01bf3280a3262c4b6b4e5"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2ac41acfc8d965fb0c464eb8f44995770239668956dc4cdf502d1b1ffe0d747"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c24e0c0fde47a9723c81d5806569cddef103aebbf79dbc9fcbb617153dea30"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23a8825495d8b195c4aa9ff1c430c28f2c821e8c5e2d98089228af887e5d7e29"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:60c578c45c949f909a4026b7807044e7e564adf793537fc762b2489d522f3d11"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-win32.whl", hash = "sha256:118c16cd3f1b00c76d69343e38602006c9cfb9998fa4f798606d28d63f23beda"},
|
||||
{file = "sqlalchemy-2.0.41-cp310-cp310-win_amd64.whl", hash = "sha256:7492967c3386df69f80cf67efd665c0f667cee67032090fe01d7d74b0e19bb08"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-win32.whl", hash = "sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8"},
|
||||
{file = "sqlalchemy-2.0.41-cp311-cp311-win_amd64.whl", hash = "sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-win32.whl", hash = "sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6"},
|
||||
{file = "sqlalchemy-2.0.41-cp312-cp312-win_amd64.whl", hash = "sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-win32.whl", hash = "sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f"},
|
||||
{file = "sqlalchemy-2.0.41-cp313-cp313-win_amd64.whl", hash = "sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90144d3b0c8b139408da50196c5cad2a6909b51b23df1f0538411cd23ffa45d3"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:023b3ee6169969beea3bb72312e44d8b7c27c75b347942d943cf49397b7edeb5"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:725875a63abf7c399d4548e686debb65cdc2549e1825437096a0af1f7e374814"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81965cc20848ab06583506ef54e37cf15c83c7e619df2ad16807c03100745dea"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dd5ec3aa6ae6e4d5b5de9357d2133c07be1aff6405b136dad753a16afb6717dd"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ff8e80c4c4932c10493ff97028decfdb622de69cae87e0f127a7ebe32b4069c6"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-win32.whl", hash = "sha256:4d44522480e0bf34c3d63167b8cfa7289c1c54264c2950cc5fc26e7850967e45"},
|
||||
{file = "sqlalchemy-2.0.41-cp38-cp38-win_amd64.whl", hash = "sha256:81eedafa609917040d39aa9332e25881a8e7a0862495fcdf2023a9667209deda"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9a420a91913092d1e20c86a2f5f1fc85c1a8924dbcaf5e0586df8aceb09c9cc2"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:906e6b0d7d452e9a98e5ab8507c0da791856b2380fdee61b765632bb8698026f"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a373a400f3e9bac95ba2a06372c4fd1412a7cee53c37fc6c05f829bf672b8769"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:087b6b52de812741c27231b5a3586384d60c353fbd0e2f81405a814b5591dc8b"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:34ea30ab3ec98355235972dadc497bb659cc75f8292b760394824fab9cf39826"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8280856dd7c6a68ab3a164b4a4b1c51f7691f6d04af4d4ca23d6ecf2261b7923"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-win32.whl", hash = "sha256:b50eab9994d64f4a823ff99a0ed28a6903224ddbe7fef56a6dd865eec9243440"},
|
||||
{file = "sqlalchemy-2.0.41-cp39-cp39-win_amd64.whl", hash = "sha256:5e22575d169529ac3e0a120cf050ec9daa94b6a9597993d1702884f6954a7d71"},
|
||||
{file = "sqlalchemy-2.0.41-py3-none-any.whl", hash = "sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576"},
|
||||
{file = "sqlalchemy-2.0.41.tar.gz", hash = "sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
@ -3878,4 +3882,4 @@ pgsql = ["psycopg2-binary"]
|
|||
[metadata]
|
||||
lock-version = "2.1"
|
||||
python-versions = ">=3.12,<3.13"
|
||||
content-hash = "d3a15e25572e69988681ed78fc6d45ae25121095f5e9d08a687a587fa5f0a690"
|
||||
content-hash = "2b8479e18ef741f5254b8c9d64566bf42d597cfb6564c1aa622f6a1afb117402"
|
||||
|
|
|
@ -67,7 +67,7 @@ mypy = "^1.5.1"
|
|||
pre-commit = "^4.0.0"
|
||||
pylint = "^3.0.0"
|
||||
pytest = "^8.0.0"
|
||||
pytest-asyncio = "^0.26.0"
|
||||
pytest-asyncio = "^1.0.0"
|
||||
rich = "^14.0.0"
|
||||
ruff = "^0.11.0"
|
||||
types-PyYAML = "^6.0.4"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue