53 lines
985 B
Python
53 lines
985 B
Python
|
from dataclasses import dataclass
|
||
|
from typing import Any
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class Pattern:
|
||
|
"""
|
||
|
Represents a pattern.
|
||
|
"""
|
||
|
|
||
|
id: int
|
||
|
name: str
|
||
|
frames: int
|
||
|
pixels: int
|
||
|
flags: int
|
||
|
fps: int
|
||
|
|
||
|
def to_json(self) -> Any:
|
||
|
"""
|
||
|
Converts the pattern to a JSON object.
|
||
|
"""
|
||
|
return {
|
||
|
"id": self.id,
|
||
|
"name": self.name,
|
||
|
"frames": self.frames,
|
||
|
"pixels": self.pixels,
|
||
|
"flags": self.flags,
|
||
|
"fps": self.fps,
|
||
|
}
|
||
|
|
||
|
@classmethod
|
||
|
def from_json(cls, json: Any) -> "Pattern":
|
||
|
"""
|
||
|
Creates a pattern from a json object.
|
||
|
"""
|
||
|
return cls(
|
||
|
id=json["id"],
|
||
|
name=json["name"],
|
||
|
frames=json["frames"],
|
||
|
pixels=json["pixels"],
|
||
|
flags=json["flags"],
|
||
|
fps=json["fps"],
|
||
|
)
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class PatternData:
|
||
|
"""
|
||
|
Represents a pattern data.
|
||
|
"""
|
||
|
|
||
|
data: bytes
|