mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-30 17:53:31 -04:00 
			
		
		
		
	Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
		
			
				
	
	
		
			160 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
| [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 = "^10.0.1"
 | |
| PyYAML = "^6.0.1"
 | |
| SQLAlchemy = "^2"
 | |
| aiofiles = "^24.0.0"
 | |
| alembic = "^1.11.3"
 | |
| aniso8601 = "9.0.1"
 | |
| appdirs = "1.4.4"
 | |
| apprise = "^1.4.5"
 | |
| bcrypt = "^4.0.1"
 | |
| extruct = "^0.17.0"
 | |
| fastapi = "^0.111.0"
 | |
| httpx = "^0.27.0"
 | |
| lxml = "^5.0.0"
 | |
| orjson = "^3.8.0"
 | |
| psycopg2-binary = { version = "^2.9.1", optional = true }
 | |
| pydantic = "^2.6.1"
 | |
| pyhumps = "^3.5.3"
 | |
| python = "^3.10"
 | |
| python-dateutil = "^2.8.2"
 | |
| python-dotenv = "^1.0.0"
 | |
| python-ldap = "^3.3.1"
 | |
| python-multipart = "^0.0.9"
 | |
| python-slugify = "^8.0.0"
 | |
| recipe-scrapers = "^14.55.0"
 | |
| requests = "^2.31.0"
 | |
| tzdata = "^2023.4"
 | |
| uvicorn = { extras = ["standard"], version = "^0.30.0" }
 | |
| beautifulsoup4 = "^4.11.2"
 | |
| isodate = "^0.6.1"
 | |
| text-unidecode = "^1.3"
 | |
| rapidfuzz = "^3.2.0"
 | |
| authlib = "^1.3.0"
 | |
| html2text = "^2024.0.0"
 | |
| paho-mqtt = "^1.6.1"
 | |
| pydantic-settings = "^2.1.0"
 | |
| pillow-heif = "^0.16.0"
 | |
| pyjwt = "^2.8.0"
 | |
| openai = "^1.27.0"
 | |
| 
 | |
| [tool.poetry.group.postgres.dependencies]
 | |
| psycopg2-binary = { version = "^2.9.1" }
 | |
| 
 | |
| [tool.poetry.group.dev.dependencies]
 | |
| coverage = "^7.0"
 | |
| coveragepy-lcov = "^0.1.1"
 | |
| mkdocs-material = "^9.0.0"
 | |
| mypy = "^1.5.1"
 | |
| pre-commit = "^3.3.3"
 | |
| pydantic-to-typescript = "^1.0.7"
 | |
| pylint = "^3.0.0"
 | |
| pytest = "^8.0.0"
 | |
| pytest-asyncio = "^0.23.0"
 | |
| rich = "^13.5.2"
 | |
| ruff = "^0.5.0"
 | |
| types-PyYAML = "^6.0.4"
 | |
| types-python-dateutil = "^2.8.18"
 | |
| types-python-slugify = "^6.0.0"
 | |
| 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.vulture]
 | |
| exclude = ["**/models/**/*.py", "dir/"]
 | |
| ignore_decorators = ["@*router.*", "@app.on_event", "@field_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
 | |
| output-format = "concise"
 | |
| 
 | |
| # 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.lint]
 | |
| # 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
 | |
| ]
 | |
| 
 | |
| [tool.ruff.lint.per-file-ignores]
 | |
| "__init__.py" = ["E402", "E501"]
 | |
| "ldap_provider.py" = ["UP032"]
 | |
| 
 | |
| [tool.ruff.lint.mccabe]
 | |
| # Unlike Flake8, default to a complexity level of 10.
 | |
| max-complexity = 10
 |