def __init__(self): self.types = {} # name: Type() self.forms = {} # name: Form() self.props = {} # (form,name): Prop() and full: Prop() self.tagprops = {} # name: TagProp() self.formabbr = {} # name: [Form(), ... ] self.univs = [] self.univlook = {} self.propsbytype = collections.defaultdict(list) # name: Prop() self.arraysbytype = collections.defaultdict(list) self._type_pends = collections.defaultdict(list) self._modeldef = {'ctors': [], 'types': [], 'forms': [], 'univs': []} self._modelinfo = ModelInfo() # add the primitive base types info = {'doc': 'The base 64 bit signed integer type.'} item = s_types.Int(self, 'int', info, {}) self.addBaseType(item) info = {'doc': 'A base range type.'} item = s_types.Range(self, 'range', info, {'type': ('int', {})}) self.addBaseType(item) info = {'doc': 'The base string type.'} item = s_types.Str(self, 'str', info, {}) self.addBaseType(item) info = {'doc': 'The base hex type.'} item = s_types.Hex(self, 'hex', info, {}) self.addBaseType(item) info = {'doc': 'The base boolean type.'} item = s_types.Bool(self, 'bool', info, {}) self.addBaseType(item) info = {'doc': 'A date/time value.'} item = s_types.Time(self, 'time', info, {}) self.addBaseType(item) info = {'doc': 'A time window/interval.'} item = s_types.Ival(self, 'ival', info, {}) self.addBaseType(item) info = {'doc': 'The base GUID type.'} item = s_types.Guid(self, 'guid', info, {}) self.addBaseType(item) info = {'doc': 'The base type for a synapse tag.'} item = s_types.Tag(self, 'syn:tag', info, {}) self.addBaseType(item) info = {'doc': 'The base type for compound node fields.'} item = s_types.Comp(self, 'comp', info, {}) self.addBaseType(item) info = {'doc': 'The base geo political location type.'} item = s_types.Loc(self, 'loc', info, {}) self.addBaseType(item) info = { 'doc': 'The node definition type for a (form,valu) compound field.' } item = s_types.Ndef(self, 'ndef', info, {}) self.addBaseType(item) info = {'doc': 'A typed array which indexes each field.'} item = s_types.Array(self, 'array', info, {'type': 'int'}) self.addBaseType(item) # info = {'doc': 'A list type for storing multiple values of the same type.'} # item = s_types.List(self, 'list', info, {'type': 'str'}) # self.addBaseType(item) info = {'doc': 'An digraph edge base type.'} item = s_types.Edge(self, 'edge', info, {}) self.addBaseType(item) info = {'doc': 'An digraph edge base type with a unique time.'} item = s_types.TimeEdge(self, 'timeedge', info, {}) self.addBaseType(item) info = { 'doc': 'Arbitrary msgpack compatible data stored without an index.' } item = s_types.Data(self, 'data', info, {}) self.addBaseType(item) info = {'doc': 'The nodeprop type for a (prop,valu) compound field.'} item = s_types.NodeProp(self, 'nodeprop', info, {}) self.addBaseType(item) # add the base universal properties... self.addUnivProp('seen', ('ival', {}), { 'doc': 'The time interval for first/last observation of the node.', }) self.addUnivProp('created', ('time', {}), { 'ro': True, 'doc': 'The time the node was created in the cortex.', })
def __init__(self): self.types = {} # name: Type() self.forms = {} # name: Form() self.props = {} # (form,name): Prop() and full: Prop() self.ifaces = {} # name: <ifdef> self.tagprops = {} # name: TagProp() self.formabbr = {} # name: [Form(), ... ] self.modeldefs = [] self.univs = {} self.propsbytype = collections.defaultdict(list) # name: Prop() self.arraysbytype = collections.defaultdict(list) # TODO use this for <nodes> -> foo:iface self.formsbyiface = collections.defaultdict(list) self._type_pends = collections.defaultdict(list) self._modeldef = {'ctors': [], 'types': [], 'forms': [], 'univs': []} # add the primitive base types info = {'doc': 'The base 64 bit signed integer type.'} item = s_types.Int(self, 'int', info, {}) self.addBaseType(item) info = {'doc': 'The base floating point type.'} item = s_types.Float(self, 'float', info, {}) self.addBaseType(item) info = {'doc': 'A base range type.'} item = s_types.Range(self, 'range', info, {'type': ('int', {})}) self.addBaseType(item) info = {'doc': 'The base string type.'} item = s_types.Str(self, 'str', info, {}) self.addBaseType(item) info = {'doc': 'The base hex type.'} item = s_types.Hex(self, 'hex', info, {}) self.addBaseType(item) info = {'doc': 'The base boolean type.'} item = s_types.Bool(self, 'bool', info, {}) self.addBaseType(item) info = {'doc': 'A date/time value.'} item = s_types.Time(self, 'time', info, {}) self.addBaseType(item) info = {'doc': 'A time window/interval.'} item = s_types.Ival(self, 'ival', info, {}) self.addBaseType(item) info = {'doc': 'The base GUID type.'} item = s_types.Guid(self, 'guid', info, {}) self.addBaseType(item) info = {'doc': 'The base type for a synapse tag.'} item = s_types.Tag(self, 'syn:tag', info, {}) self.addBaseType(item) info = {'doc': 'The base type for compound node fields.'} item = s_types.Comp(self, 'comp', info, {}) self.addBaseType(item) info = {'doc': 'The base geo political location type.'} item = s_types.Loc(self, 'loc', info, {}) self.addBaseType(item) info = { 'doc': 'The node definition type for a (form,valu) compound field.' } item = s_types.Ndef(self, 'ndef', info, {}) self.addBaseType(item) info = {'doc': 'A typed array which indexes each field.'} item = s_types.Array(self, 'array', info, {'type': 'int'}) self.addBaseType(item) # info = {'doc': 'A list type for storing multiple values of the same type.'} # item = s_types.List(self, 'list', info, {'type': 'str'}) # self.addBaseType(item) info = {'doc': 'An digraph edge base type.'} item = s_types.Edge(self, 'edge', info, {}) self.addBaseType(item) info = {'doc': 'An digraph edge base type with a unique time.'} item = s_types.TimeEdge(self, 'timeedge', info, {}) self.addBaseType(item) info = {'doc': 'Arbitrary json compatible data.'} item = s_types.Data(self, 'data', info, {}) self.addBaseType(item) info = {'doc': 'The nodeprop type for a (prop,valu) compound field.'} item = s_types.NodeProp(self, 'nodeprop', info, {}) self.addBaseType(item) info = { 'doc': 'A potentially huge/tiny number. [x] <= 170141183460469231731687 with a fractional precision of 15 decimal digits.' } item = s_types.HugeNum(self, 'hugenum', info, {}) self.addBaseType(item) # add the base universal properties... self.addUnivProp('seen', ('ival', {}), { 'doc': 'The time interval for first/last observation of the node.', }) self.addUnivProp('created', ('time', {}), { 'ro': True, 'doc': 'The time the node was created in the cortex.', })