rooneysh/Labelme2YOLO

Suggest to loosen the dependency on labelme

Agnes-U opened this issue · 0 comments

Hi, your project Labelme2YOLO requires "labelme==4.5.9" in its dependency. After analyzing the source code, we found that some other versions of labelme can also be suitable without affecting your project, i.e., labelme 4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.5.7, 4.5.8, 4.5.8.post0. Therefore, we suggest to loosen the dependency on labelme from "labelme==4.5.9" to "labelme>=4.5.0,<=4.5.9" to avoid any possible conflict for importing more packages or for downstream projects that may use Labelme2YOLO.

May I pull a request to loosen the dependency on labelme?

By the way, could you please tell us whether such dependency analysis may be potentially helpful for maintaining dependencies easier during your development?



For your reference, here are details in our analysis.

Your project Labelme2YOLO(commit id: 49788b6) directly uses 1 APIs from package labelme.

labelme.utils.image.img_b64_to_arr

From which, 6 functions are then indirectly called, including 2 labelme's internal APIs and 4 outsider APIs, as follows (neglecting some repeated function occurrences).

[/rooneysh/Labelme2YOLO]
+--labelme.utils.image.img_b64_to_arr
|      +--base64.b64decode
|      +--labelme.utils.image.img_data_to_arr
|      |      +--labelme.utils.image.img_data_to_pil
|      |      |      +--io.BytesIO
|      |      |      +--PIL.Image.open
|      |      +--numpy.array

We scan labelme's versions among [4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.5.7, 4.5.8, 4.5.8.post0] and 4.5.9, the changing functions (diffs being listed below) have none intersection with any function or API we mentioned above (either directly or indirectly called by this project).

diff: 4.5.9(original) 4.5.0
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.widgets.label_list_widget.LabelListWidget.itemDropped', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.widgets.label_list_widget.StandardItemModel.removeRows', 'labelme.widgets.canvas.Canvas.paintEvent', 'labelme.shape.Shape', 'labelme.widgets.label_list_widget.LabelListWidget.__init__', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.label_file.LabelFile.load', 'labelme.label_file.LabelFile', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.app.MainWindow.addLabel', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidget.dropEvent', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.label_file.open', 'labelme.shape.Shape.highlightClear', 'labelme.widgets.label_list_widget.StandardItemModel', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.1
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.widgets.label_list_widget.LabelListWidget.itemDropped', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.widgets.label_list_widget.StandardItemModel.removeRows', 'labelme.widgets.canvas.Canvas.paintEvent', 'labelme.shape.Shape', 'labelme.widgets.label_list_widget.LabelListWidget.__init__', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.label_file.LabelFile.load', 'labelme.label_file.LabelFile', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.app.MainWindow.addLabel', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidget.dropEvent', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.label_file.open', 'labelme.shape.Shape.highlightClear', 'labelme.widgets.label_list_widget.StandardItemModel', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.2
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.widgets.label_list_widget.LabelListWidget.itemDropped', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.widgets.label_list_widget.StandardItemModel.removeRows', 'labelme.widgets.canvas.Canvas.paintEvent', 'labelme.shape.Shape', 'labelme.widgets.label_list_widget.LabelListWidget.__init__', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidget.dropEvent', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.widgets.label_list_widget.StandardItemModel', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.3
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.app.MainWindow.dragEnterEvent', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.app.MainWindow.importDroppedImageFiles', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.4
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.brightnessContrast', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.5
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.6
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.fileSearchChanged', 'labelme.app.MainWindow.setDirty', 'labelme.logger.ColoredFormatter', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.cli.on_docker.labelme_on_docker', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.logger.ColoredFormatter.format', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.app.MainWindow.zoomRequest', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.app.MainWindow.addZoom', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.7
['labelme.widgets.canvas.Canvas.deleteShape', 'labelme.app.MainWindow.setDirty', 'labelme.widgets.canvas.Canvas.hideBackroundShapes', 'labelme.shape.Shape', 'labelme.widgets.canvas.Canvas.restoreShape', 'labelme.widgets.canvas.Canvas.isShapeRestorable', 'labelme.widgets.canvas.Canvas.loadShapes', 'labelme.widgets.canvas.Canvas.storeShapes', 'labelme.widgets.label_list_widget.LabelListWidget.findItemByShape', 'labelme.widgets.canvas.Canvas.undoLastPoint', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.shape.Shape.highlightVertex', 'labelme.app.MainWindow', 'labelme.app.MainWindow.loadLabels', 'labelme.widgets.canvas.Canvas.loadPixmap', 'labelme.widgets.canvas.Canvas', 'labelme.widgets.label_list_widget.LabelListWidget', 'labelme.shape.Shape.highlightClear', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.setShapeVisible', 'labelme.utils.qt.distancetoline']

diff: 4.5.9(original) 4.5.8
[](no clear difference between the source codes of two versions)

diff: 4.5.9(original) 4.5.8.post0
[](no clear difference between the source codes of two versions)

diff: 4.5.9(original) 4.5.10
[](no clear difference between the source codes of two versions)

diff: 4.5.9(original) 4.5.11
['labelme.app.MainWindow', 'labelme.cli.draw_json.main', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.cli.json_to_dataset.main']

diff: 4.5.9(original) 4.5.12
['labelme.cli.draw_json.main', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.cli.json_to_dataset.main', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow']

diff: 4.5.9(original) 4.5.13
['labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.cli.json_to_dataset.main', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow']

diff: 4.5.9(original) 4.6.0
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.app.MainWindow.saveLabels', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

diff: 4.5.9(original) 5.0.0
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

diff: 4.5.9(original) 5.0.1a0
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

diff: 4.5.9(original) 5.0.1
['labelme.app.MainWindow.shapeSelectionChanged', 'labelme.app.MainWindow.canvasShapeEdgeSelected', 'labelme.app.MainWindow.pasteSelectedShape', 'labelme.widgets.canvas.Canvas.duplicateSelectedShapes', 'labelme.app.MainWindow._update_shape_color', 'labelme.widgets.canvas.Canvas.keyReleaseEvent', 'labelme.app.MainWindow.openPrevImg', 'labelme.app.MainWindow.duplicateSelectedShape', 'labelme.widgets.file_dialog_preview.FileDialogPreview.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview', 'labelme.widgets.canvas.Canvas.mouseReleaseEvent', 'labelme.app.MainWindow.copySelectedShape', 'labelme.widgets.canvas.Canvas.mousePressEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview', 'labelme.app.MainWindow.enableKeepPrevScale', 'labelme.widgets.canvas.Canvas.mouseMoveEvent', 'labelme.widgets.file_dialog_preview.FileDialogPreview.onChange', 'labelme.app.MainWindow.openNextImg', 'labelme.widgets.canvas.Canvas.calculateOffsets', 'labelme.app.MainWindow.copyShape', 'labelme.widgets.canvas.Canvas.__init__', 'labelme.app.MainWindow.addLabel', 'labelme.widgets.canvas.Canvas.deSelectShape', 'labelme.app.MainWindow', 'labelme.app.MainWindow.tutorial', 'labelme.cli.draw_json.main', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setText', 'labelme.widgets.canvas.Canvas.selectedEdge', 'labelme.widgets.canvas.Canvas.copySelectedShapes', 'labelme.app.MainWindow.loadFile', 'labelme.app.MainWindow.editLabel', 'labelme.widgets.label_list_widget.LabelListWidgetItem.__init__', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.__init__', 'labelme.widgets.canvas.Canvas', 'labelme.app.MainWindow.openFile', 'labelme.widgets.label_list_widget.LabelListWidgetItem', 'labelme.widgets.canvas.Canvas.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.selectShapePoint', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.clear', 'labelme.cli.json_to_dataset.main', 'labelme.app.MainWindow.scanAllImages', 'labelme.app.MainWindow._get_rgb_by_label', 'labelme.app.MainWindow.removeSelectedPoint', 'labelme.widgets.canvas.Canvas.keyPressEvent', 'labelme.widgets.file_dialog_preview.ScrollAreaPreview.setPixmap', 'labelme.widgets.canvas.Canvas.moveByKeyboard']

As for other packages, the APIs of @outside_package_name are called by labelme in the call graph and the dependencies on these packages also stay the same in our suggested versions, thus avoiding any outside conflict.

Therefore, we believe that it is quite safe to loose your dependency on labelme from "labelme==4.5.9" to "labelme>=4.5.0,<=4.5.9". This will improve the applicability of Labelme2YOLO and reduce the possibility of any further dependency conflict with other projects/packages.