Inspector examples¶
These are some examples of Inspectors.
Example 1¶
import os
import re
from spacepy import pycdf
from dbprocessing import DBlogging
from dbprocessing import inspector
from dbprocessing import Version
class Inspector(inspector.inspector):
code_name = 'ect_L2_V1.0.0.py'
def inspect(self, kwargs):
re1 = r'{product_name}_\d\d\d\d\d\d\d\d.*.cdf$'.format(**kwargs)
if not re.match(re1, self.basename):
DBlogging.dblogger.debug("Inspector {0}: re did not match {1} {2}".format(self.code_name, re1, self.basename))
return None
try:
cdf = pycdf.CDF(self.filename)
except:
DBlogging.dblogger.debug("Inspector {0}: error in pycdf.CDF()".format(self.code_name))
return None # malformed file
try:
self.diskfile.params['utc_file_date'] = self.extract_YYYYMMDD().date()
except:
return None
## get the start time from the file
min_time = min([v[0] for v in cdf.values() if v.type() in (pycdf.const.CDF_EPOCH.value, pycdf.const.CDF_EPOCH16.value) and v.rv() and len(v) > 0])
max_time = max([v[-1] for v in cdf.values() if v.type() in (pycdf.const.CDF_EPOCH.value, pycdf.const.CDF_EPOCH16.value) and v.rv() and len(v) > 0])
self.diskfile.params['utc_start_time'] = min_time
self.diskfile.params['utc_stop_time'] = max_time
self.diskfile.params['version'] = inspector.extract_Version(self.basename)
return "That is not my dog." # anything that is not None is good
Example 2¶
import datetime
import os
import re
from dbprocessing import DBlogging
from dbprocessing import inspector
from dbprocessing import Version
class Inspector(inspector.inspector):
code_name = 'ephem_0_insp.py'
def inspect(self, kwargs):
re1 = r'.*{product_name}.*'.format(**kwargs)
if not re.match(re1, self.basename):
DBlogging.dblogger.debug("Inspector {0}: re did not match {1} {2}".format(self.code_name, re1, self.basename))
return None
try:
dt = self.extract_YYYYMMDD()
except:
return None
self.diskfile.params['utc_file_date'] = dt.date()
## get the start time from the file
min_time = dt
max_time = dt + datetime.timedelta(days=1) - datetime.timedelta(microseconds=1)
self.diskfile.params['utc_start_time'] = min_time
self.diskfile.params['utc_stop_time'] = max_time
try:
self.diskfile.params['version'] = Version.Version(1, 0, 0)
except:
return None
return "That is not my dog." # anything that is not None is good
Release: 0.1.0 Doc generation date: Feb 10, 2022