types.py
: Simplify __repr__
using inheritance
This commit is contained in:
parent
ec72398abe
commit
09a293e59f
@ -5,7 +5,13 @@ import struct
|
|||||||
from tja2fumen.constants import TJA_COURSE_NAMES, BRANCH_NAMES
|
from tja2fumen.constants import TJA_COURSE_NAMES, BRANCH_NAMES
|
||||||
|
|
||||||
|
|
||||||
class TJASong:
|
class DefaultObject:
|
||||||
|
"""Set default methods for all TJA/Fumen classes."""
|
||||||
|
def __repr__(self):
|
||||||
|
return str(self.__dict__)
|
||||||
|
|
||||||
|
|
||||||
|
class TJASong(DefaultObject):
|
||||||
def __init__(self, BPM=None, offset=None):
|
def __init__(self, BPM=None, offset=None):
|
||||||
self.BPM = float(BPM)
|
self.BPM = float(BPM)
|
||||||
self.offset = float(offset)
|
self.offset = float(offset)
|
||||||
@ -13,11 +19,12 @@ class TJASong:
|
|||||||
for course in TJA_COURSE_NAMES}
|
for course in TJA_COURSE_NAMES}
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
# Show truncated version of courses to avoid long representation
|
||||||
return (f"{{'BPM': {self.BPM}, 'offset': {self.offset}, "
|
return (f"{{'BPM': {self.BPM}, 'offset': {self.offset}, "
|
||||||
f"'courses': {list(self.courses.keys())}}}")
|
f"'courses': {list(self.courses.keys())}}}")
|
||||||
|
|
||||||
|
|
||||||
class TJACourse:
|
class TJACourse(DefaultObject):
|
||||||
def __init__(self, BPM, offset, course, level=0, balloon=None,
|
def __init__(self, BPM, offset, course, level=0, balloon=None,
|
||||||
score_init=0, score_diff=0):
|
score_init=0, score_diff=0):
|
||||||
self.level = level
|
self.level = level
|
||||||
@ -35,20 +42,18 @@ class TJACourse:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
# Don't show default fields if the course contains no data
|
||||||
return str(self.__dict__) if self.data else "{'data': []}"
|
return str(self.__dict__) if self.data else "{'data': []}"
|
||||||
|
|
||||||
|
|
||||||
class TJAMeasure:
|
class TJAMeasure(DefaultObject):
|
||||||
def __init__(self, notes=None, events=None):
|
def __init__(self, notes=None, events=None):
|
||||||
self.notes = [] if notes is None else notes
|
self.notes = [] if notes is None else notes
|
||||||
self.events = [] if events is None else events
|
self.events = [] if events is None else events
|
||||||
self.combined = []
|
self.combined = []
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class TJAMeasureProcessed(DefaultObject):
|
||||||
class TJAMeasureProcessed:
|
|
||||||
def __init__(self, bpm, scroll, gogo, barline, time_sig, subdivisions,
|
def __init__(self, bpm, scroll, gogo, barline, time_sig, subdivisions,
|
||||||
pos_start=0, pos_end=0, delay=0, section=None,
|
pos_start=0, pos_end=0, delay=0, section=None,
|
||||||
branch_start=None, data=None):
|
branch_start=None, data=None):
|
||||||
@ -65,21 +70,15 @@ class TJAMeasureProcessed:
|
|||||||
self.branch_start = branch_start
|
self.branch_start = branch_start
|
||||||
self.data = [] if data is None else data
|
self.data = [] if data is None else data
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class TJAData(DefaultObject):
|
||||||
class TJAData:
|
|
||||||
def __init__(self, name, value, pos=None):
|
def __init__(self, name, value, pos=None):
|
||||||
self.pos = pos
|
self.pos = pos
|
||||||
self.name = name
|
self.name = name
|
||||||
self.value = value
|
self.value = value
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class FumenCourse(DefaultObject):
|
||||||
class FumenCourse:
|
|
||||||
def __init__(self, measures=None, header=None, score_init=0, score_diff=0):
|
def __init__(self, measures=None, header=None, score_init=0, score_diff=0):
|
||||||
if isinstance(measures, int):
|
if isinstance(measures, int):
|
||||||
self.measures = [FumenMeasure() for _ in range(measures)]
|
self.measures = [FumenMeasure() for _ in range(measures)]
|
||||||
@ -89,11 +88,8 @@ class FumenCourse:
|
|||||||
self.score_init = score_init
|
self.score_init = score_init
|
||||||
self.score_diff = score_diff
|
self.score_diff = score_diff
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class FumenMeasure(DefaultObject):
|
||||||
class FumenMeasure:
|
|
||||||
def __init__(self, bpm=0.0, offset_start=0.0, offset_end=0.0,
|
def __init__(self, bpm=0.0, offset_start=0.0, offset_end=0.0,
|
||||||
duration=0.0, gogo=False, barline=True, branch_start=None,
|
duration=0.0, gogo=False, barline=True, branch_start=None,
|
||||||
branch_info=None, padding1=0, padding2=0):
|
branch_info=None, padding1=0, padding2=0):
|
||||||
@ -194,22 +190,16 @@ class FumenMeasure:
|
|||||||
[branch_condition[2]] * 3
|
[branch_condition[2]] * 3
|
||||||
)
|
)
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class FumenBranch(DefaultObject):
|
||||||
class FumenBranch:
|
|
||||||
def __init__(self, length=0, speed=0.0, padding=0):
|
def __init__(self, length=0, speed=0.0, padding=0):
|
||||||
self.length = length
|
self.length = length
|
||||||
self.speed = speed
|
self.speed = speed
|
||||||
self.padding = padding
|
self.padding = padding
|
||||||
self.notes = []
|
self.notes = []
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class FumenNote(DefaultObject):
|
||||||
class FumenNote:
|
|
||||||
def __init__(self, note_type='', pos=0.0, score_init=0, score_diff=0,
|
def __init__(self, note_type='', pos=0.0, score_init=0, score_diff=0,
|
||||||
padding=0, item=0, duration=0.0, multimeasure=False,
|
padding=0, item=0, duration=0.0, multimeasure=False,
|
||||||
hits=0, hits_padding=0,
|
hits=0, hits_padding=0,
|
||||||
@ -229,11 +219,8 @@ class FumenNote:
|
|||||||
self.hits_padding = hits_padding
|
self.hits_padding = hits_padding
|
||||||
self.drumroll_bytes = drumroll_bytes
|
self.drumroll_bytes = drumroll_bytes
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return str(self.__dict__)
|
|
||||||
|
|
||||||
|
class FumenHeader(DefaultObject):
|
||||||
class FumenHeader:
|
|
||||||
def __init__(self, raw_bytes=None):
|
def __init__(self, raw_bytes=None):
|
||||||
if raw_bytes is None:
|
if raw_bytes is None:
|
||||||
self.order = "<"
|
self.order = "<"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user