equal
deleted
inserted
replaced
47 ] |
47 ] |
48 |
48 |
49 GENERATORS.append( (gen_users, CHK) ) |
49 GENERATORS.append( (gen_users, CHK) ) |
50 |
50 |
51 # create controller |
51 # create controller |
52 if 'cnx' in globals(): |
52 ctl = CWImportController(RQLObjectStore(cnx)) |
53 ctl = CWImportController(RQLObjectStore(cnx)) |
|
54 else: |
|
55 print 'debug mode (not connected)' |
|
56 print 'run through cubicweb-ctl shell to access an instance' |
|
57 ctl = CWImportController(ObjectStore()) |
|
58 ctl.askerror = 1 |
53 ctl.askerror = 1 |
59 ctl.generators = GENERATORS |
54 ctl.generators = GENERATORS |
60 ctl.data['utilisateurs'] = lazytable(ucsvreader(open('users.csv'))) |
55 ctl.data['utilisateurs'] = lazytable(ucsvreader(open('users.csv'))) |
61 # run |
56 # run |
62 ctl.run() |
57 ctl.run() |
551 self.items = [] |
546 self.items = [] |
552 self.eids = {} |
547 self.eids = {} |
553 self.types = {} |
548 self.types = {} |
554 self.relations = set() |
549 self.relations = set() |
555 self.indexes = {} |
550 self.indexes = {} |
556 self._rql = None |
|
557 self._commit = None |
|
558 |
551 |
559 def create_entity(self, etype, **data): |
552 def create_entity(self, etype, **data): |
560 data = attrdict(data) |
553 data = attrdict(data) |
561 data['eid'] = eid = len(self.items) |
554 data['eid'] = eid = len(self.items) |
562 self.items.append(data) |
555 self.items.append(data) |
598 except: |
591 except: |
599 print 'failed to flush' |
592 print 'failed to flush' |
600 else: |
593 else: |
601 print 'flush done' |
594 print 'flush done' |
602 |
595 |
603 def rql(self, *args): |
|
604 if self._rql is not None: |
|
605 return self._rql(*args) |
|
606 return [] |
|
607 |
|
608 @property |
596 @property |
609 def nb_inserted_entities(self): |
597 def nb_inserted_entities(self): |
610 return len(self.eids) |
598 return len(self.eids) |
611 @property |
599 @property |
612 def nb_inserted_types(self): |
600 def nb_inserted_types(self): |
615 def nb_inserted_relations(self): |
603 def nb_inserted_relations(self): |
616 return len(self.relations) |
604 return len(self.relations) |
617 |
605 |
618 class RQLObjectStore(ObjectStore): |
606 class RQLObjectStore(ObjectStore): |
619 """ObjectStore that works with an actual RQL repository (production mode)""" |
607 """ObjectStore that works with an actual RQL repository (production mode)""" |
620 _rql = None # bw compat |
|
621 |
608 |
622 def __init__(self, session, commit=None): |
609 def __init__(self, session, commit=None): |
623 ObjectStore.__init__(self) |
610 ObjectStore.__init__(self) |
624 if not hasattr(session, 'set_cnxset'): |
611 if not hasattr(session, 'set_cnxset'): |
625 if hasattr(session, 'request'): |
612 if hasattr(session, 'request'): |
639 txuuid = self._commit() |
626 txuuid = self._commit() |
640 self.session.set_cnxset() |
627 self.session.set_cnxset() |
641 return txuuid |
628 return txuuid |
642 |
629 |
643 def rql(self, *args): |
630 def rql(self, *args): |
644 if self._rql is not None: |
|
645 return self._rql(*args) |
|
646 return self.session.execute(*args) |
631 return self.session.execute(*args) |
647 |
632 |
648 def create_entity(self, *args, **kwargs): |
633 def create_entity(self, *args, **kwargs): |
649 entity = self.session.create_entity(*args, **kwargs) |
634 entity = self.session.create_entity(*args, **kwargs) |
650 self.eids[entity.eid] = entity |
635 self.eids[entity.eid] = entity |
788 self.get_data(datakey)) |
773 self.get_data(datakey)) |
789 |
774 |
790 |
775 |
791 class NoHookRQLObjectStore(RQLObjectStore): |
776 class NoHookRQLObjectStore(RQLObjectStore): |
792 """ObjectStore that works with an actual RQL repository (production mode)""" |
777 """ObjectStore that works with an actual RQL repository (production mode)""" |
793 _rql = None # bw compat |
|
794 |
778 |
795 def __init__(self, session, metagen=None, baseurl=None): |
779 def __init__(self, session, metagen=None, baseurl=None): |
796 super(NoHookRQLObjectStore, self).__init__(session) |
780 super(NoHookRQLObjectStore, self).__init__(session) |
797 self.source = session.repo.system_source |
781 self.source = session.repo.system_source |
798 self.rschema = session.repo.schema.rschema |
782 self.rschema = session.repo.schema.rschema |
801 metagen = MetaGenerator(session, baseurl) |
785 metagen = MetaGenerator(session, baseurl) |
802 self.metagen = metagen |
786 self.metagen = metagen |
803 self._nb_inserted_entities = 0 |
787 self._nb_inserted_entities = 0 |
804 self._nb_inserted_types = 0 |
788 self._nb_inserted_types = 0 |
805 self._nb_inserted_relations = 0 |
789 self._nb_inserted_relations = 0 |
806 self.rql = session.execute |
|
807 # deactivate security |
790 # deactivate security |
808 session.read_security = False |
791 session.read_security = False |
809 session.write_security = False |
792 session.write_security = False |
810 |
793 |
811 def create_entity(self, etype, **kwargs): |
794 def create_entity(self, etype, **kwargs): |