Commits

Pierre Carbonnelle committed 7c2cff9

fix confusion between True and 1 in pyEngine.Const

Comments (0)

Files changed (2)

pyDatalog/examples/test.py

         assert ask(X==1) == set([(1,)]) 
         assert ask(X==Y) == None
         assert ask(X==Y+1) == None
-        #TODO assert ask(X==True) == set([(True,)])
+        assert ask(X==True) == set([(True,)])
         assert ask(X==1) == set([(1,)]) 
         assert ask(X==False) == set([(False,)])
         assert ask(X==None) == set([(None,)])
-        #TOTO assert pyDatalog.ask('X==True') == set([(True,)])
+        assert pyDatalog.ask('X==True') == set([(True,)])
         assert pyDatalog.ask('X==False') == set([(False,)])
         assert pyDatalog.ask('X==None') == set([(None,)])
         assert ask((X==1) & (Y==1) & (X==Y)) == set([(1,1)])

pyDatalog/pyEngine.py

     registry = weakref.WeakValueDictionary()
     counter = util.Counter()
     def __new__(cls,  _id):
-        r = repr(_id) if isinstance(_id, (util.string_types, float, Decimal)) else _id
+        r = repr(_id) if isinstance(_id, (util.string_types, float, Decimal)) \
+            else '_pyD_True_pyD_' if _id is True else _id
         with Const.lock:
             o = cls.registry.get(r, Interned.notFound)
             if o is Interned.notFound: