cubicweb/dataimport/massive_store.py
changeset 11871 5f71460236a4
parent 11802 2f885861cb84
child 12171 970c32a4c7b7
child 12195 81cf4cf60411
equal deleted inserted replaced
11870:3a84a79c4ed5 11871:5f71460236a4
    70         """
    70         """
    71         super(MassiveObjectStore, self).__init__(cnx)
    71         super(MassiveObjectStore, self).__init__(cnx)
    72 
    72 
    73         self.uuid = text_type(uuid4()).replace('-', '')
    73         self.uuid = text_type(uuid4()).replace('-', '')
    74         self.slave_mode = slave_mode
    74         self.slave_mode = slave_mode
    75         self.eids_seq_range = eids_seq_range
       
    76         if metagen is None:
    75         if metagen is None:
    77             metagen = stores.MetadataGenerator(cnx)
    76             metagen = stores.MetadataGenerator(cnx)
    78         self.metagen = metagen
    77         self.metagen = metagen
    79 
    78 
    80         self.logger = logging.getLogger('dataimport.massive_store')
    79         self.logger = logging.getLogger('dataimport.massive_store')
    81         self.sql = cnx.system_sql
    80         self.sql = cnx.system_sql
    82         self.schema = cnx.vreg.schema
    81         self.schema = cnx.vreg.schema
    83         self.default_values = get_default_values(self.schema)
    82         self.default_values = get_default_values(self.schema)
    84         self.get_next_eid = lambda g=self._get_eid_gen(): next(g)
    83         self.get_next_eid = lambda g=self._get_eid_gen(eids_seq_range): next(g)
    85         self._source_dbhelper = cnx.repo.system_source.dbhelper
    84         self._source_dbhelper = cnx.repo.system_source.dbhelper
    86         self._dbh = PGHelper(cnx)
    85         self._dbh = PGHelper(cnx)
    87 
    86 
    88         self._data_entities = defaultdict(list)
    87         self._data_entities = defaultdict(list)
    89         self._data_relations = defaultdict(list)
    88         self._data_relations = defaultdict(list)
    90         self._initialized = {}
    89         self._initialized = {}
    91 
    90 
    92     def _get_eid_gen(self):
    91     def _get_eid_gen(self, eids_seq_range):
    93         """ Function getting the next eid. This is done by preselecting
    92         """ Function getting the next eid. This is done by preselecting
    94         a given number of eids from the 'entities_id_seq', and then
    93         a given number of eids from the 'entities_id_seq', and then
    95         storing them"""
    94         storing them"""
    96         while True:
    95         while True:
    97             last_eid = self._cnx.repo.system_source.create_eid(self._cnx, self.eids_seq_range)
    96             last_eid = self._cnx.repo.system_source.create_eid(self._cnx, eids_seq_range)
    98             for eid in range(last_eid - self.eids_seq_range + 1, last_eid + 1):
    97             for eid in range(last_eid - eids_seq_range + 1, last_eid + 1):
    99                 yield eid
    98                 yield eid
   100 
    99 
   101     # master/slaves specific API
   100     # master/slaves specific API
   102 
   101 
   103     def master_init(self, commit=True):
   102     def master_init(self, commit=True):