This commit is contained in:
Maveno
2024-10-05 22:41:57 +02:00
parent eaee3b34da
commit 1c9f67e47a
19 changed files with 669 additions and 273 deletions

View File

@@ -1,5 +1,7 @@
import difflib, click
from enum import Enum
import difflib
class TrackDisposition(Enum):
@@ -23,6 +25,7 @@ class TrackDisposition(Enum):
DEPENDENT = {"name": "dependent", "index": 16}
STILL_IMAGE = {"name": "still_image", "index": 17}
def label(self):
return str(self.value['name'])
@@ -31,22 +34,27 @@ class TrackDisposition(Enum):
@staticmethod
def toFlags(dispositionList):
def toFlags(dispositionSet):
"""Flags stored in integer bits (2**index)"""
if type(dispositionSet) is not set:
raise click.ClickException('TrackDisposition.toFlags(): Argument is not of type set')
flags = 0
for d in dispositionList:
for d in dispositionSet:
if type(d) is not TrackDisposition:
raise click.ClickException('TrackDisposition.toFlags(): Element not of type TrackDisposition')
flags += 2 ** d.index()
return flags
@staticmethod
def toList(flags):
dispositionList = []
def toSet(flags):
dispositionSet = set()
for d in TrackDisposition:
if flags & int(2 ** d.index()):
dispositionList += [d]
return dispositionList
dispositionSet.add(d)
return dispositionSet
@staticmethod
def find(label):