Dolda2000 GitWeb
/
coe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bin: Fixed float decoding bug.
[coe.git]
/
coe
/
data.py
diff --git
a/coe/data.py
b/coe/data.py
index
b65dbae
..
f9fccb9
100644
(file)
--- a/
coe/data.py
+++ b/
coe/data.py
@@
-1,4
+1,5
@@
class symbol(object):
class symbol(object):
+ __slots__ = []
isafe = set("abcdefghijklmnopqrstuvwxyz" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"$%^&*_=/.")
isafe = set("abcdefghijklmnopqrstuvwxyz" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"$%^&*_=/.")
@@
-47,18
+48,15
@@
class symbol(object):
return "%s:%s" % (self.quote(self.ns), self.quote(self.name))
class usymbol(symbol):
return "%s:%s" % (self.quote(self.ns), self.quote(self.name))
class usymbol(symbol):
+ __slots__ = ["name"]
ns = ""
ns = ""
+
def __init__(self, name):
self.name = name
def __init__(self, name):
self.name = name
- def __hash__(self):
- return hash(self.name)
- def __eq__(s, o):
- if isinstance(o, str):
- return s.name == o
- return super().__eq__(o)
-
class nssymbol(symbol):
class nssymbol(symbol):
+ __slots__ = ["ns", "name"]
+
def __init__(self, ns, name, *args, **kw):
super().__init__(*args, **kw)
self.name = name
def __init__(self, ns, name, *args, **kw):
super().__init__(*args, **kw)
self.name = name
@@
-70,6
+68,12
@@
class namedtype(type):
self.typename = typename
return self
self.typename = typename
return self
+ @classmethod
+ def make(cls, *args, typename=None, **kwargs):
+ self = cls(*args, **kwargs)
+ self.typename = typename
+ return self
+
class obj(object):
def __getitem__(self, key):
return self.__dict__[key]
class obj(object):
def __getitem__(self, key):
return self.__dict__[key]
@@
-77,3
+81,8
@@
class obj(object):
self.__dict__[key] = val
def __delitem__(self, key):
del self.__dict__[key]
self.__dict__[key] = val
def __delitem__(self, key):
del self.__dict__[key]
+ def __getattr__(self, name):
+ try:
+ return self.__dict__[symbol.get("", name)]
+ except KeyError:
+ raise AttributeError(name) from None