Esempio n. 1
0
def step_features(env: Env, **kwargs):
    if env.production:
        kwargs.update({"add_ads": True})
    if any(x not in WORLDS_NAMES for x in env.countries):
        kwargs.update({"generate_packed_borders": True})
    if any(x == WORLD_NAME for x in env.countries):
        kwargs.update({"generate_world": True})
    if len(env.countries) == len(
            get_all_countries_list(PathProvider.borders_path())):
        kwargs.update({"have_borders_for_whole_world": True})

    run_gen_tool(
        env.gen_tool,
        out=env.get_subprocess_out(),
        err=env.get_subprocess_out(),
        data_path=env.paths.data_path,
        intermediate_data_path=env.paths.intermediate_data_path,
        cache_path=env.paths.cache_path,
        osm_file_type="o5m",
        osm_file_name=env.paths.planet_o5m,
        node_storage=env.node_storage,
        user_resource_path=env.paths.user_resource_path,
        dump_cities_boundaries=True,
        cities_boundaries_data=env.paths.cities_boundaries_path,
        generate_features=True,
        threads_count=settings.THREADS_COUNT_FEATURES_STAGE,
        **kwargs,
    )
Esempio n. 2
0
def make_coastline(env: Env):
    coastline_o5m = os.path.join(env.paths.coastline_path, "coastline.o5m")
    filter_coastline(
        env[settings.OSM_TOOL_FILTER],
        env.paths.planet_o5m,
        coastline_o5m,
        output=env.get_subprocess_out(),
        error=env.get_subprocess_out(),
    )

    run_gen_tool(
        env.gen_tool,
        out=env.get_subprocess_out(),
        err=env.get_subprocess_out(),
        intermediate_data_path=env.paths.coastline_path,
        osm_file_type="o5m",
        osm_file_name=coastline_o5m,
        node_storage=env.node_storage,
        user_resource_path=env.paths.user_resource_path,
        preprocess=True,
    )

    run_gen_tool(
        env.gen_tool,
        out=env.get_subprocess_out(),
        err=env.get_subprocess_out(),
        intermediate_data_path=env.paths.coastline_path,
        osm_file_type="o5m",
        osm_file_name=coastline_o5m,
        node_storage=env.node_storage,
        user_resource_path=env.paths.user_resource_path,
        make_coasts=True,
        fail_on_coasts=True,
        threads_count=settings.THREADS_COUNT,
    )
Esempio n. 3
0
def step_preprocess(env: Env, **kwargs):
    run_gen_tool(
        env.gen_tool,
        out=env.get_subprocess_out(),
        err=env.get_subprocess_out(),
        intermediate_data_path=env.paths.intermediate_data_path,
        osm_file_type="o5m",
        osm_file_name=env.paths.planet_o5m,
        node_storage=env.node_storage,
        user_resource_path=env.paths.user_resource_path,
        preprocess=True,
        **kwargs,
    )
Esempio n. 4
0
def _generate_common_index(env: Env, country: AnyStr, **kwargs):
    run_gen_tool(
        env.gen_tool,
        out=env.get_subprocess_out(country),
        err=env.get_subprocess_out(country),
        data_path=env.paths.mwm_path,
        intermediate_data_path=env.paths.intermediate_data_path,
        user_resource_path=env.paths.user_resource_path,
        node_storage=env.node_storage,
        planet_version=env.planet_version,
        generate_geometry=True,
        generate_index=True,
        output=country,
        **kwargs,
    )
Esempio n. 5
0
def run_gen_tool_with_recovery_country(env: Env, *args, **kwargs):
    if "data_path" not in kwargs or "output" not in kwargs:
        logger.warning("The call run_gen_tool() will be without recovery.")
        run_gen_tool(*args, **kwargs)

    prev_data_path = kwargs["data_path"]
    mwm = f"{kwargs['output']}.mwm"
    osm2ft = f"{mwm}.osm2ft"
    kwargs["data_path"] = env.paths.draft_path
    make_symlink(os.path.join(prev_data_path, osm2ft),
                 os.path.join(env.paths.draft_path, osm2ft))
    shutil.copy(os.path.join(prev_data_path, mwm),
                os.path.join(env.paths.draft_path, mwm))
    run_gen_tool(*args, **kwargs)
    shutil.move(os.path.join(env.paths.draft_path, mwm),
                os.path.join(prev_data_path, mwm))
    kwargs["data_path"] = prev_data_path
Esempio n. 6
0
    def apply(self, env: Env):
        run_gen_tool(
            env.gen_tool,
            out=env.get_subprocess_out(),
            err=env.get_subprocess_out(),
            intermediate_data_path=env.paths.intermediate_data_path,
            user_resource_path=env.paths.user_resource_path,
            dump_wikipedia_urls=env.paths.wiki_url_path,
            idToWikidata=env.paths.id_to_wikidata_path,
        )

        langs = ("en", "ru", "es", "fr", "de")
        checker = check_and_get_checker(env.paths.popularity_path)
        download_from_wikipedia_tags(env.paths.wiki_url_path,
                                     env.paths.descriptions_path, langs,
                                     checker)
        download_from_wikidata_tags(env.paths.id_to_wikidata_path,
                                    env.paths.descriptions_path, langs,
                                    checker)