that's too much!
This commit is contained in:
73
.venv/lib/python3.12/site-packages/fiona/fio/main.py
Normal file
73
.venv/lib/python3.12/site-packages/fiona/fio/main.py
Normal file
@@ -0,0 +1,73 @@
|
||||
"""
|
||||
Main click group for the CLI. Needs to be isolated for entry-point loading.
|
||||
"""
|
||||
|
||||
|
||||
import itertools
|
||||
import logging
|
||||
import sys
|
||||
|
||||
import click
|
||||
from click_plugins import with_plugins
|
||||
from cligj import verbose_opt, quiet_opt
|
||||
|
||||
if sys.version_info < (3, 10):
|
||||
from importlib_metadata import entry_points
|
||||
else:
|
||||
from importlib.metadata import entry_points
|
||||
|
||||
import fiona
|
||||
from fiona import __version__ as fio_version
|
||||
from fiona.session import AWSSession, DummySession
|
||||
|
||||
|
||||
def configure_logging(verbosity):
|
||||
log_level = max(10, 30 - 10 * verbosity)
|
||||
logging.basicConfig(stream=sys.stderr, level=log_level)
|
||||
|
||||
|
||||
@with_plugins(
|
||||
itertools.chain(
|
||||
entry_points(group="fiona.fio_commands"),
|
||||
entry_points(group="fiona.fio_plugins"),
|
||||
)
|
||||
)
|
||||
@click.group()
|
||||
@verbose_opt
|
||||
@quiet_opt
|
||||
@click.option(
|
||||
"--aws-profile",
|
||||
help="Select a profile from the AWS credentials file")
|
||||
@click.option(
|
||||
"--aws-no-sign-requests",
|
||||
is_flag=True,
|
||||
help="Make requests anonymously")
|
||||
@click.option(
|
||||
"--aws-requester-pays",
|
||||
is_flag=True,
|
||||
help="Requester pays data transfer costs")
|
||||
@click.version_option(fio_version)
|
||||
@click.version_option(fiona.__gdal_version__, '--gdal-version',
|
||||
prog_name='GDAL')
|
||||
@click.version_option(sys.version, '--python-version', prog_name='Python')
|
||||
@click.pass_context
|
||||
def main_group(
|
||||
ctx, verbose, quiet, aws_profile, aws_no_sign_requests,
|
||||
aws_requester_pays):
|
||||
"""Fiona command line interface.
|
||||
"""
|
||||
verbosity = verbose - quiet
|
||||
configure_logging(verbosity)
|
||||
ctx.obj = {}
|
||||
ctx.obj["verbosity"] = verbosity
|
||||
ctx.obj["aws_profile"] = aws_profile
|
||||
envopts = {"CPL_DEBUG": (verbosity > 2)}
|
||||
if aws_profile or aws_no_sign_requests:
|
||||
session = AWSSession(
|
||||
profile_name=aws_profile,
|
||||
aws_unsigned=aws_no_sign_requests,
|
||||
requester_pays=aws_requester_pays,
|
||||
)
|
||||
else:
|
||||
session = DummySession()
|
||||
ctx.obj["env"] = fiona.Env(session=session, **envopts)
|
||||
Reference in New Issue
Block a user