def __init__(self): self.environment = clips.Environment() self.logger = logger.getChild(type(self).__name__) self.clips_types = {} self.preprocess_funcs = [] self.postprocess_funcs = [] RuleFunc._register_engine(self)
def build(self, engine): if self.target is not None: self._init_target(engine) self._init_aggregators(engine) if self.python_actions: target_name = self.target._name if self.target else None self._add_python_action(engine) if self.name is None: self.name = '_anonymous_rule' rule_num = sum(1 for rule_name in engine.get_rule_names() if rule_name.startswith(self.name+'@')) self.clips_name = '{}@{}'.format(self.name, rule_num+1) lhs = self._build_lhs() rhs = self._build_rhs() logger.getChild('rule').debug('Creating rule: %s\n<%s\n%s\n%s>\n%s', self.clips_name, '='*20, lhs, '='*20, rhs) self.clips_rule = engine.environment.BuildRule(self.clips_name, lhs, rhs, self.comments) for secondary_rule in self.secondary_rules: secondary_rule.build(engine)
def build(self, engine): if self.target is not None: self._init_target(engine) self._init_aggregators(engine) if self.python_actions: target_name = self.target._name if self.target else None self._add_python_action(engine) if self.name is None: self.name = '_anonymous_rule' rule_num = sum(1 for rule_name in engine.get_rule_names() if rule_name.startswith(self.name + '@')) self.clips_name = '{}@{}'.format(self.name, rule_num + 1) lhs = self._build_lhs() rhs = self._build_rhs() logger.getChild('rule').debug('Creating rule: %s\n<%s\n%s\n%s>\n%s', self.clips_name, '=' * 20, lhs, '=' * 20, rhs) self.clips_rule = engine.environment.BuildRule(self.clips_name, lhs, rhs, self.comments) for secondary_rule in self.secondary_rules: secondary_rule.build(engine)
def __init__(self, engine): self.engine = engine self.lock = Lock() self.logger = logger.getChild(type(self).__name__)
from utils import RuleEngineError, logger from progress_bar import LogProgressBar try: import xlwt except ImportError: raise NotImplementedError("xlwt must be installed to support export to Excel") _logger = logger.getChild(__name__) class ExportSheetWriter(object): def __init__(self, workbook, sheet_name, max_rows_in_sheet): self.workbook = workbook self.sheet_name = sheet_name[:30] self.max_rows = max_rows_in_sheet - 1 self.nrows = 0 def _init_sheet(self, fact): self.sheet = self.workbook.add_sheet(self.sheet_name) self.fields = sorted(fact) for nfield, field in enumerate(self.fields): self.sheet.write(self.nrows, nfield, field) def write_fact(self, fact): if self.nrows == 0: self._init_sheet(fact) elif self.nrows >= self.max_rows: return self.nrows += 1 for nfield, field in enumerate(self.fields):
from utils import RuleEngineError, logger from progress_bar import LogProgressBar try: import xlwt except ImportError: raise NotImplementedError( 'xlwt must be installed to support export to Excel') _logger = logger.getChild(__name__) class ExportSheetWriter(object): def __init__(self, workbook, sheet_name, max_rows_in_sheet): self.workbook = workbook self.sheet_name = sheet_name[:30] self.max_rows = max_rows_in_sheet - 1 self.nrows = 0 def _init_sheet(self, fact): self.sheet = self.workbook.add_sheet(self.sheet_name) self.fields = sorted(fact) for nfield, field in enumerate(self.fields): self.sheet.write(self.nrows, nfield, field) def write_fact(self, fact): if self.nrows == 0: self._init_sheet(fact) elif self.nrows >= self.max_rows: return self.nrows += 1
def _build(cls, engine): if not cls._fields: raise RuleEngineError('{} has no fields'.format(cls._name)) logger.getChild('slots').debug('Building: %s, slots: %s', cls._name, cls._slots) cls._environment = engine.environment engine.register_clips_type(cls)