class_docstr: Base command that knows how to handle the .pypirc file
class_docstr_tok: ["Base","command","that","knows","how","to","handle","the",".pypirc","file"]
docstr: Reads the .pypirc file.
docstr_tok: ["Reads","the",".pypirc","file","."]
code: def _read_pypirc(self):  # noqa: C901
      """Reads the .pypirc file."""
      rc = self._get_rc_file()
      if os.path.exists(rc):
          self.announce("Using PyPI login from %s" % rc)
          repository = self.repository or self.DEFAULT_REPOSITORY
  
          config = RawConfigParser()
          config.read(rc)
          sections = config.sections()
          if "distutils" in sections:
              # let's get the list of servers
              index_servers = config.get("distutils", "index-servers")
              _servers = [
                  server.strip()
                  for server in index_servers.split("\n")
                  if server.strip() != ""
              ]
              if _servers == []:
                  # nothing set, let's try to get the default pypi
                  if "pypi" in sections:
                      _servers = ["pypi"]
                  else:
                      # the file is not properly defined, returning
                      # an empty dict
                      return {}
              for server in _servers:
                  current = {"server": server}
                  current["username"] = config.get(server, "username")
  
                  # optional params
                  for key, default in (
                      ("repository", self.DEFAULT_REPOSITORY),
                      ("realm", self.DEFAULT_REALM),
                      ("password", None),
                  ):
                      if config.has_option(server, key):
                          current[key] = config.get(server, key)
                      else:
                          current[key] = default
  
                  # work around people having "repository" for the "pypi"
                  # section of their config set to the HTTP (rather than
                  # HTTPS) URL
                  if server == "pypi" and repository in (
                      self.DEFAULT_REPOSITORY,
                      "pypi",
                  ):
                      current["repository"] = self.DEFAULT_REPOSITORY
                      return current
  
                  if (
                      current["server"] == repository
                      or current["repository"] == repository
                  ):
                      return current
          elif "server-login" in sections:
              # old format
              server = "server-login"
              if config.has_option(server, "repository"):
                  repository = config.get(server, "repository")
              else:
                  repository = self.DEFAULT_REPOSITORY
              return {
                  "username": config.get(server, "username"),
                  "password": config.get(server, "password"),
                  "repository": repository,
                  "server": server,
                  "realm": self.DEFAULT_REALM,
              }
  
      return {}
  
file_path: catboost/contrib/python/setuptools/py3/setuptools/_distutils/config.py
imports: import os
  from configparser import RawConfigParser
  from .cmd import Command
label_desc: Use image node_id 3 for calling the PyPIRCCommand obj's underlying member method code with example usage: obj._read_pypirc() and returns: dict, dict, dict, current, current