Collection¶
Classes representing collections and libraries
A collection is a database of tracks. It is based on TrackDB
but has
the ability to be linked with libraries.
A library finds tracks in a specified directory and adds them to an associated collection.
Collections¶
-
xl.collection.
get_collection_by_loc
(loc)[source]¶ gets the collection by a location.
Parameters: loc – Location of the collection Returns: collection at location or None Return type: Collection
-
class
xl.collection.
Collection
(name, location=None, pickle_attrs=[])[source]¶ Manages a persistent track database.
Parameters: args – see xl.trax.trackdb.TrackDB
Simple usage:
>>> from xl.collection import * >>> from xl.trax import search >>> collection = Collection("Test Collection") >>> collection.add_library(Library("./tests/data")) >>> collection.rescan_libraries() >>> tracks = [i.track for i in search.search_tracks_from_string( ... collection, ('artist==TestArtist'))] >>> print(len(tracks)) 5 >>>
-
add_library
(library)[source]¶ Add this library to the collection
Parameters: library ( Library
) – the library to add
-
close
()[source]¶ close the collection. does any work like saving to disk, closing network connections, etc.
-
freeze_libraries
()[source]¶ Prevents “libraries_modified” events from being sent from individual add and remove library calls.
Call this before making bulk changes to the libraries. Call thaw_libraries when you are done; this sends a single event if the libraries were modified.
-
get_libraries
()[source]¶ Gets a list of all the Libraries associated with this Collection
Return type: list of Library
-
remove_library
(library)[source]¶ Remove a library from the collection
Parameters: library ( Library
) – the library to remove
-
rescan_libraries
(startup_only=False, force_update=False)[source]¶ Rescans all libraries associated with this Collection
-
serialize_libraries
()[source]¶ Save information about libraries
Called whenever the library’s settings are changed
-
-
xl.collection.
CollectionScanThread
¶ alias of
mocks.
Libraries¶
-
class
xl.collection.
Library
(location, monitored=False, scan_interval=0, startup_scan=False)[source]¶ Scans and watches a folder for tracks, and adds them to a Collection.
Simple usage:
>>> from xl.collection import * >>> c = Collection("TestCollection") >>> l = Library("./tests/data") >>> c.add_library(l) >>> l.rescan() True >>> print(c.get_libraries()[0].location) ./tests/data >>> print(len(list(c.search('artist="TestArtist"')))) 5 >>>
-
add
(loc, move=False)[source]¶ Copies (or moves) a file into the library and adds it to the collection
-
delete
(loc)[source]¶ Deletes a file from the disk
Warning
This permanently deletes the file from the hard disk.
-
get_location
()[source]¶ Gets the current location associated with this Library
Returns: the current location Return type: string
-
monitored
¶ Whether the library should be monitored for changes
-
rescan
(notify_interval=None, force_update=False)[source]¶ Rescan the associated folder and add the contained files to the Collection
-
set_location
(location)[source]¶ Changes the location of this Library
Parameters: location (string) – the new location to use
-
set_monitored
(monitored)[source]¶ Enables or disables monitoring of the library
Parameters: monitored (bool) – Whether to monitor the library
-
-
xl.collection.
LibraryMonitor
¶ alias of
mocks.