Skip to content

Sort json file processing in labelme2voc.py #750

Sort json file processing in labelme2voc.py

Sort json file processing in labelme2voc.py #750

Workflow file for this run

name: ci
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ['3.9']
PYTEST_QT_API: [pyqt5, pyside2]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
# - name: Install system dependencies
# shell: bash -l {0}
# run: |
# if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
# sudo apt-get install -y coreutils
# sudo apt-get install -y xvfb herbstluftwm
# elif [ "${{ matrix.os }}" = "macos-latest" ]; then
# brew install coreutils
# brew install --cask xquartz
# fi
- name: Set up Python
shell: bash -l {0}
run: |
conda install -q -y python=${{ matrix.python-version }}
which python
python --version
pip --version
- name: Install dependencies
shell: bash -l {0}
run: |
if [ "${{ matrix.PYTEST_QT_API }}" = "pyside2" ]; then
conda install -q -y pyside2 -c conda-forge
# should be installed via pip
# else
# conda install -q -y pyqt=5
fi
pip install -r requirements-dev.txt
- name: Install main
shell: bash -l {0}
run: |
pip install .
- name: Lint with flake8
shell: bash -l {0}
if: matrix.os != 'windows-latest'
run: |
flake8 labelme/
- name: Black
shell: bash -l {0}
if: matrix.os != 'windows-latest'
run: |
black --line-length 79 --check --diff labelme/
- name: Test with pytest
shell: bash -l {0}
if: matrix.os != 'windows-latest' && !(matrix.os == 'macos-latest' && matrix.PYTEST_QT_API == 'pyside2')
env:
PYTEST_QT_API: ${{ matrix.PYTEST_QT_API }}
MPLBACKEND: 'agg'
run: |
# # open virtual display
# if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
# export DISPLAY=:99.0
# /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX +render -noreset
# (herbstluftwm )&
# else
# (sudo Xvfb :99 -ac -screen 0 1024x768x8 )&
# fi
pytest -vs -m 'not gui' tests/
- name: Run examples
shell: bash -l {0}
if: matrix.os != 'windows-latest'
env:
MPLBACKEND: agg
run: |
labelme --help
labelme --version
(cd examples/primitives && labelme_json_to_dataset primitives.json && rm -rf primitives_json)
(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 data_annotated data_dataset_voc --labels labels.txt && git checkout -- .)
(cd examples/instance_segmentation && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .)
(cd examples/video_annotation && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .)
pip install lxml # for bbox_detection/labelme2voc.py
(cd examples/bbox_detection && rm -rf data_dataset_voc && ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt && git checkout -- .)
pip install cython && pip install pycocotools # for instance_segmentation/labelme2coco.py
(cd examples/instance_segmentation && rm -rf data_dataset_coco && ./labelme2coco.py data_annotated data_dataset_coco --labels labels.txt && git checkout -- .)
- name: Run pyinstaller
shell: bash -l {0}
if: matrix.PYTEST_QT_API == 'pyqt5'
run: |
# Build the standalone executable
pip install pyinstaller
pyinstaller labelme.spec
dist/labelme --version