Coverage for pandalone.pndlcmd: 100%

# Coverage for pandalone.pndlcmd : 100%

## 32 statements 32 run 0 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #! doit -f # -*- coding: UTF-8 -*- # # Copyright 2015 European Commission (JRC); # Licensed under the EUPL (the 'Licence'); # You may not use this work except in compliance with the Licence. # You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl """ Usage: - Type ``doit list`` to see list of available tasks to run. - Type ``doit -v 2 <task>`` to run a task. """ ## Ideas also from: # https://realpython.com/blog/python/scaffold-a-flask-project/?utm_source=Python+Weekly+Newsletter&utm_campaign=dcba979511-Python_Weekly_Issue_189_April_30_2015&utm_medium=email&utm_term=0_9e26887fc5-dcba979511-312746653 from doit.exceptions import InvalidTask from doit.tools import create_folder import glob import os from pandalone import utils import shutil mydir = os.path.dirname(__file__) DOIT_CONFIG = { 'minversion': '0.24.0', 'default_tasks': [], } SAMPLES_FOLDER = os.path.join(mydir, 'sample_projects/') SAMPLE_NAMES = [os.path.splitext(f)[0] for f in glob.glob1(SAMPLES_FOLDER, "*")] SAMPLE_EXT = '.pndl' opt_sample = { 'help': 'name of the sample project;one of: %s' % SAMPLE_NAMES, 'name': 'sample', 'long': 'sample', 'type': str, 'default': 'simple_rpw', } def task_makesam(): """doit makesam [target_dir]: Create new sample pandalone project as `target_dir`. """ def copy_sample(sample, target_dir=None): if os.path.splitext(sample)[0] not in SAMPLE_NAMES: msg = '--sample: Unknown sample(%s)! Must be one of: %s' raise ValueError(msg % (sample, SAMPLE_NAMES)) sample_dir = utils.ensure_file_ext(sample, SAMPLE_EXT) if not target_dir: target_dir = sample_dir else: if len(target_dir) > 1: msg = 'Too many `target_dir`s! \n\nUsage: \n %s' raise InvalidTask(msg % task_makesam.__doc__) target_dir = target_dir[0] target_dir_unique = utils.make_unique_filename(target_dir) opening = ("Dir '%s' already exists! " % target_dir if target_dir != target_dir_unique else '') print('%sCopying %s --> %s' % (opening, sample_dir, target_dir_unique)) srcdir = os.path.join(SAMPLES_FOLDER, sample_dir) shutil.copytree(srcdir, target_dir_unique) shutil.copy(os.path.join(mydir, '..', '.gitignore'), target_dir_unique) return { 'actions': [copy_sample], 'params': [opt_sample, ], 'pos_arg': 'target_dir', }