code: def datetime_from_iso8601(value):
      """
      Turns an ISO8601 formatted date into a datetime object.
  
      Example::
  
          inputs.datetime_from_iso8601("2012-01-01T23:30:00+02:00")
  
      :param str value: The ISO8601-complying string to transform
      :return: A datetime
      :rtype: datetime
      :raises ValueError: if value is an invalid date literal
  
      """
      try:
          try:
              return aniso8601.parse_datetime(value)
          except ValueError:
              date = aniso8601.parse_date(value)
              return datetime(date.year, date.month, date.day)
      except Exception:
          raise ValueError('Invalid date literal "{0}"'.format(value))
  
imports: from __future__ import unicode_literals
  import re
  import socket
  from datetime import datetime, time, timedelta
  from email.utils import parsedate_tz, mktime_tz
  from six.moves.urllib.parse import urlparse
  import aniso8601
  import pytz
label_desc: Use image node_id 14 for calling a global function with example usage: datetime_from_iso8601(value) and returns: aniso8601, datetime