def convert_planet( tool: AnyStr, in_planet: AnyStr, out_planet: AnyStr, output=subprocess.DEVNULL, error=subprocess.DEVNULL, ): osmconvert(tool, in_planet, out_planet, output=output, error=error) write_md5sum(out_planet, md5_ext(out_planet))
def step_update_planet(env: Env, **kwargs): tmp = f"{env.paths.planet_o5m}.tmp" osmupdate( env[settings.OSM_TOOL_UPDATE], env.paths.planet_o5m, tmp, output=env.get_subprocess_out(), error=env.get_subprocess_out(), **kwargs, ) os.remove(env.paths.planet_o5m) os.rename(tmp, env.paths.planet_o5m) write_md5sum(env.paths.planet_o5m, md5_ext(env.paths.planet_o5m))
def step_download_and_convert_planet(env: Env, force_download: bool, **kwargs): if force_download or not is_verified(env.paths.planet_osm_pbf): download_files( { settings.PLANET_URL: env.paths.planet_osm_pbf, settings.PLANET_MD5_URL: md5_ext(env.paths.planet_osm_pbf), }, env.force_download_files, ) if not is_verified(env.paths.planet_osm_pbf): raise ValidationError(f"Wrong md5 sum for {env.paths.planet_osm_pbf}.") convert_planet( env[settings.OSM_TOOL_CONVERT], env.paths.planet_osm_pbf, env.paths.planet_o5m, output=env.get_subprocess_out(), error=env.get_subprocess_out(), ) os.remove(env.paths.planet_osm_pbf) os.remove(md5_ext(env.paths.planet_osm_pbf))
def is_verified(name: AnyStr) -> bool: return is_exists_file_and_md5(name) and check_md5(name, md5_ext(name))
def is_exists_file_and_md5(name: AnyStr) -> bool: return os.path.isfile(name) and os.path.isfile(md5_ext(name))
val = CfgReader._get_env_val(s, v) if val is not None: return val return self.config.get(s, v) if self.config.has_option(s, v) else default def get_opt_path(self, s: AnyStr, v: AnyStr, default: AnyStr = ""): return os.path.expanduser(self.get_opt(s, v, default)) @staticmethod def _get_env_val(s: AnyStr, v: AnyStr): return os.environ.get(f"MM__{s.upper()}_{v.upper()}") DEFAULT_PLANET_URL = "https://planet.openstreetmap.org/pbf/planet-latest.osm.pbf" DEFAULT_PLANET_MD5_URL = md5_ext(DEFAULT_PLANET_URL) # Main section: # If DEBUG is True, a little special planet is downloaded. DEBUG = True _HOME_PATH = str(Path.home()) _WORK_PATH = _HOME_PATH TMPDIR = os.path.join(_HOME_PATH, "tmp") MAIN_OUT_PATH = os.path.join(_WORK_PATH, "generation") # Developer section: BUILD_PATH = os.path.join(_WORK_PATH, "omim-build-release") OMIM_PATH = os.path.join(_WORK_PATH, "omim") # Osm tools section: OSM_TOOLS_SRC_PATH = os.path.join(OMIM_PATH, "tools", "osmctools")
def publish_planet(**kwargs): build_name = kwargs["ti"].xcom_pull(key="build_name") env = Env(build_name=build_name) storage.wd_publish(env.paths.planet_o5m, PLANET_STORAGE_PATH) storage.wd_publish(md5_ext(env.paths.planet_o5m), md5_ext(PLANET_STORAGE_PATH))