mealie/pyproject.toml

153 lines
3 KiB
TOML
Raw Normal View History

[tool.poetry]
authors = ["Hayden <hay-kot@pm.me>"]
description = "A Recipe Manager"
license = "AGPL"
name = "mealie"
version = "1.0.0b"
[tool.poetry.scripts]
start = "mealie.app:main"
[tool.poetry.dependencies]
Jinja2 = "^3.1.2"
Pillow = "^9.2.0"
PyYAML = "^5.3.1"
SQLAlchemy = "^1.4.29"
aiofiles = "0.8.0"
alembic = "^1.7.5"
aniso8601 = "7.0.0"
appdirs = "1.4.4"
apprise = "^1.2.0"
bcrypt = "^4.0.1"
extruct = "^0.13.0"
fastapi = "^0.85.1"
gunicorn = "^20.1.0"
lxml = "^4.7.1"
orjson = "^3.8.0"
passlib = "^1.7.4"
psycopg2-binary = {version = "^2.9.1", optional = true}
pydantic = "^1.10.2"
pyhumps = "^3.5.3"
feat (WIP): bring png OCR scanning support (#1670) * Add pytesseract * Add simple ocr endpoint replace extension argument * feat/ocr-editor gui * fix frontend linting issues * Add service unit tests * Add split text modes & single ingredient/instruction editing * make split mode really reactive * Remove default step and ingredient * make the linter haappy * Accept only image uploads * Add automatic recipe title suggestion * Correct regex * fix incorrect array.map method usage * make the linter happy again * Swap route to use asset name * Rearange buttons * fix test data * feat: Allow making image the recipe image * Add translation * Make the linter happy * Restrict function setPropertyValueByPath generic * Restrict template literal type * Add a more friendly icon to creation page * update poetry lock file * Correct sloppy ocr classes * Make MyPy happy * Rewrite safer tests * Add tesseract to backend test CI container dependencies * Make canvas element a component global * Remove unwanted spaces in selected text * Add way to know if recipe was created with ocr * Access to ocr-editor for ocr recipes * Update Alembic revision * Make the frontend build * Fix scrolling offset bug * Allow creation of recipes with custom settings * Fix rebasing mistakes * Add format_tsv_output test * Exclude the tests data directory only * Enforce camelCase for frontend functions * Remove import of unused component * Fix type and class initialization * Add multi-language support * Highlight words in mount * Fix image ratio bug * Better ocr creation page * Revert awkward feature to scroll in Selection mode * Rebasing alembic migrations sux * Remove obsolete getShared function * Add function docstring * Move down ocr creation option * Make toolbar icons more generic * Show help at the bottom of the page * move ocr types to own file * Use template ref for the canvas * Use i18n.tc to get strings directly * Correct naming mistake * Move Ocr editor to own directory * Create Ocr Editor parts * Safeguard recipe properties access * Add loading frontend animation due to longer request time * minor cleanup chores Co-authored-by: Miroito <alban.vachette@gmail.com>
2022-09-25 23:00:45 +00:00
pytesseract = "^0.3.9"
python = "^3.10"
python-dateutil = "^2.8.2"
python-dotenv = "^0.15.0"
python-jose = "^3.3.0"
python-ldap = "^3.3.1"
python-multipart = "^0.0.5"
python-slugify = "^6.1.2"
recipe-scrapers = "^14.24.0"
requests = "^2.25.1"
tzdata = "^2022.7"
uvicorn = {extras = ["standard"], version = "^0.13.0"}
[tool.poetry.group.dev.dependencies]
black = "^21.12b0"
coverage = "^5.5"
Refactor/conver to controllers (#923) * add dependency injection for get_repositories * convert events api to controller * update generic typing * add abstract controllers * update test naming * migrate admin services to controllers * add additional admin route tests * remove print * add public shared dependencies * add types * fix typo * add static variables for recipe json keys * add coverage gutters config * update controller routers * add generic success response * add category/tag/tool tests * add token refresh test * add coverage utilities * covert comments to controller * add todo * add helper properties * delete old service * update test notes * add unit test for pretty_stats * remove dead code from post_webhooks * update group routes to use controllers * add additional group test coverage * abstract common permission checks * convert ingredient parser to controller * update recipe crud to use controller * remove dead-code * add class lifespan tracker for debugging * convert bulk export to controller * migrate tools router to controller * update recipe share to controller * move customer router to _base * ignore prints in flake8 * convert units and foods to new controllers * migrate user routes to controllers * centralize error handling * fix invalid ref * reorder fields * update routers to share common handling * update tests * remove prints * fix cookbooks delete * fix cookbook get * add controller for mealplanner * cover report routes to controller * remove __future__ imports * remove dead code * remove all base_http children and remove dead code
2022-01-13 22:06:52 +00:00
coveragepy-lcov = "^0.1.1"
mkdocs-material = "^8.2.3"
mypy = "^0.960"
openapi-spec-validator = "^0.4.0"
pre-commit = "^2.20.0"
pydantic-to-typescript = "^1.0.7"
pylint = "^2.6.0"
pytest = "^7.2.0"
rich = "^12.0.0"
ruff = "^0.0.200"
types-PyYAML = "^6.0.4"
types-python-dateutil = "^2.8.18"
types-python-slugify = "^5.0.3"
types-requests = "^2.27.12"
types-urllib3 = "^1.26.11"
[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core>=1.0.0"]
[tool.black]
line-length = 120
Refactor/conver to controllers (#923) * add dependency injection for get_repositories * convert events api to controller * update generic typing * add abstract controllers * update test naming * migrate admin services to controllers * add additional admin route tests * remove print * add public shared dependencies * add types * fix typo * add static variables for recipe json keys * add coverage gutters config * update controller routers * add generic success response * add category/tag/tool tests * add token refresh test * add coverage utilities * covert comments to controller * add todo * add helper properties * delete old service * update test notes * add unit test for pretty_stats * remove dead code from post_webhooks * update group routes to use controllers * add additional group test coverage * abstract common permission checks * convert ingredient parser to controller * update recipe crud to use controller * remove dead-code * add class lifespan tracker for debugging * convert bulk export to controller * migrate tools router to controller * update recipe share to controller * move customer router to _base * ignore prints in flake8 * convert units and foods to new controllers * migrate user routes to controllers * centralize error handling * fix invalid ref * reorder fields * update routers to share common handling * update tests * remove prints * fix cookbooks delete * fix cookbook get * add controller for mealplanner * cover report routes to controller * remove __future__ imports * remove dead code * remove all base_http children and remove dead code
2022-01-13 22:06:52 +00:00
target-version = ["py310"]
[tool.vulture]
exclude = ["**/models/**/*.py", "dir/"]
ignore_decorators = ["@*router.*", "@app.on_event", "@validator", "@controller"]
make_whitelist = true
min_confidence = 60
paths = ["mealie"]
sort_by_size = true
[tool.pytest.ini_options]
addopts = "-ra -q"
minversion = "6.0"
python_classes = '*Tests'
python_files = 'test_*'
python_functions = 'test_*'
testpaths = [
"tests",
]
[tool.coverage.report]
skip_empty = true
[tool.poetry.extras]
pgsql = ["psycopg2-binary"]
[tool.mypy]
follow_imports = "skip"
ignore_missing_imports = true
plugins = "pydantic.mypy"
python_version = "3.10"
strict_optional = true
[tool.ruff]
line-length = 120
format = "text"
# Enable Pyflakes `E` and `F` codes by default.
ignore = ["F403", "TID252","B008"]
select = [
"E", # pycodestyles
"F", # pyflakes
"I", # isort
"T", # flake8-print
"UP", # pyupgrade
"B", # flake8-bugbear
# "ANN", # flake8-annotations
# "C", # McCabe complexity
# "RUF", # Ruff specific
# "BLE", # blind-except
]
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".hg",
".mypy_cache",
".nox",
".pants.d",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
# Assume Python 3.10.
target-version = "py310"
[tool.ruff.per-file-ignores]
"__init__.py" = ["E402","E501"]
[tool.ruff.mccabe]
# Unlike Flake8, default to a complexity level of 10.
max-complexity = 10