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
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)
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)
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)
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))
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
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()
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()
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()
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()