[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "ihatemoney" version = "6.2.0.dev0" requires-python = ">=3.8" description = "A simple shared budget manager web application." readme = "README.md" license = {file = "LICENSE"} authors = [ {"name" = "Alexis Métaireau & contributors", email = "alexis@notmyidea.org"}, ] keywords = ["web", "budget"] classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", ] dependencies = [ "blinker>=1.4,<2", "cachetools>=4.1,<5", "debts>=0.5,<1", "email_validator>=1.0,<3", "Flask>=2,<4", "Flask-Babel>=1.0,<4", "Flask-Cors>=3.0.8,<4", "Flask-Limiter>=2.6,<3", "Flask-Mail>=0.9.1,<1", "Flask-Migrate>=2.5.3,<5", # Not following semantic versioning (e.g. https://github.com/miguelgrinberg/flask-migrate/commit/1af28ba273de6c88544623b8dc02dd539340294b) "Flask-RESTful>=0.3.9,<1", "Flask-SQLAlchemy>=2.4,<3", "Flask-Talisman>=0.8,<2", "Flask-WTF>=0.14.3,<2", "itsdangerous>=2,<3", "Jinja2>=3,<4", "python-dateutil", "qrcode>=7.1,<8", "requests>=2.25,<3", "SQLAlchemy>=1.3.0,<1.5", "SQLAlchemy-Continuum>=1.3.12,<2", # New 1.4 changes API, see #728 "Werkzeug>=2,<3", "WTForms>=2.3.3,<3.3",] [project.optional-dependencies] database = [ # Python 3.11 support starts in 2.9.2 "psycopg2-binary>=2.9.2,<2.9.9", "PyMySQL>=0.9,<1.2", ] dev = [ "ruff==0.6.8", "flake8==5.0.4", "isort==5.11.5", "vermin==1.5.2", "pytest>=6.2.5", "pytest-flask>=1.2.0", "zest.releaser>=6.20.1", ] doc = [ "Sphinx>=7.0.1,<9", "docutils==0.20.1", "myst-parser>=2,<3", ] [project.urls] "Source Code" = "https://github.com/spiral-project/ihatemoney" "Main instance" = "https://ihatemoney.org/" "Mobile app" = "https://ihatemoney.org/mobile" "Documentation" = "https://ihatemoney.readthedocs.io/en/latest/" [project.scripts] ihatemoney = "ihatemoney.manage:cli" [tool.hatch.build.hooks.custom] dependencies = [ # Babel is needed to compile translations catalogs at package build time "Babel>=2.13.1", # Babel 2.14 does not directly depend on setuptools # https://github.com/python-babel/babel/blob/40e60a1f6cf178d9f57fcc14f157ea1b2ab77361/CHANGES.rst?plain=1#L22-L24 # and neither python 3.12 due to PEP 632 # https://peps.python.org/pep-0632/ "setuptools; python_version>='3.12'", ] [tool.hatch.build] artifacts = ["ihatemoney/translations/**/*.mo"] include = [ "ihatemoney/", "LICENSE", "CONTRIBUTORS", "CHANGELOG.md", "README.md", "SECURITY.md", ] [tool.ruff] exclude = ["ihatemoney/migrations"]