Merge branch 'enhancement/switch-GH-linter' into enhancement/3dsmax-use-custom-modifier-attributes

This commit is contained in:
Ondrej Samohel 2023-05-04 17:04:41 +02:00
commit 66ca5435bf
No known key found for this signature in database
GPG key ID: 02376E18990A97C6
7 changed files with 422 additions and 10 deletions

View file

@ -35,6 +35,7 @@ body:
label: Version
description: What version are you running? Look to OpenPype Tray
options:
- 3.15.6
- 3.15.6-nightly.3
- 3.15.6-nightly.2
- 3.15.6-nightly.1
@ -134,7 +135,6 @@ body:
- 3.14.1-nightly.1
- 3.14.0
- 3.14.0-nightly.1
- 3.13.1-nightly.3
validations:
required: true
- type: dropdown

View file

@ -10,3 +10,12 @@ repos:
- id: check-added-large-files
- id: no-commit-to-branch
args: [ '--pattern', '^(?!((release|enhancement|feature|bugfix|documentation|tests|local|chore)\/[a-zA-Z0-9\-_]+)$).*' ]
- repo: local
hooks:
- id: flake8
name: flake8
description: WPS enforced flake8
entry: flake8
args: ["--config=setup.cfg"]
language: python
types: [python]

View file

@ -1,6 +1,254 @@
# Changelog
## [3.15.6](https://github.com/ynput/OpenPype/tree/3.15.6)
[Full Changelog](https://github.com/ynput/OpenPype/compare/3.15.5...3.15.6)
### **🆕 New features**
<details>
<summary>Substance Painter Integration <a href="https://github.com/ynput/OpenPype/pull/4283">#4283</a></summary>
<strong>This implements a part of #4205 by implementing a Substance Painter integration
</strong>Status:
- [x] Implement Host
- [x] start substance with last workfile using `AddLastWorkfileToLaunchArgs` prelaunch hook
- [x] Implement Qt tools
- [x] Implement loaders
- [x] Implemented a Set project mesh loader (this is relatively special case because a Project will always have exactly one mesh - a Substance Painter project cannot exist without a mesh).
- [x] Implement project open callback
- [x] On project open it notifies the user if the loaded model is outdated
- [x] Implement publishing logic
- [x] Workfile publishing
- [x] Export Texture Sets
- [x] Support OCIO using #4195 (draft brach is set up - see comment)
- [ ] Likely needs more testing on the OCIO front
- [x] Validate all outputs of the Export template are exported/generated
- [x] Allow validation to be optional **(issue: there's no API method to detect what maps will be exported without doing an actual export to disk)**
- [x] Support extracting/integration if not all outputs are generated
- [x] Support multiple materials/texture sets per instance
- [ ] Add validator that can enforce only a single texture set output if studio prefers that.
- [ ] Implement Export File Format (extensions) override in Creator
- [ ] Add settings so Admin can choose which extensions are available.
___
</details>
<details>
<summary>Data Exchange: Geometry in 3dsMax <a href="https://github.com/ynput/OpenPype/pull/4555">#4555</a></summary>
<strong>Introduces and updates a creator, extractors and loaders for model family
</strong>Introduces new creator, extractors and loaders for model family while adding model families into the existing max scene loader and extractor
- [x] creators
- [x] adding model family into max scene loader and extractor
- [x] fbx loader
- [x] fbx extractor
- [x] usd loader
- [x] usd extractor
- [x] validator for model family
- [x] obj loader(update function)
- [x] fix the update function of the loader as #4675
- [x] Add documentation
___
</details>
<details>
<summary>AfterEffects: add review flag to each instance <a href="https://github.com/ynput/OpenPype/pull/4884">#4884</a></summary>
Adds `mark_for_review` flag to the Creator to allow artists to disable review if necessary.Exposed this flag in Settings, by default set to True (eg. same behavior as previously).
___
</details>
### **🚀 Enhancements**
<details>
<summary>Houdini: Fix Validate Output Node (VDB) <a href="https://github.com/ynput/OpenPype/pull/4819">#4819</a></summary>
- Removes plug-in that was a duplicate of this plug-in.
- Optimize logging of many prims slightly
- Fix error reporting like https://github.com/ynput/OpenPype/pull/4818 did
___
</details>
<details>
<summary>Houdini: Add null node as output indicator when using TAB search <a href="https://github.com/ynput/OpenPype/pull/4834">#4834</a></summary>
___
</details>
<details>
<summary>Houdini: Don't error in collect review if camera is not set correctly <a href="https://github.com/ynput/OpenPype/pull/4874">#4874</a></summary>
Do not raise an error in collector when invalid path is set as camera path. Allow camera path to not be set correctly in review instance until validation so it's nicely shown in a validation report.
___
</details>
<details>
<summary>Project packager: Backup and restore can store only database <a href="https://github.com/ynput/OpenPype/pull/4879">#4879</a></summary>
Pack project functionality have option to zip only project database without project files. Unpack project can skip project copy if the folder is not found.Added helper functions to `openpype.client.mongo` that can be also used for tests as replacement of mongo dump.
___
</details>
<details>
<summary>Houdini: ExtractOpenGL for Review instance not optional <a href="https://github.com/ynput/OpenPype/pull/4881">#4881</a></summary>
Don't make ExtractOpenGL optional for review instance optional.
___
</details>
<details>
<summary>Publisher: Small style changes <a href="https://github.com/ynput/OpenPype/pull/4894">#4894</a></summary>
Small changes in styles and form of publisher UI.
___
</details>
<details>
<summary>Houdini: Workfile icon in new publisher <a href="https://github.com/ynput/OpenPype/pull/4898">#4898</a></summary>
Fix icon for the workfile instance in new publisher
___
</details>
<details>
<summary>Fusion: Simplify creator icons code <a href="https://github.com/ynput/OpenPype/pull/4899">#4899</a></summary>
Simplify code for setting the icons for the Fusion creators
___
</details>
<details>
<summary>Enhancement: Fix PySide 6.5 support for loader <a href="https://github.com/ynput/OpenPype/pull/4900">#4900</a></summary>
Fixes PySide 6.5 support in Loader.
___
</details>
### **🐛 Bug fixes**
<details>
<summary>Maya: Validate Attributes <a href="https://github.com/ynput/OpenPype/pull/4917">#4917</a></summary>
This plugin was broken due to bad fetching of data and wrong repair action.
___
</details>
<details>
<summary>Fix: Locally copied version of last published workfile is not incremented <a href="https://github.com/ynput/OpenPype/pull/4722">#4722</a></summary>
### Fix 1
When copied, the local workfile version keeps the published version number, when it must be +1 to follow OP's naming convention.
### Fix 2
Local workfile version's name is built from anatomy. This avoids to get workfiles with their publish template naming.
### Fix 3
In the case a subset has at least two tasks with published workfiles, for example `Modeling` and `Rigging`, launching `Rigging` was getting the first one with the `next` and trying to find representations, therefore `workfileModeling` and trying to match the current `task_name` (`Rigging`) with the `representation["context"]["task"]["name"]` of a Modeling representation, which was ending up to a `workfile_representation` to `None`, and exiting the process.
Trying to find the `task_name` in the `subset['name']` fixes it.
### Fix 4
Fetch input dependencies of workfile.
Replacing https://github.com/ynput/OpenPype/pull/4102 for changes to bring this home.
___
</details>
<details>
<summary>Maya: soft-fail when pan/zoom locked on camera when playblasting <a href="https://github.com/ynput/OpenPype/pull/4929">#4929</a></summary>
When pan/zoom enabled attribute on camera is locked, playblasting with pan/zoom fails because it is trying to restore it. This is fixing it by skipping over with warning.
___
</details>
### **Merged pull requests**
<details>
<summary>Maya Load References - Add Display Handle Setting <a href="https://github.com/ynput/OpenPype/pull/4904">#4904</a></summary>
When we load a reference in Maya using OpenPype loader, display handle is checked by default and prevent us to select easily the object in the viewport. I understand that some productions like to keep this option, so I propose to add display handle to the reference loader settings.
___
</details>
<details>
<summary>Photoshop: add autocreators for review and flat image <a href="https://github.com/ynput/OpenPype/pull/4871">#4871</a></summary>
Review and flatten image (produced when no instance of `image` family was created) were created somehow magically. This PRintroduces two new auto creators which allow artists to disable review or flatten image.For all `image` instances `Review` flag was added to provide functionality to create separate review per `image` instance. Previously was possible only to have separate instance of `review` family.Review is not enabled on `image` family by default. (Eg. follows original behavior)Review auto creator is enabled by default as it was before.Flatten image creator must be set in Settings in `project_settings/photoshop/create/AutoImageCreator`.
___
</details>
## [3.15.5](https://github.com/ynput/OpenPype/tree/3.15.5)

View file

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring Pype version."""
__version__ = "3.15.6-nightly.3"
__version__ = "3.15.6"

24
poetry.lock generated
View file

@ -1,4 +1,4 @@
# This file is automatically @generated by Poetry and should not be changed by hand.
# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand.
[[package]]
name = "acre"
@ -1456,11 +1456,13 @@ python-versions = ">=3.6"
files = [
{file = "lief-0.12.3-cp310-cp310-macosx_10_14_arm64.whl", hash = "sha256:66724f337e6a36cea1a9380f13b59923f276c49ca837becae2e7be93a2e245d9"},
{file = "lief-0.12.3-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:6d18aafa2028587c98f6d4387bec94346e92f2b5a8a5002f70b1cf35b1c045cc"},
{file = "lief-0.12.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d4f69d125caaa8d5ddb574f29cc83101e165ebea1a9f18ad042eb3544081a797"},
{file = "lief-0.12.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c078d6230279ffd3bca717c79664fb8368666f610b577deb24b374607936e9c1"},
{file = "lief-0.12.3-cp310-cp310-win32.whl", hash = "sha256:e3a6af926532d0aac9e7501946134513d63217bacba666e6f7f5a0b7e15ba236"},
{file = "lief-0.12.3-cp310-cp310-win_amd64.whl", hash = "sha256:0750b72e3aa161e1fb0e2e7f571121ae05d2428aafd742ff05a7656ad2288447"},
{file = "lief-0.12.3-cp311-cp311-macosx_10_14_arm64.whl", hash = "sha256:b5c123cb99a7879d754c059e299198b34e7e30e3b64cf22e8962013db0099f47"},
{file = "lief-0.12.3-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:8bc58fa26a830df6178e36f112cb2bbdd65deff593f066d2d51434ff78386ba5"},
{file = "lief-0.12.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74ac6143ac6ccd813c9b068d9c5f1f9d55c8813c8b407387eb57de01c3db2d74"},
{file = "lief-0.12.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04eb6b70d646fb5bd6183575928ee23715550f161f2832cbcd8c6ff2071fb408"},
{file = "lief-0.12.3-cp311-cp311-win32.whl", hash = "sha256:7e2d0a53c403769b04adcf8df92e83c5e25f9103a052aa7f17b0a9cf057735fb"},
{file = "lief-0.12.3-cp311-cp311-win_amd64.whl", hash = "sha256:7f6395c12ee1bc4a5162f567cba96d0c72dfb660e7902e84d4f3029daf14fe33"},
@ -1480,6 +1482,7 @@ files = [
{file = "lief-0.12.3-cp38-cp38-win_amd64.whl", hash = "sha256:b00667257b43e93d94166c959055b6147d46d302598f3ee55c194b40414c89cc"},
{file = "lief-0.12.3-cp39-cp39-macosx_10_14_arm64.whl", hash = "sha256:e6a1b5b389090d524621c2455795e1262f62dc9381bedd96f0cd72b878c4066d"},
{file = "lief-0.12.3-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ae773196df814202c0c51056163a1478941b299512b09660a3c37be3c7fac81e"},
{file = "lief-0.12.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:66ddf88917ec7b00752687c476bb2771dc8ec19bd7e4c0dcff1f8ef774cad4e9"},
{file = "lief-0.12.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:4a47f410032c63ac3be051d963d0337d6b47f0e94bfe8e946ab4b6c428f4d0f8"},
{file = "lief-0.12.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbd11367c2259bd1131a6c8755dcde33314324de5ea029227bfbc7d3755871e6"},
{file = "lief-0.12.3-cp39-cp39-win32.whl", hash = "sha256:2ce53e311918c3e5b54c815ef420a747208d2a88200c41cd476f3dd1eb876bcf"},
@ -2352,7 +2355,7 @@ files = [
cffi = ">=1.4.1"
[package.extras]
docs = ["sphinx (>=1.6.5)", "sphinx_rtd_theme"]
docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"]
[[package]]
@ -3245,6 +3248,21 @@ files = [
[package.dependencies]
six = "*"
[[package]]
name = "wemake-python-styleguide"
version = "0.0.1"
description = "Opinionated styleguide that we use in wemake.services projects"
category = "dev"
optional = false
python-versions = "*"
files = [
{file = "wemake-python-styleguide-0.0.1.tar.gz", hash = "sha256:e1f47a2be6aa79ca8a1cfbbbffdd67bf4df32b76306f4c3dd2a620a2af78e671"},
{file = "wemake_python_styleguide-0.0.1-py2.py3-none-any.whl", hash = "sha256:505a19d82f9c4f450c6f06bb8c74d86c99cabcc4d5e6d8ea70e90b13b049f34f"},
]
[package.dependencies]
flake8 = "*"
[[package]]
name = "wheel"
version = "0.38.4"
@ -3462,4 +3480,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools"
[metadata]
lock-version = "2.0"
python-versions = ">=3.9.1,<3.10"
content-hash = "02daca205796a0f29a0d9f50707544e6804f32027eba493cd2aa7f175a00dcea"
content-hash = "c566a959134559e2fccf9b17fc820956207c9d36a58195f48990b986114d7108"

View file

@ -1,6 +1,6 @@
[tool.poetry]
name = "OpenPype"
version = "3.15.5" # OpenPype
version = "3.15.6" # OpenPype
description = "Open VFX and Animation pipeline with support."
authors = ["OpenPype Team <info@openpype.io>"]
license = "MIT License"
@ -94,6 +94,7 @@ wheel = "*"
enlighten = "*" # cool terminal progress bars
toml = "^0.10.2" # for parsing pyproject.toml
pre-commit = "*"
wemake-python-styleguide = "*"
[tool.poetry.urls]
"Bug Tracker" = "https://github.com/pypeclub/openpype/issues"

144
setup.cfg
View file

@ -1,7 +1,6 @@
[flake8]
# ignore = D203
ignore = BLK100, W504, W503
max-line-length = 79
strictness = short
exclude =
.git,
__pycache__,
@ -10,8 +9,145 @@ exclude =
website,
openpype/vendor,
*deadline/repository/custom/plugins
max-complexity = 30
ignore =
# line break before binary operator
W503,
# line break occurred after a binary operator
W504,
# wemake-python-styleguide warnings
# See https://wemake-python-stylegui.de/en/latest/pages/usage/violations/index.html for doc
# Found incorrect module name pattern
WPS102,
# Found wrong variable name
WPS110,
# Found too short name
WPS111,
# Found upper-case constant in a class
WPS115,
# Found module with too many imports
WPS201,
# Found too many module members
WPS202,
# Found overused expression
WPS204,
# Found too many local variables
WPS210,
# Found too many arguments
WPS211,
# Found too many return statements
WPS212,
# Found too many expressions
WPS213,
# Found too many methods
WPS214,
# Found too many await expressions
WPS217,
# Found line with high Jones Complexity
WPS221,
# Found too many `elif` branches
WPS223,
# Found string constant over-use
WPS226,
# Found too long try body length
WPS229,
# Found too many public instance attributes
WPS230,
# Found function with too much cognitive complexity
WPS231,
# Found module cognitive complexity that is too high
WPS232,
# Found too many imported names from a module
WPS235,
# Found too many raises in a function
WPS238,
# Found too deep nesting
WPS220,
# Found `f` string
WPS305,
# Found incorrect multi-line parameters
WPS317,
# Found extra indentation
WPS318,
# Found bracket in wrong position
WPS319,
# Found percent string formatting
WPS323,
# Found implicit string concatenation
WPS326,
# Found variables that are only used for `return`
WPS331,
# Found explicit string concatenation
WPS336,
# Found multiline conditions
WPS337,
# Found incorrect order of methods in a class
WPS338,
# Found line starting with a dot
WPS348,
# Found multiline loop
WPS352,
# Found incorrect unpacking target
WPS414,
# Found wrong keyword
WPS420,
# Found wrong function
WPS421,
# Found statement that has no effect
WPS428,
# Found nested function
WPS430,
# Found magic number
WPS432,
# Found protected attribute usage
WPS437,
# Found block variables overlap
WPS440,
# Found an infinite while loop
WPS457,
# Found a getter without a return value
WPS463,
# Found negated condition
WPS504,
# flake8-quotes warnings
# Remove bad quotes
Q000,
# Remove bad quotes from multiline string
Q001,
# Darglint warnings
# Incorrect indentation
DAR003,
# Excess parameter(s) in Docstring
DAR102,
# Excess exception(s) in Raises section
DAR402,
# pydocstyle warnings
# Missing docstring in __init_
D107,
# White space formatting for doc strings
D2,
# First line should end with a period
D400,
# Others
# function name
N802,
# Found backslash that is used for line breaking
N400,
E501,
S105,
RST
[isort]
profile=wemake
src_paths=isort,test
# isort configuration:
# https://github.com/timothycrosley/isort/wiki/isort-Settings
include_trailing_comma = true
use_parentheses = true
# See https://github.com/timothycrosley/isort#multi-line-output-modes
multi_line_output = 3
# Is the same as 80 in flake8:
line_length = 79
[pylint.'MESSAGES CONTROL']
disable = no-member
@ -28,4 +164,4 @@ omit = /tests
directory = ./coverage
[tool:pytest]
norecursedirs = repos/* openpype/modules/ftrack/*
norecursedirs = repos/* openpype/modules/ftrack/*