kwcoco.cli.coco_modify_categories module

class kwcoco.cli.coco_modify_categories.CocoModifyCatsCLI(*args, **kwargs)[source]

Bases: DataConfig

Remove, rename, reorder, re-id, or coarsen categories.

Valid options: []

Parameters:
  • *args – positional arguments for this data config

  • **kwargs – keyword arguments for this data config

classmethod main(cmdline=True, **kw)[source]

Example

>>> from kwcoco.cli.coco_modify_categories import *  # NOQA
>>> import kwcoco
>>> import ubelt as ub
>>> dpath = ub.Path.appdir('kwcoco/tests/coco_modify_categories').ensuredir()
>>> old_dset = kwcoco.CocoDataset.demo('special:shapes8')
>>> dst_fpath = dpath / 'modified_category.kwcoco.zip'
>>> kw = {'src': old_dset.fpath, 'dst': dst_fpath, 'keep': []}
>>> cmdline = False
>>> cls = CocoModifyCatsCLI
>>> cls.main(cmdline=cmdline, **kw)
>>> assert dst_fpath.exists()
>>> new_dset = kwcoco.CocoDataset(dst_fpath)
>>> assert len(new_dset.cats) == 0

Example

>>> # xdoctest: +REQUIRES(module:kwutil)
>>> from kwcoco.cli.coco_modify_categories import *  # NOQA
>>> import kwcoco
>>> import ubelt as ub
>>> dpath = ub.Path.appdir('kwcoco/tests/coco_modify_categories').ensuredir()
>>> old_dset = kwcoco.CocoDataset.demo('special:shapes8')
>>> dst_fpath = dpath / 'modified_category.kwcoco.zip'
>>> kw = {
>>>     'src': old_dset.fpath,
>>>     'dst': dst_fpath,
>>>     'start_id': 3,
>>>     'order': 'sort',
>>> }
>>> cmdline = False
>>> cls = CocoModifyCatsCLI
>>> cls.main(cmdline=cmdline, **kw)
>>> assert dst_fpath.exists()
>>> new_dset = kwcoco.CocoDataset(dst_fpath)
>>> assert min(new_dset.categories().lookup('id')) == 3
>>> names = new_dset.categories().lookup('name')
>>> assert sorted(names) == names

Example

>>> # xdoctest: +SKIP
>>> kw = {'src': 'special:shapes8'}
>>> cmdline = False
>>> cls = CocoModifyCatsCLI
>>> cls.main(cmdline, **kw)
default = {'compress': <Value('auto')>, 'dst': <Value(None)>, 'keep': <Value(None)>, 'keep_annots': <Value(False)>, 'order': <Value(None)>, 'remove': <Value(None)>, 'remove_empty_images': <Value(False)>, 'rename': <Value(None)>, 'src': <Value(None)>, 'start_id': <Value(None)>, 'verbose': <Value(True)>}