Browse Source

setup `symuid-import-cmus` cli entry point via setuptools.setup()

Fabian Peter Hammerle 4 years ago
parent
commit
4f312f9486
3 changed files with 15 additions and 18 deletions
  1. 1 0
      setup.py
  2. 12 18
      symuid/import_library/cmus_cache.py
  3. 2 0
      symuid/import_library/itunes_xml.py

+ 1 - 0
setup.py

@@ -6,6 +6,7 @@ setuptools.setup(
     packages=setuptools.find_packages(),
     entry_points={
         'console_scripts': [
+            'symuid-import-cmus = symuid.import_library.cmus_cache:_main',
             'symuid-import-itunes = symuid.import_library.itunes_xml:_main',
             'symuid-list = symuid.list:_main',
             'symuid-sync = symuid.sync:_main',

+ 12 - 18
symuid-import-cmus → symuid/import_library/cmus_cache.py

@@ -1,28 +1,27 @@
-#!/usr/bin/env python3
-
 import argparse
 import os
+import sys
 
 import symuid
 import symuid.library.cmus
 from symuid._datetime import datetime_utc_now
 
-PLAYER_NAME = 'cmus'
-LIBRARY_ID_LENGTH_MIN = 8
+# TODO rename module to cmus.py
+# after ImportMismatchError on `pytest --doctest-modules` was fixed
 
+_PLAYER_NAME = 'cmus'
+_LIBRARY_ID_LENGTH_MIN = 8
 
 def symuid_import_cmus(library_id, cache_path):
-    assert len(library_id) >= LIBRARY_ID_LENGTH_MIN, library_id
-    lib = symuid.library.cmus.Cache(
-        path=os.path.expanduser(cache_path),
-    )
+    assert len(library_id) >= _LIBRARY_ID_LENGTH_MIN, library_id
+    lib = symuid.library.cmus.Cache(cache_path)
     for cmus_track in lib.get_tracks():
         if not os.path.exists(cmus_track.path):
             sys.stderr.write('{!r}: not found\n'.format(cmus_track.path))
         elif cmus_track.play_count > 0:  # check before symuid.Track to improve performance
             symuid_track = symuid.Track(path=cmus_track.path.decode())
             last_count = symuid_track.get_latest_play_count(
-                player=PLAYER_NAME,
+                player=_PLAYER_NAME,
                 library_id=library_id,
             )
             assert last_count is None or last_count.count <= cmus_track.play_count, \
@@ -30,7 +29,7 @@ def symuid_import_cmus(library_id, cache_path):
             if last_count is None or last_count.count != cmus_track.play_count:
                 symuid_track.register_play_count(
                     symuid.PlayCount(
-                        player=PLAYER_NAME,
+                        player=_PLAYER_NAME,
                         library_id=library_id,
                         register_dt=datetime_utc_now(),
                         count=cmus_track.play_count,
@@ -46,18 +45,13 @@ def _init_argparser():
     argparser.add_argument(
         'cache_path',
         nargs='?',
-        default='~/.config/cmus/cache',
+        default=os.path.expanduser('~/.config/cmus/cache'),
         help='(default: %(default)r)',
     )
     return argparser
 
 
-def main(argv):
+def _main():
     argparser = _init_argparser()
-    args = argparser.parse_args(argv[1:])
+    args = argparser.parse_args()
     symuid_import_cmus(**vars(args))
-    return 0
-
-if __name__ == "__main__":
-    import sys
-    sys.exit(main(sys.argv))

+ 2 - 0
symuid/import_library/itunes_xml.py

@@ -6,6 +6,8 @@ import sys
 import symuid
 import symuid.library.itunes
 
+# TODO rename module to itunes.py
+# after ImportMismatchError on `pytest --doctest-modules` was fixed
 
 def import_itunes_xml_library(xml_library_path, path_regex_sub):
     lib = symuid.library.itunes.XmlLibrary(xml_library_path)