コード例 #1
0
ファイル: haplib.py プロジェクト: Rkumagaya/hatohol
    def divide_and_put_data(self, put_func, contents, *args, **kwargs):
        chunk_size = DEFAULT_MAX_CHUNK_SIZE
        copy_contents = copy.copy(contents)

        serial_id = 0
        is_last = False
        request_id = str(uuid.uuid4())
        while True:
            num_contents = len(copy_contents)
            if num_contents == 0:
                return
            try:
                count = num_contents / chunk_size
                if num_contents % chunk_size != 0:
                    count += 1

                for num in range(0, count):
                    params = dict()
                    if num == count-1:
                        is_last = True
                    if count > 1:
                        hapcommon.insert_divide_info_to_params(params,
                                                               serial_id,
                                                               is_last,
                                                               request_id)
                    chunk_contents = copy_contents[0: chunk_size]
                    put_func(chunk_contents, params, *args, **kwargs)
                    serial_id += 1
                    del copy_contents[0: chunk_size]
            except OverCapacity:
                chunk_size = chunk_size * 3 / 4
                continue
コード例 #2
0
ファイル: TestHapCommon.py プロジェクト: Rkumagaya/hatohol
    def test_insert_divide_info_to_params(self):
        expect_params = {"divideInfo": {"isLast": True, "serialId": 110, "requestId": "test_id"}}

        test_params = dict()
        hapcommon.insert_divide_info_to_params(test_params, 110, True, "test_id")

        self.assertEquals(test_params["divideInfo"]["isLast"],
                          expect_params["divideInfo"]["isLast"])
        self.assertEquals(test_params["divideInfo"]["serialId"],
                          expect_params["divideInfo"]["serialId"])
        self.assertEquals(test_params["divideInfo"]["requestId"],
                          expect_params["divideInfo"]["requestId"])
コード例 #3
0
    def test_insert_divide_info_to_params(self):
        expect_params = {
            "divideInfo": {
                "isLast": True,
                "serialId": 110,
                "requestId": "test_id"
            }
        }

        test_params = dict()
        hapcommon.insert_divide_info_to_params(test_params, 110, True,
                                               "test_id")

        self.assertEquals(test_params["divideInfo"]["isLast"],
                          expect_params["divideInfo"]["isLast"])
        self.assertEquals(test_params["divideInfo"]["serialId"],
                          expect_params["divideInfo"]["serialId"])
        self.assertEquals(test_params["divideInfo"]["requestId"],
                          expect_params["divideInfo"]["requestId"])
コード例 #4
0
ファイル: haplib.py プロジェクト: saruvitz-life/hatohol
    def divide_and_put_data(self,
                            put_func,
                            contents,
                            put_empty_contents=False,
                            *args,
                            **kwargs):
        if put_empty_contents and len(contents) == 0:
            put_func([], dict(), *args, **kwargs)
            return

        chunk_size = DEFAULT_MAX_CHUNK_SIZE
        copy_contents = copy.copy(contents)

        serial_id = 0
        is_last = False
        request_id = str(uuid.uuid4())
        while True:
            num_contents = len(copy_contents)
            if num_contents == 0:
                return
            try:
                count = num_contents / chunk_size
                if num_contents % chunk_size != 0:
                    count += 1

                for num in range(0, count):
                    params = dict()
                    if num == count - 1:
                        is_last = True
                    if count > 1:
                        hapcommon.insert_divide_info_to_params(
                            params, serial_id, is_last, request_id)
                    chunk_contents = copy_contents[0:chunk_size]
                    put_func(chunk_contents, params, *args, **kwargs)
                    serial_id += 1
                    del copy_contents[0:chunk_size]
            except OverCapacity:
                chunk_size = chunk_size * 3 / 4
                continue