Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sort the imports in the split configuration #32904

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 5 additions & 2 deletions FWCore/ParameterSet/python/Config.py
Expand Up @@ -1034,7 +1034,10 @@ def splitPython(self, options = PrintOptions()):
sub = options.targetDirectory + '/' + sub
files[sub + '/__init__.py'] = ''

for (name, (subfolder, code)) in six.iteritems(parts):
# case insensitive sort by subfolder and module name
parts = sorted(parts.items(), key = lambda nsc: (nsc[1][0].lower() if nsc[1][0] else '', nsc[0].lower()))

for (name, (subfolder, code)) in parts:
filename = name + '_cfi'
if options.useSubdirectories and subfolder:
filename = subfolder + '/' + filename
Expand All @@ -1045,7 +1048,7 @@ def splitPython(self, options = PrintOptions()):

if self.schedule_() is not None:
options.isCfg = True
result += 'process.schedule = ' + self.schedule.dumpPython(options)
result += '\nprocess.schedule = ' + self.schedule.dumpPython(options)

imports = specialImportRegistry.getSpecialImports()
if len(imports) > 0:
Expand Down
14 changes: 7 additions & 7 deletions FWCore/ParameterSet/python/SequenceTypes.py
Expand Up @@ -211,7 +211,7 @@ def _replaceIfHeldDirectly(self,original,replacement):


def findDirectDependencies(element, collection):
dependencies = []
dependencies = set()
for item in collection:
# skip null items
if item is None:
Expand All @@ -223,23 +223,23 @@ def findDirectDependencies(element, collection):
# cms.ignore(module), ~(module)
elif isinstance(item, (_SequenceIgnore, _SequenceNegation)):
if isinstance(item._operand, _SequenceCollection):
dependencies += item.directDependencies()
dependencies.update(item.directDependencies())
continue
t = 'modules'
# _SequenceCollection
elif isinstance(item, _SequenceCollection):
dependencies += item.directDependencies()
dependencies.update(item.directDependencies())
continue
# cms.Sequence
elif isinstance(item, Sequence):
if not item.hasLabel_():
dependencies += item.directDependencies()
dependencies.update(item.directDependencies())
continue
t = 'sequences'
# cms.Task
elif isinstance(item, Task):
if not item.hasLabel_():
dependencies += item.directDependencies()
dependencies.update(item.directDependencies())
continue
t = 'tasks'
# SequencePlaceholder and TaskPlaceholder do not add an explicit dependency
Expand All @@ -249,8 +249,8 @@ def findDirectDependencies(element, collection):
else:
sys.stderr.write("Warning: unsupported element '%s' in %s '%s'\n" % (str(item), type(element).__name__, element.label_()))
continue
dependencies.append((t, item.label_()))
return dependencies
dependencies.add((t, item.label_()))
return sorted(dependencies, key = lambda t_item: (t_item[0].lower(), t_item[1].lower().replace('_cfi', '')))


class _ModuleSequenceType(_ConfigureComponent, _Labelable):
Expand Down