def task_compile_requirements():
return {
'actions': ['pip-compile --output-file %(targets)s %(dependencies)s'],
'file_dep': ['requirements.in'],
'targets': ['requirements.txt'],
}
from doit.tools import run_oncefrom doit.action import CmdAction
first_run = False
def task__set_first_run(): def action(): global first_run first_run = True
return { 'actions': [action], 'uptodate': [run_once] }
def task_compile_requirements(): def create_cmd(): if first_run: return '' else: return 'pip-compile --output-file %(targets)s %(dependencies)s' return { 'actions': [CmdAction(create_cmd)],
'file_dep': ['requirements.in'], 'targets': ['requirements.txt'],
'task_dep': ['_set_first_run'], }
Ad. 1. Removing checking if this is first run of doit.Ad. 2. Removing auto running of pip-compilation (removing this task from `DOIT_CONFIG.default_tasks` and from other tasks dependencies) .Ad. 3. Removing `requirements.in` dependency (file_dep).
DOIT_CONFIG = { 'default_tasks': [],}
def task_compile_requirements(): return { 'actions': ['pip-compile --output-file %(targets)s requirements.in'], 'targets': ['requirements.txt'], }