wemake-python-styleguide icon indicating copy to clipboard operation
wemake-python-styleguide copied to clipboard

WPS230 triggers for @dataclass

Open Day0Dreamer opened this issue 3 years ago • 0 comments

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'

Day0Dreamer avatar Jul 09 '22 18:07 Day0Dreamer