Between pre3 and pre4 of 14_1_0, there is the following change in fillDescriptions-generated cfipython files, for example:
pre3:
cat $CMSSW_RELEASE_BASE/cfipython/el8_amd64_gcc12/Alignment/CommonAlignment/apvModeFilter_cfi.py
import FWCore.ParameterSet.Config as cms
apvModeFilter = cms.EDFilter('APVModeFilter',
apvMode = cms.untracked.string('deco'),
mightGet = cms.optional.untracked.vstring
)
while in pre4:
cat $CMSSW_RELEASE_BASE/cfipython/el8_amd64_gcc12/Alignment/CommonAlignment/apvModeFilter_cfi.py
import FWCore.ParameterSet.Config as cms
from .APVModeFilter import APVModeFilter
apvModeFilter = APVModeFilter()
The pre4 version breaks ConfDb parsing with the error message:
Scanning package: /cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre4//cfipython/el8_amd64_gcc12/Alignment/CommonAlignment
Traceback (most recent call last):
File "/data/user/gruen/ConfDb/CMSSW_14_1_0_pre4/hlt-confdb/parser/./ConfdbLoadParamsFromConfigsPy3.py", line 1879, in <module>
main(sys.argv[1:])
File "/data/user/gruen/ConfDb/CMSSW_14_1_0_pre4/hlt-confdb/parser/./ConfdbLoadParamsFromConfigsPy3.py", line 191, in main
confdbjob.BeginJob()
File "/data/user/gruen/ConfDb/CMSSW_14_1_0_pre4/hlt-confdb/parser/./ConfdbLoadParamsFromConfigsPy3.py", line 483, in BeginJob
self.ExtendTheCfi(validatedpyfile, validatedpydir, allowmultiplecfis, usepythonsubdir)
File "/data/user/gruen/ConfDb/CMSSW_14_1_0_pre4/hlt-confdb/parser/./ConfdbLoadParamsFromConfigsPy3.py", line 717, in ExtendTheCfi
exec(importcommand)
File "<string>", line 1, in <module>
File "/cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre4//cfipython/el8_amd64_gcc12/Alignment/CommonAlignment/apvModeFilter_cfi.py", line 3, in <module>
from .APVModeFilter import APVModeFilter
ImportError: attempted relative import with no known parent package
Clearly this is a problem.
It seems the issue is with from .APVModeFilter import APVModeFilter, the leading '.' syntax.
Can it be reverted or done differently?
For example, defining the parent package explicitly in the py file, or giving a full path in the import statement?
Between pre3 and pre4 of 14_1_0, there is the following change in fillDescriptions-generated cfipython files, for example:
pre3:
while in pre4:
The pre4 version breaks ConfDb parsing with the error message:
Clearly this is a problem.
It seems the issue is with
from .APVModeFilter import APVModeFilter, the leading '.' syntax.Can it be reverted or done differently?
For example, defining the
parent packageexplicitly in the py file, or giving a full path in the import statement?