Ejemplo n.º 1
0
def env(ctx, key):
    """Print information about the Rasterio environment."""
    with ctx.obj['env'] as env:
        if key == 'formats':
            for k, v in sorted(env.drivers().items()):
                click.echo("{0}: {1}".format(k, v))
        elif key == 'credentials':
            click.echo(json.dumps(env.session.credentials))
        elif key == 'gdal_data':
            click.echo(
                os.environ.get('GDAL_DATA') or GDALDataFinder().search())
        elif key == 'proj_data':
            click.echo(os.environ.get('PROJ_LIB') or PROJDataFinder().search())
Ejemplo n.º 2
0
def test_search_proj_data_wheel(mock_wheel):
    finder = PROJDataFinder()
    assert finder.search(str(mock_wheel.join("_env.py"))) == str(
        mock_wheel.join("proj_data"))
Ejemplo n.º 3
0
def test_search_prefix_proj_data(mock_fhs):
    """Find GDAL data under prefix"""
    finder = PROJDataFinder()
    assert finder.search_prefix(str(mock_fhs)) == str(
        mock_fhs.join("share").join("proj"))
Ejemplo n.º 4
0
def test_search_prefix_proj_data_failure(tmpdir):
    """Fail to find GDAL data in a bogus prefix"""
    finder = PROJDataFinder()
    assert not finder.search_prefix(str(tmpdir))
Ejemplo n.º 5
0
def test_search_wheel_proj_data(mock_wheel):
    """Find GDAL data in a wheel"""
    finder = PROJDataFinder()
    assert finder.search_wheel(str(mock_wheel.join("_env.py"))) == str(
        mock_wheel.join("proj_data"))
Ejemplo n.º 6
0
def test_search_wheel_proj_data_failure(tmpdir):
    """Fail to find GDAL data in a non-wheel"""
    finder = PROJDataFinder()
    assert not finder.search_wheel(str(tmpdir))
Ejemplo n.º 7
0
    if path:
        os.environ['GDAL_DATA'] = path
        log.debug("GDAL data found in package, GDAL_DATA set to %r.", path)

    # See https://github.com/mapbox/rasterio/issues/1631.
    elif GDALDataFinder().find_file("header.dxf"):
        log.debug("GDAL data files are available at built-in paths")

    else:
        path = GDALDataFinder().search()

        if path:
            os.environ['GDAL_DATA'] = path
            log.debug("GDAL_DATA not found in environment, set to %r.", path)

if "PROJ_LIB" in os.environ:
    path = os.environ["PROJ_LIB"]
    set_proj_data_search_path(path)

# See https://github.com/mapbox/rasterio/issues/1631.
elif PROJDataFinder().has_data():
    log.debug("PROJ data files are available at built-in paths")

else:
    path = PROJDataFinder().search()

    if path:
        log.debug("PROJ data not found in environment, setting to %r.", path)
        set_proj_data_search_path(path)
Ejemplo n.º 8
0
                        raise GDALVersionError('parameter "{0}={1}" requires '
                                               'GDAL {2} {3}{4}'.format(
                                                   param, full_kwds[param],
                                                   inequality, version,
                                                   reason))

            return f(*args, **kwds)

        return wrapper

    return decorator


# Patch the environment if needed, such as in the installed wheel case.

if 'GDAL_DATA' not in os.environ:

    path = GDALDataFinder().search()

    if path:
        os.environ['GDAL_DATA'] = path
        log.debug("GDAL_DATA not found in environment, set to %r.", path)

if 'PROJ_LIB' not in os.environ:

    path = PROJDataFinder().search()

    if path:
        os.environ['PROJ_LIB'] = path
        log.debug("PROJ data not found in environment, set to %r.", path)
Ejemplo n.º 9
0
def test_search_wheel_proj_data_failure(tmpdir):
    """Fail to find GDAL data in a non-wheel"""
    finder = PROJDataFinder()
    assert not finder.search_wheel(str(tmpdir))
Ejemplo n.º 10
0
def test_search_proj_data_fhs(mock_fhs):
    finder = PROJDataFinder()
    assert finder.search(str(mock_fhs)) == str(mock_fhs.join("share").join("proj"))
Ejemplo n.º 11
0
def test_search_proj_data_wheel(mock_wheel):
    finder = PROJDataFinder()
    assert finder.search(str(mock_wheel.join("_env.py"))) == str(mock_wheel.join("proj_data"))
Ejemplo n.º 12
0
def test_search_prefix_proj_data(mock_fhs):
    """Find GDAL data under prefix"""
    finder = PROJDataFinder()
    assert finder.search_prefix(str(mock_fhs)) == str(mock_fhs.join("share").join("proj"))
Ejemplo n.º 13
0
def test_search_prefix_proj_data_failure(tmpdir):
    """Fail to find GDAL data in a bogus prefix"""
    finder = PROJDataFinder()
    assert not finder.search_prefix(str(tmpdir))
Ejemplo n.º 14
0
def test_search_wheel_proj_data(mock_wheel):
    """Find GDAL data in a wheel"""
    finder = PROJDataFinder()
    assert finder.search_wheel(str(mock_wheel.join("_env.py"))) == str(mock_wheel.join("proj_data"))
Ejemplo n.º 15
0
def test_search_proj_data_fhs(mock_fhs):
    finder = PROJDataFinder()
    assert finder.search(str(mock_fhs)) == str(
        mock_fhs.join("share").join("proj"))
Ejemplo n.º 16
0
def test_proj_data():
    """Get GDAL data path from a wheel"""
    assert PROJDataFinder().search() == os.path.join(
        os.path.dirname(rasterio.__file__), 'proj_data')
Ejemplo n.º 17
0
def test_proj_data_has_data():
    """has_data shouldn't raise any exceptions"""
    PROJDataFinder().has_data()