misc/cwfs/cwfs.py
changeset 10669 155c29e0ed1c
parent 5424 8ecbcbff9777
child 10907 9ae707db5265
equal deleted inserted replaced
10668:4fb62d791073 10669:155c29e0ed1c
    78         self._attr = None
    78         self._attr = None
    79         self._rel = None
    79         self._rel = None
    80         self._restrictions = []
    80         self._restrictions = []
    81 
    81 
    82     def parse(self) :
    82     def parse(self) :
    83         self._entity = self._components.next()
    83         self._entity = next(self._components)
    84         try:
    84         try:
    85             self.process_entity()
    85             self.process_entity()
    86         except StopIteration :
    86         except StopIteration :
    87             pass
    87             pass
    88 
    88 
    89     def process_entity(self) :
    89     def process_entity(self) :
    90         _next = self._components.next()
    90         _next = next(self._components)
    91         if _next in self.schema.get_attrs(self._entity) :
    91         if _next in self.schema.get_attrs(self._entity) :
    92             self._attr = _next
    92             self._attr = _next
    93             _next = self._components.next()
    93             _next = next(self._components)
    94             self._restrictions.append( (self._entity, self._attr, _next) )
    94             self._restrictions.append( (self._entity, self._attr, _next) )
    95             self._attr = None
    95             self._attr = None
    96             self._rel = None
    96             self._rel = None
    97             self.process_entity()
    97             self.process_entity()
    98 
    98 
   134         self._restrictions = []
   134         self._restrictions = []
   135         self._alphabet = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
   135         self._alphabet = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
   136 
   136 
   137     def parse(self):
   137     def parse(self):
   138         self._var = self._alphabet.pop(0)
   138         self._var = self._alphabet.pop(0)
   139         self._e_type = self._components.next()
   139         self._e_type = next(self._components)
   140         e_type = self._e_type.capitalize()
   140         e_type = self._e_type.capitalize()
   141         self._restrictions.append('%s is %s' % (self._var, e_type))
   141         self._restrictions.append('%s is %s' % (self._var, e_type))
   142         try:
   142         try:
   143             self.process_entity()
   143             self.process_entity()
   144         except StopIteration :
   144         except StopIteration :
   145             pass
   145             pass
   146         return 'Any %s WHERE %s' % (self._var, ', '.join(self._restrictions))
   146         return 'Any %s WHERE %s' % (self._var, ', '.join(self._restrictions))
   147 
   147 
   148     def process_entity(self) :
   148     def process_entity(self) :
   149         _next = self._components.next()
   149         _next = next(self._components)
   150         if _next in self.schema.get_attrs(self._e_type) :
   150         if _next in self.schema.get_attrs(self._e_type) :
   151             attr = _next
   151             attr = _next
   152             try:
   152             try:
   153                 _next = self._components.next()
   153                 _next = next(self._components)
   154                 self._restrictions.append('%s %s %s' % (self._var, attr, _next))
   154                 self._restrictions.append('%s %s %s' % (self._var, attr, _next))
   155             except StopIteration:
   155             except StopIteration:
   156                 a_var = self._alphabet.pop(0)
   156                 a_var = self._alphabet.pop(0)
   157                 self._restrictions.append('%s %s %s' % (self._var, attr, a_var) )
   157                 self._restrictions.append('%s %s %s' % (self._var, attr, a_var) )
   158                 self._var = a_var
   158                 self._var = a_var
   161             rel = _next
   161             rel = _next
   162             r_var = self._alphabet.pop(0)
   162             r_var = self._alphabet.pop(0)
   163             self._restrictions.append('%s %s %s' % (self._var, rel, r_var))
   163             self._restrictions.append('%s %s %s' % (self._var, rel, r_var))
   164             self._var = r_var
   164             self._var = r_var
   165             try:
   165             try:
   166                 _next = self._components.next()
   166                 _next = next(self._components)
   167                 self._restrictions.append('%s is %s' % (r_var, _next.capitalize()))
   167                 self._restrictions.append('%s is %s' % (r_var, _next.capitalize()))
   168             except StopIteration:
   168             except StopIteration:
   169                 raise
   169                 raise
   170         self.process_entity()
   170         self.process_entity()
   171 
   171