Skip to content

WPS230 triggers for @dataclass #2448

@Day0Dreamer

Description

@Day0Dreamer

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'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions