[tool.poetry] name = "spiffworkflow-backend" version = "0.0.0" description = "Spiffworkflow Backend" authors = ["Jason Lantz "] license = "MIT" readme = "README.rst" homepage = "https://github.com/sartography/spiffworkflow-backend" repository = "https://github.com/sartography/spiffworkflow-backend" documentation = "https://spiffworkflow-backend.readthedocs.io" classifiers = [ "Development Status :: 1 - Planning", ] [tool.poetry.urls] Changelog = "https://github.com/sartography/spiffworkflow-backend/releases" [tool.poetry.dependencies] python = ">=3.9,<3.12" click = "^8.0.1" flask = "2.2.2" flask-admin = "*" flask-bcrypt = "*" flask-cors = "*" flask-mail = "*" flask-marshmallow = "*" flask-migrate = "*" flask-restful = "*" werkzeug = "*" # temporarily switch off main to fix CI because poetry export doesn't capture the revision if it's not here (it ignores the lock) SpiffWorkflow = {git = "https://github.com/sartography/SpiffWorkflow", rev = "be26100bcbef8026e26312c665dae42faf476485"} # SpiffWorkflow = {develop = true, path = "../SpiffWorkflow" } sentry-sdk = "^1.10" sphinx-autoapi = "^2.0" flask-bpmn = {git = "https://github.com/sartography/flask-bpmn", rev = "main"} # flask-bpmn = {develop = true, path = "../flask-bpmn"} mysql-connector-python = "*" pytest-flask = "^1.2.0" pytest-flask-sqlalchemy = "^1.1.0" psycopg2 = "^2.9.3" typing-extensions = "^4.4.0" connexion = {extras = [ "swagger-ui",], version = "^2"} lxml = "^4.9.1" marshmallow-enum = "^1.5.1" marshmallow-sqlalchemy = "^0.28.0" PyJWT = "^2.6.0" gunicorn = "^20.1.0" APScheduler = "*" Jinja2 = "^3.1.2" RestrictedPython = "^6.0" Flask-SQLAlchemy = "^3" orjson = "^3.8.0" # type hinting stuff # these need to be in the normal (non dev-dependencies) section # because if not then poetry export won't have them and nox -s mypy --pythons 3.10 # will fail types-Werkzeug = "^1.0.9" types-PyYAML = "^6.0.12" types-Flask = "^1.1.6" types-requests = "^2.28.6" types-pytz = "^2022.1.1" # https://github.com/dropbox/sqlalchemy-stubs/pull/251 # someday get off github # sqlalchemy-stubs = "^0.4" # sqlalchemy-stubs = { git = "https://github.com/dropbox/sqlalchemy-stubs.git", rev = "master" } # sqlalchemy-stubs = {develop = true, path = "/Users/kevin/projects/github/sqlalchemy-stubs"} # for now use my fork sqlalchemy-stubs = { git = "https://github.com/burnettk/sqlalchemy-stubs.git", rev = "scoped-session-delete" } simplejson = "^3.17.6" pytz = "^2022.6" dateparser = "^1.1.2" types-dateparser = "^1.1.4.1" flask-jwt-extended = "^4.4.4" [tool.poetry.dev-dependencies] pytest = "*" coverage = {extras = ["toml"], version = "^6.1"} safety = "^2.3.1" mypy = ">=0.961" typeguard = "^2" xdoctest = {extras = ["colors"], version = "^1.0.1"} sphinx = "^5.0.2" sphinx-autobuild = ">=2021.3.14" pre-commit = "^2.20.0" flake8 = "^4.0.1" black = ">=21.10b0" flake8-bandit = "^2.1.2" # 1.7.3 broke us. https://github.com/PyCQA/bandit/issues/841 bandit = "1.7.2" flake8-bugbear = "^22.10.25" flake8-docstrings = "^1.6.0" flake8-rst-docstrings = "^0.2.7" # flask-sqlalchemy-stubs = "^0.2" pep8-naming = "^0.13.2" darglint = "^1.8.1" reorder-python-imports = "^3.9.0" pre-commit-hooks = "^4.0.1" sphinx-click = "^4.3.0" Pygments = "^2.10.0" pyupgrade = "^3.1.0" furo = ">=2021.11.12" [tool.poetry.scripts] spiffworkflow-backend = "spiffworkflow_backend.__main__:main" [tool.pytest.ini_options] # ignore deprecation warnings from various packages that we don't control filterwarnings = [ # note the use of single quote below to denote "raw" strings in TOML # kombu/utils/compat.py:82 'ignore:SelectableGroups dict interface is deprecated. Use select.', # flask_marshmallow/__init__.py:34 # marshmallow_sqlalchemy/convert.py:17 'ignore:distutils Version classes are deprecated. Use packaging.version instead.', # connexion/spec.py:50 'ignore:Passing a schema to Validator.iter_errors is deprecated and will be removed in a future release', # connexion/decorators/validation.py:16 'ignore:Accessing jsonschema.draft4_format_checker is deprecated and will be removed in a future release.', # connexion/apis/flask_api.py:236 "ignore:'_request_ctx_stack' is deprecated and will be removed in Flask 2.3", "ignore:Setting 'json_encoder' on the app or a blueprint is deprecated and will be removed in Flask 2.3", "ignore:'JSONEncoder' is deprecated and will be removed in Flask 2.3", "ignore:'app.json_encoder' is deprecated and will be removed in Flask 2.3" ] [tool.coverage.paths] source = ["src", "*/site-packages"] tests = ["tests", "*/tests"] [tool.coverage.run] branch = true source = ["spiffworkflow_backend", "tests"] [tool.coverage.report] show_missing = true fail_under = 50 [tool.mypy] strict = true disallow_any_generics = false warn_unreachable = true pretty = true show_column_numbers = true show_error_codes = true show_error_context = true plugins = "sqlmypy" # We get 'error: Module has no attribute "set_context"' for sentry-sdk without this option implicit_reexport = true # allow for subdirs to NOT require __init__.py namespace_packages = true explicit_package_bases = false [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"