code: def from_config(cls, gs_configuration):
      default_credentials = (
          getenv("GOOGLE_APPLICATION_CREDENTIALS") or {}
      )
  
      if not gs_configuration:
          return cls(default_credentials=default_credentials)
  
      config_list = gs_configuration.get("credentials", [])
      buckets_configs = [
          GSBucketConfig(**entry) for entry in config_list
      ]
  
      default_project = gs_configuration.get("project", "default") or {}
      default_credentials = (
          gs_configuration.get("credentials_json", None)
          or default_credentials
      )
      default_pool_connections = gs_configuration.get(
          "pool_connections", None
      )
      default_pool_maxsize = gs_configuration.get("pool_maxsize", None)
  
      return cls(
          buckets_configs,
          default_project,
          default_credentials,
          default_pool_connections,
          default_pool_maxsize,
      )
  
imports: import abc
  import warnings
  from copy import copy
  from operator import itemgetter
  from os import getenv
  import furl
  import six
  from attr import attrib, attrs
label_desc: Use image node_id 2 for calling the GSBucketConfigurations obj's underlying member method code with example usage: obj.from_config(cls, gs_configuration) and returns: cls, cls