Use slots for all dataclasses

The minimum Python version was bumped to 3.10 so this is now safe.
This commit is contained in:
2Shirt 2023-06-29 13:48:34 -06:00
parent 8e234ce0cd
commit 86203a4b86
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
5 changed files with 4 additions and 23 deletions

View file

@ -7,7 +7,6 @@ from . import log
from . import main from . import main
from . import music from . import music
from . import net from . import net
from . import python
from . import repairs from . import repairs
from . import setup from . import setup
from . import sources from . import sources

View file

@ -1,14 +0,0 @@
"""WizardKit: Config - Python"""
# vim: sts=2 sw=2 ts=2
from sys import version_info
DATACLASS_DECORATOR_KWARGS = {}
if version_info.major >= 3 and version_info.minor >= 10:
DATACLASS_DECORATOR_KWARGS['slots'] = True
if __name__ == '__main__':
print("This file is not meant to be called directly.")
# vim: sts=2 sw=2 ts=2

View file

@ -12,7 +12,6 @@ from dataclasses import dataclass, field
from typing import Any from typing import Any
from wk.cfg.main import KIT_NAME_SHORT from wk.cfg.main import KIT_NAME_SHORT
from wk.cfg.python import DATACLASS_DECORATOR_KWARGS
from wk.exe import get_json_from_command, run_program from wk.exe import get_json_from_command, run_program
from wk.hw.test import Test from wk.hw.test import Test
from wk.hw.smart import ( from wk.hw.smart import (
@ -32,7 +31,7 @@ WK_LABEL_REGEX = re.compile(
# Classes # Classes
@dataclass(**DATACLASS_DECORATOR_KWARGS) @dataclass(slots=True)
class Disk: class Disk:
"""Object for tracking disk specific data.""" """Object for tracking disk specific data."""
attributes: dict[Any, dict] = field(init=False, default_factory=dict) attributes: dict[Any, dict] = field(init=False, default_factory=dict)

View file

@ -9,7 +9,6 @@ from dataclasses import dataclass, field
from typing import Any from typing import Any
from wk.cfg.hw import KNOWN_RAM_VENDOR_IDS from wk.cfg.hw import KNOWN_RAM_VENDOR_IDS
from wk.cfg.python import DATACLASS_DECORATOR_KWARGS
from wk.exe import get_json_from_command, run_program from wk.exe import get_json_from_command, run_program
from wk.hw.test import Test from wk.hw.test import Test
from wk.std import PLATFORM, bytes_to_string, string_to_bytes from wk.std import PLATFORM, bytes_to_string, string_to_bytes
@ -20,7 +19,7 @@ from wk.ui import ansi
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@dataclass(**DATACLASS_DECORATOR_KWARGS) @dataclass(slots=True)
class System: class System:
"""Object for tracking system specific hardware data.""" """Object for tracking system specific hardware data."""
cpu_description: str = field(init=False) cpu_description: str = field(init=False)

View file

@ -4,9 +4,7 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import Any, Callable from typing import Any, Callable
from wk.cfg.python import DATACLASS_DECORATOR_KWARGS @dataclass(slots=True)
@dataclass(**DATACLASS_DECORATOR_KWARGS)
class Test: class Test:
"""Object for tracking test specific data.""" """Object for tracking test specific data."""
dev: Any dev: Any
@ -28,7 +26,7 @@ class Test:
self.status = status self.status = status
@dataclass(**DATACLASS_DECORATOR_KWARGS) @dataclass(slots=True)
class TestGroup: class TestGroup:
"""Object for tracking groups of tests.""" """Object for tracking groups of tests."""
name: str name: str