WPS230 triggers for @dataclass
What's wrong
I am triggering [WPS230] Found too many public instance attributes: 25 > 6
with this:
"""Adapter module for Output screen of Render Settings."""
from dataclasses import dataclass
import c4d
from scene_packer.c4d_const_resolver import C4dConstantResolver
from scene_packer.render_settings.base_class import RenderSettings
@dataclass(order=True)
class Output(RenderSettings):
"""Adapter class for "Output" window in Render Settings."""
width: float
height: float
width_non_pixel: float
height_non_pixel: float
measurement_unit: str
lock_ratio: bool
adapt_data_rate: bool
resolution: float
resolution_unit: int
render_region_enabled: bool
render_region_left_border: int
render_region_right_border: int
render_region_top_border: int
render_region_bottom_border: int
film_aspect_ratio: float
pixel_aspect_ratio: float
frame_rate: int
frame_range: str # Manual, Current Frame, All Frames, Preview Range
frame_from: int
frame_to: int
frame_step: int
frame_fields: str # None, Even first, Odd first
frame_count: int
annotations: str
def __init__(self, doc=None, render_data=None):
"""Create a readable data representation based on supplied document of render data.
Parameters
----------
doc: c4d.documents.BaseDocument
render_data: c4d.documents.RenderData
"""
rslv = C4dConstantResolver
super().__init__(doc=doc, render_data=render_data)
rd = self.rd
self.frame_rate = rd[c4d.RDATA_FRAMERATE]
self.width = rd[c4d.RDATA_XRES]
self.height = rd[c4d.RDATA_YRES]
self.width_non_pixel = rd[c4d.RDATA_XRES_VIRTUAL]
self.height_non_pixel = rd[c4d.RDATA_YRES_VIRTUAL]
self.measurement_unit = rslv.resolve(rd[c4d.RDATA_SIZEUNIT])
self.lock_ratio = rd[c4d.RDATA_LOCKRATIO]
self.adapt_data_rate = rd[c4d.RDATA_ADAPT_DATARATE]
self.resolution = rd[c4d.RDATA_PIXELRESOLUTION]
self.resolution_unit = rd[c4d.RDATA_PIXELRESOLUTIONUNIT]
self.resolution_non_pixel = rd[c4d.RDATA_PIXELRESOLUTION_VIRTUAL]
self.render_region_enabled = rd[c4d.RDATA_RENDERREGION]
self.render_region_left_border = rd[c4d.RDATA_RENDERREGION_LEFT]
self.render_region_right_border = rd[c4d.RDATA_RENDERREGION_RIGHT]
self.render_region_top_border = rd[c4d.RDATA_RENDERREGION_TOP]
self.render_region_bottom_border = rd[c4d.RDATA_RENDERREGION_BOTTOM]
self.film_aspect_ratio = rd[c4d.RDATA_FILMASPECT]
self.pixel_aspect_ratio = rd[c4d.RDATA_PIXELASPECT]
self.frame_rate = rd[c4d.RDATA_FRAMERATE]
self.frame_range = rslv.resolve(rd[c4d.RDATA_FRAMESEQUENCE])
self.frame_from = rd[c4d.RDATA_FRAMEFROM]
self.frame_to = rd[c4d.RDATA_FRAMETO]
self.frame_step = rd[c4d.RDATA_FRAMESTEP]
self.frame_fields = rslv.resolve(rd[c4d.RDATA_FIELD])
self.frame_count = rd[c4d.RDATA_FRAMESEQUENCE_ALLFRAMES]
self.annotations = rd[c4d.RDATA_HELPTEXT]
How it should be
According to this the error shouldn't be there.
Flake8 version and plugins
"dependencies": [],
"platform": {
"python_implementation": "CPython",
"python_version": "3.9.12",
"system": "Windows"
},
"plugins": [
{
"is_local": false,
"plugin": "flake8-bandit",
"version": "3.0.0"
},
{
"is_local": false,
"plugin": "flake8-broken-line",
"version": "0.4.0"
},
{
"is_local": false,
"plugin": "flake8-bugbear",
"version": "22.4.25"
},
{
"is_local": false,
"plugin": "flake8-comprehensions",
"version": "3.10.0"
},
{
"is_local": false,
"plugin": "flake8-darglint",
"version": "1.8.1"
},
{
"is_local": false,
"plugin": "flake8-debugger",
"version": "4.1.2"
},
{
"is_local": false,
"plugin": "flake8-docstrings",
"version": "1.6.0, pydocstyle: 6.1.1"
},
{
"is_local": false,
"plugin": "flake8-eradicate",
"version": "1.2.1"
},
{
"is_local": false,
"plugin": "flake8-string-format",
"version": "0.3.0"
},
{
"is_local": false,
"plugin": "flake8_commas",
"version": "2.1.0"
},
{
"is_local": false,
"plugin": "flake8_isort",
"version": "4.1.1"
},
{
"is_local": false,
"plugin": "flake8_quotes",
"version": "3.3.1"
},
{
"is_local": false,
"plugin": "mccabe",
"version": "0.6.1"
},
{
"is_local": false,
"plugin": "naming",
"version": "0.12.1"
},
{
"is_local": false,
"plugin": "nitpick",
"version": "0.32.0"
},
{
"is_local": false,
"plugin": "pycodestyle",
"version": "2.8.0"
},
{
"is_local": false,
"plugin": "pyflakes",
"version": "2.4.0"
},
{
"is_local": false,
"plugin": "rst-docstrings",
"version": "0.2.6"
},
{
"is_local": false,
"plugin": "wemake_python_styleguide",
"version": "0.16.1"
}
],
"version": "4.0.1"
}
pip information
pip 22.1.2 from B:\Render Farm Project\Cinema4D Studios\R24\resource\modules\python\libs\python39.win64.framework\lib\site-packages\pip (python 3.9) argcomplete==1.12.3 asttokens==2.0.5 atomicwrites==1.4.0 attrs==21.4.0 backcall==0.2.0 colorama==0.4.5 coverage==6.4.1 decorator==5.1.1 executing==0.8.3 iniconfig==1.1.1 jedi==0.18.1 matplotlib-inline==0.1.3 packaging==21.3 parso==0.8.3 pickleshare==0.7.5 pipx==0.16.4 pluggy==1.0.0 prompt-toolkit==3.0.29 pure-eval==0.2.2 py==1.11.0 Pygments==2.12.0 pyparsing==3.0.9 pytest==7.1.2 pytest-cov==3.0.0 six==1.16.0 stack-data==0.3.0 tomli==2.0.1 traitlets==5.3.0 userpath==1.7.0 wcwidth==0.2.5
OS information
'Windows-10-10.0.22000-SP0'