コード例 #1
0
    def __next__(self):
        if self.data_lines is None:
            self.open_next_file()

        try:
            data_lines = next(self.data_lines)
            elements = data_lines.split('~')
        except StopIteration:
            self.open_next_file()
            elements = next(self.data_lines).split('~')

        if len(elements) != NUMBER_OF_ELEMENTS_PER_LINE:
            logger.debug("Did not find 45 elements as expected in titelive" +
                         " line. Skipping line")
            return None

        self.infos = get_infos_from_data_line(elements)
        self.extraData = {}

        self.thing_type, self.extraData[
            'bookFormat'] = get_thing_type_and_extra_data_from_titelive_type(
                self.infos['code_support'])

        if self.thing_type is None:
            return None

        providable_info = ProvidableInfo()
        providable_info.type = Product
        providable_info.idAtProviders = self.infos['ean13']
        providable_info.dateModifiedAtProvider = read_things_date(
            self.infos['date_updated'])
        return providable_info
コード例 #2
0
 def create_providable_info(self, model_object: PcObject) -> ProvidableInfo:
     providable_info = ProvidableInfo()
     providable_info.type = model_object
     providable_info.idAtProviders = "%s@%s" % (self.titelive_stock['ref'],
                                                self.venue_siret)
     providable_info.dateModifiedAtProvider = datetime.utcnow()
     return providable_info
    def retrieve_providable_info(self) -> ProvidableInfo:
        providable_info = ProvidableInfo()
        providable_info.idAtProviders = \
            f"{self.application_details['structureId']}|{self.application_details['venueId']}"

        providable_info.type = BankInformation
        providable_info.dateModifiedAtProvider = self.application_details['updated_at']
        return providable_info
コード例 #4
0
 def retrieve_providable_info(self):
     providable_info = ProvidableInfo()
     providable_info.idAtProviders = self.bank_information_dict[
         'idAtProviders']
     providable_info.type = BankInformation
     providable_info.dateModifiedAtProvider = datetime.strptime(
         self.application_details['dossier']['updated_at'], DATE_ISO_FORMAT)
     return providable_info
コード例 #5
0
    def __next__(self):
        if self.description_zip_infos is None:
            self.open_next_file()

        self.description_zipinfo = next(self.description_zip_infos)

        providable_info = ProvidableInfo()
        providable_info.type = Product
        providable_info.dateModifiedAtProvider = self.date_modified
        path = PurePath(self.description_zipinfo.filename)
        providable_info.idAtProviders = path.name.split('_', 1)[0]
        self.productId = providable_info.idAtProviders

        return providable_info
コード例 #6
0
    def __next__(self):
        p_info_event = super().__next__

        p_info_stock = ProvidableInfo()
        p_info_stock.type = Stock
        p_info_stock.idAtProviders = p_info_event.idAtProviders
        p_info_stock.dateModifiedAtProvider = p_info_event.dateModifiedAtProvider

        return p_info_event, p_info_stock

        event.venue = self.venue
        stock = Stock()
        stock.idAtProvider = event.idAtProvider
        stock.dateModifiedAtProvider = event.dateModifiedAtProvider
        stock.event = event
        return stock
コード例 #7
0
    def __next__(self):
        if self.thumb_zipinfos is None:
            self.open_next_file()

        try:
            self.thumb_zipinfo = next(self.thumb_zipinfos)
        except StopIteration:
            self.open_next_file()
            self.thumb_zipinfo = next(self.thumb_zipinfos)

        providable_info = ProvidableInfo()
        providable_info.type = Product
        providable_info.dateModifiedAtProvider = None
        path = PurePath(self.thumb_zipinfo.filename)
        providable_info.idAtProviders = path.name.split('_', 1)[0]
        self.thingId = providable_info.idAtProviders

        return providable_info
コード例 #8
0
    def __next__(self):
        if self.data_lines is None:
            self.data_lines = get_lines_from_thing_file(self.lines_checked, str(self.thing_file))

        try:
            data_lines = next(self.data_lines)
            elements = data_lines.split('~')
        except StopIteration:
            self.data_lines = get_lines_from_thing_file(self.lines_checked, str(self.thing_file))
            elements = next(self.data_lines).split('~')

        if len(elements) != NUMBER_OF_ELEMENTS_PER_LINE:
            logger.info("Did not find 45 elements as expected in titelive"
                        + " line. Skipping line")
            return None

        if (self.lines_checked % SYNC_PART_SIZE) == 0:
            self.logEvent(LocalProviderEventType.SyncPartEnd,
                          self.lines_checked)

        self.infos = get_infos_from_data_line(elements)

        self.extraData = {}

        self.thing_type, self.extraData['bookFormat'] = get_thing_type_and_extra_data_from_titelive_type(
            self.infos['code_support'])

        self.lines_checked += 1

        if self.thing_type is None:
            return None

        providable_info = ProvidableInfo()
        providable_info.type = Product
        providable_info.idAtProviders = self.infos['ean13']
        providable_info.dateModifiedAtProvider = read_things_date(self.infos['date_updated'])
        return providable_info
コード例 #9
0
    def __next__(self):
        self.index = self.index + 1

        if (self.data is None or len(self.data['events']) <= self.index):

            if (not self.more_pages):
                raise (StopIteration)

            self.page = self.page + 1
            self.index = 0

            self.data = get_data(self.page,
                                 self.venueProvider.venueIdAtOfferProvider,
                                 self.is_mock)

            total_objects = self.data['offset'] + self.data['limit']
            self.more_pages = total_objects < self.data['total']

        print("LEN", len(self.data['events']))
        print("INDEX", self.index)
        self.oa_event = self.data['events'][self.index]

        self.seen_uids.append(str(self.oa_event['uid']))

        if self.venueLocationUid is not None and\
           self.oa_event['location']['uid'] != self.venueLocationUid:
            return next(self)

        p_info_event = ProvidableInfo()
        p_info_event.type = Product
        p_info_event.idAtProviders = str(self.oa_event['uid'])
        p_info_event.dateModifiedAtProvider = read_date(
            self.oa_event['updatedAt'])

        p_info_offer = ProvidableInfo()
        p_info_offer.type = Offer
        p_info_offer.idAtProviders = str(self.oa_event['uid'])
        p_info_offer.dateModifiedAtProvider = read_date(
            self.oa_event['updatedAt'])

        p_info_eos = []
        durations_sum = 0
        for oa_timing in self.oa_event['timings']:
            p_info_eo = ProvidableInfo()
            p_info_eo.type = Stock
            p_info_eo.idAtProviders = str(self.oa_event['uid']) + '_' + str(
                read_date(oa_timing['start']))
            p_info_eo.dateModifiedAtProvider = read_date(
                self.oa_event['updatedAt'])
            p_info_eos.append(p_info_eo)
            duration = read_date(oa_timing['end'])\
                        - read_date(oa_timing['start'])
            durations_sum += duration.days * 24 * 60 + int(
                duration.seconds / 60)

        self.duration = int(durations_sum / len(p_info_eos))

        return [p_info_event, p_info_offer] + p_info_eos