Exemple #1
0
def create_command(args):
    project_dir = osp.abspath(args.dst_dir)

    project_env_dir = osp.join(project_dir, DEFAULT_CONFIG.env_dir)
    if osp.isdir(project_env_dir) and os.listdir(project_env_dir):
        if not args.overwrite:
            raise CliException("Directory '%s' already exists "
                "(pass --overwrite to overwrite)" % project_env_dir)
        else:
            shutil.rmtree(project_env_dir, ignore_errors=True)

    own_dataset_dir = osp.join(project_dir, DEFAULT_CONFIG.dataset_dir)
    if osp.isdir(own_dataset_dir) and os.listdir(own_dataset_dir):
        if not args.overwrite:
            raise CliException("Directory '%s' already exists "
                "(pass --overwrite to overwrite)" % own_dataset_dir)
        else:
            # NOTE: remove the dir to avoid using data from previous project
            shutil.rmtree(own_dataset_dir)

    project_name = args.name
    if project_name is None:
        project_name = osp.basename(project_dir)

    log.info("Creating project at '%s'" % project_dir)

    Project.generate(project_dir, {
        'project_name': project_name,
    })

    log.info("Project has been created at '%s'" % project_dir)

    return 0
Exemple #2
0
    def test_can_have_project_source(self):
        with TestDir() as test_dir:
            Project.generate(test_dir)

            project2 = Project()
            project2.add_source('project1', {
                'url': test_dir,
            })
            dataset = project2.make_dataset()

            self.assertTrue('project1' in dataset.sources)
Exemple #3
0
    def test_project_generate(self):
        src_config = Config({
            'project_name': 'test_project',
            'format_version': 1,
        })

        with TestDir() as test_dir:
            project_path = test_dir
            Project.generate(project_path, src_config)

            self.assertTrue(osp.isdir(project_path))

            result_config = Project.load(project_path).config
            self.assertEqual(src_config.project_name,
                             result_config.project_name)
            self.assertEqual(src_config.format_version,
                             result_config.format_version)
Exemple #4
0
    def convert(cls, extractor, save_dir, **kwargs):
        os.makedirs(save_dir, exist_ok=True)

        from datumaro.components.project import Project
        project = Project.generate(save_dir,
            config=kwargs.pop('project_config', None))

        DatumaroConverter.convert(extractor,
            save_dir=osp.join(
                project.config.project_dir, project.config.dataset_dir),
            **kwargs)
Exemple #5
0
    def __call__(self, extractor, save_dir):
        os.makedirs(save_dir, exist_ok=True)

        from datumaro.components.project import Project
        project = Project.generate(save_dir, config=self._config)

        converter = project.env.make_converter('datumaro',
                                               save_images=self._save_images)
        converter(extractor,
                  save_dir=osp.join(project.config.project_dir,
                                    project.config.dataset_dir))
Exemple #6
0
def create_command(args):
    project_dir = osp.abspath(args.dst_dir)
    project_path = make_project_path(project_dir)
    if not args.overwrite and osp.isfile(project_path):
        log.error("Project file '%s' already exists" % (project_path))
        return 1

    project_name = args.name
    if project_name is None:
        project_name = osp.basename(project_dir)

    log.info("Creating project at '%s'" % (project_dir))

    Project.generate(project_dir, {
        'project_name': project_name,
    })

    log.info("Project has been created at '%s'" % (project_dir))

    return 0
Exemple #7
0
    def _create(self):
        self._project = Project.generate(self._project_dir)
        self._project.add_source('task_%s' % self._db_task.id, {
            'format': _TASK_IMAGES_EXTRACTOR,
        })
        self._project.env.extractors.register(_TASK_IMAGES_EXTRACTOR,
            lambda url: CvatImagesExtractor(url,
                FrameProvider(self._db_task.data)))

        self._init_dataset()
        self._dataset.define_categories(self._generate_categories())

        self.save()
Exemple #8
0
    def _create(self):
        self._project = Project.generate(self._project_dir)
        self._project.add_source('task_%s' % self._db_task.id, {
            'url': self._db_task.get_data_dirname(),
            'format': _TASK_IMAGES_EXTRACTOR,
        })
        self._project.env.extractors.register(_TASK_IMAGES_EXTRACTOR,
            CvatImagesDirExtractor)

        self._init_dataset()
        self._dataset.define_categories(self._generate_categories())

        self.save()
Exemple #9
0
    def _import_from_task(self, user):
        self._project = Project.generate(self._project_dir)

        self._project.add_source(
            'task_%s_images' % self._db_task.id, {
                'url': self._db_task.get_data_dirname(),
                'format': _TASK_IMAGES_EXTRACTOR,
            })
        self._project.env.extractors.register(_TASK_IMAGES_EXTRACTOR,
                                              CvatImagesDirExtractor)

        self._project.add_source('task_%s_anno' % self._db_task.id, {
            'format': _TASK_ANNO_EXTRACTOR,
        })
        self._project.env.extractors.register(
            _TASK_ANNO_EXTRACTOR, lambda url: CvatTaskExtractor(
                url, db_task=self._db_task, user=user))

        self._init_dataset()
Exemple #10
0
    def _import_from_task(self, user):
        self._project = Project.generate(self._project_dir, config={
            'project_name': self._db_task.name,
            'plugins_dir': _FORMATS_DIR,
        })

        self._project.add_source('task_%s_images' % self._db_task.id, {
            'format': _TASK_IMAGES_EXTRACTOR,
        })
        self._project.env.extractors.register(_TASK_IMAGES_EXTRACTOR,
            lambda url: CvatImagesExtractor(url,
                FrameProvider(self._db_task.data)))

        self._project.add_source('task_%s_anno' % self._db_task.id, {
            'format': _TASK_ANNO_EXTRACTOR,
        })
        self._project.env.extractors.register(_TASK_ANNO_EXTRACTOR,
            lambda url: CvatTaskExtractor(url,
                db_task=self._db_task, user=user))

        self._init_dataset()