# Path: spdx/utils.py
# def datetime_iso_format(date):
# def datetime_from_iso_format(string):
#     def to_value(self):
#     def __str__(self):
#     def to_value(self):
#     def __str__(self):
#     def __repr__(self):
#     def __eq__(self, other):
#     def to_value(self):
#     def __str__(self):
#     def t_LP(self, t):
#     def t_RP(self, t):
#     def t_AND(self, t):
#     def t_OR(self, t):
#     def t_whitespace(self, t):
#     def t_LICENSE(self, t):
#     def t_error(self, t):
#     def input(self, data):
#     def token(self):
#     def build(self, **kwargs):
#     def __init__(self):
#     def p_disjunction_1(self, p):
#     def p_disjunction_2(self, p):
#     def p_conjunction_1(self, p):
#     def p_conjunction_2(self, p):
#     def p_license_atom_1(self, p):
#     def p_license_atom_2(self, p):
#     def p_error(self, p):
#     def build(self, **kwargs):
#     def parse(self, data):
# DATE_ISO_REGEX = re.compile(
#     r"(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z", re.UNICODE
# )
# DATE_ISO_YEAR_GRP = 1
# DATE_ISO_MONTH_GRP = 2
# DATE_ISO_DAY_GRP = 3
# DATE_ISO_HOUR_GRP = 4
# DATE_ISO_MIN_GRP = 5
# DATE_ISO_SEC_GRP = 6
# class NoAssert(object):
# class UnKnown(object):
# class SPDXNone(object):
# class LicenseListLexer(object):
# class LicenseListParser(object):


from collections import OrderedDict
from spdx import utils
import io
import json
import ntpath
import os
import posixpath
import re
import xmltodict
import yaml
import spdx
        import inspect
    @classmethod
    def annotations_to_list(cls, annotations):
        """
        Represents a list of spdx.annotation.Annotation as a Python list of dictionaries
        """
        annotations_list = []

        for annotation in annotations:
            annotation_dict = OrderedDict([
                ('id', annotation.spdx_id),
                ('comment', annotation.comment),
                ('type', annotation.annotation_type),
                ('annotator', cls.entity_to_dict(annotation.annotator)),
                ('date', utils.datetime_iso_format(annotation.annotation_date)),
            ])
            annotations_list.append(annotation_dict)

        return annotations_list

    @classmethod
    def reviews_to_list(cls, reviews):
        """
        Represents a list of spdx.review.Review as a Python list of dictionaries
        """
        reviews_list = []

        for review in reviews:
            review_dict = OrderedDict([
                ('comment', review.comment),
                ('reviewer', cls.entity_to_dict(review.reviewer)),

# Path: spdx/utils.py
# def datetime_iso_format(date):
# def datetime_from_iso_format(string):
#     def to_value(self):
#     def __str__(self):
#     def to_value(self):
#     def __str__(self):
#     def __repr__(self):
#     def __eq__(self, other):
#     def to_value(self):
#     def __str__(self):
#     def t_LP(self, t):
#     def t_RP(self, t):
#     def t_AND(self, t):
#     def t_OR(self, t):
#     def t_whitespace(self, t):
#     def t_LICENSE(self, t):
#     def t_error(self, t):
#     def input(self, data):
#     def token(self):
#     def build(self, **kwargs):
#     def __init__(self):
#     def p_disjunction_1(self, p):
#     def p_disjunction_2(self, p):
#     def p_conjunction_1(self, p):
#     def p_conjunction_2(self, p):
#     def p_license_atom_1(self, p):
#     def p_license_atom_2(self, p):
#     def p_error(self, p):
#     def build(self, **kwargs):
#     def parse(self, data):
# DATE_ISO_REGEX = re.compile(
#     r"(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z", re.UNICODE
# )
# DATE_ISO_YEAR_GRP = 1
# DATE_ISO_MONTH_GRP = 2
# DATE_ISO_DAY_GRP = 3
# DATE_ISO_HOUR_GRP = 4
# DATE_ISO_MIN_GRP = 5
# DATE_ISO_SEC_GRP = 6
# class NoAssert(object):
# class UnKnown(object):
# class SPDXNone(object):
# class LicenseListLexer(object):
# class LicenseListParser(object):


# Path: tests/utils_test.py
from collections import OrderedDict
from spdx import utils
import io
import json
import ntpath
import os
import posixpath
import re
import xmltodict
import yaml
import spdx
        import inspect

    @classmethod
    def annotations_to_list(cls, annotations):
        """
        Represents a list of spdx.annotation.Annotation as a Python list of dictionaries
        """
        annotations_list = []

        for annotation in annotations:
            annotation_dict = OrderedDict([
                ('id', annotation.spdx_id),
                ('comment', annotation.comment),
                ('type', annotation.annotation_type),
                ('annotator', cls.entity_to_dict(annotation.annotator)),
                ('date', utils.datetime_iso_format(annotation.annotation_date)),
            ])
            annotations_list.append(annotation_dict)

        return annotations_list

    @classmethod
    def reviews_to_list(cls, reviews):
        """
        Represents a list of spdx.review.Review as a Python list of dictionaries
        """
        reviews_list = []

        for review in reviews:
            review_dict = OrderedDict([
                ('comment', review.comment),
                ('reviewer', cls.entity_to_dict(review.reviewer)),

                ('date', utils.datetime_iso_format(review.review_date))