2022-10-12 14:22:22 +00:00
|
|
|
[tool.poetry]
|
|
|
|
name = "spiffworkflow-backend"
|
|
|
|
version = "0.0.0"
|
|
|
|
description = "Spiffworkflow Backend"
|
2023-07-25 17:27:53 +00:00
|
|
|
authors = ["Sartography <sartography@users.noreply.github.com>"]
|
|
|
|
license = "LGPL-2.1"
|
2022-10-12 14:22:22 +00:00
|
|
|
readme = "README.rst"
|
2023-07-25 17:27:53 +00:00
|
|
|
homepage = "https://spiffworkflow.org"
|
|
|
|
repository = "https://github.com/sartography/spiff-arena"
|
|
|
|
documentation = "https://spiff-arena.readthedocs.io"
|
2022-10-12 14:22:22 +00:00
|
|
|
classifiers = [
|
2023-10-18 18:00:12 +00:00
|
|
|
"Development Status :: 4 - Beta",
|
2022-10-12 14:22:22 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[tool.poetry.urls]
|
2023-07-25 17:27:53 +00:00
|
|
|
Changelog = "https://github.com/orgs/sartography/packages?repo_name=spiff-arena"
|
2022-10-12 14:22:22 +00:00
|
|
|
|
|
|
|
[tool.poetry.dependencies]
|
2024-01-24 13:00:10 +00:00
|
|
|
python = ">=3.10,<3.13"
|
2023-06-07 00:33:48 +00:00
|
|
|
flask = "2.2.5"
|
2022-10-12 14:22:22 +00:00
|
|
|
flask-admin = "*"
|
|
|
|
flask-bcrypt = "*"
|
|
|
|
flask-cors = "*"
|
2023-05-27 22:17:51 +00:00
|
|
|
flask-jwt-extended = "^4.4.4"
|
2022-10-12 14:22:22 +00:00
|
|
|
flask-marshmallow = "*"
|
|
|
|
flask-migrate = "*"
|
|
|
|
flask-restful = "*"
|
2024-03-04 20:29:37 +00:00
|
|
|
SpiffWorkflow = {git = "https://github.com/sartography/SpiffWorkflow", rev = "main"}
|
2023-05-10 14:49:39 +00:00
|
|
|
# SpiffWorkflow = {develop = true, path = "../../spiffworkflow/" }
|
Feature/interstitial summary part 3 (#367)
* throw an error if backend gives a 500 from interstitial page w/ burnettk
* turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection
* pyl
* raise the api_error from the original and make the render_data method private
* Feature/interstitial summary (#337)
* * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram.
* Removed the Zoom and Move modules when showing the readonly
Diagram. Assured this readonly view is resized to fit the space when possible.
* Checkbox Widget no longer displays a duplicate label.
* CSS Tweaks
* All pages are limited to a max display width of 1440, with auto margins to center the main content on the page.
* "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins.
* Paragraphs, headings, blockquotes, list items are limited to a width of 640.
* Reduced margin bottom on all breadcrumbs.
* Slightly reduced the width and margin of tiles
* ordered lists and unordered lists show numbers and bullets now.
* End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page.
* Greatly reduced the lag in the interstitial page when doing a re-direct.
* run_pyl
* kill console
* wait for permissionsLoaded too since we are using ability.can
* Previous change removed the top level Messages page - this re-adds it.
* I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect".
This should cause the show/hide Instructions toggle to only show when useful.
* Minor cleanup on the process instance properties display.
* linting
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* Fix a linting error.
* minor permissions related fixes for the new ui.
* Revert "Revert "Feature/better subworkflow management (#331)""
This reverts commit 48dcde8faf00241201c515b54444fe9fb373c7f4.
* do not execute tasks from the process instance show page w/ burnettk
* pyl w/ burnettk
* Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket:
* Markdown links now open in a new window
* Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid.
* Right aligned the "process instance list link" button to it is flush right with the table underneath
* Gave a little more breathing room the content on the info/metadata in the process instance view .
* updated docker image build action to contain the appropriate version info w/ burnettk
* properly resize to the available columns depending on s/m/l
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: Dan Funk <daniel.h.funk@gmail.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-07-03 05:24:54 +00:00
|
|
|
# SpiffWorkflow = {develop = true, path = "../../SpiffWorkflow/" }
|
2024-06-04 15:51:39 +00:00
|
|
|
sentry-sdk = {extras = ['flask'], version = "^1.10"}
|
2023-05-18 22:42:40 +00:00
|
|
|
# sphinx-autoapi = "^2.0"
|
2022-10-12 14:22:22 +00:00
|
|
|
psycopg2 = "^2.9.3"
|
2024-03-29 14:56:02 +00:00
|
|
|
typing-extensions = "^4.10.0"
|
Tcoz openai assist (#1138)
* Update README.md
Some notes for people that might want to run full-on native, with detail about how Mac hijacks port 7000 and how to get around it.
* Revert "Update README.md"
This reverts commit 096887c26d591f93a836ef808c148af09767f2d2.
* README update and native code patch
Some details for user that might be running Python3, Mac, and want to run everything locally/natively.
* Implement basic tooltips
Uses MUI tooltip, as it behaves more predictably with existing styling, and enables top-level theme config.
Top-level configuration for all MUI components can be controlled via overriding the existing theme. See index.tsx. This could be done per user for customization, etc.
Enabling JSON module imports in tsconfig.json seemed to fix the error in ReactDiagramEditor
* Naive AI code editor implementation
A working starting point.
* Implement API to return if script assist should be enabled
Along with route and function, api config, etc.
* UI calls backend to see if script assist is enabled.
If it is, loads the related UI, otherwise it doesn't appear.
* Moving forward with service for message processing.
* Services scaffolded
* Open API called, prompt-engineered to get script only.
* Little cleanup work
* Enabled + process message working.
Had to find all the places permissions are enabled, etc.
* Cleanup, comments, etc.
* Env vars, styling, error cases, conditional display of script assist
Finishing touches for the most part.
REQUIRES TWO ENV VARS BE SET.
SPIFFWORKFLOW_SCRIPT_ASSIST_ENABLED=["True" | "true" | 1] (anything else is false)
SECRET_KEY_OPENAI_API=[thekey]
The are retrieved in default.py. I run the app locally, so I just set them in the terminal.
NEW INSTALL: @carbon/colors (so we consistently use carbon palette etc.)
* Fix tooltips, clean up some styling.
Finishing it off.
* Add loader and error message
Complete UX stuff
* Update useScriptAssistEnabled.tsx
Remove log
* Update script_assist_controller.py
Add this tweak to avoid TMI.
* Some reasonable changes suggested by the build process
* Comments from PR.
* Update ProcessModelEditDiagram.tsx
Should (but I don't know how to tell yet) call the change handler that wasn't firing before.
* updated the permissions setting in authorization service w/ burnettk
* precommit now passes. tests are failing w/ burnettk
* pinned SpiffWorkflow to known working version and fixed tests. we will update spiff in a later pr w/ burnettk
* made changes based on coderabbi suggestions
* updated the error handling to be more inline with how we have handled other errors and some ui tweaks
* removed pymysql package w/ burnettk
* forgot to remove pymysql from lock file w/ burnettk
---------
Co-authored-by: Tim Consolazio <tcoz@tcoz.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
2024-03-04 15:42:27 +00:00
|
|
|
openai = "^1.1.0"
|
2023-03-28 18:58:16 +00:00
|
|
|
|
2023-10-18 18:00:12 +00:00
|
|
|
spiffworkflow-connector-command = {git = "https://github.com/sartography/spiffworkflow-connector-command.git", rev = "main"}
|
|
|
|
|
2023-03-28 18:58:16 +00:00
|
|
|
# pinned to higher than 65.5.0 because of a vulnerability
|
|
|
|
# and to lower than 67 because i didn't feel like addressing
|
|
|
|
# new deprecation warnings. we don't need this library explicitly,
|
|
|
|
# but at one time it was pulled in by various libs we depend on.
|
2024-04-03 15:40:50 +00:00
|
|
|
setuptools = "^69.2.0"
|
2023-03-28 18:58:16 +00:00
|
|
|
|
2023-10-26 15:28:37 +00:00
|
|
|
# we cannot upgrade werkzeug due to connexion. See comment in .snyk file
|
2023-11-28 16:58:54 +00:00
|
|
|
werkzeug = "^2.3"
|
2022-10-12 14:22:22 +00:00
|
|
|
connexion = {extras = [ "swagger-ui",], version = "^2"}
|
2023-10-26 15:28:37 +00:00
|
|
|
|
2022-10-12 14:22:22 +00:00
|
|
|
lxml = "^4.9.1"
|
|
|
|
marshmallow-enum = "^1.5.1"
|
2022-10-21 21:28:37 +00:00
|
|
|
PyJWT = "^2.6.0"
|
2022-11-22 02:15:48 +00:00
|
|
|
APScheduler = "*"
|
2024-01-11 14:14:25 +00:00
|
|
|
Jinja2 = "^3.1.3"
|
2024-01-10 15:46:28 +00:00
|
|
|
RestrictedPython = "^7.0"
|
2022-10-12 14:22:22 +00:00
|
|
|
Flask-SQLAlchemy = "^3"
|
|
|
|
|
2024-05-23 20:12:17 +00:00
|
|
|
# 22.0.0 breaks passing in SCRIPT_NAME as a header which breaks status environments
|
|
|
|
# https://github.com/benoitc/gunicorn/issues/3200
|
|
|
|
# https://github.com/benoitc/gunicorn/issues/2650
|
|
|
|
gunicorn = "21.2.0"
|
|
|
|
|
2022-10-21 14:36:41 +00:00
|
|
|
# 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" }
|
2022-10-21 20:18:25 +00:00
|
|
|
simplejson = "^3.17.6"
|
2024-03-28 14:58:24 +00:00
|
|
|
pytz = "^2024.1"
|
2024-01-24 13:00:10 +00:00
|
|
|
dateparser = "^1.2.0"
|
2024-02-01 19:02:49 +00:00
|
|
|
cryptography = "^42.0"
|
2024-04-03 18:14:42 +00:00
|
|
|
prometheus-flask-exporter = "^0.23.0"
|
2022-10-21 14:36:41 +00:00
|
|
|
|
2023-03-28 19:56:00 +00:00
|
|
|
sqlalchemy = "^2.0.7"
|
2024-02-06 15:07:39 +00:00
|
|
|
marshmallow-sqlalchemy = "^1.0.0"
|
2022-10-12 14:22:22 +00:00
|
|
|
|
2023-07-12 14:14:49 +00:00
|
|
|
# mysqlclient lib is deemed better than the mysql-connector-python lib by sqlalchemy
|
|
|
|
# https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector
|
Tcoz openai assist (#1138)
* Update README.md
Some notes for people that might want to run full-on native, with detail about how Mac hijacks port 7000 and how to get around it.
* Revert "Update README.md"
This reverts commit 096887c26d591f93a836ef808c148af09767f2d2.
* README update and native code patch
Some details for user that might be running Python3, Mac, and want to run everything locally/natively.
* Implement basic tooltips
Uses MUI tooltip, as it behaves more predictably with existing styling, and enables top-level theme config.
Top-level configuration for all MUI components can be controlled via overriding the existing theme. See index.tsx. This could be done per user for customization, etc.
Enabling JSON module imports in tsconfig.json seemed to fix the error in ReactDiagramEditor
* Naive AI code editor implementation
A working starting point.
* Implement API to return if script assist should be enabled
Along with route and function, api config, etc.
* UI calls backend to see if script assist is enabled.
If it is, loads the related UI, otherwise it doesn't appear.
* Moving forward with service for message processing.
* Services scaffolded
* Open API called, prompt-engineered to get script only.
* Little cleanup work
* Enabled + process message working.
Had to find all the places permissions are enabled, etc.
* Cleanup, comments, etc.
* Env vars, styling, error cases, conditional display of script assist
Finishing touches for the most part.
REQUIRES TWO ENV VARS BE SET.
SPIFFWORKFLOW_SCRIPT_ASSIST_ENABLED=["True" | "true" | 1] (anything else is false)
SECRET_KEY_OPENAI_API=[thekey]
The are retrieved in default.py. I run the app locally, so I just set them in the terminal.
NEW INSTALL: @carbon/colors (so we consistently use carbon palette etc.)
* Fix tooltips, clean up some styling.
Finishing it off.
* Add loader and error message
Complete UX stuff
* Update useScriptAssistEnabled.tsx
Remove log
* Update script_assist_controller.py
Add this tweak to avoid TMI.
* Some reasonable changes suggested by the build process
* Comments from PR.
* Update ProcessModelEditDiagram.tsx
Should (but I don't know how to tell yet) call the change handler that wasn't firing before.
* updated the permissions setting in authorization service w/ burnettk
* precommit now passes. tests are failing w/ burnettk
* pinned SpiffWorkflow to known working version and fixed tests. we will update spiff in a later pr w/ burnettk
* made changes based on coderabbi suggestions
* updated the error handling to be more inline with how we have handled other errors and some ui tweaks
* removed pymysql package w/ burnettk
* forgot to remove pymysql from lock file w/ burnettk
---------
Co-authored-by: Tim Consolazio <tcoz@tcoz.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
2024-03-04 15:42:27 +00:00
|
|
|
mysqlclient = "^2.2.3"
|
2023-08-21 16:28:55 +00:00
|
|
|
flask-session = "^0.5.0"
|
|
|
|
flask-oauthlib = "^0.9.6"
|
2023-12-05 16:41:59 +00:00
|
|
|
celery = {extras = ["redis"], version = "^5.3.5"}
|
|
|
|
celery-stubs = "^0.1.3"
|
2024-01-10 13:18:34 +00:00
|
|
|
jsonschema = "^4.20.0"
|
2024-01-29 19:09:36 +00:00
|
|
|
chardet = "^5.2.0"
|
2023-07-12 14:14:49 +00:00
|
|
|
|
2023-12-20 15:18:20 +00:00
|
|
|
[tool.poetry.scripts]
|
|
|
|
spiffworkflow-backend = "spiffworkflow_backend.__main__:main"
|
|
|
|
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
2023-03-06 15:12:54 +00:00
|
|
|
pytest = "^7.1.2"
|
2024-06-01 04:10:12 +00:00
|
|
|
coverage = {extras = ["toml"], version = "^7.5"}
|
2024-04-03 15:40:50 +00:00
|
|
|
safety = "^3.1.0"
|
2022-10-12 14:22:22 +00:00
|
|
|
mypy = ">=0.961"
|
2023-11-24 18:27:46 +00:00
|
|
|
typeguard = "^4"
|
2024-02-01 21:44:12 +00:00
|
|
|
xdoctest = {extras = ["colors"], version = "^1.1.3"}
|
2022-10-12 14:22:22 +00:00
|
|
|
pre-commit = "^2.20.0"
|
2024-06-03 18:19:53 +00:00
|
|
|
ruff = "^0.4.7"
|
2022-10-12 14:22:22 +00:00
|
|
|
|
2023-07-25 17:27:53 +00:00
|
|
|
pytest-random-order = "^1.1.0"
|
|
|
|
pytest-flask = "^1.2.0"
|
|
|
|
pytest-flask-sqlalchemy = "^1.1.0"
|
2024-03-04 20:29:37 +00:00
|
|
|
|
|
|
|
# 3.4+ broke existfirst option which we use
|
|
|
|
# https://stackoverflow.com/questions/77667559/pytest-xdist-3-40-and-higher-not-honoring-exitfirst
|
|
|
|
# https://github.com/pytest-dev/pytest-xdist/issues/1034
|
|
|
|
pytest-xdist = "3.3.1"
|
2023-07-25 17:27:53 +00:00
|
|
|
|
2022-10-12 14:22:22 +00:00
|
|
|
# 1.7.3 broke us. https://github.com/PyCQA/bandit/issues/841
|
2024-03-27 15:28:34 +00:00
|
|
|
bandit = "1.7.8"
|
2022-10-12 14:22:22 +00:00
|
|
|
|
|
|
|
# flask-sqlalchemy-stubs = "^0.2"
|
|
|
|
pre-commit-hooks = "^4.0.1"
|
2024-05-27 15:02:30 +00:00
|
|
|
Pygments = "^2.18.0"
|
2022-10-12 14:22:22 +00:00
|
|
|
|
2023-08-03 15:49:30 +00:00
|
|
|
# type hinting stuff
|
|
|
|
types-dateparser = "^1.1.4.1"
|
|
|
|
types-Werkzeug = "^1.0.9"
|
|
|
|
types-PyYAML = "^6.0.12"
|
|
|
|
types-Flask = "^1.1.6"
|
2024-05-22 15:10:50 +00:00
|
|
|
types-requests = "^2.32.0"
|
2024-04-01 14:52:18 +00:00
|
|
|
types-pytz = "^2024.1.0"
|
2023-08-03 15:49:30 +00:00
|
|
|
|
2022-10-12 14:22:22 +00:00
|
|
|
[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.',
|
2024-01-10 13:18:34 +00:00
|
|
|
# connexion/json_schema.py:17
|
|
|
|
'ignore:jsonschema.exceptions.RefResolutionError is deprecated as of version 4.18.0',
|
|
|
|
'ignore:jsonschema.RefResolver is deprecated as of v4.18.0',
|
2022-10-12 14:22:22 +00:00
|
|
|
# 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",
|
2023-03-17 02:42:35 +00:00
|
|
|
"ignore:'app.json_encoder' is deprecated and will be removed in Flask 2.3",
|
|
|
|
# SpiffWorkflow/bpmn/PythonScriptEngineEnvironment.py
|
2024-01-24 13:00:10 +00:00
|
|
|
'ignore:The usage of Box has been deprecated',
|
|
|
|
# dateutil/tz/tz.py:37
|
|
|
|
'ignore:datetime\.datetime\.utcfromtimestamp\(\) is deprecated:DeprecationWarning',
|
2022-10-12 14:22:22 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[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
|
|
|
|
|
2023-05-29 15:52:35 +00:00
|
|
|
# [tool.pyright]
|
|
|
|
# Pyright: Import "flask" could not be resolved
|
|
|
|
# ultimately resolved by creating a pyrightconfig.json file with venv and venvPath
|
|
|
|
# Pyright: "hey" is not accessed
|
|
|
|
# See: https://github.com/microsoft/pyright/discussions/3929#discussioncomment-5434231
|
|
|
|
# "Those are not warnings" and cannot be turned off like this:
|
|
|
|
# reportUnusedVariable = false
|
|
|
|
# solution was https://www.reddit.com/r/neovim/comments/11k5but/comment/jbjwwtf in vim settings
|
2023-05-28 02:33:53 +00:00
|
|
|
|
2024-05-29 20:25:47 +00:00
|
|
|
|
|
|
|
# for editor support like vim
|
2023-05-26 17:07:18 +00:00
|
|
|
[tool.ruff]
|
2024-02-27 16:50:17 +00:00
|
|
|
lint.select = [
|
2023-12-06 00:43:41 +00:00
|
|
|
# "ANN", # flake8-annotations
|
|
|
|
"ASYNC", # flake8-async
|
2023-05-27 22:17:51 +00:00
|
|
|
"B", # flake8-bugbear
|
2023-12-06 00:43:41 +00:00
|
|
|
# "BLE", # flake8-blind-except
|
2023-06-08 21:26:33 +00:00
|
|
|
"C", # mccabe
|
2023-12-06 00:43:41 +00:00
|
|
|
# "D", # pydocstyle
|
2023-05-27 22:17:51 +00:00
|
|
|
"E", # pycodestyle error
|
2023-05-27 22:34:04 +00:00
|
|
|
# "ERA", # eradicate
|
2023-05-27 18:59:52 +00:00
|
|
|
"F", # pyflakes
|
2023-12-06 00:43:41 +00:00
|
|
|
# "FBT", # flake8-boolean-trap
|
2023-05-30 11:15:49 +00:00
|
|
|
"N", # pep8-naming
|
2023-05-30 23:39:15 +00:00
|
|
|
"PL", # pylint
|
2023-05-30 23:53:26 +00:00
|
|
|
"S", # flake8-bandit
|
2023-12-01 14:24:11 +00:00
|
|
|
"T", # flake8-print
|
2023-05-27 18:59:52 +00:00
|
|
|
"UP", # pyupgrade
|
2023-05-27 22:17:51 +00:00
|
|
|
"W", # pycodestyle warning
|
2023-12-06 00:43:41 +00:00
|
|
|
"I", # isort
|
|
|
|
"YTT", # flake8-2020
|
2023-05-27 00:01:08 +00:00
|
|
|
]
|
2023-05-30 23:39:15 +00:00
|
|
|
|
2024-02-27 16:50:17 +00:00
|
|
|
lint.ignore = [
|
2023-06-08 21:26:33 +00:00
|
|
|
"C901", # "complexity" category
|
2023-05-30 23:39:15 +00:00
|
|
|
"PLR", # "refactoring" category has "too many lines in method" type stuff
|
|
|
|
"PLC1901",
|
|
|
|
"PLE1205" # saw this Too many arguments for `logging` format string give a false positive once
|
|
|
|
]
|
|
|
|
|
2023-05-26 17:07:18 +00:00
|
|
|
line-length = 130
|
|
|
|
|
2023-05-27 22:17:51 +00:00
|
|
|
# target python 3.10
|
|
|
|
target-version = "py310"
|
|
|
|
|
2023-10-05 17:27:38 +00:00
|
|
|
exclude = [
|
|
|
|
"migrations"
|
|
|
|
]
|
|
|
|
|
2024-02-27 16:50:17 +00:00
|
|
|
[tool.ruff.lint.per-file-ignores]
|
2023-05-26 17:07:18 +00:00
|
|
|
"migrations/versions/*.py" = ["E501"]
|
2023-05-30 23:53:26 +00:00
|
|
|
"tests/**/*.py" = ["PLR2004", "S101"] # PLR2004 is about magic vars, S101 allows assert
|
2023-12-01 14:24:11 +00:00
|
|
|
"bin/*.py" = ["T"] # it's ok to print things in scripts
|
2023-05-26 17:07:18 +00:00
|
|
|
|
2024-02-27 16:50:17 +00:00
|
|
|
[tool.ruff.lint.isort]
|
2023-05-27 00:01:08 +00:00
|
|
|
force-single-line = true
|
|
|
|
|
2023-11-20 16:04:33 +00:00
|
|
|
# pip install fixit && fixit fix -a src
|
|
|
|
[tool.fixit]
|
|
|
|
disable = [
|
|
|
|
"fixit.rules:CompareSingletonPrimitivesByIs",
|
|
|
|
]
|
|
|
|
|
2022-10-12 14:22:22 +00:00
|
|
|
[build-system]
|
|
|
|
requires = ["poetry-core>=1.0.0"]
|
|
|
|
build-backend = "poetry.core.masonry.api"
|
2024-05-13 14:23:55 +00:00
|
|
|
|
|
|
|
[tool.safety]
|
|
|
|
# you can generate a config file for safety, but this doesn't work with safety check.
|
|
|
|
# it complains about the config file being in too new a format.
|
|
|
|
# you have to use safety scan, which requires a login.
|
|
|
|
# so in the meantime, we're ignoring an unfixable issue in ./bin/run_ci_session itself
|