applyDirConvention.py
46 lines
| 1.6 KiB
| text/x-python
|
PythonLexer
r0 | #!PYTHONEXE | |||
"""applyDirConvention.py is a script that will mark all experiments as | ||||
ignore if they violate the directory naming convention DDmmmYY[char]. | ||||
This script is meant to be used when installing Madrigal2.5, which drops | ||||
that convention. This means that if Madrigal administrators were previously | ||||
using this convention to hide experiment directories, they need to run this | ||||
script to use expTab.txt to hide them | ||||
$Id: applyDirConvention.py 7045 2019-10-07 19:56:46Z brideout $ | ||||
""" | ||||
import os, os.path, sys | ||||
import time | ||||
import madrigal.metadata | ||||
madDBObj = madrigal.metadata.MadrigalDB() | ||||
# create a list of all experiments, regardless of naming convention | ||||
allExpList = [] | ||||
fileList = madDBObj.getFileList(enforcePathConvention=0, includeNonDefault = 1) | ||||
for thisFile in fileList: | ||||
if os.path.dirname(thisFile) not in allExpList: | ||||
allExpList.append(os.path.dirname(thisFile)) | ||||
# create a list of all experiments that follow the DDmmmYY[char] convention | ||||
convExpList = [] | ||||
fileListConv = madDBObj.getFileList(enforcePathConvention=1, includeNonDefault = 1) | ||||
for thisFile in fileListConv: | ||||
if os.path.dirname(thisFile) not in convExpList: | ||||
convExpList.append(os.path.dirname(thisFile)) | ||||
# mark as ignore any from the first list not in the second | ||||
for exp in allExpList: | ||||
if exp not in convExpList: | ||||
print('Marking experiment <%s> as ignored' % (exp)) | ||||
expTab = os.path.join(exp, 'expTab.txt') | ||||
expObj = madrigal.metadata.MadrigalExperiment(madDBObj, expTab) | ||||
expObj.setSecurityByPosition(0, -1) | ||||
expObj.writeMetadata() | ||||