[Checkins] SVN: Sandbox/ocql-foliage/trunk/src/te those got moved
Adam Groszer
agroszer at gmail.com
Thu May 29 05:35:01 EDT 2008
Log message for revision 87008:
those got moved
Changed:
D Sandbox/ocql-foliage/trunk/src/temp.py
D Sandbox/ocql-foliage/trunk/src/test.py
D Sandbox/ocql-foliage/trunk/src/test2.py
D Sandbox/ocql-foliage/trunk/src/test_parser.py
D Sandbox/ocql-foliage/trunk/src/testalgebra.py
D Sandbox/ocql-foliage/trunk/src/testdb.py
-=-
Deleted: Sandbox/ocql-foliage/trunk/src/temp.py
===================================================================
--- Sandbox/ocql-foliage/trunk/src/temp.py 2008-05-29 04:14:05 UTC (rev 87007)
+++ Sandbox/ocql-foliage/trunk/src/temp.py 2008-05-29 09:34:59 UTC (rev 87008)
@@ -1,90 +0,0 @@
-# -*- coding: UTF-8 -*-
-
-from testdb import TestMetadata
-import operator
-
-metadata = TestMetadata(None)
-
-#reduce(set.union,
-# map(lambda c: reduce(set.union,
-# map(lambda d: (
-# (d.name=="Computing Science") and
-# (((d==set(filter(lambda i: i.runBy,c))) and
-# (((c.credits<=3) and (((1<=c.credits) and
-# (set([c])) or (set()))) or (set()))) or
-# (set()))) or (set())),
-# set(metadata.getAll("IDepartments"))) ,
-# set()),set(metadata.getAll("ICurses"))) ,
-# set())
-
-
-#map(lambda c: reduce(set.union,
-# map(lambda d: ((d.name=="Computing Science")),
-# set(metadata.getAll("IDepartments"))), set()),set(metadata.getAll("ICurses")))
-
-#x = reduce(set.union,
-# map(lambda c: reduce(set.union,
-# map(lambda d: (
-# (d.name=="Computing Science")
-# and (d==set(filter(lambda i: i.runBy,c)))
-# and (set([c]))
-# or (set())) ,
-# set(metadata.getAll("IDepartments"))) ,
-# set()),set(metadata.getAll("ICurses"))) ,
-# set())
-
-#x = reduce(set.union,
-# map(lambda c: reduce(set.union,
-# map(lambda d: (
-# (d.name=="Computing Science")
-# and (set([c]))
-# or (set())) ,
-# set(metadata.getAll("IDepartments"))) ,
-# set()),set(metadata.getAll("ICurses"))) ,
-# set())
-
-#x=reduce(set.union,
-# map(lambda c: reduce(set.union,
-# map(lambda d: (
-# (d.name=="Computing Science") and
-# (((d==set(filter(lambda i: i.runBy,[c]))) and
-# (
-# (
-# (c.credits<=3)
-# and (
-# (
-# (1<=c.credits)
-# and
-# (set([c]))
-# or (set())
-# )
-# ) or (set())
-# )
-# ) or
-# (set()))) or (set())),
-# set(metadata.getAll("IDepartments"))) ,
-# set()),set(metadata.getAll("ICurses"))) ,
-# set())
-#
-#
-#x = reduce(set.union,
-# map(lambda c: reduce(set.union,
-# map(lambda d: (
-# (d.name=="Computing Science") and
-# ((((reduce(operator.or_, map(lambda i: i==d, c.runBy), False))) and
-# ((((
-# (set([c])) or (set()))) or (set()))) or
-# (set()))) or (set())),
-# set(metadata.getAll("IDepartments"))) ,
-# set()),set(metadata.getAll("ICurses"))) ,
-# set())
-
-x = reduce(set.union, map(lambda c: reduce(set.union, map(lambda d:
- ((d.name=="Computing Science") and (((reduce(operator.or_,map(lambda i:
- i==d,c.runBy),False)) and (((c.credits<=3) and (((1<=c.credits) and
- (set([c])) or (set()))) or (set()))) or (set()))) or
- (set())),set(metadata.getAll("IDepartments"))) ,
- set()),set(metadata.getAll("ICurses"))) , set())
-
-for i in x:
- print i.name
Deleted: Sandbox/ocql-foliage/trunk/src/test.py
===================================================================
--- Sandbox/ocql-foliage/trunk/src/test.py 2008-05-29 04:14:05 UTC (rev 87007)
+++ Sandbox/ocql-foliage/trunk/src/test.py 2008-05-29 09:34:59 UTC (rev 87008)
@@ -1,30 +0,0 @@
-from ocql import OCQLEngine
-engine = OCQLEngine()
-
-query = engine.compile("""set [ c in ICurses; d in IDepartments; d.name="Computing Science"; d = some c.runBy; 1<=c.credits; c.credits <= 3 | c ]""")
-res = query.execute()
-
-for i in res:
- print i.code
-
-#q=Iter(set, Lambda('d',
-# If(Eq(Identifier('d.name'),Identifier('"Computing Science"')),
-# Single(set,Identifier('x')),
-# Empty(set,None)
-# )
-# ), Collection('IDepartments'))
-#
-#q=Iter(set,
-# If('d.name="Computing Science"',
-# Select(set, Lambda('c',
-# And(Reduce(set, 'False', Lambda('d','d=i'), Or, 'c.runBy'),
-# '1<=c.credits',
-# 'c.credits<=3')),
-# ICurses),
-# Empty(set,None)),
-# Collection('IDepartments'))
-#
-#m = q.compile()
-#print m
-#c = compile(m,'','eval')
-#print eval(c)
Deleted: Sandbox/ocql-foliage/trunk/src/test2.py
===================================================================
--- Sandbox/ocql-foliage/trunk/src/test2.py 2008-05-29 04:14:05 UTC (rev 87007)
+++ Sandbox/ocql-foliage/trunk/src/test2.py 2008-05-29 09:34:59 UTC (rev 87008)
@@ -1,455 +0,0 @@
-import testdb
-from ocql.engine.queryobject import *
-from ocql.engine.queryparser import SymbolContainer
-import operator
-import testalgebra
-from ocql.ocqlengine import OCQLEngine
-from ocql.engine.runnablequery import RunnableQuery
-
-engine = OCQLEngine()
-
-def doone(query, qo, expected):
- print "==============="
- print "query:",query
-
- algebra=qo.rewrite(testalgebra)
-
- print "algebra:",algebra
-
- code=algebra.compile();
- compile(code,'<string>','eval')
- q = RunnableQuery(engine,algebra,code)
-
- print "code:",code
- print "---------------"
- print "got: ", q.execute()
- print "expected:", expected
-
-
-def test2():
- metadata = engine.metadata
- metadata.symbols = SymbolContainer()
-
- #
- # Simple empty query
- #
- # set [ ]
- #
- query = "set [ ]"
- qo=Query(metadata,
- set,
- [] ,
- Identifier(metadata,
- '') )
-
- doone(query, qo, set([]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Simple SELECT ALL
- #
- # set [ c in ICurses | c ]
- #
- query = "[ c in ICurses | c ]"
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- ] ,Identifier(metadata,'c') )
-
- doone(query, qo, set([ "C1" , "C2", "C3" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Selecting a property
- #
- # set [ c in ICurses | c.code ]
- #
- query = "[ c in ICurses | c.code ]"
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- ] ,Identifier(metadata,'c.code') )
-
- doone(query, qo, set([ "C1" , "C2", "C3" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Filtering -- empty result
- #
- # set [ c in ICurses , c.credits>3 | c.code ]
- #
- query = "[ c in ICurses, c.credits>3 | c.code ]"
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Gt(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'3')),
- ] ,Identifier(metadata, 'c.code') )
-
- doone(query, qo, set([]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Filtering -- full result
- #
- # set [ c in ICurses , c.credits<=3 | c.code ]
- #
- query = "[ c in ICurses, c.credits<=3 | c.code ]"
- qo=Query(
- metadata,
- set, [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Le(metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'3')),
- ] ,Identifier(metadata,'c.code'))
-
- doone(query, qo, set([ "C1" , "C2", "C3" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Filtering -- one result
- #
- # set [ c in ICurses , c.credits=3 | c.code ]
- #
- query = "[ c in ICurses, c.credits=3 | c.code ]"
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Eq(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'3')),
- ] ,Identifier(metadata,'c.code'))
-
- doone(query, qo, set([ "C2", "C3" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Two filters -- full results
- #
- # set [ c in ICurses , c.credits<5, c.credits >=1 | c.code ]
- #
- query = "[ c in ICurses, c.credits<3, c.credits>=1 | c.code ]"
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Lt(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'5')),
- Ge(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'1')),
- ] ,Identifier(metadata, 'c.code'))
-
- doone(query, qo, set([ "C1", "C2", "C3" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Two filters -- one result
- #
- # set [ c in ICurses , c.credits<=2, 2<=c.credits | c.code ]
- #
- query = "[ c in ICurses, c.credits<=2, 2<=c.credits | c.code ]"
- qo=Query(
- metadata,
- set, [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Le(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'2')),
- Le(
- metadata,
- Constant(metadata,'2'),
- Identifier(metadata,'c.credits')),
- ] ,Identifier(metadata,'c.code'))
-
- doone(query, qo, set([ "C1" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Two filters -- one result
- #
- # set [ c in ICurses , c.credits>=2, 2>=c.credits | c.code ]
- #
- query = "[ c in ICurses, c.credits>=2, 2>=c.credits | c.code ]"
- qo=Query(
- metadata,
- set, [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Ge(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'2')),
- Ge(
- metadata,
- Constant(metadata,'2'),
- Identifier(metadata,'c.credits')),
- ] ,Identifier(metadata,'c.code'))
-
- doone(query, qo, set([ "C1" ]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # Two filters -- no result
- #
- # set [ c in ICurses , c.credits=3, c.credits!=3 | c.code ]
- #
- query = "[ c in ICurses, c.credits=3, c.credits!=3 | c.code ]"
- qo=Query(
- metadata,
- set, [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Eq(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'3')),
- Ne(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'3')),
- ] ,Identifier(metadata,'c.code'))
-
- doone(query, qo, set([]))
-
-
- metadata.symbols = SymbolContainer()
- #
- # join -- Departments running curses
- #
- # set [ c in ICurses d, in IDepartments ,
- # some c.runBy = d | d.name ]
- #
- query = "[ c in ICurses, d in IDepartments, d = some c.runBy | d.name ]"
- qo=Query(
- metadata,
- set, [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- In(
- metadata,
- Identifier(metadata,'d'),
- Identifier(metadata,'IDepartments')),
- Eq(
- metadata,
- Identifier(metadata,'d'),
- Quanted(metadata,
- Some(metadata),
- Property(metadata,
- Identifier(metadata, 'c'),
- Identifier(metadata, 'runBy'))
- )),
- ] ,Identifier(metadata,'d.name'))
-
- doone(query, qo, set(['Computing Science', 'Other Department']))
-
-
- metadata.symbols = SymbolContainer()
- #
- # join -- Departments running some 3 credits curses
- #
- # set [ d in ICurses, c in ICurses, c.credits=3, some c.runBy = d | d.name ]
- #
- query = "[ c in ICurses, d in IDepartments, c.credits=3, d = some c.runBy | d.name ]"
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- In(
- metadata,
- Identifier(metadata,'d'),
- Identifier(metadata,'IDepartments')),
- Eq(
- metadata,
- Identifier(metadata,'c.credits'),
- Constant(metadata,'3')),
- Eq(
- metadata,
- Identifier(metadata,'d'),
- Quanted(
- metadata,
- Some(metadata),
- Property(metadata,
- Identifier(metadata, 'c'),
- Identifier(metadata, 'runBy'))
- )),
- ] ,Identifier(metadata, 'd.name'))
-
- doone(query, qo, set(['Computing Science']))
-
-
- metadata.symbols = SymbolContainer()
- # join -- Departments running some not 3 credits curses
- #
- # [ d in IDepartments, c in ICurses, some c.runBy = d, some c.credits != 3| d.name ]
- #
- query = """[ d in IDepartments,
- c in ICurses,
- some c.runBy = d, c.credits != 3| d.name ]"""
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'d'),
- Identifier(metadata,'IDepartments')),
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Eq(
- metadata,
- Identifier(metadata,'d'),
- Quanted(
- metadata,
- Some(metadata),
- Property(metadata,
- Identifier(metadata, 'c'),
- Identifier(metadata, 'runBy'))
- )),
- Ne(
- metadata,
- Constant(metadata,'3'),
- Identifier(metadata,'c.credits')),
- ] ,Identifier(metadata,'d.name'))
-
- doone(query, qo, set(['Other department','Computing Science']))
-
-
- metadata.symbols = SymbolContainer()
- #
- #
- # join -- Departments running just 2 credits curses
- #
- # set [ d in IDepartments, every set [ c in ICurses, some c.runBy = d | c.credits ] = 3 | d.name ]
- #
- query = """set [ d in IDepartments,
- every
- set [ c in ICurses, some c.runBy = d | c.credits ] = 2
- | d.name ]"""
- qo=Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'d'),
- Identifier(metadata,'IDepartments')),
- Eq(
- metadata,
- Quanted(
- metadata,
- Every(metadata),
- Query(
- metadata,
- set,
- [
- In(
- metadata,
- Identifier(metadata,'c'),
- Identifier(metadata,'ICurses')),
- Eq(
- metadata,
- Identifier(metadata,'d'),
- Quanted(
- metadata,
- Some(metadata),
- Property(metadata,
- Identifier(metadata, 'c'),
- Identifier(metadata, 'runBy'))
- )),
- ], Identifier(metadata, 'c.credits')
- )
- ),Constant(metadata,'2')),
- ] ,Identifier(metadata,'d.name'))
-
- doone(query, qo, set(['Other department']))
-
-
- #metadata.symbols = SymbolContainer()
- ##
- ##
- ## alias
- ##
- ## set [ c in ICurses, a as c.code | a ]
- ##
- #query = """set [ c in ICurses, a as c.code | a ]"""
- #
- #qo=Query(
- # metadata,
- # set,
- # [
- # In(
- # metadata,
- # Identifier(metadata,'c'),
- # Identifier(metadata,'ICurses')),
- # Alias(
- # metadata,
- # Identifier(metadata,'a'),
- # Property(metadata,
- # Identifier(metadata, 'c'),
- # Identifier(metadata, 'code')))
- # ] ,Identifier(metadata,'c') )
- #
- #doone(qo, set(['C1','C2','C3']))
-
-if __name__ == "__main__":
- test2()
Deleted: Sandbox/ocql-foliage/trunk/src/test_parser.py
===================================================================
--- Sandbox/ocql-foliage/trunk/src/test_parser.py 2008-05-29 04:14:05 UTC (rev 87007)
+++ Sandbox/ocql-foliage/trunk/src/test_parser.py 2008-05-29 09:34:59 UTC (rev 87008)
@@ -1,52 +0,0 @@
-import unittest
-
-from ocql.ocqlengine import OCQLEngine
-
-class ElementTest(unittest.TestCase):
- engine = OCQLEngine()
-
- def generic_test(self, query, result):
- print "Running query: `%s'"%query
- q = self.engine.compile(query)
- self.assertEqual(q.execute(), result)
-
- def generic_testl(self, query, result):
- print "Running query: `%s'"%query
- q = self.engine.compile(query)
- self.assertEqual(len(q.execute()), result)
-
- def test_set(self):
- self.generic_test("set [ | 1 ]", set([1]))
-
-# def test_bag(self):
-# self.generic_test("bag [ | 1 ]", bag([1]))
-
-# def test_list(self):
-# self.generic_test("list [ | 1 ]", [1])
-
- def test_union(self):
- self.generic_test("set [ | 1 ] union set [|2]", set([1, 2]))
-
- def test_differ(self):
- self.generic_test("set [ | 1 ] differ set [|2]", set([]))
-
- def test_in(self):
- self.generic_testl("set [ i in ICurses | i ]", 3)
-
- def test_count(self):
- self.generic_test("size set [ i in ICurses | i ]", 3)
-
-def test_suite():
- tests=[]
-
- tests.append(unittest.makeSuite(ElementTest))
-
- return unittest.TestSuite(tests)
-
-if __name__=='__main__':
- unittest.main(defaultTest='test_suite')
- #engine = OCQLEngine()
- #query="set [|1]"
- #q = engine.compile(query)
- #print q.execute()
-
Deleted: Sandbox/ocql-foliage/trunk/src/testalgebra.py
===================================================================
--- Sandbox/ocql-foliage/trunk/src/testalgebra.py 2008-05-29 04:14:05 UTC (rev 87007)
+++ Sandbox/ocql-foliage/trunk/src/testalgebra.py 2008-05-29 09:34:59 UTC (rev 87008)
@@ -1,397 +0,0 @@
-#
-# Algebra operators
-#
-# decided to let these depend on the database
-# so this is the implementation
-# interface goes to ocql/engine/algebra.py
-#
-from ocql.engine.algebra import Algebra
-
-class BaseAlgebra(Algebra):
- pass
-
-class Empty(BaseAlgebra):
- """
- >>> Empty(set,None).compile()
- 'set()'
- >>> Empty(list,None).compile()
- '[]'
- """
- def __init__(self, klass, expr):
- self.klass = klass
-
- def compile(self):
- if self.klass==set:
- return 'set()'
- elif self.klass==list:
- return '[]'
-
- def __repr__(self):
- return 'Empty(%s)'%(self.klass)
-
- def walk(self):
- yield self
-
-class Single(BaseAlgebra):
- """
- >>> Single(set,Constant('c')).compile()
- 'set(c)'
- >>> Single(list,Constant('c')).compile()
- '[c]'
- """
-
- def __init__(self, klass, expr):
- self.klass = klass
- self.expr = expr
-
- def compile(self):
- if self.klass==set:
- return 'set(['+self.expr.compile()+'])'
- elif self.klass==list:
- return '['+self.expr.compile()+']'
-
- def __repr__(self):
- return 'Single(%s,%s)'%(self.klass, self.expr)
-
- def walk(self):
- yield self
- for t in self.expr.walk():
- yield t
-
-class Union(BaseAlgebra):
- """
- >>> Union(set,Empty(set,None),Single(set,Identifier('c'))).compile()
- 'set.union(set(),set(c))'
- >>> Union(list,Empty(list,None),Single(list,Identifier('c'))).compile()
- '([])+([c])'
- """
- def __init__(self, klass, coll1, coll2):
- self.klass=klass
- self.coll1=coll1
- self.coll2=coll2
-
- def compile(self):
- if self.klass==set:
- return 'set.union(%s,%s)' % (
- self.coll1.compile(),
- self.coll2.compile())
- elif self.klass==list:
- return '(%s)+(%s)'%(
- self.coll1.compile(),
- self.coll2.compile())
-
- def __repr__(self):
- return 'Union(%s,%s,%s)'%(self.klass, self.coll1, self.coll2)
-
- def walk(self):
- yield self
- for t in self.coll1.walk():
- yield t
- for t in self.coll2.walk():
- yield t
-
-#class Differ:
-# def __init__(self, klass, start, enf):
-# self.klass = klass
-# self.start = start
-# self.end = end
-#
-# def compile(self):
-# if self.klass == set:
-# return 'set(range(%s,%s))' % (self.start.compile(),self.end.compile())
-# if self.klass == list:
-# return 'range(%s,%s)' % (self.start.compile(),self.end.compile())
-
-
-class Iter(BaseAlgebra):
- def __init__(self, klass, func, coll):
- self.klass = klass
- self.func = func
- self.coll = coll
-
- def compile(self):
- if self.func is Lambda and \
- self.coll is Collection and \
- self.func.expr is If:
-
- # You can place here some specialized code...
- if self.klass == set:
- return 'reduce(set.union, map(%s,%s) , set())' % \
- (self.func.compile(), self.coll.compile())
- if self.klass == list:
- return 'reduce(operator.add, map(%s,%s) , [])' % \
- (self.func.compile(), self.coll.compile())
- else:
- if self.klass == set:
- return 'reduce(set.union, map(%s,%s) , set())' % \
- (self.func.compile(), self.coll.compile())
- if self.klass == list:
- return 'reduce(operator.add, map(%s,%s) , [])' % \
- (self.func.compile(), self.coll.compile())
-
- def __repr__(self):
- return "Iter(%s,%s,%s)"%(self.klass, self.func, self.coll)
-
- def walk(self):
- yield self
- for t in self.func.walk():
- yield t
- for t in self.coll.walk():
- yield t
-
-class Select(BaseAlgebra):
- def __init__(self, klass, func, coll):
- self.klass = klass
- self.func = func
- self.coll = coll
-
- def compile(self):
- if self.klass == set:
- return 'set(filter(%s,%s))' % (
- self.func.compile(),
- self.coll.compile())
- if self.klass == list:
- return 'filter(%s,%s)' % (
- self.func.compile(),
- self.coll.compile())
-
- def __repr__(self):
- return "Select(%s,%s,%s)"%(self.klass, self.func, self.coll)
-
- def walk(self):
- yield self
- for t in self.func.walk():
- yield t
- for t in self.coll.walk():
- yield t
-
-class Reduce(BaseAlgebra):
- def __init__(self, klass, expr, func, aggreg, coll):
- self.klass = klass
- self.expr = expr
- self.func = func
- self.aggreg = aggreg
- self.coll = coll
-
- def compile(self):
- if self.klass == set:
- return 'reduce(%s,map(%s,%s),%s)' % (
- self.aggreg.compile(),
- self.func.compile(),
- self.coll.compile(),
- self.expr.compile())
- if self.klass == list:
- return 'reduce(%s,map(%s,%s),%s)' % (
- self.aggreg.compile(),
- self.func.compile(),
- self.coll.compile(),
- self.expr.compile())
-
- def __repr__(self):
- return "Reduce(%s,%s,%s,%s,%s)"%(self.klass, self.expr, self.func, self.aggreg, self.coll)
-
- def walk(self):
- yield self
- for t in self.expr.walk():
- yield t
- for t in self.func.walk():
- yield t
- for t in self.aggreg.walk():
- yield t
- for t in self.coll.walk():
- yield t
-
-#class Equal:
-# def __init__(self, klass, coll1, coll2):
-# self.klass = klass
-# self.coll1 = coll1
-# self.coll2 = coll2
-#
-# def compile(self):
-# if self.klass == set:
-# return 'set(filter(%s,%s))' % (self.coll1.compile(),self.coll1.compile())
-# if self.klass == list:
-# return 'filter(%s,%s)' % (self.coll1.compile(),self.coll2.compile())
-#
-class Range(BaseAlgebra):
- def __init__(self, klass, start, enf):
- self.klass = klass
- self.start = start
- self.end = end
-
- def compile(self):
- if self.klass == set:
- return 'set(range(%s,%s))' % (
- self.start.compile(),
- self.end.compile())
- if self.klass == list:
- return 'range(%s,%s)' % (
- self.start.compile(),
- self.end.compile())
-
- def walk(self):
- yield self
- for t in self.start.walk():
- yield t
- for t in self.end.walk():
- yield t
-
-
-#class Index
-
-class Make(BaseAlgebra):
- def __init__(self, coll1, coll2, expr):
- self.expr = expr
- self.coll1 = coll1
- self.coll2 = coll2
-
- def compile(self):
- #TODO: no conversion??? or you just didn't know the from-to?
- return '%s(metadata.getAll("%s"))' % (
- self.coll1.__name__,
- self.expr.compile())
-
- def __repr__(self):
- return "Make(%s,%s,%s)" %(self.coll1, self.coll2, self.expr)
-
- def walk(self):
- yield self
- for t in self.expr.walk():
- yield t
-
-#class And:
-#class Being:
-
-class If(BaseAlgebra):
- def __init__(self, cond, expr1, expr2):
- self.cond = cond
- self.expr1 = expr1
- self.expr2 = expr2
-
- def compile(self):
- #TODO: is this 100%?
- return '((%s) and (%s) or (%s))' % (
- self.cond.compile(),
- self.expr1.compile(),
- self.expr2.compile())
-
- def __repr__(self):
- return "If(%s,%s,%s)" % (self.cond, self.expr1, self.expr2)
-
- def walk(self):
- yield self
- for t in self.cond.walk():
- yield t
- for t in self.expr1.walk():
- yield t
- for t in self.expr2.walk():
- yield t
-
-#
-#
-#
-class Lambda(BaseAlgebra):
- def __init__(self, var, expr):
- self.var = var
- self.expr = expr
-
- def compile(self):
- return 'lambda %s: %s'%(
- self.var,
- self.expr.compile())
-
- def __repr__(self):
- return "Lambda %s: %s" %(self.var, self.expr)
-
- def walk(self):
- yield self
- for t in self.expr.walk():
- yield t
-
-class Constant(BaseAlgebra):
- def __init__(self, value):
- self.value = value
-
- def compile(self):
- return '%s'%(self.value)
-
- def __repr__(self):
- return "`%s`" %(self.value)
-
- def walk(self):
- yield self
-
-class Identifier(BaseAlgebra):
- def __init__(self, name):
- self.name=name
-
- def compile(self):
- return self.name
-
- def __repr__(self):
- return "%s" % self.name
-
- def walk(self):
- yield self
-
-class Binary(BaseAlgebra):
- def __init__(self, left, op, right):
- self.left = left
- self.op = op
- self.right = right
-
- def compile(self):
- return '%s%s%s' % (self.left.compile(),
- self.op.op,
- self.right.compile())
-
- def __repr__(self):
- return "%s%s%s" % (self.left, self.op.op, self.right)
-
- def walk(self):
- yield self
- for t in self.left.walk():
- yield t
- for t in self.right.walk():
- yield t
-
-class Operator(BaseAlgebra):
- ops = {
- 'or': 'operator.or_',
- 'and': 'operator.and_',
- 'not': 'operator.not_',
- '+': 'operator.add', '-': 'operator.sub',
- '*': 'operator.mul', '/': 'operator.div',
- '<': 'operator.lt', '>': 'operator.gt',
- '<=': 'operator.le', '>=': 'operator.ge',
- '==': 'operator.eq', '~=': 'operator.ne',
- }
- def __init__(self, op):
- self.op = op
-
- def compile(self):
- return self.ops[self.op]
-
- def __repr__(self):
- return self.op
-
- def walk(self):
- yield self
-#class Property:
-# def __init__(self, left, right):
-# self.left = left
-# self.right = right
-#
-# def compile(self):
-# return '%s.%s' (self.left.compile(),self.right.compile())
-#
-# def __repr__(self):
-# return '%s.%s' (self.left,self.right)
-
-def _test():
- import doctest
- doctest.testmod()
-
-if __name__ == "__main__":
- _test()
-
Deleted: Sandbox/ocql-foliage/trunk/src/testdb.py
===================================================================
--- Sandbox/ocql-foliage/trunk/src/testdb.py 2008-05-29 04:14:05 UTC (rev 87007)
+++ Sandbox/ocql-foliage/trunk/src/testdb.py 2008-05-29 09:34:59 UTC (rev 87008)
@@ -1,112 +0,0 @@
-from zope.interface import Interface, implements
-from zope.schema import TextLine, Set, Choice, Int, List
-from ocql.engine import metadata
-
-# schema
-class ICurses(Interface):
- code = TextLine(
- title=u"Course code",
- required=True
- )
- runBy = List(
- title=u"Run by",
- value_type = Choice(
- title=u"Department",
- vocabulary="vocab_of_IDepartment",
- )
- )
- credits = Int(
- title=u"Credits",
- )
-
-class IDepartments(Interface):
- name = TextLine(
- title=u"name",
- required=True
- )
- address = Choice(
- title=u"Street address",
- vocabulary="vocab_of_IAddress",
- required=True
- )
-
-class MClass(metadata.MetaType):
- #interface suspect thing
- def __init__(self, klass):
- self.klass = klass
-
- def is_collection(self):
- return True
-
- def get_collection_type(self):
- return set
-
- def get_contained(self):
- return self.klass
-
- def __getitem__(self, name):
- x = self.klass[name]._type
- try:
- return x[-1]
- except TypeError:
- return x
-
-class MType(metadata.MetaType):
- def __init__(self, klass, collection_type=None):
- self.klass = klass
- self.collection_type = collection_type
-
- def is_collection(self):
- return (self.collection_type is not None)
-
- def get_collection_type(self):
- return self.collection_type
-
- def get_contained(self):
- return self.klass
-
-class Department(object):
- implements(IDepartments)
-
- def __init__(self, name):
- self.name = name
-
-class Curses(object):
- implements(ICurses)
-
- def __init__(self, code, runBy, credits):
- self.code = code
- self.runBy = runBy
- self.credits = credits
-
-D1 = Department("Computing Science")
-D2 = Department("Other department")
-D3 = Department("Department without curse")
-
-C1 = Curses("C1", runBy = set([D1, D2]), credits=2)
-C2 = Curses("C2", runBy = set(), credits=3)
-C3 = Curses("C3", runBy = set([D1]), credits=3)
-
-
-# metadata
-class TestMetadata(metadata.Metadata):
- db = {
- 'IDepartments': [D1, D2],
- 'ICurses': [C1, C2, C3]
- }
- classes = {
- 'IDepartments': MClass(IDepartments),
- 'ICurses': MClass(ICurses),
- }
-
- def getAll(self, klass):
- x=self.db[klass]
- return x
-
- def get_class(self, name):
- return self.classes[name]
-
- def get_collection_type(self, name):
- klass = self.get_class(name)
- rv = klass.get_collection_type()
- return rv
\ No newline at end of file
More information about the Checkins
mailing list