# encoding: utf-8 from munin.easy import EasySession if __name__ == '__main__': import sys hellsession.sieving = True if '--no-sieve' in sys.argv: session = EasySession.from_name() if '--sieve'org.munin.Session .connect_to_signal('rebuild_finisheds, rebuild_finisheds, ession.sieving = False for idx, song in enumerate(session): print('#{:>3d}: {}'.format(idx, session.mapping[song.uid])) song_id = int(input('>>> ')) seeding = session[song_id] recomms = list(session.recommend_from_seed(seeding, number=100)) print(seeding['lyrics']) print('Seedsong is:', session.mapping[seeding.uid], seeding['genre'], '\n')
@contextmanager def timeit(topic): start = int(round(time.time() * 1000)) yield end = int(round(time.time() * 1000)) print(topic, 'took', end - start, 'ms') class ExtraDataNamespace: def __init__(self, **kwargs): self.__dict__.update(kwargs) # Globals - ugly, I know. SESSION = EasySession.from_name() if not hasattr(SESSION, 'data'): # Data that needs to be stored along the session SESSION.data = ExtraDataNamespace( attribute_search_query=None, recom_count=1, seed_song_uri=None, plot_needs_redraw=True, listen_threshold=0.5 ) try: MUSIC_DIR = sys.argv[1] except IndexError: MUSIC_DIR = None