docs: def from_env(cls, env_filename=None):
          # type: (Optional[str]) -> Client
          """Create a client from environment variable settings.
  
          :param basestring env_filename: filename of the environment file, defaults to '.env' in the local dir
                                          (or parent dir)
          :return: :class:`pykechain.Client`
  
          Example
          -------
  
          Initiates the pykechain client from the contents of an environment file. Authentication information is optional
          but ensure that you provide this later in your code. Offered are both username/password authentication and
          user token authentication.
  
          .. code-block:: none
             :caption: .env
             :name: dot-env
  
              # User token here (required)
              KECHAIN_TOKEN=...<secret user token>...
              KECHAIN_URL=https://an_url.ke-chain.com
  
              # or use Basic Auth with username/password
              KECHAIN_USERNAME=...
              KECHAIN_PASSWORD=...
  
              # optional add a scope name or scope id
              KECHAIN_SCOPE=...
              KECHAIN_SCOPE_ID=...
  
          >>> client = Client().from_env()
  
          """
          with warnings.catch_warnings():
              warnings.simplefilter("ignore", UserWarning)
              env.read_envfile(env_filename)
          client = cls(url=env(KechainEnv.KECHAIN_URL))
  
          if env(KechainEnv.KECHAIN_TOKEN, None):
              client.login(token=env(KechainEnv.KECHAIN_TOKEN))
          elif env(KechainEnv.KECHAIN_USERNAME, None) and env(KechainEnv.KECHAIN_PASSWORD, None):
              client.login(username=env(KechainEnv.KECHAIN_USERNAME), password=env(KechainEnv.KECHAIN_PASSWORD))
  
          return client