def env(ctx, key): """Print information about the Fiona environment: available formats, etc. """ stdout = click.get_text_stream('stdout') with ctx.obj['env'] as env: if key == 'formats': for k, v in sorted(fiona.supported_drivers.items()): modes = ', '.join("'" + m + "'" for m in v) stdout.write("%s (modes %s)\n" % (k, modes)) stdout.write('\n') 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())
def test_search_gdal_data_wheel(mock_wheel): finder = GDALDataFinder() assert finder.search(str(mock_wheel.join("_env.py"))) == str(mock_wheel.join("gdal_data"))
def test_search_debian_gdal_data_failure(tmpdir): """Fail to find GDAL data in a bogus Debian location""" finder = GDALDataFinder() assert not finder.search_debian(str(tmpdir))
def test_search_prefix_gdal_data(mock_fhs): """Find GDAL data under prefix""" finder = GDALDataFinder() assert finder.search_prefix(str(mock_fhs)) == str(mock_fhs.join("share").join("gdal"))
def test_search_prefix_gdal_data_failure(tmpdir): """Fail to find GDAL data in a bogus prefix""" finder = GDALDataFinder() assert not finder.search_prefix(str(tmpdir))
def test_search_wheel_gdal_data(mock_wheel): """Find GDAL data in a wheel""" finder = GDALDataFinder() assert finder.search_wheel(str(mock_wheel.join("_env.py"))) == str(mock_wheel.join("gdal_data"))
def test_search_wheel_gdal_data_failure(tmpdir): """Fail to find GDAL data in a non-wheel""" finder = GDALDataFinder() assert not finder.search_wheel(str(tmpdir))
def test_search_gdal_data_fhs(mock_fhs): finder = GDALDataFinder() assert finder.search(str(mock_fhs)) == str(mock_fhs.join("share").join("gdal"))
def test_search_gdal_data_debian(mock_debian): """Find GDAL data under Debian locations""" finder = GDALDataFinder() assert finder.search(str(mock_debian)) == str(mock_debian.join("share").join("gdal").join("{}.{}".format(gdal_version.major, gdal_version.minor)))
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_wheel() if path: log.debug("GDAL data found in package: path=%r.", path) set_gdal_config("GDAL_DATA", 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: set_gdal_config("GDAL_DATA", path) log.debug("GDAL data found in other locations: path=%r.", path)
def test_gdal_data_wheel(): """Get GDAL data path from a wheel""" assert GDALDataFinder().search() == os.path.join( os.path.dirname(fiona.__file__), 'gdal_data')