Example #1
0
from uykfe.sequence.distance.distance import DistanceControl, DistanceState


LOG = getLogger(__name__)


if __name__ == '__main__':
    parser = build_weighted_parser('Print a playlist to stdout')
    add_depth(parser)
    add_inital_artist(parser)
    parser.add_argument('count', metavar='N', type=int, help='the number of entries')
    args = parser.parse_args()
    set_logging(args.debug)
    LOG.info('File system encoding {0}'.format(getfilesystemencoding()))
    LOG.info('Stdout encoding {0}'.format(stdout.encoding))
    session = open_db()()
    track = find_track(session, args.artist, args.track)
    state = DistanceState(session, args.limit, args.unidirectional)
    if track:
        state.record_track(track)
    control = DistanceControl(state, args.localexp, args.depth, args.depthexp, args.unidirectional, args.neighbour)
    stdout.buffer.write('#EXTM3U\n'.encode('utf8'))
    for track in islice(sequence(state, control), args.count):
        url = track.url
        if url.startswith('file://'):
            url = url[len('file://'):]
#        LOG.info(url)
#        print(url)
        stdout.buffer.write((url + '\n').encode('utf8'))

Example #2
0
                     action='store_false',
                     help='NO flatten edge colours?')
 parser.add_argument('-g',
                     '--weights',
                     default=False,
                     action='store_true',
                     help='flatten weights?')
 parser.add_argument('-z',
                     '--zero',
                     default=0,
                     type=float,
                     help='fractional lower limit for weights')
 args = parser.parse_args()
 set_logging(args.debug)
 session = open_db()()
 artist, track = None, find_track(session, args.artist, args.track)
 if track:
     artist = track.local_artist.lastfm_artist
 state = StaticState(session, args.limit)
 (nodes, edges, zero) = collect(session, args.zero)
 if artist:
     (nodes, edges) = restrict(nodes, dict((edge, edge) for edge in edges),
                               artist)
 (nodes, weighted_edges) = filter(nodes, edges, args.localexp, args.edges,
                                  args.tracks, args.limit, session, zero)
 if artist:
     (nodes, weighted_edges) = restrict(
         nodes,
         dict((edge, (weight, edge)) for (weight, edge) in weighted_edges),
         artist)
 dump(nodes, weighted_edges, args.white, args.black, args.flatten,
Example #3
0
        else:
            return grey
    except:
        raise ArgumentError('{0} is not an integer.'.format(value))
    
    
if __name__ == '__main__':
    parser = build_weighted_parser('Dump graph to file')
    add_inital_artist(parser)
    parser.add_argument('-n', '--edges', default=2, type=positive_int, help='minimum number of edges')
    parser.add_argument('-m', '--tracks', default=5, type=positive_int, help='minimum number of tracks')
    parser.add_argument('-w', '--white', default=192, type=level, help='white level')
    parser.add_argument('-b', '--black', default=64, type=level, help='black level')
    parser.add_argument('-f', '--flatten', default=True, action='store_false', help='NO flatten edge colours?')
    parser.add_argument('-g', '--weights', default=False, action='store_true', help='flatten weights?')
    parser.add_argument('-z', '--zero', default=0, type=float, help='fractional lower limit for weights')
    args = parser.parse_args()
    set_logging(args.debug)
    session = open_db()()
    artist, track = None, find_track(session, args.artist, args.track)
    if track:
        artist = track.local_artist.lastfm_artist
    state = StaticState(session, args.limit)
    (nodes, edges, zero) = collect(session, args.zero)
    if artist:
        (nodes, edges) = restrict(nodes, dict((edge, edge) for edge in edges), artist)
    (nodes, weighted_edges) = filter(nodes, edges, args.localexp, args.edges, args.tracks, args.limit, session, zero)
    if artist:
        (nodes, weighted_edges) = restrict(nodes, dict((edge, (weight, edge)) for (weight, edge) in weighted_edges), artist)
    dump(nodes, weighted_edges, args.white, args.black, args.flatten, args.weights)