예제 #1
0
    def test_date_generator_single(self):
        start_date = datetime.date(year=2016, month=1, day=1)
        end_date = datetime.date(year=2016, month=1, day=5)
        delta = 1

        result = []
        for s, e in date_generator(start_date, end_date, delta):
            self.assertIsInstance(s, datetime.date)
            self.assertIsInstance(e, datetime.date)
            result.append((s, e))

        self.assertEquals(len(result), 5)
예제 #2
0
파일: builder.py 프로젝트: travishen/aprp
def direct(start_date=None, end_date=None, *args):

    data = DirectData(CONFIG_CODE, 1, LOGGER_TYPE_CODE)

    for model in MODELS:
        api = Api(model=model, **data._asdict())
        for delta_start_date, delta_end_date in date_generator(
                start_date, end_date, DELTA_DAYS):
            response = api.request(date=delta_start_date)
            api.load(response)

    return data
예제 #3
0
def direct_wholesale_03(start_date=None, end_date=None, *args, **kwargs):

    data = DirectData('COG03', 1, LOGGER_TYPE_CODE)

    for model in MODELS:
        wholesale_api = WholeSaleApi03(model=model, market_type='F', **data._asdict())

        # this api only provide one day filter
        for delta_start_date, delta_end_date in date_generator(start_date, end_date, 1):
            response = wholesale_api.request(date=delta_start_date)
            wholesale_api.load(response)

    return data
예제 #4
0
def direct_origin(start_date=None, end_date=None, *args, **kwargs):

    data = DirectData('COG06', 2, LOGGER_TYPE_CODE)

    for model in MODELS:
        origin_api = OriginApi(model=model, **data._asdict())

        for obj in product_generator(model, type=2, **kwargs):
            for delta_start_date, delta_end_date in date_generator(start_date, end_date, ORIGIN_DELTA_DAYS):
                response = origin_api.request(start_date=delta_start_date, end_date=delta_end_date, name=obj.code)
                origin_api.load(response)

    return data
예제 #5
0
def direct_wholesale_06(start_date=None, end_date=None, *args, **kwargs):

    data = DirectData('COG06', 1, LOGGER_TYPE_CODE)

    for model in MODELS:
        wholesale_api = WholeSaleApi06(model=model, **data._asdict())

        for obj in product_generator(model, type=1, **kwargs):
            for delta_start_date, delta_end_date in date_generator(start_date, end_date, WHOLESALE_DELTA_DAYS):
                response = wholesale_api.request(start_date=delta_start_date, end_date=delta_end_date, code=obj.code)
                wholesale_api.load(response)

    return data
예제 #6
0
def direct_origin(start_date=None, end_date=None, *args, **kwargs):

    data = DirectData(CONFIG_CODE, 2, LOGGER_TYPE_CODE)

    for model in MODELS:
        origin_api = OriginApi(model=model, **data._asdict())

        for obj in product_generator(model, type=2, **kwargs):
            for delta_start_date, delta_end_date in date_generator(start_date, end_date, ORIGIN_DELTA_DAYS):
                response = origin_api.request(start_date=delta_start_date, end_date=delta_end_date, code=obj.code)
                origin_api.load(response)
                # sleep for that poor api service...
                time.sleep(10)

    return data
예제 #7
0
파일: builder.py 프로젝트: travishen/aprp
def direct_wholesale(start_date=None, end_date=None, *args, **kwargs):

    data = DirectData(CONFIG_CODE, 1, LOGGER_TYPE_CODE)

    for model in MODELS:
        wholesale_api = WholeSaleApi(model=model, **data._asdict())
        for obj in product_generator(model):
            if obj.type.id == 1:
                for delta_start_date, delta_end_date in date_generator(
                        start_date, end_date, WHOLESALE_DELTA_DAYS):
                    response = wholesale_api.request(
                        start_date=delta_start_date,
                        end_date=delta_end_date,
                        name=obj.name)
                    wholesale_api.load(response)

    return data
예제 #8
0
def direct_wholesale_04(start_date=None, end_date=None, *args, **kwargs):

    data = DirectData('COG04', 1, LOGGER_TYPE_CODE)

    for model in MODELS:
        # Provide sum_to_product to calculate detail objects to one DailyTran
        wholesale_api = WholeSaleApi(model=model,
                                     market_type='L',
                                     sum_to_product='L',
                                     **data._asdict())

        # This api only provide one day filter
        for delta_start_date, delta_end_date in date_generator(
                start_date, end_date, WHOLESALE_DELTA_DAYS):
            response = wholesale_api.request(date=delta_start_date)
            wholesale_api.load(response)

    return data