[project] name = "materia-server" version = "0.1.1" description = "Materia is a simple and fast cloud storage" 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" license = {text = "MIT"} [project.urls] Homepage = "https://materia.elnafo.ru" Repository = "https://github.com/L-Nafaryus/materia" Documentation = "https://materia.elnafo.ru/docs" [project.optional-dependencies] docs = [ ] frontend = [ #"materia-frontend>=0.1.1", ] all = [ #"materia[frontend]", ] [build-system] requires = ["pdm-backend"] build-backend = "pdm.backend" [project.scripts] materia = "materia_server.app.cli:cli" [tool.pyright] reportGeneralTypeIssues = false [tool.pytest.ini_options] pythonpath = ["."] testpaths = ["tests"] [tool.pdm] distribution = true [tool.pdm.dev-dependencies] dev = [ "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", ] [tool.pdm.build] package-dir = "src" includes = ["src/materia_server"] [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" test.cmd = "pytest" coverage.cmd = "pytest --cov=src/materia_server" [tool.pdm.resolution] respect-source-order = true [[tool.pdm.source]] name = "pypi" url = "https://pypi.org/simple" [[tool.pdm.source]] name = "elnafo-vcs" url = "https://vcs.elnafo.ru/api/packages/L-Nafaryus/pypi" verify_ssl = true