Merge branch 'mealie-next' into feat/add-text-regarding-notifiers

This commit is contained in:
Michael Genson 2025-08-08 10:14:48 -05:00 committed by GitHub
commit be0a7b5430
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 555 additions and 543 deletions

View file

@ -1,5 +1,8 @@
# Installing with PostgreSQL # Installing with PostgreSQL
!!! Warning
When upgrading postgresql major versions, manual steps are required [Postgres#37](https://github.com/docker-library/postgres/issues/37).
PostgreSQL might be considered if you need to support many concurrent users. In addition, some features are only enabled on PostgreSQL, such as fuzzy search. PostgreSQL might be considered if you need to support many concurrent users. In addition, some features are only enabled on PostgreSQL, such as fuzzy search.
**For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md) **For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md)
@ -38,7 +41,7 @@ services:
postgres: postgres:
container_name: postgres container_name: postgres
image: postgres:15 image: postgres:17
restart: always restart: always
volumes: volumes:
- mealie-pgdata:/var/lib/postgresql/data - mealie-pgdata:/var/lib/postgresql/data
@ -46,6 +49,7 @@ services:
POSTGRES_PASSWORD: mealie POSTGRES_PASSWORD: mealie
POSTGRES_USER: mealie POSTGRES_USER: mealie
PGUSER: mealie PGUSER: mealie
POSTGRES_DB: mealie
healthcheck: healthcheck:
test: ["CMD", "pg_isready"] test: ["CMD", "pg_isready"]
interval: 30s interval: 30s

View file

@ -472,7 +472,7 @@
"comment": "Comentario", "comment": "Comentario",
"comments": "Comentarios", "comments": "Comentarios",
"delete-confirmation": "Estás seguro de que queres eliminar esta receita?", "delete-confirmation": "Estás seguro de que queres eliminar esta receita?",
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?", "admin-delete-confirmation": "Estás a piques de eliminar unha receita que non é tua usando permisos de administrador. Tes certeza?",
"delete-recipe": "Eliminar Receita", "delete-recipe": "Eliminar Receita",
"description": "Descrición", "description": "Descrición",
"disable-amount": "Desactivar as Cantidades de Ingredientes", "disable-amount": "Desactivar as Cantidades de Ingredientes",
@ -580,14 +580,14 @@
"made-this": "Eu fixen isto", "made-this": "Eu fixen isto",
"how-did-it-turn-out": "Que tal ficou?", "how-did-it-turn-out": "Que tal ficou?",
"user-made-this": "{user} fixo isto", "user-made-this": "{user} fixo isto",
"added-to-timeline": "Added to timeline", "added-to-timeline": "Adicionado ao histórico",
"failed-to-add-to-timeline": "Failed to add to timeline", "failed-to-add-to-timeline": "Falla ao adicionar ao histórico",
"failed-to-update-recipe": "Failed to update recipe", "failed-to-update-recipe": "Falla ao atualizar a receita",
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image", "added-to-timeline-but-failed-to-add-image": "Adicionado ao histórico, mas non foi posíbel adicionar a imaxe",
"api-extras-description": "Os extras de receitas son unha característica clave da API de Mealie. Permítenche crear pares de clave/valor JSON personalizados dentro dunha receita, para facer referencia desde aplicacións de terceiros. Podes usar estas teclas para proporcionar información, por exemplo, para activar automatizacións ou mensaxes personalizadas para transmitir ao dispositivo que desexes.", "api-extras-description": "Os extras de receitas son unha característica clave da API de Mealie. Permítenche crear pares de clave/valor JSON personalizados dentro dunha receita, para facer referencia desde aplicacións de terceiros. Podes usar estas teclas para proporcionar información, por exemplo, para activar automatizacións ou mensaxes personalizadas para transmitir ao dispositivo que desexes.",
"message-key": "Chave de Mensaxen", "message-key": "Chave de Mensaxen",
"parse": "Interpretar", "parse": "Interpretar",
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.", "ingredients-not-parsed-description": "Parece que os teus ingredientes ainda non foron procesados. Clique no boton \"{parse}\" abaixo para converte-los en alimentos estruturados.",
"attach-images-hint": "Anexe imaxens arrastrando e soltandoas no editor", "attach-images-hint": "Anexe imaxens arrastrando e soltandoas no editor",
"drop-image": "Arrastrar imaxen", "drop-image": "Arrastrar imaxen",
"enable-ingredient-amounts-to-use-this-feature": "Ative cantidades de ingredientes para usar esta funcionalidade", "enable-ingredient-amounts-to-use-this-feature": "Ative cantidades de ingredientes para usar esta funcionalidade",
@ -664,8 +664,8 @@
"no-unit": "Sen unidades", "no-unit": "Sen unidades",
"missing-unit": "Crear a unidade que falta: {unit}", "missing-unit": "Crear a unidade que falta: {unit}",
"missing-food": "Crear a comida que falta: {food}", "missing-food": "Crear a comida que falta: {food}",
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically", "this-unit-could-not-be-parsed-automatically": "Non foi posível procesar automaticamente esta unidade",
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically", "this-food-could-not-be-parsed-automatically": "Non foi posíbel procesar automaticamente este alimento",
"no-food": "Sen Comida" "no-food": "Sen Comida"
}, },
"reset-servings-count": "Reiniciar Contador de Porcións", "reset-servings-count": "Reiniciar Contador de Porcións",

View file

@ -253,7 +253,7 @@
"default-recipe-preferences": "Preferências padrões de receita", "default-recipe-preferences": "Preferências padrões de receita",
"group-preferences": "Preferências de Grupo", "group-preferences": "Preferências de Grupo",
"private-group": "Grupo Privado", "private-group": "Grupo Privado",
"private-group-description": "Setting your group to private will disable all public view options. This overrides any individual public view settings", "private-group-description": "Configurar seu grupo para privado irá desabilitar as opções de visualização pública. Isso substitui qualquer configuração pública individual.",
"enable-public-access": "Ativar Acesso Público", "enable-public-access": "Ativar Acesso Público",
"enable-public-access-description": "Tornar receitas do grupo públicas por padrão, e permitir a sua visualização por visitantes não logados", "enable-public-access-description": "Tornar receitas do grupo públicas por padrão, e permitir a sua visualização por visitantes não logados",
"allow-users-outside-of-your-group-to-see-your-recipes": "Permitir que usuários fora do seu grupo vejam suas receitas", "allow-users-outside-of-your-group-to-see-your-recipes": "Permitir que usuários fora do seu grupo vejam suas receitas",
@ -276,30 +276,30 @@
"admin-group-management": "Gerenciamento de Grupos Administrativos", "admin-group-management": "Gerenciamento de Grupos Administrativos",
"admin-group-management-text": "As alterações a este grupo serão refletidas imediatamente.", "admin-group-management-text": "As alterações a este grupo serão refletidas imediatamente.",
"group-id-value": "ID do grupo: {0}", "group-id-value": "ID do grupo: {0}",
"total-households": "Total Households", "total-households": "Total de Familiares",
"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": "Você deve selecionar um grupo antes de selecionar uma família"
}, },
"household": { "household": {
"household": "Casa", "household": "Casa",
"households": "Casas", "households": "Casas",
"user-household": "User Household", "user-household": "Família do Usuário",
"create-household": "Create Household", "create-household": "Criar Família",
"household-name": "Household Name", "household-name": "Nome da Família",
"household-group": "Household Group", "household-group": "Grupo Familiar",
"household-management": "Household Management", "household-management": "Gerenciamento Familiar",
"manage-households": "Manage Households", "manage-households": "Gerenciar Família",
"admin-household-management": "Admin Household Management", "admin-household-management": "Administrador de Gerenciamento Familiar",
"admin-household-management-text": "Changes to this household will be reflected immediately.", "admin-household-management-text": "Mudanças a esta família serão aplicadas imediatamente.",
"household-id-value": "Household Id: {0}", "household-id-value": "Id Familiar: {0}",
"private-household": "Private Household", "private-household": "Família Privada",
"private-household-description": "Setting your household to private will disable all public view options. This overrides any individual public view settings", "private-household-description": "Configurar sua família como privado desativará todas as opções de visualização pública. Isso substitui as configurações de visualização pública individual",
"lock-recipe-edits-from-other-households": "Lock recipe edits from other households", "lock-recipe-edits-from-other-households": "Bloquear edições de receitas de outras famílias",
"lock-recipe-edits-from-other-households-description": "When enabled only users in your household can edit recipes created by your household", "lock-recipe-edits-from-other-households-description": "Quando ativado apenas os usuários da sua família podem editar receitas criadas por sua família",
"household-recipe-preferences": "Household Recipe Preferences", "household-recipe-preferences": "Preferências de Receita da Família",
"default-recipe-preferences-description": "These are the default settings when a new recipe is created in your household. These can be changed for individual recipes in the recipe settings menu.", "default-recipe-preferences-description": "Estas são as configurações padrão quando uma nova receita é criada em sua família. Elas podem ser alteradas para receitas individuais no menu de configurações de receitas.",
"allow-users-outside-of-your-household-to-see-your-recipes": "Allow users outside of your household to see your recipes", "allow-users-outside-of-your-household-to-see-your-recipes": "Permitir que os usuários fora de sua família vejam suas receitas",
"allow-users-outside-of-your-household-to-see-your-recipes-description": "When enabled you can use a public share link to share specific recipes without authorizing the user. When disabled, you can only share recipes with users who are in your household or with a pre-generated private link", "allow-users-outside-of-your-household-to-see-your-recipes-description": "Quando ativado, você pode usar um link de compartilhamento público para compartilhar receitas específicas sem autorizar o usuário. Quando desativado, você só pode compartilhar receitas com usuários que estão na sua família ou com um link privado pré-gerado",
"household-preferences": "Household Preferences" "household-preferences": "Preferências Familiares"
}, },
"meal-plan": { "meal-plan": {
"create-a-new-meal-plan": "Criar um novo plano de refeições", "create-a-new-meal-plan": "Criar um novo plano de refeições",
@ -321,10 +321,10 @@
"mealplan-settings": "Configurações de Plano de Refeições", "mealplan-settings": "Configurações de Plano de Refeições",
"mealplan-update-failed": "Falha ao atualizar Plano de Refeições", "mealplan-update-failed": "Falha ao atualizar Plano de Refeições",
"mealplan-updated": "Plano de Refeições atualizado", "mealplan-updated": "Plano de Refeições atualizado",
"mealplan-households-description": "If no household is selected, recipes can be added from any household", "mealplan-households-description": "Se nenhuma família for selecionada, as receitas podem ser adicionadas por qualquer família",
"any-category": "Any Category", "any-category": "Qualquer Categoria",
"any-tag": "Any Tag", "any-tag": "Qualquer Etiqueta",
"any-household": "Any Household", "any-household": "Qualquer Família",
"no-meal-plan-defined-yet": "Nenhum Plano de Refeições definido ainda", "no-meal-plan-defined-yet": "Nenhum Plano de Refeições definido ainda",
"no-meal-planned-for-today": "Nenhuma refeição planejada para hoje", "no-meal-planned-for-today": "Nenhuma refeição planejada para hoje",
"numberOfDays-hint": "Número de dias ao carregar a página", "numberOfDays-hint": "Número de dias ao carregar a página",
@ -357,7 +357,7 @@
"for-type-meal-types": "para {0} tipos de refeição", "for-type-meal-types": "para {0} tipos de refeição",
"meal-plan-rules": "Regras de Plano de Refeições", "meal-plan-rules": "Regras de Plano de Refeições",
"new-rule": "Nova Regra", "new-rule": "Nova Regra",
"meal-plan-rules-description": "You can create rules for auto selecting recipes for your meal plans. These rules are used by the server to determine the random pool of recipes to select from when creating meal plans. Note that if rules have the same day/type constraints then the rule filters will be merged. In practice, it's unnecessary to create duplicate rules, but it's possible to do so.", "meal-plan-rules-description": "Você pode criar regras para selecionar receitas automaticamente para seus Planos de Refeição. Essas regras são usadas pelo servidor para determinar o conjunto aleatório de receitas a serem selecionadas ao criar os planos de refeição. Observe que se as regras tiverem as mesmas restrições de dia/tipo, os filtros de regras serão mesclados. Na prática, não é necessário criar regras duplicadas, mas é possível fazê-lo.",
"new-rule-description": "Ao criar uma nova regra para um Plano de Refeições, você pode restringir a regra a ser aplicada a um dia específico da semana e/ou a um tipo específico de refeição. Para aplicar uma regra a todos os dias ou a todos os tipos de refeições, você pode definir a regra para \"Qualquer\", que será aplicada a todos os valores possíveis para o dia e/ou o tipo de refeição.", "new-rule-description": "Ao criar uma nova regra para um Plano de Refeições, você pode restringir a regra a ser aplicada a um dia específico da semana e/ou a um tipo específico de refeição. Para aplicar uma regra a todos os dias ou a todos os tipos de refeições, você pode definir a regra para \"Qualquer\", que será aplicada a todos os valores possíveis para o dia e/ou o tipo de refeição.",
"recipe-rules": "Regras das receitas", "recipe-rules": "Regras das receitas",
"applies-to-all-days": "Aplica-se diariamente", "applies-to-all-days": "Aplica-se diariamente",
@ -432,7 +432,7 @@
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Cole os dados da sua receita. Cada linha será tratado como um item em uma lista", "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Cole os dados da sua receita. Cada linha será tratado como um item em uma lista",
"recipe-markup-specification": "Especificação da Receita", "recipe-markup-specification": "Especificação da Receita",
"recipe-url": "URL da Receita", "recipe-url": "URL da Receita",
"recipe-html-or-json": "Recipe HTML or JSON", "recipe-html-or-json": "HMTL ou JSON da Receita",
"upload-a-recipe": "Enviar uma Receita", "upload-a-recipe": "Enviar uma Receita",
"upload-individual-zip-file": "Enviar um arquivo .zip individual exportado a partir de outra instância do Mealie.", "upload-individual-zip-file": "Enviar um arquivo .zip individual exportado a partir de outra instância do Mealie.",
"url-form-hint": "Copie e cole um link do seu site de receita favorito", "url-form-hint": "Copie e cole um link do seu site de receita favorito",
@ -472,7 +472,7 @@
"comment": "Comentário", "comment": "Comentário",
"comments": "Comentários", "comments": "Comentários",
"delete-confirmation": "Você tem certeza que deseja apagar esta receita?", "delete-confirmation": "Você tem certeza que deseja apagar esta receita?",
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?", "admin-delete-confirmation": "Você está prestes a excluir uma receita que não é sua usando permissões de administrador. Tem certeza?",
"delete-recipe": "Excluir Receita", "delete-recipe": "Excluir Receita",
"description": "Descrição", "description": "Descrição",
"disable-amount": "Desativa Quantidade de Ingredientes", "disable-amount": "Desativa Quantidade de Ingredientes",
@ -527,7 +527,7 @@
"sugar-content": "Açúcares", "sugar-content": "Açúcares",
"title": "Título", "title": "Título",
"total-time": "Tempo Total", "total-time": "Tempo Total",
"trans-fat-content": "Trans-fat", "trans-fat-content": "Gordura trans",
"unable-to-delete-recipe": "Não foi possível apagar a receita", "unable-to-delete-recipe": "Não foi possível apagar a receita",
"unsaturated-fat-content": "Gorduras não saturadas", "unsaturated-fat-content": "Gorduras não saturadas",
"no-recipe": "Nenhuma Receita", "no-recipe": "Nenhuma Receita",
@ -548,8 +548,8 @@
"failed-to-add-recipe-to-mealplan": "Falha ao adicionar a receita ao plano de refeições", "failed-to-add-recipe-to-mealplan": "Falha ao adicionar a receita ao plano de refeições",
"failed-to-add-to-list": "Falha ao adicionar à lista", "failed-to-add-to-list": "Falha ao adicionar à lista",
"yield": "Rendimento", "yield": "Rendimento",
"yields-amount-with-text": "Yields {amount} {text}", "yields-amount-with-text": "Produtos {amount}{text}",
"yield-text": "Yield Text", "yield-text": "Texto do Produto",
"quantity": "Quantidade", "quantity": "Quantidade",
"choose-unit": "Escolher unidades", "choose-unit": "Escolher unidades",
"press-enter-to-create": "Pressione Enter para criar", "press-enter-to-create": "Pressione Enter para criar",
@ -580,14 +580,14 @@
"made-this": "Eu Fiz Isso", "made-this": "Eu Fiz Isso",
"how-did-it-turn-out": "Como que ficou?", "how-did-it-turn-out": "Como que ficou?",
"user-made-this": "{user} fez isso", "user-made-this": "{user} fez isso",
"added-to-timeline": "Added to timeline", "added-to-timeline": "Adicionado à linha do tempo",
"failed-to-add-to-timeline": "Failed to add to timeline", "failed-to-add-to-timeline": "Falha ao adicionar à linha do tempo",
"failed-to-update-recipe": "Failed to update recipe", "failed-to-update-recipe": "Falha ao atualizar receita",
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image", "added-to-timeline-but-failed-to-add-image": "Adicionado à linha do tempo, mas não foi possível adicionar imagem",
"api-extras-description": "Extras de receitas são atributos-chave da API do Mealie. Assim, você pode criar pares chave/valor JSON personalizados dentro de uma receita, referenciando aplicações de terceiros. Você pode usar as chaves para fornecer informações, como por ex. ativar automações ou mensagens que serão enviadas a seus dispositivos.", "api-extras-description": "Extras de receitas são atributos-chave da API do Mealie. Assim, você pode criar pares chave/valor JSON personalizados dentro de uma receita, referenciando aplicações de terceiros. Você pode usar as chaves para fornecer informações, como por ex. ativar automações ou mensagens que serão enviadas a seus dispositivos.",
"message-key": "Chave de mensagem", "message-key": "Chave de mensagem",
"parse": "Analisar", "parse": "Analisar",
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.", "ingredients-not-parsed-description": "Parece que seus ingredientes ainda não foram analisados. Clique no botão \"{parse}\" abaixo para analisar seus ingredientes em alimentos estruturados.",
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor", "attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
"drop-image": "Arrastar imagem", "drop-image": "Arrastar imagem",
"enable-ingredient-amounts-to-use-this-feature": "Ative quantidades de ingredientes para usar esta funcionalidade", "enable-ingredient-amounts-to-use-this-feature": "Ative quantidades de ingredientes para usar esta funcionalidade",
@ -604,7 +604,7 @@
"import-with-zip": "Importar a partir de .zip", "import-with-zip": "Importar a partir de .zip",
"create-recipe-from-an-image": "Create Recipe from an Image", "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-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": "Corte e gire a imagem para que apenas o texto esteja visível e esteja na posição correta.",
"create-from-images": "Criar a partir de imagens", "create-from-images": "Criar a partir de imagens",
"should-translate-description": "Traduza a receita para o meu idioma", "should-translate-description": "Traduza a receita para o meu idioma",
"please-wait-image-procesing": "Por favor aguarde, a imagem está sendo processada. Isto pode levar algum tempo.", "please-wait-image-procesing": "Por favor aguarde, a imagem está sendo processada. Isto pode levar algum tempo.",
@ -618,13 +618,13 @@
"scrape-recipe-have-a-lot-of-recipes": "Tem muitas receitas a extrair de uma vez?", "scrape-recipe-have-a-lot-of-recipes": "Tem muitas receitas a extrair de uma vez?",
"scrape-recipe-suggest-bulk-importer": "Tente o importador em massa", "scrape-recipe-suggest-bulk-importer": "Tente o importador em massa",
"scrape-recipe-have-raw-html-or-json-data": "Tem dados HTML ou JSON brutos?", "scrape-recipe-have-raw-html-or-json-data": "Tem dados HTML ou JSON brutos?",
"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": "Você pode importar diretamente de dados brutos",
"import-original-keywords-as-tags": "Importar palavras-chave originais como marcadores", "import-original-keywords-as-tags": "Importar palavras-chave originais como marcadores",
"stay-in-edit-mode": "Permanecer no modo de edição", "stay-in-edit-mode": "Permanecer no modo de edição",
"import-from-zip": "Importar do .zip", "import-from-zip": "Importar do .zip",
"import-from-zip-description": "Importar uma única receita exportada de outra instância Mealie.", "import-from-zip-description": "Importar uma única receita exportada de outra instância Mealie.",
"import-from-html-or-json": "Import from HTML or JSON", "import-from-html-or-json": "Importar de HTML ou 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": "Importe uma única receita de HTML ou JSON. Isso é útil se você tiver uma receita de um site que a Mealie não consegue extrair normalmente, ou de alguma outra fonte externa.",
"json-import-format-description-colon": "Para importar via JSON, ele deve estar em formato válido:", "json-import-format-description-colon": "Para importar via JSON, ele deve estar em formato válido:",
"json-editor": "Editor de JSON", "json-editor": "Editor de JSON",
"zip-files-must-have-been-exported-from-mealie": "Os arquivos .zip devem ter sido exportados do Mealie", "zip-files-must-have-been-exported-from-mealie": "Os arquivos .zip devem ter sido exportados do Mealie",
@ -643,9 +643,9 @@
"recipe-debugger-use-openai-description": "Usar OpenAI para analisar os resultados ao invés de depender da biblioteca de extração. Criando uma receita via URL, isso é feito automaticamente se essa biblioteca, mas você pode testar manualmente aqui.", "recipe-debugger-use-openai-description": "Usar OpenAI para analisar os resultados ao invés de depender da biblioteca de extração. Criando uma receita via URL, isso é feito automaticamente se essa biblioteca, mas você pode testar manualmente aqui.",
"debug": "Depurar", "debug": "Depurar",
"tree-view": "Visualização em árvore", "tree-view": "Visualização em árvore",
"recipe-servings": "Recipe Servings", "recipe-servings": "Porções da Receita",
"recipe-yield": "Rendimento da Receita", "recipe-yield": "Rendimento da Receita",
"recipe-yield-text": "Recipe Yield Text", "recipe-yield-text": "Texto de Produção da Receita",
"unit": "Unidade", "unit": "Unidade",
"upload-image": "Enviar imagem", "upload-image": "Enviar imagem",
"screen-awake": "Manter a tela ligada", "screen-awake": "Manter a tela ligada",
@ -664,15 +664,15 @@
"no-unit": "Sem unidades", "no-unit": "Sem unidades",
"missing-unit": "Criar unidade ausente: {unit}", "missing-unit": "Criar unidade ausente: {unit}",
"missing-food": "Criar comida ausente: {food}", "missing-food": "Criar comida ausente: {food}",
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically", "this-unit-could-not-be-parsed-automatically": "Esta unidade não pôde ser analisada automaticamente",
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically", "this-food-could-not-be-parsed-automatically": "Este alimento não pôde ser analisado automaticamente",
"no-food": "Sem Comida" "no-food": "Sem Comida"
}, },
"reset-servings-count": "Reset Servings Count", "reset-servings-count": "Redefinir Contagem de Porções",
"not-linked-ingredients": "Ingredientes adicionais", "not-linked-ingredients": "Ingredientes adicionais",
"upload-another-image": "Upload another image", "upload-another-image": "Carregar outra imagem",
"upload-images": "Upload images", "upload-images": "Carregar imagens",
"upload-more-images": "Upload more images" "upload-more-images": "Carregar mais imagens"
}, },
"recipe-finder": { "recipe-finder": {
"recipe-finder": "Localizador de Receitas", "recipe-finder": "Localizador de Receitas",
@ -681,15 +681,15 @@
"no-ingredients-selected": "Nenhum ingrediente selecionado", "no-ingredients-selected": "Nenhum ingrediente selecionado",
"missing": "Ausente", "missing": "Ausente",
"no-recipes-found": "Nenhuma receita encontrada", "no-recipes-found": "Nenhuma receita encontrada",
"no-recipes-found-description": "Try adding more ingredients to your search or adjusting your filters", "no-recipes-found-description": "Tente adicionar mais ingredientes à sua busca ou ajuste seus filtros",
"include-ingredients-on-hand": "Include Ingredients On Hand", "include-ingredients-on-hand": "Incluir Ingredientes Manualmente",
"include-tools-on-hand": "Include Tools On Hand", "include-tools-on-hand": "Include Tools On Hand",
"max-missing-ingredients": "Max Missing Ingredients", "max-missing-ingredients": "Max Missing Ingredients",
"max-missing-tools": "Max Missing Tools", "max-missing-tools": "Max Missing Tools",
"selected-tools": "Ferramentas Selecionadas", "selected-tools": "Ferramentas Selecionadas",
"other-filters": "Outros Filtros", "other-filters": "Outros Filtros",
"ready-to-make": "Ready to Make", "ready-to-make": "Pronto Para Fazer",
"almost-ready-to-make": "Almost Ready to Make" "almost-ready-to-make": "Quase Pronto Para Fazer"
}, },
"search": { "search": {
"advanced-search": "Pesquisa avançada", "advanced-search": "Pesquisa avançada",
@ -1040,7 +1040,7 @@
"administrator": "Administrador", "administrator": "Administrador",
"user-can-invite-other-to-group": "O usuário pode convidar outros para o grupo", "user-can-invite-other-to-group": "O usuário pode convidar outros para o grupo",
"user-can-manage-group": "Usuário pode gerenciar o grupo", "user-can-manage-group": "Usuário pode gerenciar o grupo",
"user-can-manage-household": "User can manage household", "user-can-manage-household": "O usuário pode gerenciar a família",
"user-can-organize-group-data": "Usuário pode organizar dados do grupo", "user-can-organize-group-data": "Usuário pode organizar dados do grupo",
"enable-advanced-features": "Ativar recursos avançados", "enable-advanced-features": "Ativar recursos avançados",
"it-looks-like-this-is-your-first-time-logging-in": "Parece que este é seu primeiro login.", "it-looks-like-this-is-your-first-time-logging-in": "Parece que este é seu primeiro login.",
@ -1300,8 +1300,8 @@
"debug-openai-services-description": "Use esta página para depurar serviços OpenAI. Você pode testar a sua conexão OpenAI e ver os resultados aqui. Se você tiver os serviços de imagem ativados, você também pode fornecer uma imagem.", "debug-openai-services-description": "Use esta página para depurar serviços OpenAI. Você pode testar a sua conexão OpenAI e ver os resultados aqui. Se você tiver os serviços de imagem ativados, você também pode fornecer uma imagem.",
"run-test": "Executar teste", "run-test": "Executar teste",
"test-results": "Resultados do teste", "test-results": "Resultados do teste",
"group-delete-note": "Groups with users or households cannot be deleted", "group-delete-note": "Grupos com usuários ou famílias não podem ser excluídos",
"household-delete-note": "Households with users cannot be deleted" "household-delete-note": "Famílias com usuários não podem ser excluídas"
}, },
"profile": { "profile": {
"welcome-user": "👋 Bem-vindo(a), {0}!", "welcome-user": "👋 Bem-vindo(a), {0}!",
@ -1313,8 +1313,8 @@
"account-summary-description": "Aqui está um resumo das informações do seu grupo.", "account-summary-description": "Aqui está um resumo das informações do seu grupo.",
"group-statistics": "Estatísticas do Grupo", "group-statistics": "Estatísticas do Grupo",
"group-statistics-description": "Suas Estatísticas em Grupo fornecem algumas informações sobre como você está usando o Mealie.", "group-statistics-description": "Suas Estatísticas em Grupo fornecem algumas informações sobre como você está usando o Mealie.",
"household-statistics": "Household Statistics", "household-statistics": "Estatísticas da Família",
"household-statistics-description": "Your Household Statistics provide some insight how you're using Mealie.", "household-statistics-description": "Suas Estatísticas da Família fornecem algumas dicas de como você está usando o Mealie.",
"storage-capacity": "Capacidade de armazenamento", "storage-capacity": "Capacidade de armazenamento",
"storage-capacity-description": "Sua capacidade de armazenamento é um cálculo das imagens e arquivos que você carregou.", "storage-capacity-description": "Sua capacidade de armazenamento é um cálculo das imagens e arquivos que você carregou.",
"personal": "Pessoal", "personal": "Pessoal",
@ -1324,13 +1324,13 @@
"api-tokens-description": "Gerencie seus Tokens de API para acessar de aplicações externas.", "api-tokens-description": "Gerencie seus Tokens de API para acessar de aplicações externas.",
"group-description": "Esses itens são compartilhados dentro do seu grupo. Ao editar um deles vai mudá-lo para todo o grupo!", "group-description": "Esses itens são compartilhados dentro do seu grupo. Ao editar um deles vai mudá-lo para todo o grupo!",
"group-settings": "Configurações do Grupo", "group-settings": "Configurações do Grupo",
"group-settings-description": "Manage your common group settings, like privacy settings.", "group-settings-description": "Gerencie suas configurações comuns de grupo, como configurações de privacidade.",
"household-description": "These items are shared within your household. Editing one of them will change it for the whole household!", "household-description": "Esses itens são compartilhados dentro de sua família. Editar um deles irá alterá-lo para toda a família!",
"household-settings": "Household Settings", "household-settings": "Configurações da Família",
"household-settings-description": "Manage your household settings, like mealplan and privacy settings.", "household-settings-description": "Gerencie suas configurações familiares, como planos de refeição e configurações de privacidade.",
"cookbooks-description": "Gerencie uma coleção de categorias de receita e gere páginas para elas.", "cookbooks-description": "Gerencie uma coleção de categorias de receita e gere páginas para elas.",
"members": "Membros", "members": "Membros",
"members-description": "See who's in your household and manage their permissions.", "members-description": "Ver quem está na sua família e gerenciar suas permissões.",
"webhooks-description": "Setup webhooks that trigger on days that you have have mealplan scheduled.", "webhooks-description": "Setup webhooks that trigger on days that you have have mealplan scheduled.",
"notifiers": "Notificadores", "notifiers": "Notificadores",
"notifiers-description": "Configure e-mails e notificações push que desencadeiam eventos específicos.", "notifiers-description": "Configure e-mails e notificações push que desencadeiam eventos específicos.",
@ -1355,9 +1355,9 @@
}, },
"cookbook": { "cookbook": {
"cookbooks": "Livros de Receita", "cookbooks": "Livros de Receita",
"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": "Livros de receitas são outra maneira de criar sessões cruzadas de receitas, organizadores e outros filtros. Criar um livro de receitas adicionará um acesso à barra lateral e todas as receitas com filtros selecionados serão exibidos no livro de receitas.",
"hide-cookbooks-from-other-households": "Hide Cookbooks from Other Households", "hide-cookbooks-from-other-households": "Ocultar Livros de Receitas de Outras Famílias",
"hide-cookbooks-from-other-households-description": "When enabled, only cookbooks from your household will appear on the sidebar", "hide-cookbooks-from-other-households-description": "Quando ativo, apenas livros de receitas da sua família aparecerão na barra lateral",
"public-cookbook": "Livro de Receitas público", "public-cookbook": "Livro de Receitas público",
"public-cookbook-description": "Cookbooks públicos podem ser compartilhados com usuários que não sejam não-mealiee serão exibidos na sua página de grupos.", "public-cookbook-description": "Cookbooks públicos podem ser compartilhados com usuários que não sejam não-mealiee serão exibidos na sua página de grupos.",
"filter-options": "Opções de filtro", "filter-options": "Opções de filtro",
@ -1367,7 +1367,7 @@
"require-all-tools": "Exigir todas as ferramentas", "require-all-tools": "Exigir todas as ferramentas",
"cookbook-name": "Nome do Livro de Receitas", "cookbook-name": "Nome do Livro de Receitas",
"cookbook-with-name": "Livro de Receitas {0}", "cookbook-with-name": "Livro de Receitas {0}",
"household-cookbook-name": "{0} Cookbook {1}", "household-cookbook-name": "{0} Livro de Receitas {1}",
"create-a-cookbook": "Criar um Livro de Receitas", "create-a-cookbook": "Criar um Livro de Receitas",
"cookbook": "Livro de Receitas" "cookbook": "Livro de Receitas"
}, },

View file

@ -472,7 +472,7 @@
"comment": "Комментарий", "comment": "Комментарий",
"comments": "Комментарии", "comments": "Комментарии",
"delete-confirmation": "Вы уверены, что хотите удалить этот рецепт?", "delete-confirmation": "Вы уверены, что хотите удалить этот рецепт?",
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?", "admin-delete-confirmation": "Вы собираетесь удалить рецепт созданный не вами используя права администратора. Вы уверены?",
"delete-recipe": "Удалить рецепт", "delete-recipe": "Удалить рецепт",
"description": "Описание", "description": "Описание",
"disable-amount": "Не показывать кол-во ингредиентов", "disable-amount": "Не показывать кол-во ингредиентов",
@ -580,14 +580,14 @@
"made-this": "Я приготовил это", "made-this": "Я приготовил это",
"how-did-it-turn-out": "Что получилось?", "how-did-it-turn-out": "Что получилось?",
"user-made-this": "{user} приготовил это", "user-made-this": "{user} приготовил это",
"added-to-timeline": "Added to timeline", "added-to-timeline": "Добавлено в ленту",
"failed-to-add-to-timeline": "Failed to add to timeline", "failed-to-add-to-timeline": "Не удалось добавить в ленту",
"failed-to-update-recipe": "Не удалось обновить рецепт", "failed-to-update-recipe": "Не удалось обновить рецепт",
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image", "added-to-timeline-but-failed-to-add-image": "Добавлено в ленту, но не удалось загрузить изображение",
"api-extras-description": "Дополнения к рецептам являются ключевым элементом Mealie API. Они позволяют создавать пользовательские пары json ключ/значение в рецепте для ссылания на другие приложения. Вы можете использовать эти ключи, чтобы сохранить нужную информацию, например, для автоматизаций или уведомлений на ваши устройства.", "api-extras-description": "Дополнения к рецептам являются ключевым элементом Mealie API. Они позволяют создавать пользовательские пары json ключ/значение в рецепте для ссылания на другие приложения. Вы можете использовать эти ключи, чтобы сохранить нужную информацию, например, для автоматизаций или уведомлений на ваши устройства.",
"message-key": "Ключ сообщения", "message-key": "Ключ сообщения",
"parse": "Обработать", "parse": "Обработать",
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.", "ingredients-not-parsed-description": "Похоже, ваши ингредиенты не разобраны. Нажмите кнопку \"{parse}\" чтобы разобрать ваши ингредиенты в структурированный список.",
"attach-images-hint": "Прикрепляйте изображения, перетаскивая их в редактор", "attach-images-hint": "Прикрепляйте изображения, перетаскивая их в редактор",
"drop-image": "Перетащите изображение", "drop-image": "Перетащите изображение",
"enable-ingredient-amounts-to-use-this-feature": "Включите количество ингредиентов для использования этой функции", "enable-ingredient-amounts-to-use-this-feature": "Включите количество ингредиентов для использования этой функции",
@ -604,8 +604,8 @@
"import-with-zip": "Импорт из .zip", "import-with-zip": "Импорт из .zip",
"create-recipe-from-an-image": "Создать рецепт из изображения", "create-recipe-from-an-image": "Создать рецепт из изображения",
"create-recipe-from-an-image-description": "Создайте рецепт, загрузив изображение. Mealie попытается извлечь текст из изображения с помощью ИИ и создать рецепт из него.", "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.", "crop-and-rotate-the-image": "Обрежьте и поверните изображение так, чтобы виден был только текст в нужной ориентации.",
"create-from-images": "Create from Images", "create-from-images": "Создать из изображений",
"should-translate-description": "Перевести рецепт на мой язык", "should-translate-description": "Перевести рецепт на мой язык",
"please-wait-image-procesing": "Подождите, идет обработка изображения.", "please-wait-image-procesing": "Подождите, идет обработка изображения.",
"please-wait-images-processing": "Пожалуйста, подождите, изображения обрабатываются. Это может занять некоторое время.", "please-wait-images-processing": "Пожалуйста, подождите, изображения обрабатываются. Это может занять некоторое время.",
@ -640,7 +640,7 @@
"recipe-debugger": "Отладчик рецептов", "recipe-debugger": "Отладчик рецептов",
"recipe-debugger-description": "Вставьте сюда URL рецепта, который вы хотите отладить. Рецепт по указанному URL-адресу будет отсканирован и результаты сканирования будут указаны ниже. Если вы не видите никаких возвращенных данных, то сайт, который вы пытаетесь обработать, не поддерживается Mealie или библиотекой сканера.", "recipe-debugger-description": "Вставьте сюда URL рецепта, который вы хотите отладить. Рецепт по указанному URL-адресу будет отсканирован и результаты сканирования будут указаны ниже. Если вы не видите никаких возвращенных данных, то сайт, который вы пытаетесь обработать, не поддерживается Mealie или библиотекой сканера.",
"use-openai": "Использовать OpenAI", "use-openai": "Использовать OpenAI",
"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.", "recipe-debugger-use-openai-description": "Использовать OpenAI для разбора результатов вместо использования скрейпера. При создании рецепта по URL это делается автоматически, если скрейпер не справляется, но вы можете протестировать его здесь вручную.",
"debug": "Отладка", "debug": "Отладка",
"tree-view": "В виде дерева", "tree-view": "В виде дерева",
"recipe-servings": "Порции", "recipe-servings": "Порции",
@ -672,7 +672,7 @@
"not-linked-ingredients": "Дополнительные ингредиенты", "not-linked-ingredients": "Дополнительные ингредиенты",
"upload-another-image": "Upload another image", "upload-another-image": "Upload another image",
"upload-images": "Загрузить изображения", "upload-images": "Загрузить изображения",
"upload-more-images": "Upload more images" "upload-more-images": "Загрузить больше изображений"
}, },
"recipe-finder": { "recipe-finder": {
"recipe-finder": "Поиск рецептов", "recipe-finder": "Поиск рецептов",
@ -1313,12 +1313,12 @@
"account-summary-description": "Вот сводка информации о вашей группе.", "account-summary-description": "Вот сводка информации о вашей группе.",
"group-statistics": "Статистика группы", "group-statistics": "Статистика группы",
"group-statistics-description": "Статистика вашей группы дает некоторую информацию о том, как вы используете Mealie.", "group-statistics-description": "Статистика вашей группы дает некоторую информацию о том, как вы используете Mealie.",
"household-statistics": "Household Statistics", "household-statistics": "Статистика домохозяйства",
"household-statistics-description": "Your Household Statistics provide some insight how you're using Mealie.", "household-statistics-description": "Your Household Statistics provide some insight how you're using Mealie.",
"storage-capacity": "Емкость хранилища", "storage-capacity": "Емкость хранилища",
"storage-capacity-description": "Указанный размер хранилища - это подсчёт размера изображений и приложений рецептов загруженных вами.", "storage-capacity-description": "Указанный размер хранилища - это подсчёт размера изображений и приложений рецептов загруженных вами.",
"personal": "Личное", "personal": "Личное",
"personal-description": "These are settings that are personal to you. Changes here won't affect other users.", "personal-description": "Это персональные настройки. Изменения здесь не повлияют на других пользователей.",
"user-settings": "Настройки пользователя", "user-settings": "Настройки пользователя",
"user-settings-description": "Управляйте вашими настройками, меняйте пароль и обновляйте адрес электронной почты.", "user-settings-description": "Управляйте вашими настройками, меняйте пароль и обновляйте адрес электронной почты.",
"api-tokens-description": "Управляйте вашими API-токенами для доступа сторонних приложений.", "api-tokens-description": "Управляйте вашими API-токенами для доступа сторонних приложений.",

View file

@ -136,6 +136,30 @@
v-if="!edit" v-if="!edit"
class="py-2" class="py-2"
> >
<!-- Create Item -->
<div v-if="createEditorOpen">
<ShoppingListItemEditor
v-model="createListItemData"
class="my-4"
:labels="allLabels || []"
:units="allUnits || []"
:foods="allFoods || []"
:allow-delete="false"
@delete="createEditorOpen = false"
@cancel="createEditorOpen = false"
@save="createListItem"
/>
</div>
<div v-else class="d-flex justify-end">
<BaseButton
create
@click="createEditorOpen = true"
>
{{ $t('general.add') }}
</BaseButton>
</div>
<!-- View without Label grouping -->
<div v-if="!preferences.viewByLabel"> <div v-if="!preferences.viewByLabel">
<VueDraggable <VueDraggable
v-model="listItems.unchecked" v-model="listItems.unchecked"
@ -222,29 +246,6 @@
</div> </div>
</div> </div>
<!-- Create Item -->
<div v-if="createEditorOpen">
<ShoppingListItemEditor
v-model="createListItemData"
class="my-4"
:labels="allLabels || []"
:units="allUnits || []"
:foods="allFoods || []"
:allow-delete="false"
@delete="createEditorOpen = false"
@cancel="createEditorOpen = false"
@save="createListItem"
/>
</div>
<div v-else class="d-flex justify-end">
<BaseButton
create
@click="createEditorOpen = true"
>
{{ $t('general.add') }}
</BaseButton>
</div>
<!-- Reorder Labels --> <!-- Reorder Labels -->
<BaseDialog <BaseDialog
v-model="reorderLabelsDialog" v-model="reorderLabelsDialog"

View file

@ -10,7 +10,7 @@
"step-text": "Passos das receitas, assim como outros campos na página da receita, suportam sintaxe \"markdown\".\n\n**Adicione um link**\n\n[Meu Link](https://demo.mealie.io)\n" "step-text": "Passos das receitas, assim como outros campos na página da receita, suportam sintaxe \"markdown\".\n\n**Adicione um link**\n\n[Meu Link](https://demo.mealie.io)\n"
}, },
"servings-text": { "servings-text": {
"makes": "Makes", "makes": "Produz",
"serves": "Porções", "serves": "Porções",
"serving": "Porção", "serving": "Porção",
"servings": "Porções", "servings": "Porções",

View file

@ -10,8 +10,8 @@
"step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n" "step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n"
}, },
"servings-text": { "servings-text": {
"makes": "Makes", "makes": "Получается",
"serves": "Serves", "serves": "Порций",
"serving": "Порция", "serving": "Порция",
"servings": "Порции", "servings": "Порции",
"yield": "Выход", "yield": "Выход",

View file

@ -6227,8 +6227,8 @@
"saffron strand": { "saffron strand": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "saffron strand", "name": "Safranfaden",
"plural_name": "saffron strands" "plural_name": "Safranfäden"
}, },
"guajillo pepper": { "guajillo pepper": {
"aliases": [], "aliases": [],
@ -6251,8 +6251,8 @@
"lemon thyme": { "lemon thyme": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "lemon thyme", "name": "Zitronenthymian",
"plural_name": "lemon thymes" "plural_name": "Zitronenthymian"
}, },
"galangal": { "galangal": {
"aliases": [], "aliases": [],

View file

@ -553,8 +553,8 @@
"boston lettuce": { "boston lettuce": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "boston lettuce", "name": "Laitue",
"plural_name": "boston lettuces" "plural_name": "Laitues"
}, },
"kohlrabi": { "kohlrabi": {
"aliases": [], "aliases": [],
@ -571,8 +571,8 @@
"delicata squash": { "delicata squash": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "delicata squash", "name": "Courge delicata",
"plural_name": "delicata squashes" "plural_name": "Courges delicata"
}, },
"frisee": { "frisee": {
"aliases": [], "aliases": [],
@ -583,8 +583,8 @@
"anaheim pepper": { "anaheim pepper": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "anaheim pepper", "name": "Piment d'Anaheim",
"plural_name": "anaheim peppers" "plural_name": "Piments d'Anaheim"
}, },
"cres": { "cres": {
"aliases": [], "aliases": [],
@ -601,8 +601,8 @@
"arbol chile pepper": { "arbol chile pepper": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "arbol chile pepper", "name": "Piment de árbol",
"plural_name": "arbol chile peppers" "plural_name": "Piments de árbol"
}, },
"golden beet": { "golden beet": {
"aliases": [], "aliases": [],
@ -613,8 +613,8 @@
"pea shoot": { "pea shoot": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "pea shoot", "name": "Micro-pousse de pois",
"plural_name": "pea shoots" "plural_name": "Micro-pousses de pois"
}, },
"alfalfa": { "alfalfa": {
"aliases": [], "aliases": [],
@ -701,8 +701,8 @@
"craisin": { "craisin": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "craisin", "name": "Canneberge séchée",
"plural_name": "craisins" "plural_name": "Canneberges séchées"
}, },
"pear": { "pear": {
"aliases": [], "aliases": [],
@ -797,8 +797,8 @@
"sultana": { "sultana": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sultana", "name": "Raisin blanc",
"plural_name": "sultanas" "plural_name": "Raisins blancs"
}, },
"passion fruit": { "passion fruit": {
"aliases": [], "aliases": [],
@ -846,7 +846,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "melon miel", "name": "melon miel",
"plural_name": "honeydew melons" "plural_name": "Melons miel"
}, },
"dried fruit": { "dried fruit": {
"aliases": [], "aliases": [],
@ -929,8 +929,8 @@
"mixed fruit": { "mixed fruit": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mixed fruit", "name": "Mélange de fruits",
"plural_name": "mixed fruits" "plural_name": "Mélange de fruits"
}, },
"asian pear": { "asian pear": {
"aliases": [], "aliases": [],
@ -947,14 +947,14 @@
"young coconut": { "young coconut": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "young coconut", "name": "Noix de coco jeune",
"plural_name": "young coconuts" "plural_name": "Noix de coco jeunes"
}, },
"kaffir lime": { "kaffir lime": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "combava", "name": "combava",
"plural_name": "kaffir limes" "plural_name": "Combava"
}, },
"star fruit": { "star fruit": {
"aliases": [], "aliases": [],
@ -978,19 +978,19 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "purée de châtaigne", "name": "purée de châtaigne",
"plural_name": "chestnut purees" "plural_name": "Purées de châtaigne"
}, },
"prickly pear": { "prickly pear": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "prickly pear", "name": "Figue de Barbarie",
"plural_name": "prickly pears" "plural_name": "Figues de Barbarie"
}, },
"calamansi": { "calamansi": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "calamansi", "name": "Citron des Philippines",
"plural_name": "calamansis" "plural_name": "Citrons des Philippines"
}, },
"yuzu": { "yuzu": {
"aliases": [], "aliases": [],
@ -1013,8 +1013,8 @@
"mixed peel": { "mixed peel": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mixed peel", "name": "Écorces d'agrumes confits",
"plural_name": "mixed peels" "plural_name": "Écorces d'agrumes confits"
}, },
"kokum": { "kokum": {
"aliases": [], "aliases": [],
@ -1025,8 +1025,8 @@
"tangelo": { "tangelo": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "tangelo", "name": "Tangelo",
"plural_name": "tangeloes" "plural_name": "tangelos"
}, },
"dried lime": { "dried lime": {
"aliases": [], "aliases": [],
@ -7689,14 +7689,14 @@
"chocolate chip": { "chocolate chip": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chocolate chip", "name": "pépite de chocolat",
"plural_name": "chocolate chips" "plural_name": "pépites de chocolat"
}, },
"dark chocolate chip": { "dark chocolate chip": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "dark chocolate chip", "name": "pépite de chocolat noir",
"plural_name": "dark chocolate chips" "plural_name": "pépites de chocolat noir"
}, },
"whole-wheat flour": { "whole-wheat flour": {
"aliases": [ "aliases": [
@ -7815,8 +7815,8 @@
"rice flour": { "rice flour": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "rice flour", "name": "farine de riz",
"plural_name": "rice flours" "plural_name": "farines de riz"
}, },
"desiccated coconut": { "desiccated coconut": {
"aliases": [], "aliases": [],
@ -8545,11 +8545,11 @@
}, },
"Rice Krispie Cereal": { "Rice Krispie Cereal": {
"aliases": [ "aliases": [
"Rice Krispie" "Rice Krispies"
], ],
"description": "", "description": "",
"name": "Rice Krispie Cereal", "name": "Céréale Rice Krispies",
"plural_name": "Rice Krispie Cereal" "plural_name": "Céréale Rice Krispies"
}, },
"quinoa": { "quinoa": {
"aliases": [], "aliases": [],
@ -8746,7 +8746,7 @@
"black rice": { "black rice": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "black rice", "name": "riz noir",
"plural_name": "black rices" "plural_name": "black rices"
}, },
"yellow rice": { "yellow rice": {
@ -13878,8 +13878,8 @@
"dark chocolate": { "dark chocolate": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "dark chocolate", "name": "chocolat noir",
"plural_name": "dark chocolates" "plural_name": "chocolats noirs"
}, },
"dark cocoa": { "dark cocoa": {
"aliases": [], "aliases": [],
@ -13890,8 +13890,8 @@
"chocolate": { "chocolate": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chocolate", "name": "chocolat",
"plural_name": "chocolates" "plural_name": "chocolats"
}, },
"graham cracker": { "graham cracker": {
"aliases": [], "aliases": [],
@ -13908,14 +13908,14 @@
"marshmallow": { "marshmallow": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "marshmallow", "name": "chamallow",
"plural_name": "marshmallows" "plural_name": "chamallows"
}, },
"mini arshmallow": { "mini arshmallow": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mini arshmallow", "name": "mini arshmallow",
"plural_name": "mini marshmallows" "plural_name": "mini chamallows"
}, },
"applesauce": { "applesauce": {
"aliases": [], "aliases": [],
@ -13926,8 +13926,8 @@
"white chocolate": { "white chocolate": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "white chocolate", "name": "chocolat blanc",
"plural_name": "white chocolates" "plural_name": "chocolats blancs"
}, },
"oreo": { "oreo": {
"aliases": [], "aliases": [],
@ -14319,8 +14319,8 @@
"chocolate powder": { "chocolate powder": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chocolate powder", "name": "chocolat en poudre",
"plural_name": "chocolate powders" "plural_name": "chocolat en poudre"
}, },
"sponge cake": { "sponge cake": {
"aliases": [], "aliases": [],
@ -14343,8 +14343,8 @@
"licorice": { "licorice": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "licorice", "name": "réglisse",
"plural_name": "licorices" "plural_name": "réglisses"
}, },
"plum jam": { "plum jam": {
"aliases": [], "aliases": [],

View file

@ -168,8 +168,8 @@
"arugula": { "arugula": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "arugula", "name": "rúcula",
"plural_name": "arugulas" "plural_name": "rúculas"
}, },
"leek": { "leek": {
"aliases": [], "aliases": [],
@ -246,8 +246,8 @@
"new potato": { "new potato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "new potato", "name": "pataca nova",
"plural_name": "new potatoes" "plural_name": "patacas novas"
}, },
"summer squash": { "summer squash": {
"aliases": [ "aliases": [
@ -755,14 +755,14 @@
"plum": { "plum": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "plum", "name": "ameixa",
"plural_name": "plums" "plural_name": "ameixas"
}, },
"fig": { "fig": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "fig", "name": "figo",
"plural_name": "figs" "plural_name": "figos"
}, },
"apricot": { "apricot": {
"aliases": [], "aliases": [],
@ -773,8 +773,8 @@
"currant": { "currant": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "currant", "name": "grosella",
"plural_name": "currants" "plural_name": "grosellas"
}, },
"mandarin": { "mandarin": {
"aliases": [], "aliases": [],
@ -785,8 +785,8 @@
"prune": { "prune": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "prune", "name": "ameixa seca",
"plural_name": "prunes" "plural_name": "ameixas secas"
}, },
"cantaloupe": { "cantaloupe": {
"aliases": [], "aliases": [],
@ -815,26 +815,26 @@
"tamarind": { "tamarind": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "tamarind", "name": "tamarindo",
"plural_name": "tamarinds" "plural_name": "tamarindos"
}, },
"nectarine": { "nectarine": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "nectarine", "name": "nectarina",
"plural_name": "nectarines" "plural_name": "nectarinas"
}, },
"dried fig": { "dried fig": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "dried fig", "name": "figo seco",
"plural_name": "dried figs" "plural_name": "figos secos"
}, },
"chestnut": { "chestnut": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chestnut", "name": "castaña",
"plural_name": "chestnuts" "plural_name": "castañas"
}, },
"meyer lemon": { "meyer lemon": {
"aliases": [], "aliases": [],
@ -857,20 +857,20 @@
"clementine": { "clementine": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "clementine", "name": "clementina",
"plural_name": "clementines" "plural_name": "clementinas"
}, },
"persimmon": { "persimmon": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "persimmon", "name": "caqui",
"plural_name": "persimmons" "plural_name": "caquis"
}, },
"melon": { "melon": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "melon", "name": "melón",
"plural_name": "melons" "plural_name": "melóns"
}, },
"tangerine": { "tangerine": {
"aliases": [], "aliases": [],
@ -887,8 +887,8 @@
"dried apple": { "dried apple": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "dried apple", "name": "mazá seca",
"plural_name": "dried apples" "plural_name": "mazás secas"
}, },
"quince": { "quince": {
"aliases": [], "aliases": [],
@ -899,8 +899,8 @@
"guava": { "guava": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "guava", "name": "goiaba",
"plural_name": "guavas" "plural_name": "goiabas"
}, },
"banana chip": { "banana chip": {
"aliases": [], "aliases": [],
@ -1043,8 +1043,8 @@
"sweet lime": { "sweet lime": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sweet lime", "name": "lima doce",
"plural_name": "sweet limes" "plural_name": "limas doces"
}, },
"custard-apple": { "custard-apple": {
"aliases": [], "aliases": [],
@ -1157,8 +1157,8 @@
"loquat": { "loquat": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "loquat", "name": "néspera",
"plural_name": "loquats" "plural_name": "nésperas"
}, },
"crabapple": { "crabapple": {
"aliases": [], "aliases": [],
@ -1251,8 +1251,8 @@
"portobello mushroom": { "portobello mushroom": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "portobello mushroom", "name": "cogumelo portobello",
"plural_name": "portobello mushrooms" "plural_name": "cogumelos portobello"
}, },
"wild mushroom": { "wild mushroom": {
"aliases": [], "aliases": [],
@ -1453,8 +1453,8 @@
"strawberry": { "strawberry": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "strawberry", "name": "amorodo",
"plural_name": "strawberries" "plural_name": "amorodos"
}, },
"blueberry": { "blueberry": {
"aliases": [], "aliases": [],
@ -1727,8 +1727,8 @@
"almond": { "almond": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "almond", "name": "améndoa",
"plural_name": "almonds" "plural_name": "améndoas"
}, },
"sesame seed": { "sesame seed": {
"aliases": [], "aliases": [],
@ -1799,8 +1799,8 @@
"sunflower seed": { "sunflower seed": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sunflower seed", "name": "semente de xirasol",
"plural_name": "sunflower seeds" "plural_name": "sementes de xirasol"
}, },
"macadamia": { "macadamia": {
"aliases": [], "aliases": [],
@ -2202,7 +2202,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "manchego", "name": "manchego",
"plural_name": "manchegoes" "plural_name": "manchegos"
}, },
"italian cheese blend": { "italian cheese blend": {
"aliases": [], "aliases": [],
@ -2711,8 +2711,8 @@
"margarine": { "margarine": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "margarine", "name": "margarina",
"plural_name": "margarines" "plural_name": "margarinas"
}, },
"creme fraiche": { "creme fraiche": {
"aliases": [], "aliases": [],
@ -2753,8 +2753,8 @@
"dulce de leche": { "dulce de leche": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "dulce de leche", "name": "doce de leite",
"plural_name": "dulce de leche" "plural_name": "doces de leite"
}, },
"custard": { "custard": {
"aliases": [], "aliases": [],
@ -2777,14 +2777,14 @@
"sherbet": { "sherbet": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sherbet", "name": "sorvete",
"plural_name": "sherbets" "plural_name": "sorvetes"
}, },
"chocolate milk": { "chocolate milk": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chocolate milk", "name": "leite con chocolate",
"plural_name": "chocolate milks" "plural_name": "leites con chocolate"
}, },
"liquid egg substitute": { "liquid egg substitute": {
"aliases": [], "aliases": [],
@ -2873,14 +2873,14 @@
"cajeta": { "cajeta": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "cajeta", "name": "doce de leite de cabra",
"plural_name": "cajetas" "plural_name": "doces de leite de cabra"
}, },
"duck egg": { "duck egg": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "duck egg", "name": "ovo de pato",
"plural_name": "duck eggs" "plural_name": "ovos de pato"
}, },
"salted egg": { "salted egg": {
"aliases": [], "aliases": [],
@ -2903,8 +2903,8 @@
"raw milk": { "raw milk": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "raw milk", "name": "leite cru",
"plural_name": "raw milks" "plural_name": "leites crus"
}, },
"lime curd": { "lime curd": {
"aliases": [], "aliases": [],

View file

@ -547,8 +547,8 @@
"microgreen": { "microgreen": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "microgreen", "name": "mikrozöld",
"plural_name": "microgreens" "plural_name": "mikrozöldek"
}, },
"boston lettuce": { "boston lettuce": {
"aliases": [], "aliases": [],
@ -767,8 +767,8 @@
"apricot": { "apricot": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "apricot", "name": "sárgabarack",
"plural_name": "apricots" "plural_name": "sárgabarackok"
}, },
"currant": { "currant": {
"aliases": [], "aliases": [],
@ -780,7 +780,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mandarin", "name": "mandarin",
"plural_name": "mandarins" "plural_name": "mandarinok"
}, },
"prune": { "prune": {
"aliases": [], "aliases": [],
@ -803,14 +803,14 @@
"passion fruit": { "passion fruit": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "passion fruit", "name": "maracuja",
"plural_name": "passion fruits" "plural_name": ""
}, },
"papaya": { "papaya": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "papaya", "name": "papaja",
"plural_name": "papayas" "plural_name": "papaják"
}, },
"tamarind": { "tamarind": {
"aliases": [], "aliases": [],

View file

@ -2631,7 +2631,7 @@
"heavy cream": { "heavy cream": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "heavy cream", "name": "volle room",
"plural_name": "heavy creams" "plural_name": "heavy creams"
}, },
"sour cream": { "sour cream": {

View file

@ -5,7 +5,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "alho", "name": "alho",
"plural_name": "garlics" "plural_name": "alhos"
}, },
"onion": { "onion": {
"aliases": [], "aliases": [],
@ -29,7 +29,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "cebolinha", "name": "cebolinha",
"plural_name": "scallions" "plural_name": "cebolinhas"
}, },
"zucchini": { "zucchini": {
"aliases": [], "aliases": [],
@ -52,20 +52,20 @@
"yellow onion": { "yellow onion": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "yellow onion", "name": "cebola",
"plural_name": "yellow onions" "plural_name": "cebolas"
}, },
"celery": { "celery": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "salsão", "name": "salsão",
"plural_name": "celeries" "plural_name": "aipos"
}, },
"jalapeno": { "jalapeno": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "jalapeno", "name": "pimenta-jalapenho",
"plural_name": "jalapenoes" "plural_name": "pimentas-jalapenho"
}, },
"avocado": { "avocado": {
"aliases": [], "aliases": [],
@ -76,8 +76,8 @@
"shallot": { "shallot": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "shallot", "name": "chalota",
"plural_name": "shallots" "plural_name": "chalotas"
}, },
"cherry tomato": { "cherry tomato": {
"aliases": [], "aliases": [],
@ -95,27 +95,27 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "espinafre", "name": "espinafre",
"plural_name": "spinaches" "plural_name": "espinafres"
}, },
"sweet corn": { "sweet corn": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sweet corn", "name": "milho doce",
"plural_name": "sweet corns" "plural_name": "milhos-doce"
}, },
"chile pepper": { "chile pepper": {
"aliases": [ "aliases": [
"capsicum" "pimentão"
], ],
"description": "", "description": "",
"name": "chile pepper", "name": "pimenta malagueta",
"plural_name": "chile peppers" "plural_name": "pimentas-malagueta"
}, },
"sweet potato": { "sweet potato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "batata-doce", "name": "batata-doce",
"plural_name": "sweet potatoes" "plural_name": "batatas-doce"
}, },
"broccoli": { "broccoli": {
"aliases": [], "aliases": [],
@ -126,14 +126,14 @@
"heart of palm": { "heart of palm": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "heart of palm", "name": "palmito",
"plural_name": "heart of palms" "plural_name": "palmitos"
}, },
"baby green": { "baby green": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "baby green", "name": "mini verdura",
"plural_name": "baby greens" "plural_name": "mini verduras"
}, },
"pumpkin": { "pumpkin": {
"aliases": [], "aliases": [],
@ -145,7 +145,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "couve-flor", "name": "couve-flor",
"plural_name": "cauliflowers" "plural_name": "couves-flores"
}, },
"cabbage": { "cabbage": {
"aliases": [], "aliases": [],
@ -156,26 +156,26 @@
"asparagu": { "asparagu": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "asparagu", "name": "aspargo",
"plural_name": "asparagus" "plural_name": "aspargos"
}, },
"kale": { "kale": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "couve", "name": "couve",
"plural_name": "kales" "plural_name": "couves"
}, },
"arugula": { "arugula": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "arugula", "name": "rúcula",
"plural_name": "arugulas" "plural_name": "rúculas"
}, },
"leek": { "leek": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "alho-poró", "name": "alho-poró",
"plural_name": "leeks" "plural_name": "alho-poró"
}, },
"eggplant": { "eggplant": {
"aliases": [], "aliases": [],
@ -187,19 +187,19 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "alface", "name": "alface",
"plural_name": "lettuces" "plural_name": "alfaces"
}, },
"butternut squash": { "butternut squash": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "butternut squash", "name": "abóbora",
"plural_name": "butternut squashes" "plural_name": "abóboras"
}, },
"romaine": { "romaine": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "romaine", "name": "alface-romana",
"plural_name": "romaines" "plural_name": "alfaces-romanas"
}, },
"beetroot": { "beetroot": {
"aliases": [], "aliases": [],
@ -211,168 +211,168 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "couve-de-bruxelas", "name": "couve-de-bruxelas",
"plural_name": "brussels sprouts" "plural_name": "couve-de-bruxelas"
}, },
"fennel": { "fennel": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "fennel", "name": "fennel",
"plural_name": "fennels" "plural_name": "erva-doce"
}, },
"sun dried tomato": { "sun dried tomato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sun dried tomato", "name": "tomate seco",
"plural_name": "sun dried tomatoes" "plural_name": "tomates secos"
}, },
"radish": { "radish": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "rabanete", "name": "rabanete",
"plural_name": "radishes" "plural_name": "rabanetes"
}, },
"red cabbage": { "red cabbage": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "red cabbage", "name": "repolho roxo",
"plural_name": "red cabbages" "plural_name": "repolhos roxos"
}, },
"artichoke": { "artichoke": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "artichoke", "name": "alcachofra",
"plural_name": "artichokes" "plural_name": "alcachofras"
}, },
"new potato": { "new potato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "new potato", "name": "batata-bolinha",
"plural_name": "new potatoes" "plural_name": "batatas-bolinha"
}, },
"summer squash": { "summer squash": {
"aliases": [ "aliases": [
"courgette", "abobrinha",
"gem squash" "abobrinha italiana"
], ],
"description": "", "description": "",
"name": "summer squash", "name": "abobrinha amarela",
"plural_name": "summer squashes" "plural_name": "abrobrinhas amarelas"
}, },
"mixed green": { "mixed green": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mixed green", "name": "mix de verdura",
"plural_name": "mixed greens" "plural_name": "mixes de verduras"
}, },
"parsnip": { "parsnip": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "parsnip", "name": "cherovia",
"plural_name": "parsnips" "plural_name": "cherovias"
}, },
"baby carrot": { "baby carrot": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "minicenoura", "name": "minicenoura",
"plural_name": "baby carrots" "plural_name": "mini cenouras"
}, },
"mixed vegetable": { "mixed vegetable": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mixed vegetable", "name": "mix de vegetal",
"plural_name": "mixed vegetables" "plural_name": "mix de vegetais"
}, },
"poblano pepper": { "poblano pepper": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "poblano pepper", "name": "pimenta poblano",
"plural_name": "poblano peppers" "plural_name": "pimentas poblano"
}, },
"sweet pepper": { "sweet pepper": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sweet pepper", "name": "pimentão doce",
"plural_name": "sweet peppers" "plural_name": "pimentões doces"
}, },
"serrano pepper": { "serrano pepper": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "serrano pepper", "name": "pimenta serrano",
"plural_name": "serrano peppers" "plural_name": "pimentas serrano"
}, },
"cayenne pepper": { "cayenne pepper": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "cayenne pepper", "name": "pimenta caiena",
"plural_name": "cayenne peppers" "plural_name": "pimentas-de-caiena"
}, },
"green tomato": { "green tomato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "tomate verde", "name": "tomate verde",
"plural_name": "green tomatoes" "plural_name": "tomates verdes"
}, },
"watercress": { "watercress": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "watercress", "name": "agrião",
"plural_name": "watercress" "plural_name": "agriões"
}, },
"iceberg": { "iceberg": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "iceberg", "name": "alface crespa",
"plural_name": "icebergs" "plural_name": "alfaces-crespas"
}, },
"mashed potato": { "mashed potato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mashed potato", "name": "purê de batata",
"plural_name": "mashed potatoes" "plural_name": "purês de batata"
}, },
"horseradish": { "horseradish": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "horseradish", "name": "raiz-forte",
"plural_name": "horseradishes" "plural_name": "raízes-fortes"
}, },
"chard": { "chard": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "acelga", "name": "acelga",
"plural_name": "chards" "plural_name": "acelga"
}, },
"pimiento": { "pimiento": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "pimiento", "name": "pimentão vermelho",
"plural_name": "pimientoes" "plural_name": "pimentões vermelhos"
}, },
"spaghetti squash": { "spaghetti squash": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "spaghetti squash", "name": "abóbora-espaguete",
"plural_name": "spaghetti squashes" "plural_name": "abóboras-espaguete"
}, },
"butter lettuce": { "butter lettuce": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "butter lettuce", "name": "alface manteiga",
"plural_name": "butter lettuces" "plural_name": "alfaces manteigas"
}, },
"hash brown": { "hash brown": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "hash brown", "name": "batata rosti",
"plural_name": "hash browns" "plural_name": "batatas rosti"
}, },
"napa cabbage": { "napa cabbage": {
"aliases": [ "aliases": [
"chinese leaves" "repolho chinês"
], ],
"description": "", "description": "",
"name": "napa cabbage", "name": "repolho napa",
"plural_name": "napa cabbages" "plural_name": "repolhos napa"
}, },
"celeriac": { "celeriac": {
"aliases": [], "aliases": [],

View file

@ -17,7 +17,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "болгарский перец", "name": "болгарский перец",
"plural_name": "болгарских перца" "plural_name": "болгарских перцев"
}, },
"carrot": { "carrot": {
"aliases": [], "aliases": [],
@ -76,36 +76,36 @@
"shallot": { "shallot": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "шалот", "name": "лук-шалот",
"plural_name": "шалот" "plural_name": "лука-шалот"
}, },
"cherry tomato": { "cherry tomato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "помидор Черри", "name": "помидор черри",
"plural_name": "помидоры Черри" "plural_name": "помидоров черри"
}, },
"cucumber": { "cucumber": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "огурец", "name": "огурец",
"plural_name": "огурцы" "plural_name": "огурцов"
}, },
"spinach": { "spinach": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "шпинат", "name": "шпинат",
"plural_name": "шпинат" "plural_name": "шпината"
}, },
"sweet corn": { "sweet corn": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "сладкая кукуруза", "name": "сладкая кукуруза",
"plural_name": "сладкая кукуруза" "plural_name": "сладкой кукурузы"
}, },
"chile pepper": { "chile pepper": {
"aliases": [ "aliases": [
"стручковый перец" "стручкового перца"
], ],
"description": "", "description": "",
"name": "перец чили", "name": "перец чили",
@ -115,7 +115,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "батат", "name": "батат",
"plural_name": "батат" "plural_name": "батата"
}, },
"broccoli": { "broccoli": {
"aliases": [], "aliases": [],
@ -133,7 +133,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "молодая зелень", "name": "молодая зелень",
"plural_name": "молодая зелень" "plural_name": "молодой зелени"
}, },
"pumpkin": { "pumpkin": {
"aliases": [], "aliases": [],
@ -151,55 +151,55 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "капуста", "name": "капуста",
"plural_name": "капуста" "plural_name": "капусты"
}, },
"asparagu": { "asparagu": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "спаржа", "name": "спаржа",
"plural_name": "спаржа" "plural_name": "спаржи"
}, },
"kale": { "kale": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "кудрявая капуста", "name": "кудрявая капуста",
"plural_name": "кудрявая капуста" "plural_name": "кудрявой капусты"
}, },
"arugula": { "arugula": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "руккола", "name": "руккола",
"plural_name": "руккола" "plural_name": "рукколы"
}, },
"leek": { "leek": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "лук-порей", "name": "лук-порей",
"plural_name": "лук-порей" "plural_name": "лука-порей"
}, },
"eggplant": { "eggplant": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "баклажан", "name": "баклажан",
"plural_name": "баклажаны" "plural_name": "баклажана"
}, },
"lettuce": { "lettuce": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "салат - латук", "name": "салат - латук",
"plural_name": "салат - латук" "plural_name": "салата - латук"
}, },
"butternut squash": { "butternut squash": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "мускатная тыква", "name": "мускатная тыква",
"plural_name": "мускатная тыква" "plural_name": "мускатной тыквы"
}, },
"romaine": { "romaine": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "римский салат", "name": "римский салат",
"plural_name": "римский салат" "plural_name": "римского салата"
}, },
"beetroot": { "beetroot": {
"aliases": [], "aliases": [],
@ -211,47 +211,47 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "брюссельская капуста", "name": "брюссельская капуста",
"plural_name": "брюссельская капуста" "plural_name": "брюссельской капусты"
}, },
"fennel": { "fennel": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "фенхель", "name": "фенхель",
"plural_name": "фенхель" "plural_name": "фенхеля"
}, },
"sun dried tomato": { "sun dried tomato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "вяленый помидор", "name": "вяленый помидор",
"plural_name": "вяленые помидоры" "plural_name": "вяленых помидор"
}, },
"radish": { "radish": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "редис", "name": "редис",
"plural_name": "редис" "plural_name": "редиса"
}, },
"red cabbage": { "red cabbage": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "красная капуста", "name": "красная капуста",
"plural_name": "красная капуста" "plural_name": "красной капусты"
}, },
"artichoke": { "artichoke": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "артишок", "name": "артишок",
"plural_name": "артишоки" "plural_name": "артишока"
}, },
"new potato": { "new potato": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "молодой картофель", "name": "молодой картофель",
"plural_name": "молодой картофель" "plural_name": "молодого картофеля"
}, },
"summer squash": { "summer squash": {
"aliases": [ "aliases": [
"кабачок", "кабачка",
"гем-сквош" "гем-сквош"
], ],
"description": "", "description": "",
@ -629,68 +629,68 @@
"tomato": { "tomato": {
"aliases": [], "aliases": [],
"description": "Yes they are a fruit", "description": "Yes they are a fruit",
"name": "tomato", "name": "помидор",
"plural_name": "tomatoes" "plural_name": "помидоров"
}, },
"lemon": { "lemon": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "lemon", "name": "лимон",
"plural_name": "lemons" "plural_name": "лимонов"
}, },
"lime": { "lime": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "lime", "name": "лайм",
"plural_name": "limes" "plural_name": "лаймов"
}, },
"apple": { "apple": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "apple", "name": "яблоко",
"plural_name": "apples" "plural_name": "яблок"
}, },
"banana": { "banana": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "banana", "name": "банан",
"plural_name": "bananas" "plural_name": "бананов"
}, },
"orange": { "orange": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "orange", "name": "апельсин",
"plural_name": "oranges" "plural_name": "апельсинов"
}, },
"raisin": { "raisin": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "raisin", "name": "изюм",
"plural_name": "raisins" "plural_name": "изюма"
}, },
"pineapple": { "pineapple": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "pineapple", "name": "ананас",
"plural_name": "pineapples" "plural_name": "ананасов"
}, },
"mango": { "mango": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "mango", "name": "манго",
"plural_name": "mangoes" "plural_name": "манго"
}, },
"peach": { "peach": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "peach", "name": "персик",
"plural_name": "peaches" "plural_name": "персиков"
}, },
"date": { "date": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "date", "name": "финик",
"plural_name": "dates" "plural_name": "фиников"
}, },
"coconut": { "coconut": {
"aliases": [], "aliases": [],
@ -713,14 +713,14 @@
"grape": { "grape": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "grape", "name": "виноград",
"plural_name": "grapes" "plural_name": "винограда"
}, },
"pomegranate": { "pomegranate": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "pomegranate", "name": "гранат",
"plural_name": "pomegranates" "plural_name": "граната"
}, },
"watermelon": { "watermelon": {
"aliases": [], "aliases": [],
@ -743,8 +743,8 @@
"kiwi": { "kiwi": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "kiwi", "name": "киви",
"plural_name": "kiwis" "plural_name": "киви"
}, },
"grapefruit": { "grapefruit": {
"aliases": [], "aliases": [],
@ -911,14 +911,14 @@
"kumquat": { "kumquat": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "kumquat", "name": "кумкват",
"plural_name": "kumquats" "plural_name": "кумкватов"
}, },
"jackfruit": { "jackfruit": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "jackfruit", "name": "джекфрут",
"plural_name": "jackfruits" "plural_name": "джекфрутов"
}, },
"dragon fruit": { "dragon fruit": {
"aliases": [], "aliases": [],

View file

@ -1,31 +1,31 @@
{ {
"teaspoon": { "teaspoon": {
"name": "teelepel", "name": "teelepel",
"plural_name": "teaspoons", "plural_name": "teelepel",
"description": "", "description": "",
"abbreviation": "tl" "abbreviation": "tl"
}, },
"tablespoon": { "tablespoon": {
"name": "eetlepel", "name": "eetlepel",
"plural_name": "tablespoons", "plural_name": "eetlepel",
"description": "", "description": "",
"abbreviation": "el" "abbreviation": "el"
}, },
"cup": { "cup": {
"name": "koppie", "name": "koppie",
"plural_name": "cups", "plural_name": "koppie",
"description": "", "description": "",
"abbreviation": "c" "abbreviation": "c"
}, },
"fluid-ounce": { "fluid-ounce": {
"name": "vloeistofons", "name": "vloeistofons",
"plural_name": "fluid ounces", "plural_name": "vloeistofons",
"description": "", "description": "",
"abbreviation": "fl oz" "abbreviation": "fl oz"
}, },
"pint": { "pint": {
"name": "pint", "name": "pint",
"plural_name": "pints", "plural_name": "pint",
"description": "", "description": "",
"abbreviation": "pt" "abbreviation": "pt"
}, },

View file

@ -45,7 +45,7 @@
"name": "millilitre", "name": "millilitre",
"plural_name": "millilitres", "plural_name": "millilitres",
"description": "", "description": "",
"abbreviation": "mL" "abbreviation": "ml"
}, },
"liter": { "liter": {
"name": "litre", "name": "litre",

View file

@ -70,7 +70,7 @@ class OpenAILocalImage(OpenAIImageBase):
) )
with open(image, "rb") as f: with open(image, "rb") as f:
b64content = base64.b64encode(f.read()).decode("utf-8") b64content = base64.b64encode(f.read()).decode("utf-8")
return f"data:image/jpg;base64,{b64content}" return f"data:image/jpeg;base64,{b64content}"
class OpenAIService(BaseService): class OpenAIService(BaseService):

323
poetry.lock generated
View file

@ -483,100 +483,100 @@ markers = {main = "platform_system == \"Windows\" or sys_platform == \"win32\""}
[[package]] [[package]]
name = "coverage" name = "coverage"
version = "7.10.1" version = "7.10.2"
description = "Code coverage measurement for Python" description = "Code coverage measurement for Python"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "coverage-7.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1c86eb388bbd609d15560e7cc0eb936c102b6f43f31cf3e58b4fd9afe28e1372"}, {file = "coverage-7.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:79f0283ab5e6499fd5fe382ca3d62afa40fb50ff227676a3125d18af70eabf65"},
{file = "coverage-7.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b4ba0f488c1bdb6bd9ba81da50715a372119785458831c73428a8566253b86b"}, {file = "coverage-7.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4545e906f595ee8ab8e03e21be20d899bfc06647925bc5b224ad7e8c40e08b8"},
{file = "coverage-7.10.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:083442ecf97d434f0cb3b3e3676584443182653da08b42e965326ba12d6b5f2a"}, {file = "coverage-7.10.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ae385e1d58fbc6a9b1c315e5510ac52281e271478b45f92ca9b5ad42cf39643f"},
{file = "coverage-7.10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c1a40c486041006b135759f59189385da7c66d239bad897c994e18fd1d0c128f"}, {file = "coverage-7.10.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6f0cbe5f7dd19f3a32bac2251b95d51c3b89621ac88a2648096ce40f9a5aa1e7"},
{file = "coverage-7.10.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3beb76e20b28046989300c4ea81bf690df84ee98ade4dc0bbbf774a28eb98440"}, {file = "coverage-7.10.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fd17f427f041f6b116dc90b4049c6f3e1230524407d00daa2d8c7915037b5947"},
{file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc265a7945e8d08da28999ad02b544963f813a00f3ed0a7a0ce4165fd77629f8"}, {file = "coverage-7.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7f10ca4cde7b466405cce0a0e9971a13eb22e57a5ecc8b5f93a81090cc9c7eb9"},
{file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:47c91f32ba4ac46f1e224a7ebf3f98b4b24335bad16137737fe71a5961a0665c"}, {file = "coverage-7.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3b990df23dd51dccce26d18fb09fd85a77ebe46368f387b0ffba7a74e470b31b"},
{file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1a108dd78ed185020f66f131c60078f3fae3f61646c28c8bb4edd3fa121fc7fc"}, {file = "coverage-7.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc3902584d25c7eef57fb38f440aa849a26a3a9f761a029a72b69acfca4e31f8"},
{file = "coverage-7.10.1-cp310-cp310-win32.whl", hash = "sha256:7092cc82382e634075cc0255b0b69cb7cada7c1f249070ace6a95cb0f13548ef"}, {file = "coverage-7.10.2-cp310-cp310-win32.whl", hash = "sha256:9dd37e9ac00d5eb72f38ed93e3cdf2280b1dbda3bb9b48c6941805f265ad8d87"},
{file = "coverage-7.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:ac0c5bba938879c2fc0bc6c1b47311b5ad1212a9dcb8b40fe2c8110239b7faed"}, {file = "coverage-7.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:99d16f15cb5baf0729354c5bd3080ae53847a4072b9ba1e10957522fb290417f"},
{file = "coverage-7.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f"}, {file = "coverage-7.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c3b210d79925a476dfc8d74c7d53224888421edebf3a611f3adae923e212b27"},
{file = "coverage-7.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f1"}, {file = "coverage-7.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf67d1787cd317c3f8b2e4c6ed1ae93497be7e30605a0d32237ac37a37a8a322"},
{file = "coverage-7.10.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437"}, {file = "coverage-7.10.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:069b779d03d458602bc0e27189876e7d8bdf6b24ac0f12900de22dd2154e6ad7"},
{file = "coverage-7.10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b7"}, {file = "coverage-7.10.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4c2de4cb80b9990e71c62c2d3e9f3ec71b804b1f9ca4784ec7e74127e0f42468"},
{file = "coverage-7.10.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b8770"}, {file = "coverage-7.10.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:75bf7ab2374a7eb107602f1e07310cda164016cd60968abf817b7a0b5703e288"},
{file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262"}, {file = "coverage-7.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3f37516458ec1550815134937f73d6d15b434059cd10f64678a2068f65c62406"},
{file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a3"}, {file = "coverage-7.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:de3c6271c482c250d3303fb5c6bdb8ca025fff20a67245e1425df04dc990ece9"},
{file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e1e8496966759a1f282bcd0"}, {file = "coverage-7.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:98a838101321ac3089c9bb1d4bfa967e8afed58021fda72d7880dc1997f20ae1"},
{file = "coverage-7.10.1-cp311-cp311-win32.whl", hash = "sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be"}, {file = "coverage-7.10.2-cp311-cp311-win32.whl", hash = "sha256:f2a79145a531a0e42df32d37be5af069b4a914845b6f686590739b786f2f7bce"},
{file = "coverage-7.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c"}, {file = "coverage-7.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:e4f5f1320f8ee0d7cfa421ceb257bef9d39fd614dd3ddcfcacd284d4824ed2c2"},
{file = "coverage-7.10.1-cp311-cp311-win_arm64.whl", hash = "sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293"}, {file = "coverage-7.10.2-cp311-cp311-win_arm64.whl", hash = "sha256:d8f2d83118f25328552c728b8e91babf93217db259ca5c2cd4dd4220b8926293"},
{file = "coverage-7.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4"}, {file = "coverage-7.10.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:890ad3a26da9ec7bf69255b9371800e2a8da9bc223ae5d86daeb940b42247c83"},
{file = "coverage-7.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e"}, {file = "coverage-7.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38fd1ccfca7838c031d7a7874d4353e2f1b98eb5d2a80a2fe5732d542ae25e9c"},
{file = "coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c7328f4"}, {file = "coverage-7.10.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:76c1ffaaf4f6f0f6e8e9ca06f24bb6454a7a5d4ced97a1bc466f0d6baf4bd518"},
{file = "coverage-7.10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a68e04bf97a"}, {file = "coverage-7.10.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:86da8a3a84b79ead5c7d0e960c34f580bc3b231bb546627773a3f53c532c2f21"},
{file = "coverage-7.10.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe"}, {file = "coverage-7.10.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99cef9731c8a39801830a604cc53c93c9e57ea8b44953d26589499eded9576e0"},
{file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386"}, {file = "coverage-7.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ea58b112f2966a8b91eb13f5d3b1f8bb43c180d624cd3283fb33b1cedcc2dd75"},
{file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6"}, {file = "coverage-7.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:20f405188d28da9522b7232e51154e1b884fc18d0b3a10f382d54784715bbe01"},
{file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f"}, {file = "coverage-7.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:64586ce42bbe0da4d9f76f97235c545d1abb9b25985a8791857690f96e23dc3b"},
{file = "coverage-7.10.1-cp312-cp312-win32.whl", hash = "sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885eca"}, {file = "coverage-7.10.2-cp312-cp312-win32.whl", hash = "sha256:bc2e69b795d97ee6d126e7e22e78a509438b46be6ff44f4dccbb5230f550d340"},
{file = "coverage-7.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a3"}, {file = "coverage-7.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:adda2268b8cf0d11f160fad3743b4dfe9813cd6ecf02c1d6397eceaa5b45b388"},
{file = "coverage-7.10.1-cp312-cp312-win_arm64.whl", hash = "sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4"}, {file = "coverage-7.10.2-cp312-cp312-win_arm64.whl", hash = "sha256:164429decd0d6b39a0582eaa30c67bf482612c0330572343042d0ed9e7f15c20"},
{file = "coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39"}, {file = "coverage-7.10.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:aca7b5645afa688de6d4f8e89d30c577f62956fefb1bad021490d63173874186"},
{file = "coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7"}, {file = "coverage-7.10.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:96e5921342574a14303dfdb73de0019e1ac041c863743c8fe1aa6c2b4a257226"},
{file = "coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892"}, {file = "coverage-7.10.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:11333094c1bff621aa811b67ed794865cbcaa99984dedea4bd9cf780ad64ecba"},
{file = "coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7"}, {file = "coverage-7.10.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6eb586fa7d2aee8d65d5ae1dd71414020b2f447435c57ee8de8abea0a77d5074"},
{file = "coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994"}, {file = "coverage-7.10.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2d358f259d8019d4ef25d8c5b78aca4c7af25e28bd4231312911c22a0e824a57"},
{file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0"}, {file = "coverage-7.10.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5250bda76e30382e0a2dcd68d961afcab92c3a7613606e6269855c6979a1b0bb"},
{file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7"}, {file = "coverage-7.10.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a91e027d66eff214d88d9afbe528e21c9ef1ecdf4956c46e366c50f3094696d0"},
{file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7"}, {file = "coverage-7.10.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:228946da741558904e2c03ce870ba5efd9cd6e48cbc004d9a27abee08100a15a"},
{file = "coverage-7.10.1-cp313-cp313-win32.whl", hash = "sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7"}, {file = "coverage-7.10.2-cp313-cp313-win32.whl", hash = "sha256:95e23987b52d02e7c413bf2d6dc6288bd5721beb518052109a13bfdc62c8033b"},
{file = "coverage-7.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e"}, {file = "coverage-7.10.2-cp313-cp313-win_amd64.whl", hash = "sha256:f35481d42c6d146d48ec92d4e239c23f97b53a3f1fbd2302e7c64336f28641fe"},
{file = "coverage-7.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4"}, {file = "coverage-7.10.2-cp313-cp313-win_arm64.whl", hash = "sha256:65b451949cb789c346f9f9002441fc934d8ccedcc9ec09daabc2139ad13853f7"},
{file = "coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72"}, {file = "coverage-7.10.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:e8415918856a3e7d57a4e0ad94651b761317de459eb74d34cc1bb51aad80f07e"},
{file = "coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af"}, {file = "coverage-7.10.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f287a25a8ca53901c613498e4a40885b19361a2fe8fbfdbb7f8ef2cad2a23f03"},
{file = "coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7"}, {file = "coverage-7.10.2-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:75cc1a3f8c88c69bf16a871dab1fe5a7303fdb1e9f285f204b60f1ee539b8fc0"},
{file = "coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759"}, {file = "coverage-7.10.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ca07fa78cc9d26bc8c4740de1abd3489cf9c47cc06d9a8ab3d552ff5101af4c0"},
{file = "coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324"}, {file = "coverage-7.10.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2e117e64c26300032755d4520cd769f2623cde1a1d1c3515b05a3b8add0ade1"},
{file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53"}, {file = "coverage-7.10.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:daaf98009977f577b71f8800208f4d40d4dcf5c2db53d4d822787cdc198d76e1"},
{file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f"}, {file = "coverage-7.10.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:ea8d8fe546c528535c761ba424410bbeb36ba8a0f24be653e94b70c93fd8a8ca"},
{file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd"}, {file = "coverage-7.10.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:fe024d40ac31eb8d5aae70215b41dafa264676caa4404ae155f77d2fa95c37bb"},
{file = "coverage-7.10.1-cp313-cp313t-win32.whl", hash = "sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c"}, {file = "coverage-7.10.2-cp313-cp313t-win32.whl", hash = "sha256:8f34b09f68bdadec122ffad312154eda965ade433559cc1eadd96cca3de5c824"},
{file = "coverage-7.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18"}, {file = "coverage-7.10.2-cp313-cp313t-win_amd64.whl", hash = "sha256:71d40b3ac0f26fa9ffa6ee16219a714fed5c6ec197cdcd2018904ab5e75bcfa3"},
{file = "coverage-7.10.1-cp313-cp313t-win_arm64.whl", hash = "sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4"}, {file = "coverage-7.10.2-cp313-cp313t-win_arm64.whl", hash = "sha256:abb57fdd38bf6f7dcc66b38dafb7af7c5fdc31ac6029ce373a6f7f5331d6f60f"},
{file = "coverage-7.10.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c"}, {file = "coverage-7.10.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a3e853cc04987c85ec410905667eed4bf08b1d84d80dfab2684bb250ac8da4f6"},
{file = "coverage-7.10.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e"}, {file = "coverage-7.10.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0100b19f230df72c90fdb36db59d3f39232391e8d89616a7de30f677da4f532b"},
{file = "coverage-7.10.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b"}, {file = "coverage-7.10.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9c1cd71483ea78331bdfadb8dcec4f4edfb73c7002c1206d8e0af6797853f5be"},
{file = "coverage-7.10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41"}, {file = "coverage-7.10.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9f75dbf4899e29a37d74f48342f29279391668ef625fdac6d2f67363518056a1"},
{file = "coverage-7.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f"}, {file = "coverage-7.10.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7df481e7508de1c38b9b8043da48d94931aefa3e32b47dd20277e4978ed5b95"},
{file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1"}, {file = "coverage-7.10.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:835f39e618099325e7612b3406f57af30ab0a0af350490eff6421e2e5f608e46"},
{file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:991196702d5e0b120a8fef2664e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2"}, {file = "coverage-7.10.2-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:12e52b5aa00aa720097d6947d2eb9e404e7c1101ad775f9661ba165ed0a28303"},
{file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4"}, {file = "coverage-7.10.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:718044729bf1fe3e9eb9f31b52e44ddae07e434ec050c8c628bf5adc56fe4bdd"},
{file = "coverage-7.10.1-cp314-cp314-win32.whl", hash = "sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613"}, {file = "coverage-7.10.2-cp314-cp314-win32.whl", hash = "sha256:f256173b48cc68486299d510a3e729a96e62c889703807482dbf56946befb5c8"},
{file = "coverage-7.10.1-cp314-cp314-win_amd64.whl", hash = "sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e"}, {file = "coverage-7.10.2-cp314-cp314-win_amd64.whl", hash = "sha256:2e980e4179f33d9b65ac4acb86c9c0dde904098853f27f289766657ed16e07b3"},
{file = "coverage-7.10.1-cp314-cp314-win_arm64.whl", hash = "sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652"}, {file = "coverage-7.10.2-cp314-cp314-win_arm64.whl", hash = "sha256:14fb5b6641ab5b3c4161572579f0f2ea8834f9d3af2f7dd8fbaecd58ef9175cc"},
{file = "coverage-7.10.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894"}, {file = "coverage-7.10.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:e96649ac34a3d0e6491e82a2af71098e43be2874b619547c3282fc11d3840a4b"},
{file = "coverage-7.10.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5"}, {file = "coverage-7.10.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1a2e934e9da26341d342d30bfe91422bbfdb3f1f069ec87f19b2909d10d8dcc4"},
{file = "coverage-7.10.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2"}, {file = "coverage-7.10.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:651015dcd5fd9b5a51ca79ece60d353cacc5beaf304db750407b29c89f72fe2b"},
{file = "coverage-7.10.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb"}, {file = "coverage-7.10.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:81bf6a32212f9f66da03d63ecb9cd9bd48e662050a937db7199dbf47d19831de"},
{file = "coverage-7.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b"}, {file = "coverage-7.10.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d800705f6951f75a905ea6feb03fff8f3ea3468b81e7563373ddc29aa3e5d1ca"},
{file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea"}, {file = "coverage-7.10.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:248b5394718e10d067354448dc406d651709c6765669679311170da18e0e9af8"},
{file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd"}, {file = "coverage-7.10.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:5c61675a922b569137cf943770d7ad3edd0202d992ce53ac328c5ff68213ccf4"},
{file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d"}, {file = "coverage-7.10.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:52d708b5fd65589461381fa442d9905f5903d76c086c6a4108e8e9efdca7a7ed"},
{file = "coverage-7.10.1-cp314-cp314t-win32.whl", hash = "sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47"}, {file = "coverage-7.10.2-cp314-cp314t-win32.whl", hash = "sha256:916369b3b914186b2c5e5ad2f7264b02cff5df96cdd7cdad65dccd39aa5fd9f0"},
{file = "coverage-7.10.1-cp314-cp314t-win_amd64.whl", hash = "sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651"}, {file = "coverage-7.10.2-cp314-cp314t-win_amd64.whl", hash = "sha256:5b9d538e8e04916a5df63052d698b30c74eb0174f2ca9cd942c981f274a18eaf"},
{file = "coverage-7.10.1-cp314-cp314t-win_arm64.whl", hash = "sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab"}, {file = "coverage-7.10.2-cp314-cp314t-win_arm64.whl", hash = "sha256:04c74f9ef1f925456a9fd23a7eef1103126186d0500ef9a0acb0bd2514bdc7cc"},
{file = "coverage-7.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:57b6e8789cbefdef0667e4a94f8ffa40f9402cee5fc3b8e4274c894737890145"}, {file = "coverage-7.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:765b13b164685a2f8b2abef867ad07aebedc0e090c757958a186f64e39d63dbd"},
{file = "coverage-7.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:85b22a9cce00cb03156334da67eb86e29f22b5e93876d0dd6a98646bb8a74e53"}, {file = "coverage-7.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a219b70100500d0c7fd3ebb824a3302efb6b1a122baa9d4eb3f43df8f0b3d899"},
{file = "coverage-7.10.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:97b6983a2f9c76d345ca395e843a049390b39652984e4a3b45b2442fa733992d"}, {file = "coverage-7.10.2-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e33e79a219105aa315439ee051bd50b6caa705dc4164a5aba6932c8ac3ce2d98"},
{file = "coverage-7.10.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ddf2a63b91399a1c2f88f40bc1705d5a7777e31c7e9eb27c602280f477b582ba"}, {file = "coverage-7.10.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bc3945b7bad33957a9eca16e9e5eae4b17cb03173ef594fdaad228f4fc7da53b"},
{file = "coverage-7.10.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47ab6dbbc31a14c5486420c2c1077fcae692097f673cf5be9ddbec8cdaa4cdbc"}, {file = "coverage-7.10.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9bdff88e858ee608a924acfad32a180d2bf6e13e059d6a7174abbae075f30436"},
{file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:21eb7d8b45d3700e7c2936a736f732794c47615a20f739f4133d5230a6512a88"}, {file = "coverage-7.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44329cbed24966c0b49acb386352c9722219af1f0c80db7f218af7793d251902"},
{file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:283005bb4d98ae33e45f2861cd2cde6a21878661c9ad49697f6951b358a0379b"}, {file = "coverage-7.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:be127f292496d0fbe20d8025f73221b36117b3587f890346e80a13b310712982"},
{file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fefe31d61d02a8b2c419700b1fade9784a43d726de26495f243b663cd9fe1513"}, {file = "coverage-7.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6c031da749a05f7a01447dd7f47beedb498edd293e31e1878c0d52db18787df0"},
{file = "coverage-7.10.1-cp39-cp39-win32.whl", hash = "sha256:e8ab8e4c7ec7f8a55ac05b5b715a051d74eac62511c6d96d5bb79aaafa3b04cf"}, {file = "coverage-7.10.2-cp39-cp39-win32.whl", hash = "sha256:22aca3e691c7709c5999ccf48b7a8ff5cf5a8bd6fe9b36efbd4993f5a36b2fcf"},
{file = "coverage-7.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:c36baa0ecde742784aa76c2b816466d3ea888d5297fda0edbac1bf48fa94688a"}, {file = "coverage-7.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:c7195444b932356055a8e287fa910bf9753a84a1bc33aeb3770e8fca521e032e"},
{file = "coverage-7.10.1-py3-none-any.whl", hash = "sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7"}, {file = "coverage-7.10.2-py3-none-any.whl", hash = "sha256:95db3750dd2e6e93d99fa2498f3a1580581e49c494bddccc6f85c5c21604921f"},
{file = "coverage-7.10.1.tar.gz", hash = "sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57"}, {file = "coverage-7.10.2.tar.gz", hash = "sha256:5d6e6d84e6dd31a8ded64759626627247d676a23c1b892e1326f7c55c8d61055"},
] ]
[package.extras] [package.extras]
@ -1849,14 +1849,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
[[package]] [[package]]
name = "openai" name = "openai"
version = "1.98.0" version = "1.99.3"
description = "The official Python library for the openai API" description = "The official Python library for the openai API"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "openai-1.98.0-py3-none-any.whl", hash = "sha256:b99b794ef92196829120e2df37647722104772d2a74d08305df9ced5f26eae34"}, {file = "openai-1.99.3-py3-none-any.whl", hash = "sha256:c786a03f6cddadb5ee42c6d749aa4f6134fe14fdd7d69a667e5e7ce7fd29a719"},
{file = "openai-1.98.0.tar.gz", hash = "sha256:3ee0fcc50ae95267fd22bd1ad095ba5402098f3df2162592e68109999f685427"}, {file = "openai-1.99.3.tar.gz", hash = "sha256:1a0e2910e4545d828c14218f2ac3276827c94a043f5353e43b9413b38b497897"},
] ]
[package.dependencies] [package.dependencies]
@ -2144,58 +2144,65 @@ xmp = ["defusedxml"]
[[package]] [[package]]
name = "pillow-heif" name = "pillow-heif"
version = "1.0.0" version = "1.1.0"
description = "Python interface for libheif library" description = "Python interface for libheif library"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "pillow_heif-1.0.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:5c1896b96c4b219846435ab859723853a8c42758ad4300d3ed8427b91496762d"}, {file = "pillow_heif-1.1.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:166837c243518a930d37f9cbe9e1851f63d1b3cabd4a71496acfdab33eae198b"},
{file = "pillow_heif-1.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:7e5ab47004e5c8f891229b051daacb1a90c16cb547a4849825f8be7321145fe3"}, {file = "pillow_heif-1.1.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:2b4c599f9276619eaf19e436d519da7f92b31ccec1d4cfd9d728395841e35009"},
{file = "pillow_heif-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba94f702f1c5203d98c625567af0a01d87bc7e69c3a451262d4fb76af25d827"}, {file = "pillow_heif-1.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb4134a05025449f8cc48b6b97c75fc5e81ecdb41b70da4fce08cc8e1b89bcae"},
{file = "pillow_heif-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:661fb336e509294b892f1310282829359eaa7f628317e4cd1a42b1c056cb9f2f"}, {file = "pillow_heif-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a4ca1590c6d1a7cc5f01bd897aa5781a8ba07eb1a524fa849a34011f4fdb8229"},
{file = "pillow_heif-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5ce8ad2dc09c6100b27ea69ad681941b694878cb307b7058f1a5127b55ff0af9"}, {file = "pillow_heif-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:785019774e176c5dea62bcc1578527a02b6a290ac625d4be1bf68aeef789f6e4"},
{file = "pillow_heif-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:98962fdc791e093749a8393aa02eeaa12593ca08f5064798572bb0553f302f81"}, {file = "pillow_heif-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:645eade826e470035c458715f9251682909ee939ca22e801dc690aa8722c25b6"},
{file = "pillow_heif-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:c4258cfca6edf34cb6f804fec9c8494eb6fe8f9029d7dea9fbd46e5648c127a8"}, {file = "pillow_heif-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:8e66f1611a3f06392e638dd519c8013ead3b850cfabad5aecd7d9919173ff840"},
{file = "pillow_heif-1.0.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:812bb192e98a1eb0f037cddccd6c95930e3b6ff00951c67f4623c2ab085d8938"}, {file = "pillow_heif-1.1.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:fdc65d6e97469f385790c685e957ab4082d94e141781aa5c535406a60457d16c"},
{file = "pillow_heif-1.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0beb5a4d8ebdcc4bfd35c911cf0b2537ef1a6a145f4cf8a5468b1531fea9e89c"}, {file = "pillow_heif-1.1.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:af2fca989f32a74f862f62622ba16359681b13ca2906be503f7cc5913337f337"},
{file = "pillow_heif-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:560b7d6d265dc256ced56c9758de0efe927125d3132cc49e88328116d163823b"}, {file = "pillow_heif-1.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dd83590482f2b4c0f8ba2f750b2e23fc6c6700c786faaa07a9d8cc989a861f5"},
{file = "pillow_heif-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60ce73485154c7334d884f77cd4120b91b3daef4abdfd91970ebddcde955a9bb"}, {file = "pillow_heif-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3506f9ed4533f9cd567a3b12c0c3077de0702868fc19cb38ff84ff92540a75d"},
{file = "pillow_heif-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:97ea05e4e71f70ec05ebea6a185e0fb3aaf31f081f452e3061f3aa237f52165a"}, {file = "pillow_heif-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5ebab03c583c0ff2518d21438c5acd188e04f605edd792810795857c51d00e89"},
{file = "pillow_heif-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a9cd71162046488e6f98507436cd8e7f85202a858adfce7b296b461eeb1e5b06"}, {file = "pillow_heif-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2234cbc0c9c1e1daaba3306d8c7b7ed73fbddac3b2d5e978d403f9d21df3a4fb"},
{file = "pillow_heif-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ffd8307e9fc4ad3cd998ffdf18eb15c1a1ccafffb5ac4d6a213368e4af7a4b39"}, {file = "pillow_heif-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:e0b7003cc91b1b939e6306aa8af97249d1d59c91b829f6c24e35b0c1f7e50614"},
{file = "pillow_heif-1.0.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:4217447e61df85d847718ecf4054d4292b691eee74fa565f0b650da1dc357f34"}, {file = "pillow_heif-1.1.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:8f1de65e770bc3f1b8f33b49f4ead8fb03970ad5cb42a804c95e9c47aa7f4208"},
{file = "pillow_heif-1.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:425b1aac012fc59fc703cdce05ac125ffa2970ec9839bb8d763d8645eb59308c"}, {file = "pillow_heif-1.1.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:06e44f0285ab0272083f11dd8deb43ab4da1b89992a7e891612c7f37ff46e08f"},
{file = "pillow_heif-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ec85dfc7db7b34944e7a4c885a7d72fb470d532bb696c490445954a50db7241"}, {file = "pillow_heif-1.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecafb8f476e2d99aff900fe3fd62df37c1372714bf426166be23c9e9c9857612"},
{file = "pillow_heif-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71fa395744c53a3b4ceb2fbf29b63e556c64591038472600af9e368940f930c0"}, {file = "pillow_heif-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d2ac086bcca2753f24096acac187d80327f26e34eeaeeaa48e280a167a83ca79"},
{file = "pillow_heif-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9691125b30d352b2817a544d3155f6a5911378d08901ee4b71ba3e4305fa32a0"}, {file = "pillow_heif-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e6eee59abe4efd867a733c73bd624a9c704286df1c97b6d01d2e3370bd43f07"},
{file = "pillow_heif-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ca0e829e6c6986a3acc33efb9e762439b84f0ecc8e583204f04ad8001b192bf"}, {file = "pillow_heif-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2af9f05d9bed937f03707e9965d8d214b1facb6cf7ebf9430b79b978fe058c62"},
{file = "pillow_heif-1.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:0f0b8546fe98f0938cb6afd1127f2b7a855f4a657e31dcebedaee97ba5662da9"}, {file = "pillow_heif-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:15cbd385cc02908f841d48295304e15390a3e79e26d3b6dad7b7a7007a874eaa"},
{file = "pillow_heif-1.0.0-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:6a7b14de333709ef9fdd4de57bda3103eb3178b6ed267f9e60bfd64bfb7c5c41"}, {file = "pillow_heif-1.1.0-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:f262bed5978797fa2c22615be821c6fd767a786bd72396a38d07583adde1e37e"},
{file = "pillow_heif-1.0.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:07fba7ffbcc7841cc4e5a3bd781628ef6a2359c633d28fcd14ad490b09060bb3"}, {file = "pillow_heif-1.1.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:c9d37ed097d28c4970461f244d8c2156d0f710f9eee00a36b29142fb6a050fc2"},
{file = "pillow_heif-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0ab4c56637c2b332e15383a14ee1b493fbbc5dbc756a0b372b7c23df1ed281a"}, {file = "pillow_heif-1.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:66f6d04a1f8483a8820d8b1dcb893bfb8103e320dd72d762ec687e92bb92a69b"},
{file = "pillow_heif-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:809e4fd18bf1f683788d71449ae0ed7522e16c4a892a040ec64cf97377e6efd5"}, {file = "pillow_heif-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9923700a3031ca27d2d68e99b09217e6d9360fd45bbe6975cd5b5e48e422cf71"},
{file = "pillow_heif-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6d928a5e9f1cfa9e300695329bf9db08e01bcb14b14c4e6a48d6c032bf9dfa1c"}, {file = "pillow_heif-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f4be665888167c481b63fe5a5b62cda2f81c575f54bade9eb1b004137542f76a"},
{file = "pillow_heif-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f02906fd84688138bcbdbbd75fbef77356043bc6199516a152cc66811d1b7198"}, {file = "pillow_heif-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ef1f4ab291e37dbbe22d8ccf1e2dde1a6561b43a4eed1d992fe795d4b62c1258"},
{file = "pillow_heif-1.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:864a01279069fcd1d99ac0c8ad3263c478438eb9adaa084a2f3d2278049b308f"}, {file = "pillow_heif-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:0e3f34354ac8b4be505a25f705be907997e6a1172d21667f7a1d1ff8e3b9d10d"},
{file = "pillow_heif-1.0.0-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:e4dd88b416199484aeebd467452293d4c29ab33a6e263eac735f5318b1713ab6"}, {file = "pillow_heif-1.1.0-cp314-cp314-macosx_13_0_x86_64.whl", hash = "sha256:c47f12a30a86c43f714353d0fb8478dc4da7915d678642e0b6cf6f0fd53d711e"},
{file = "pillow_heif-1.0.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:6132ce820142c4a79510347dd3f0bf7410ed6e8780202821fb95540bfc8d7484"}, {file = "pillow_heif-1.1.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3cc4a7a808b659f657c5144aeec8152d261d8f3c4a859eba66ef31dab26982d2"},
{file = "pillow_heif-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc76e1c27e80e8799ff476a2a768d65eef7d35db804d2386f8f50c8be47ab4e7"}, {file = "pillow_heif-1.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f3b0df4a03f9c7f150d801f3644961df5af0739503d6fc5d3e0aeb540d16c3d"},
{file = "pillow_heif-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:061ee478b84899c8491e3370a5f5722952ce6644a64f07c7c82df00cad9324ab"}, {file = "pillow_heif-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44fcd3a171337788bf672882484725f124143d2f290cfdbf029c22c113a15c79"},
{file = "pillow_heif-1.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2aa751d305fec59ff6ee86d23309bd06be0166e0b8cb9e1beb3d7498f309ccbf"}, {file = "pillow_heif-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f07f28e99ae74dffca936e24d8881f3e7e572233cf1f7bc16fe42fb08a795be"},
{file = "pillow_heif-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e541afa24d19030d0f6582374ed3dd9edefe022bc23ae4dfd0f3c09ab7b839d4"}, {file = "pillow_heif-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7a6de39cfba4037479aa5deb65a6bb0b27da0a11b95f740202f03b578ee8932f"},
{file = "pillow_heif-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:1b169dd41eed440eb26325d6daa85ede96ca02666966d898e5dcd045dd6ab37b"}, {file = "pillow_heif-1.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:514c856230995dc2f918fb12d83906885d42829e911868e23035e2d916c4c7c5"},
{file = "pillow_heif-1.0.0-pp310-pypy310_pp73-macosx_13_0_x86_64.whl", hash = "sha256:c63517df8df208e9f7d54a6160201e9eb437d39e658c5267037213710c071631"}, {file = "pillow_heif-1.1.0-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:cc72e6311d236e44f0faca82f91e15ad62bc5b028bae79e41e247fcfa1b32c75"},
{file = "pillow_heif-1.0.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl", hash = "sha256:97b96897c92f1fcc99ee8b76a1f82fe48b61d03af0b4ce2b3913f49c2c0a74f1"}, {file = "pillow_heif-1.1.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:5425019c7920f5c9a63eb0344487ade8d30449742e13bc176bb723a3dcd0fb5a"},
{file = "pillow_heif-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9b71197918a02b6e56ff2f087573de77da3057152ad29677f7625345e151b85"}, {file = "pillow_heif-1.1.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4bfd35a0faa784b9caf772a7dd745ce23117174bcb65f8a46e926c57962780"},
{file = "pillow_heif-1.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83355656529029e048ed872d9d8ccae07f4f77625629041207d47b7573d26fbf"}, {file = "pillow_heif-1.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:16afdfe07593780d2589a0e2884c86ef670509493d069db7b4ea931463742d72"},
{file = "pillow_heif-1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:431cf83fc16f6760995da83563379233fb32b355309d08c4afabb53fdded5417"}, {file = "pillow_heif-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4365157c0540d7f63f639c384c675d7d341ea0f8034a4452bde4a03894748e97"},
{file = "pillow_heif-1.0.0-pp311-pypy311_pp73-macosx_13_0_x86_64.whl", hash = "sha256:6df834a4fe4f5cb0c2641996f323ac0354a2c1133aee494e649848bbeb093bbb"}, {file = "pillow_heif-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:21d451e6f8d0573e080339c9c5fd23cfa41f3d190475d52339304113b4f8c7b3"},
{file = "pillow_heif-1.0.0-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:f9c17066adc84820d465ce51ce0e8448e1074886ff765b6c07b81802eba0a0dd"}, {file = "pillow_heif-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:ee8f8ce845d0bdbc4bf5a6c8906a3b765ca68138f62b0776ece35be8779b675a"},
{file = "pillow_heif-1.0.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10eb674f94f8a7f449c2a0b32530fa34bd6c78a6717be8a0068e591c73b6fb"}, {file = "pillow_heif-1.1.0-pp310-pypy310_pp73-macosx_13_0_x86_64.whl", hash = "sha256:03bd9f78e51f49f93e3d4f2e9f13f14ad5bf9464c260df3c7254b375f1edbf56"},
{file = "pillow_heif-1.0.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62c6db1706367d6cf7fb04ad6074ab88f3863dde73cc14feeddb7c6a396d0c88"}, {file = "pillow_heif-1.1.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl", hash = "sha256:b5cb6c448475bdbe9f25b505b949cde4fbafc85fbd9f1b787113b940da1a503c"},
{file = "pillow_heif-1.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2c6486b9026d776e0dea264db3aa2f9aa6304aa1335f9a96f9b32aca1ce16cbc"}, {file = "pillow_heif-1.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a68219cd5f75944aaa1692216baf1c233d12037970b127a083885d084526e6b9"},
{file = "pillow_heif-1.0.0.tar.gz", hash = "sha256:0df7a1fb29bd55bc77fd286195eeb02604e356a5da3d5e8786129b91263b99e2"}, {file = "pillow_heif-1.1.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9cbad23bbf76b23d70b2e973b3e9ae9b30a750a98dc8b0f6b05393cce417571"},
{file = "pillow_heif-1.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aed1f9ce8c495370875d082134408a29a10091b23c6476c382e440453c16c104"},
{file = "pillow_heif-1.1.0-pp311-pypy311_pp73-macosx_13_0_x86_64.whl", hash = "sha256:0b921622f897bc5491bbc577304355740b16a15df29e67db664ca21a272d0c8f"},
{file = "pillow_heif-1.1.0-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:8e7641593fd2c495c1cf357d8820a97ac44dced0fefd387854a2332086ec61f1"},
{file = "pillow_heif-1.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30bff3762d6d1ae592f611828451fcf6093df4d646bbefc8969930233110d67c"},
{file = "pillow_heif-1.1.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7498acca23f05c7ecc50feda5cf5d08405f30af316d2bad2be6f96ef319d0bd9"},
{file = "pillow_heif-1.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51ea5a49f5b1b83723cb85507df69c32d6e09c0bc17381368469206b1190f25"},
{file = "pillow_heif-1.1.0.tar.gz", hash = "sha256:6c0c5f81a780185bbddc56e0d5537c53aa6cb5fb6018f5a60534a47c53f5455d"},
] ]
[package.dependencies] [package.dependencies]
@ -3280,30 +3287,30 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.12.7" version = "0.12.8"
description = "An extremely fast Python linter and code formatter, written in Rust." description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "ruff-0.12.7-py3-none-linux_armv6l.whl", hash = "sha256:76e4f31529899b8c434c3c1dede98c4483b89590e15fb49f2d46183801565303"}, {file = "ruff-0.12.8-py3-none-linux_armv6l.whl", hash = "sha256:63cb5a5e933fc913e5823a0dfdc3c99add73f52d139d6cd5cc8639d0e0465513"},
{file = "ruff-0.12.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:789b7a03e72507c54fb3ba6209e4bb36517b90f1a3569ea17084e3fd295500fb"}, {file = "ruff-0.12.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9a9bbe28f9f551accf84a24c366c1aa8774d6748438b47174f8e8565ab9dedbc"},
{file = "ruff-0.12.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2e1c2a3b8626339bb6369116e7030a4cf194ea48f49b64bb505732a7fce4f4e3"}, {file = "ruff-0.12.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2fae54e752a3150f7ee0e09bce2e133caf10ce9d971510a9b925392dc98d2fec"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32dec41817623d388e645612ec70d5757a6d9c035f3744a52c7b195a57e03860"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0acbcf01206df963d9331b5838fb31f3b44fa979ee7fa368b9b9057d89f4a53"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47ef751f722053a5df5fa48d412dbb54d41ab9b17875c6840a58ec63ff0c247c"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae3e7504666ad4c62f9ac8eedb52a93f9ebdeb34742b8b71cd3cccd24912719f"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a828a5fc25a3efd3e1ff7b241fd392686c9386f20e5ac90aa9234a5faa12c423"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb82efb5d35d07497813a1c5647867390a7d83304562607f3579602fa3d7d46f"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5726f59b171111fa6a69d82aef48f00b56598b03a22f0f4170664ff4d8298efb"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dbea798fc0065ad0b84a2947b0aff4233f0cb30f226f00a2c5850ca4393de609"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74e6f5c04c4dd4aba223f4fe6e7104f79e0eebf7d307e4f9b18c18362124bccd"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:49ebcaccc2bdad86fd51b7864e3d808aad404aab8df33d469b6e65584656263a"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d0bfe4e77fba61bf2ccadf8cf005d6133e3ce08793bbe870dd1c734f2699a3e"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ac9c570634b98c71c88cb17badd90f13fc076a472ba6ef1d113d8ed3df109fb"},
{file = "ruff-0.12.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06bfb01e1623bf7f59ea749a841da56f8f653d641bfd046edee32ede7ff6c606"}, {file = "ruff-0.12.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:560e0cd641e45591a3e42cb50ef61ce07162b9c233786663fdce2d8557d99818"},
{file = "ruff-0.12.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e41df94a957d50083fd09b916d6e89e497246698c3f3d5c681c8b3e7b9bb4ac8"}, {file = "ruff-0.12.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:71c83121512e7743fba5a8848c261dcc454cafb3ef2934a43f1b7a4eb5a447ea"},
{file = "ruff-0.12.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4000623300563c709458d0ce170c3d0d788c23a058912f28bbadc6f905d67afa"}, {file = "ruff-0.12.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:de4429ef2ba091ecddedd300f4c3f24bca875d3d8b23340728c3cb0da81072c3"},
{file = "ruff-0.12.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:69ffe0e5f9b2cf2b8e289a3f8945b402a1b19eff24ec389f45f23c42a3dd6fb5"}, {file = "ruff-0.12.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a2cab5f60d5b65b50fba39a8950c8746df1627d54ba1197f970763917184b161"},
{file = "ruff-0.12.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a07a5c8ffa2611a52732bdc67bf88e243abd84fe2d7f6daef3826b59abbfeda4"}, {file = "ruff-0.12.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:45c32487e14f60b88aad6be9fd5da5093dbefb0e3e1224131cb1d441d7cb7d46"},
{file = "ruff-0.12.7-py3-none-win32.whl", hash = "sha256:c928f1b2ec59fb77dfdf70e0419408898b63998789cc98197e15f560b9e77f77"}, {file = "ruff-0.12.8-py3-none-win32.whl", hash = "sha256:daf3475060a617fd5bc80638aeaf2f5937f10af3ec44464e280a9d2218e720d3"},
{file = "ruff-0.12.7-py3-none-win_amd64.whl", hash = "sha256:9c18f3d707ee9edf89da76131956aba1270c6348bfee8f6c647de841eac7194f"}, {file = "ruff-0.12.8-py3-none-win_amd64.whl", hash = "sha256:7209531f1a1fcfbe8e46bcd7ab30e2f43604d8ba1c49029bb420b103d0b5f76e"},
{file = "ruff-0.12.7-py3-none-win_arm64.whl", hash = "sha256:dfce05101dbd11833a0776716d5d1578641b7fddb537fe7fa956ab85d1769b69"}, {file = "ruff-0.12.8-py3-none-win_arm64.whl", hash = "sha256:c90e1a334683ce41b0e7a04f41790c429bf5073b62c1ae701c9dc5b3d14f0749"},
{file = "ruff-0.12.7.tar.gz", hash = "sha256:1fc3193f238bc2d7968772c82831a4ff69252f673be371fb49663f0068b7ec71"}, {file = "ruff-0.12.8.tar.gz", hash = "sha256:4cb3a45525176e1009b2b64126acf5f9444ea59066262791febf55e40493a033"},
] ]
[[package]] [[package]]