LSSTApplications  11.0-13-gbb96280,12.1+18,12.1+7,12.1-1-g14f38d3+72,12.1-1-g16c0db7+5,12.1-1-g5961e7a+84,12.1-1-ge22e12b+23,12.1-11-g06625e2+4,12.1-11-g0d7f63b+4,12.1-19-gd507bfc,12.1-2-g7dda0ab+38,12.1-2-gc0bc6ab+81,12.1-21-g6ffe579+2,12.1-21-gbdb6c2a+4,12.1-24-g941c398+5,12.1-3-g57f6835+7,12.1-3-gf0736f3,12.1-37-g3ddd237,12.1-4-gf46015e+5,12.1-5-g06c326c+20,12.1-5-g648ee80+3,12.1-5-gc2189d7+4,12.1-6-ga608fc0+1,12.1-7-g3349e2a+5,12.1-7-gfd75620+9,12.1-9-g577b946+5,12.1-9-gc4df26a+10
LSSTDataManagementBasePackage
TaskConfig.py
Go to the documentation of this file.
1 from __future__ import absolute_import
2 import lsst.pex.config as pexConfig
3 
4 # script template
5 
6 
7 class ScriptTemplateConfig(pexConfig.Config):
8  # input file
9  inputFile = pexConfig.Field("input file", str)
10  # key value pars to substitute for the template
11  keywords = pexConfig.DictField("key value pairs", keytype=str, itemtype=str, default=dict())
12  # output file for results of template substitution
13  outputFile = pexConfig.Field("output file", str)
14 
15 
16 # job template
17 class JobTemplateConfig(pexConfig.Config):
18  # job script template configuration
19  script = pexConfig.ConfigField("job script", ScriptTemplateConfig)
20  # condor template configuration
21  condor = pexConfig.ConfigField("template", ScriptTemplateConfig)
22 
23 # script
24 
25 
26 class ScriptConfig(pexConfig.Config):
27  # job script template
28  script = pexConfig.ConfigField("job script", ScriptTemplateConfig)
29 
30 # DAG generation script
31 
32 class DagGeneratorConfig(pexConfig.Config):
33  # DAG name
34  dagName = pexConfig.Field("dag name", str)
35  # script name
36  script = pexConfig.Field("script", str)
37  # input file
38  inputFile = pexConfig.Field("input", str)
39  # number of ids per job given to execute
40  idsPerJob = pexConfig.Field("the number of ids that will be handled per job", int)
41 
42 class SitesConfig(pexConfig.Config):
43  inputFile = pexConfig.Field("input", str)
44  outputFile = pexConfig.Field("output", str)
45  keywords = pexConfig.DictField("key value pairs", keytype=str, itemtype=str, default=dict())
46 
47 # DAX generation script
48 
49 class DaxGeneratorConfig(pexConfig.Config):
50  # DAG name
51  daxName = pexConfig.Field("dax name", str)
52  # script name
53  script = pexConfig.Field("script", str)
54  # input file
55  inputFile = pexConfig.Field("input", str)
56  # sites file
57  sites = pexConfig.ConfigField("sites", SitesConfig)
58  # transform file
59  transformFile = pexConfig.Field("transform", str)
60 
61 
62 typemap = {"dag": DagGeneratorConfig,
63  "dax": DaxGeneratorConfig }
64 
65 
66 # task
67 class TaskConfig(pexConfig.Config):
68  # script directory
69  scriptDir = pexConfig.Field("script directory", str)
70  # pre script (run before any jobs)
71  preScript = pexConfig.ConfigField("pre script", ScriptConfig)
72  # pre job script (run before each job)
73  preJob = pexConfig.ConfigField("pre job", JobTemplateConfig)
74  # post job script (run after each job)
75  postJob = pexConfig.ConfigField("post job", JobTemplateConfig)
76  # worker job configuration
77  workerJob = pexConfig.ConfigField("worker job", JobTemplateConfig)
78  # DAG generator script to use to create DAG submission file
79  generator = pexConfig.ConfigChoiceField("generator", typemap)