コード例 #1
0
ファイル: executor_helpers.py プロジェクト: ms705/ciel
def ref_from_string(string, id):
    if len(string) < 1024:
        return SWDataValue(id, value=encode_datavalue(string))
    else:
        output_ctx = make_local_output(id)
        filename, _ = output_ctx.get_filename_or_fd()
        with open(filename, "w") as fp:
            fp.write(string)
        output_ctx.close()
        return output_ctx.get_completed_ref()
コード例 #2
0
ファイル: producer.py プロジェクト: ms705/ciel
 def get_completed_ref(self):
     if not self.closed:
         raise Exception("FileOutputContext for ref %s must be closed before it is realised as a concrete reference" % self.refid)
     if self.direct_write_filename is not None or self.direct_write_fd is not None:
         return SW2_CompletedReference(self.refid)
     completed_file = producer_filename(self.refid)
     if self.current_size < 1024:
         with open(completed_file, "r") as fp:
             return SWDataValue(self.refid, encode_datavalue(fp.read()))
     else:
         return SW2_ConcreteReference(self.refid, size_hint=self.current_size, location_hints=[get_own_netloc()])
コード例 #3
0
ファイル: skypy.py プロジェクト: ms705/ciel
def ref_from_maybe_file(output_fp, refidx):
    if output_fp.real_fp is not None:
        return output_fp.real_fp.get_completed_ref()
    else:
        args = {"index": refidx, "str": encode_datavalue(output_fp.str)}
        return current_task.message_helper.synchronous_request("publish_string", args)["ref"]
コード例 #4
0
ファイル: skypy.py プロジェクト: ms705/ciel
def describe_maybe_file(output_fp, out_dict):
    if output_fp.real_fp is not None:
        out_dict["filename"] = output_fp.filename
        output_fp.real_fp.close()
    else:
        out_dict["strdata"] = encode_datavalue(output_fp.str)
コード例 #5
0
ファイル: task.py プロジェクト: ms705/ciel
 def write_output(self, index, write_callback):
     with MaybeFile(open_callback = lambda: self.open_output(index)) as fp:
         write_callback(fp)
     if fp.real_fp is not None:
         ret = self.ciel_runtime.synchronous_request("close_output", {"index": index, "size": fp.bytes_written})
     else:
         ret = self.ciel_runtime.synchronous_request("publish_string", {"index": index, "str": encode_datavalue(fp.str)})
     return ret["ref"]
コード例 #6
0
ファイル: executor_helpers.py プロジェクト: ms705/ciel
 def to_safe_dict(self):
     if self.str is not None:
         return {"strdata": encode_datavalue(self.str)}
     else:
         return {"filename": self.filename}