def __init__(self,config=None,configfilename="./lri_config.json",create_indices=False,in_test_mode=False,verbose=False): self.configfilename = configfilename if config: self.config = config else: self.config = json.loads(open(self.configfilename).read()) self.dbdir=self.config.get('neo4j_dir',"./db") self.log = lrilog.lrilog("LRIDB",verbose=verbose,outfilename=self.dbdir+"/LRI_DEBUG.log") self.server_url = "http://%s:%d/db/data/" % (self.config.get('neo4j_server_host','localhost'), self.config.get('neo4j_server_port',7474)) self.bootstrap_filenames = self.config.get('bootstrap_filenames',[]) self.creator_guid=self.config.get('default_creator_guid',default_creator_guid) self.in_test_mode = in_test_mode if create_indices or in_test_mode: self.in_bootstrap = True else: self.in_bootstrap = False self.link_index=None self.attr_index=None self.errors=[] self.warns=[] # Boot up if not self.in_test_mode: self.open() self.boot(create_indices=create_indices)
def __init__(self, bootstrap_filenames=[default_bootstrap_file], in_test_mode=False, creator=None): self.s = {"datatypes": {}, "types": {}, "properties": {}} self.index = {"datatypes": {}, "types": {}, "properties": {}, "id": {}, "guid": {}} self.creator = creator self.log = lrilog.lrilog("SCHEMA") global guid_to_id guid_to_id = self.index["guid"] self.errors = [] self.warns = [] self.bootstrap_filenames = bootstrap_filenames self.in_test_mode = in_test_mode
def __init__(self,rec={},entity_guid=None,entity=None,creator=None,proptype=None,value=None,db=None,guid=None,validate_entity=True): self.db=db self.rec=copy.deepcopy(rec) self.errors=[] self.creator = creator self.invalid_fields={} self.is_valid=False self.link = None self.log = lrilog.lrilog("PROP") self.entity=entity if self.entity: self.entity_guid = self.entity.rec.get("urn:lri:property_type:guid") else: self.entity_guid = entity_guid if self.creator: self.rec["creator"] = self.creator self.log.debug("PROP INIT ENTITY GUID =",self.entity_guid,self.entity) # Extract our property name/value for k,v in self.rec.items(): if k.startswith('urn:') and v != None: self.rec['proptype'] = k self.rec['value'] = v self.guid=guid if guid: # prop exists, let's get it self.link = self.db.get_prop(guid) if self.link: for k,v in self.db.internal_properties(self.link).items(): if k != 'rec': self.rec[k] = self.link[k] self.is_valid = True else: self.errors.append("Invalid property GUID. Could not find.") elif proptype and value != None: self.log.debug("INIT FOR PROPERTY CREATE",entity,proptype,value,"\n\n\n") # we need to generate our fields and create our property self.rec["proptype"] = proptype self.rec["value"] = value self.prepare_for_creation() self.validate_fields() elif 'guid' not in self.rec and 'proptype' in self.rec and ('value' in self.rec or 'to' in self.rec): self.prepare_for_creation() self.validate_fields() else: self.errors.append("Not enough specification to find or create property.")
def __init__(self, rec={}, user=None, db=None, creator=None): self.user = user self.db = db self.jsondata = None self.props = {} self.errors = [] self.invalid_properties = {} self.is_valid = False self.guid = None self.creator = creator self.log = lrilog.lrilog("ENTITY") # Figure out what kind of initialization data we have self.rec = copy.deepcopy(rec) self.clean() self.parse_properties() if not self.errors: self.validate_properties() else: self.is_valid = False