code: def _extract_variants(address, variants_str):
    
    def entries():
      for entry in variants_str.split(','):
        key, _, value = entry.partition('=')
        if not key or not value:
          raise ValueError('Invalid variants after the @ in: {}'.format(address))
        yield (key, value)
    return tuple(entries())
docs: Return the variants (if any) represented by the given variants_str.
  
    :returns: The variants or else `None` if there are none.
    :rtype: tuple of tuples (key, value) strings