Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
Arquivo: rule.py Projeto: ubarkai/rulu
 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)
Exemplo n.º 4
0
Arquivo: rule.py Projeto: ubarkai/rulu
 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)
Exemplo n.º 5
0
 def __init__(self, engine):
     self.engine = engine
     self.lock = Lock()
     self.logger = logger.getChild(type(self).__name__)
Exemplo n.º 6
0
 def __init__(self, engine):
     self.engine = engine
     self.lock = Lock()
     self.logger = logger.getChild(type(self).__name__)
Exemplo n.º 7
0
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):
Exemplo n.º 8
0
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
Exemplo n.º 9
0
 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)