Gets the current description of a point configured in a real-time eDNA
    service.

    :param tag_name: fully-qualified (site.service.tag) eDNA tag
    :return: tag description

def GetTagDescription(tag_name):
    """
    Gets the current description of a point configured in a real-time eDNA
    service.

    :param tag_name: fully-qualified (site.service.tag) eDNA tag
    :return: tag description
    """
    # Check if the point even exists
    if not DoesIDExist(tag_name):
        warnings.warn("WARNING- " + tag_name + " does not exist or " +
                      "connection was dropped. Try again if tag does exist.")
        return None

    # To get the point information for the service, we need the Site.Service
    split_tag = tag_name.split(".")
    # If the full Site.Service.Tag was not supplied, return the tag_name
    if len(split_tag) < 3:
        warnings.warn("WARNING- Please supply the full Site.Service.Tag.")
        return tag_name
    # The Site.Service will be the first two split strings
    site_service = split_tag[0] + "." + split_tag[1]

    # GetPoints will return a DataFrame with point information
    points = GetPoints(site_service)
    if tag_name in points.Tag.values:
        description = points[points.Tag == tag_name].Description.values[0]
        if description:
            return description
        else:
            return tag_name
    else:
        warnings.warn("WARNING- " + tag_name + " not found in service.")
        return None