示例#1
0
def osmupdate(
    name_executable,
    in_file,
    out_file,
    output=subprocess.DEVNULL,
    error=subprocess.DEVNULL,
    run_async=False,
    **kwargs,
):
    env = os.environ.copy()
    env["PATH"] = f"{settings.OSM_TOOLS_PATH}:{env['PATH']}"
    p = subprocess.Popen(
        [
            name_executable,
            "--drop-author",
            "--drop-version",
            "--out-o5m",
            "-v",
            in_file,
            out_file,
        ],
        env=env,
        stdout=output,
        stderr=error,
    )
    if run_async:
        return p
    else:
        wait_and_raise_if_fail(p)
示例#2
0
 def get_build_version(self):
     p = subprocess.Popen(
         [self.name_executable, "--version"],
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE,
         env=os.environ,
     )
     wait_and_raise_if_fail(p)
     out, err = p.communicate()
     return out.decode("utf-8").replace("\n", " ").strip()
示例#3
0
def step_prepare_routing_world(env: Env, country: AnyStr, **kwargs):
    world_roads_builder_tool_with_args = [env.world_roads_builder_tool,
                                          f"--path_roads_file={env.paths.planet_o5m}",
                                          f"--path_resources={env.paths.user_resource_path}",
                                          f"--path_res_file={env.paths.world_roads_path}"]
    logger.info(f"Starting {world_roads_builder_tool_with_args}")
    sub_proc = subprocess.Popen(
        world_roads_builder_tool_with_args,
        stdout=env.get_subprocess_out(country),
        stderr=env.get_subprocess_out(country),
        env=os.environ
    )

    wait_and_raise_if_fail(sub_proc)
示例#4
0
def osmfilter(
    name_executable,
    in_file,
    out_file,
    output=subprocess.DEVNULL,
    error=subprocess.DEVNULL,
    run_async=False,
    **kwargs,
):
    env = os.environ.copy()
    env["PATH"] = f"{settings.OSM_TOOLS_PATH}:{env['PATH']}"
    args = [name_executable, in_file, f"-o={out_file}"
            ] + [f"--{k.replace('_', '-')}={v}" for k, v in kwargs.items()]
    p = subprocess.Popen(args, env=env, stdout=output, stderr=error)
    if run_async:
        return p
    else:
        wait_and_raise_if_fail(p)
示例#5
0
def make_world_road_graph(
    name_executable,
    path_roads_file,
    path_resources,
    path_res_file,
    logger,
    output=subprocess.DEVNULL,
    error=subprocess.DEVNULL,
):
    world_roads_builder_tool_cmd = [
        name_executable,
        f"--path_roads_file={path_roads_file}",
        f"--path_resources={path_resources}",
        f"--path_res_file={path_res_file}",
    ]
    logger.info(f"Starting {' '.join(world_roads_builder_tool_cmd)}")
    world_roads_builder_tool = subprocess.Popen(world_roads_builder_tool_cmd,
                                                stdout=output,
                                                stderr=error,
                                                env=os.environ)

    wait_and_raise_if_fail(world_roads_builder_tool)
示例#6
0
 def run(self):
     self.run_async()
     wait_and_raise_if_fail(self)