Jelajahi Sumber

Add --version option

Kentaro Wada 7 tahun lalu
induk
melakukan
c70c395c49
3 mengubah file dengan 10 tambahan dan 0 penghapusan
  1. 1 0
      .travis.yml
  2. 2 0
      labelme/__init__.py
  3. 7 0
      labelme/app.py

+ 1 - 0
.travis.yml

@@ -33,6 +33,7 @@ script:
   - flake8 examples labelme setup.py tests
   - pytest -v tests
   - labelme --help
+  - labelme --version
   - (cd examples/tutorial && rm -rf apc2016_obj3_json && labelme_json_to_dataset apc2016_obj3.json && python load_label_png.py && git checkout -- .)
   - (cd examples/semantic_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py labels.txt data_annotated data_dataset_voc && git checkout -- .)
   - (cd examples/instance_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py labels.txt data_annotated data_dataset_voc && git checkout -- .)

+ 2 - 0
labelme/__init__.py

@@ -1,9 +1,11 @@
 # flake8: noqa
 
 import logging
+import pkg_resources
 
 
 __appname__ = 'labelme'
+__version__ = pkg_resources.get_distribution(__appname__).version
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__appname__)

+ 7 - 0
labelme/app.py

@@ -15,6 +15,7 @@ from qtpy import QtWidgets
 QT5 = QT_VERSION[0] == '5'
 
 from labelme import __appname__
+from labelme import __version__
 from labelme.canvas import Canvas
 from labelme.colorDialog import ColorDialog
 from labelme.config import get_config
@@ -1205,6 +1206,8 @@ def read(filename, default=None):
 def main():
     """Standard boilerplate Qt application code."""
     parser = argparse.ArgumentParser()
+    parser.add_argument('--version', '-V', action='store_true',
+                        help='show version')
     parser.add_argument('filename', nargs='?', help='image or label filename')
     parser.add_argument('--output', '-O', '-o', help='output label name')
     parser.add_argument('--nodata', dest='store_data', action='store_false',
@@ -1219,6 +1222,10 @@ def main():
                         help='label validation types')
     args = parser.parse_args()
 
+    if args.version:
+        print('{0} {1}'.format(__appname__, __version__))
+        sys.exit(0)
+
     if args.labels is None:
         if args.validatelabel is not None:
             logger.error('--labels must be specified with --validatelabel')