in google-cloud-jupyter-config/google/cloud/jupyter_config/config.py [0:0]
def get_gcloud_config(field):
"""Helper method that invokes the gcloud config helper.
Invoking gcloud commands is a very heavyweight process, so the config is
cached for up to 20 minutes.
The config is generated with a minimum credential expiry of 30 minutes, so
that we can ensure that the caller can use the cached credentials for at
least ~10 minutes even if the cache entry is about to expire.
Args:
field: A period-separated search path for the config value to return.
For example, 'configuration.properties.core.project'
Returns:
A JSON object whose type depends on the search path for the field within
the gcloud config.
For example, if the field is `configuration.properties.core.project`,
then the return value will be a string. In comparison, if the field
is `configuration.properties.core`, then the return value will be a
dictionary containing a field named `project` with a string value.
"""
subcommand = "config config-helper --min-expiry=30m --format=json"
cached_config_str = cached_gcloud_subcommand(subcommand)
cached_config = json.loads(cached_config_str)
return _get_config_field(cached_config, field)