[project] name = "materia" version = "0.1.1" description = "Materia is a file server" authors = [ {name = "L-Nafaryus", email = "l.nafaryus@gmail.com"}, ] dependencies = [ "fastapi<1.0.0,>=0.111.0", "uvicorn[standard]<1.0.0,>=0.29.0", "psycopg2-binary<3.0.0,>=2.9.9", "toml<1.0.0,>=0.10.2", "sqlalchemy[asyncio]<3.0.0,>=2.0.30", "asyncpg<1.0.0,>=0.29.0", "eventlet<1.0.0,>=0.36.1", "bcrypt==4.1.2", "pyjwt<3.0.0,>=2.8.0", "requests<3.0.0,>=2.31.0", "pillow<11.0.0,>=10.3.0", "sqids<1.0.0,>=0.4.1", "alembic<2.0.0,>=1.13.1", "authlib<2.0.0,>=1.3.0", "redis[hiredis]<6.0.0,>=5.0.4", "aiosmtplib<4.0.0,>=3.0.1", "emails<1.0,>=0.6", "pydantic-settings<3.0.0,>=2.2.1", "email-validator<3.0.0,>=2.1.1", "pydanclick<1.0.0,>=0.2.0", "loguru<1.0.0,>=0.7.2", "alembic-postgresql-enum<2.0.0,>=1.2.0", "gunicorn>=22.0.0", "uvicorn-worker>=0.2.0", "httpx>=0.27.0", "cryptography>=43.0.0", "python-multipart>=0.0.9", "jinja2>=3.1.4", "aiofiles>=24.1.0", "aioshutil>=1.5", "Celery>=5.4.0", "streaming-form-data>=1.16.0", ] requires-python = ">=3.12,<3.13" readme = "README.md" license = {text = "MIT"} [build-system] requires = ["pdm-backend"] build-backend = "pdm.backend" [project.scripts] materia = "materia.app.cli:cli" [tool.pyright] reportGeneralTypeIssues = false [tool.pytest.ini_options] pythonpath = ["."] testpaths = ["tests"] [tool.pdm] distribution = true [tool.pdm.dev-dependencies] dev = [ "-e file:///${PROJECT_ROOT}/workspaces/frontend", "black<24.0.0,>=23.3.0", "pytest<8.0.0,>=7.3.2", "pyflakes<4.0.0,>=3.0.1", "pyright<2.0.0,>=1.1.314", "pytest-asyncio>=0.23.7", "asgi-lifespan>=2.1.0", "pytest-cov>=5.0.0", "mkdocs-material>=9.5.34", "mkdocstrings-python>=1.10.9", "griffe-typingdoc>=0.2.6", ] [tool.pdm.build] includes = ["src/materia"] [tool.pdm.scripts] start.cmd = "python ./src/materia/main.py {args:start --app-mode development --log-level debug}" setup.cmd = "psql -U postgres -h 127.0.0.1 -p 54320 -d postgres -c 'create role materia login;' -c 'create database materia owner materia;'" teardown.cmd = "psql -U postgres -h 127.0.0.1 -p 54320 -d postgres -c 'drop database materia;' -c 'drop role materia;'" rev.cmd = "alembic revision {args:--autogenerate}" upgrade.cmd = "alembic upgrade {args:head}" downgrade.cmd = "alembic downgrade {args:base}" remove-revs.shell = "rm -v ./src/materia/models/migrations/versions/*.py"