diff --git a/.gitignore b/.gitignore index 166dfd9e1..53ca1bc27 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ mastercopy *.pyc !*.yml .vscode + +src/apps/ocioview/poetry.lock diff --git a/src/apps/ocioview/pyproject.toml b/src/apps/ocioview/pyproject.toml new file mode 100644 index 000000000..baf774ae7 --- /dev/null +++ b/src/apps/ocioview/pyproject.toml @@ -0,0 +1,175 @@ +[tool.poetry] +name = "ocioview" +version = "0.1.0" +description = "OpenColorIO config visual editor application" +license = "BSD-3-Clause" +authors = ["Contributors to the OpenColorIO Project"] + +[tool.poetry.dependencies] +python = ">= 3.9, < 3.12" +colour-science = {git = "https://github.com/colour-science/colour.git"} +colour-visuals = {git = "https://github.com/colour-science/colour-visuals.git"} +imageio = ">= 2, < 3" +networkx = ">= 2.7, < 3" +numpy = ">= 1.22, < 2" +opencolorio = "*" +qtawesome = "*" +pygfx = "*" +pygments = "*" +pyopengl = "*" +pyside6 = "*" +scipy = ">= 1.8, < 2" + +[tool.poetry.group.dev.dependencies] +black = "*" +blackdoc = "*" +coverage = "!= 6.3" +coveralls = "*" +flynt = "*" +invoke = "*" +jupyter = "*" +pre-commit = "*" +pyright = "*" +pytest = "*" +pytest-cov = "*" +pytest-xdist = "*" +ruff = "*" +toml = "*" +twine = "*" + +[tool.poetry.group.docs.dependencies] +pydata-sphinx-theme = "*" +restructuredtext-lint = "*" +sphinx = "*" +sphinxcontrib-bibtex = "*" + +[tool.black] +line-length = 79 +exclude = ''' +/( + \.git + | build + | dist +)/ +''' + +[tool.flynt] +line_length = 999 + +[tool.pyright] +reportMissingImports = false +reportMissingModuleSource = false +reportUnboundVariable = false +reportUnnecessaryCast = true +reportUnnecessaryTypeIgnoreComment = true +reportUnsupportedDunderAll = false +reportUnusedExpression = false + +[tool.pytest.ini_options] +addopts = "-n auto --dist=loadscope --durations=5" +filterwarnings = [ + "ignore::RuntimeWarning", + "ignore::pytest.PytestCollectionWarning", + "ignore:Implicit None on return values is deprecated:DeprecationWarning", + "ignore:Jupyter is migrating its paths:DeprecationWarning", + "ignore:the imp module is deprecated:DeprecationWarning", + "ignore:Method Nelder-Mead does not use gradient information:RuntimeWarning", + "ignore:More than 20 figures have been opened:RuntimeWarning", + "ignore:divide by zero encountered:RuntimeWarning", + "ignore:invalid value encountered in:RuntimeWarning", + "ignore:overflow encountered in:RuntimeWarning", + "ignore:Matplotlib is currently using agg:UserWarning", + "ignore:override the edgecolor or facecolor properties:UserWarning", +] + +[tool.ruff] +target-version = "py39" +line-length = 88 +select = [ + "A", # flake8-builtins + "ARG", # flake8-unused-arguments + # "ANN", # flake8-annotations + "B", # flake8-bugbear + # "BLE", # flake8-blind-except + "C4", # flake8-comprehensions + # "C90", # mccabe + # "COM", # flake8-commas + "DTZ", # flake8-datetimez + "D", # pydocstyle + "E", # pydocstyle + # "ERA", # eradicate + # "EM", # flake8-errmsg + "EXE", # flake8-executable + "F", # flake8 + # "FBT", # flake8-boolean-trap + "G", # flake8-logging-format + "I", # isort + "ICN", # flake8-import-conventions + "INP", # flake8-no-pep420 + "ISC", # flake8-implicit-str-concat + "N", # pep8-naming + # "PD", # pandas-vet + "PIE", # flake8-pie + "PGH", # pygrep-hooks + "PL", # pylint + # "PT", # flake8-pytest-style + # "PTH", # flake8-use-pathlib [Enable] + "Q", # flake8-quotes + "RET", # flake8-return + "RUF", # Ruff + "S", # flake8-bandit + "SIM", # flake8-simplify + "T10", # flake8-debugger + "T20", # flake8-print + # "TCH", # flake8-type-checking + "TID", # flake8-tidy-imports + "TRY", # tryceratops + "UP", # pyupgrade + "W", # pydocstyle + "YTT" # flake8-2020 +] +ignore = [ + "B008", + "B905", + "D104", + "D200", + "D202", + "D205", + "D301", + "D400", + "I001", + "N801", + "N802", + "N803", + "N806", + "N813", + "N815", + "N816", + "PGH003", + "PIE804", + "PLE0605", + "PLR0911", + "PLR0912", + "PLR0913", + "PLR0915", + "PLR2004", + "RET504", + "RET505", + "RET506", + "RET507", + "RET508", + "TRY003", + "TRY300", +] +typing-modules = ["colour.hints"] +fixable = ["B", "C", "E", "F", "PIE", "RUF", "SIM", "UP", "W"] + +[tool.ruff.pydocstyle] +convention = "numpy" + +[tool.ruff.per-file-ignores] +"docs/*" = ["INP"] + +[build-system] +requires = ["poetry_core>=1.0.0"] +build-backend = "poetry.core.masonry.api"