""" ./id3_frames_gen.py > api/id3_frames.rst """ import sys import os sys.path.insert(0, os.path.abspath('../')) import mutagen.id3 from mutagen.id3 import Frames, Frames_2_2, Frame BaseFrames = dict([(k, v) for (k, v) in vars(mutagen.id3).items() if v not in Frames.values() and v not in Frames_2_2.values() and isinstance(v, type) and (issubclass(v, Frame) or v is Frame)]) def print_header(header, type_="-"): print(header) print(type_ * len(header)) print("") def print_frames(frames, sort_mro=False): if sort_mro: # less bases first, then by name sort_func = lambda x: (len(x[1].__mro__), x[0]) else:
def create_frame_tests(cls): for kind in (list(Frames.values()) + list(Frames_2_2.values())): new_type = type(cls.__name__ + kind.__name__, (cls, TestCase), {"FRAME": kind}) assert new_type.__name__ not in globals() globals()[new_type.__name__] = new_type