docs: def get_countries(is_legacy_xml=False):
      """
      The function to generate a dictionary containing ISO_3166-1 country codes
      to names.
  
      Args:
          is_legacy_xml (:obj:`bool`): Whether to use the older country code
              list (iso_3166-1_list_en.xml).
  
      Returns:
          dict: A mapping of country codes as the keys to the country names as
              the values.
      """
  
      # Initialize the countries dictionary.
      countries = {}
  
      # Set the data directory based on if the script is a frozen executable.
      if sys.platform == 'win32' and getattr(sys, 'frozen', False):
  
          data_dir = path.dirname(sys.executable)  # pragma: no cover
  
      else:
  
          data_dir = path.dirname(__file__)
  
      if is_legacy_xml:
  
          log.debug('Opening country code legacy XML: {0}'.format(
                  str(data_dir) + '/data/iso_3166-1_list_en.xml'))
  
          # Create the country codes file object.
          f = io.open(str(data_dir) + '/data/iso_3166-1_list_en.xml', 'r',
                      encoding='ISO-8859-1')
  
          # Read the file.
          data = f.read()
  
          # Check if there is data.
          if not data:  # pragma: no cover
  
              return {}
  
          # Parse the data to get the DOM.
          dom = parseString(data)
  
          # Retrieve the country entries.
          entries = dom.getElementsByTagName('ISO_3166-1_Entry')
  
          # Iterate through the entries and add to the countries dictionary.
          for entry in entries:
  
              # Retrieve the country code and name from the DOM.
              code = entry.getElementsByTagName(
                  'ISO_3166-1_Alpha-2_Code_element')[0].firstChild.data
              name = entry.getElementsByTagName(
                  'ISO_3166-1_Country_name')[0].firstChild.data
  
              # Add to the countries dictionary.
              countries[code] = name.title()
  
      else:
  
          log.debug('Opening country code CSV: {0}'.format(
                  str(data_dir) + '/data/iso_3166-1_list_en.xml'))
  
          # Create the country codes file object.
          f = io.open(str(data_dir) + '/data/iso_3166-1.csv', 'r',
                      encoding='utf-8')
  
          # Create csv reader object.
          csv_reader = csv.reader(f, delimiter=',', quotechar='"')
  
          # Iterate through the rows and add to the countries dictionary.
          for row in csv_reader:
  
              # Retrieve the country code and name columns.
              code = row[0]
              name = row[1]
  
              # Add to the countries dictionary.
              countries[code] = name
  
      return countries