2018-08-05 22:21:49 +02:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import click
|
|
|
|
import logging
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import pandas as pd
|
|
|
|
from shutil import copyfile
|
|
|
|
from pathlib import Path
|
|
|
|
from dotenv import find_dotenv, load_dotenv
|
|
|
|
|
|
|
|
load_dotenv(find_dotenv())
|
|
|
|
|
|
|
|
@click.command()
|
|
|
|
@click.argument('R_COLLECTIONS_PROJECT', type=click.Path(exists=True), default=os.getenv('R_COLLECTIONS_PROJECT'))
|
|
|
|
def main(r_collections_project):
|
|
|
|
""" Synchronize my labeled image from another project with this one
|
|
|
|
"""
|
|
|
|
|
|
|
|
logger.info('Synchronize labeled images')
|
|
|
|
|
|
|
|
try:
|
|
|
|
imgs = get_unique_imgs(r_collections_project)
|
|
|
|
cp_imgs(r_collections_project, imgs)
|
|
|
|
except:
|
|
|
|
logger.error(sys.exc_info()[0])
|
|
|
|
exit()
|
|
|
|
|
|
|
|
|
|
|
|
def get_unique_imgs(r_collections_project):
|
|
|
|
|
|
|
|
logger.info('Copy reference file')
|
|
|
|
copyfile(
|
|
|
|
os.path.join(r_collections_project, 'datas', 'Export', 'references_labels.csv'),
|
|
|
|
os.path.join(str(project_dir), "data", "external", "refs", "references_labels.csv")
|
|
|
|
)
|
|
|
|
refs = pd.read_csv(os.path.join(str(project_dir), 'data', 'external', 'refs', 'references_labels.csv'))
|
|
|
|
imgs = refs.image.unique()
|
|
|
|
|
|
|
|
return(imgs)
|
|
|
|
|
|
|
|
|
|
|
|
def cp_imgs(r_collections_project, imgs):
|
|
|
|
|
|
|
|
logger.info('Synchronize images')
|
|
|
|
|
|
|
|
img_path = os.path.join(r_collections_project, 'datas', 'Collections')
|
|
|
|
|
|
|
|
i = 0
|
|
|
|
img_len = len(imgs)
|
|
|
|
|
|
|
|
for img in imgs:
|
|
|
|
i += 1
|
|
|
|
logger.info('Synchronize image {} {}/{}'.format(img, i, img_len))
|
|
|
|
if(os.path.isfile(os.path.join(img_path, img))):
|
|
|
|
copyfile(
|
|
|
|
os.path.join(img_path, img),
|
|
|
|
os.path.join(str(project_dir), "data", "external", "collections", img)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
log_fmt = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
|
|
logging.basicConfig(level=logging.INFO, format=log_fmt)
|
|
|
|
|
|
|
|
project_dir = Path(__file__).resolve().parents[2]
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
2018-08-09 01:24:30 +02:00
|
|
|
main()
|