# Path: spdx/document.py
# class ExternalDocumentRef(object):
# class License(object):
# class LicenseConjunction(License):
# class LicenseDisjunction(License):
# class ExtractedLicense(License):
# class Document(object):
#     def __init__(
#         self, external_document_id=None, spdx_document_uri=None, check_sum=None
#     ):
#     def __eq__(self, other):
#     def __lt__(self, other):
#     def validate(self, messages):
#     def validate_ext_doc_id(self, messages):
#     def validate_spdx_doc_uri(self, messages):
#     def validate_checksum(self, messages):
# def _add_parens(required, text):
#     def __init__(self, full_name, identifier):
#     def from_identifier(cls, identifier):
#     def from_full_name(cls, full_name):
#     def url(self):
#     def full_name(self):
#     def full_name(self, value):
#     def set_full_name(self, value):
#     def identifier(self):
#     def identifier(self, value):
#     def set_identifier(self, value):
#     def __eq__(self, other):
#     def __lt__(self, other):
#     def __str__(self):
#     def __hash__(self):
#     def __init__(self, license_1, license_2):
#     def full_name(self):
#     def identifier(self):
#     def __init__(self, license_1, license_2):
#     def full_name(self):
#     def identifier(self):
#     def __init__(self, identifier):
#     def __eq__(self, other):
#     def __lt__(self, other):
#     def add_xref(self, ref):
#     def validate(self, messages):
#     def __init__(
#         self,
#         version=None,
#         data_license=None,
#         name=None,
#         spdx_id=None,
#         namespace=None,
#         comment=None,
#         package=None,
#         license_list_version=None,
#     ):
#     def add_review(self, review):
#     def add_annotation(self, annotation):
#     def add_relationships(self, relationship):
#     def add_extr_lic(self, lic):
#     def add_ext_document_reference(self, ext_doc_ref):
#     def add_snippet(self, snip):
#     def add_package(self, package):
#     def package(self):
#     def package(self, value):
#     def files(self):
#     def files(self, value):
#     def has_comment(self):
#     def validate(self, messages=None):
#     def validate_version(self, messages):
#     def validate_data_lics(self, messages):
#     def validate_name(self, messages):
#     def validate_namespace(self, messages):
#     def validate_spdx_id(self, messages):
#     def validate_ext_document_references(self, messages):
#     def validate_reviews(self, messages):
#     def validate_annotations(self, messages):
#     def validate_relationships(self, messages):
#     def validate_snippet(self, messages=None):
#     def validate_creation_info(self, messages):
#     def validate_packages(self, messages):
#     def validate_package(self, messages):
#     def validate_extracted_licenses(self, messages):
# 
# 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 spdx import document
from spdx import utils
            messages.append("Snippet has no SPDX Identifier.")

    def validate_copyright_text(self, messages):
        if not isinstance(
            self.copyright,
            (str, utils.NoAssert, utils.SPDXNone),
        ):
            messages.append(
                "Snippet copyright must be str or unicode or utils.NoAssert or utils.SPDXNone"
            )

    def validate_snip_from_file_spdxid(self, messages):
        if self.snip_from_file_spdxid is None:
            messages.append("Snippet has no Snippet from File SPDX Identifier.")

    def validate_concluded_license(self, messages):
        if not isinstance(
            self.conc_lics, (document.License, utils.NoAssert, utils.SPDXNone)
        ):
            messages.append(
                "Snippet Concluded License must be one of "
                "document.License, utils.NoAssert or utils.SPDXNone"
            )

    def validate_licenses_in_snippet(self, messages):
        if len(self.licenses_in_snippet) == 0:
            messages.append("Snippet must have at least one license in file.")
        else:
            for lic in self.licenses_in_snippet:
                if not isinstance(

# Path: spdx/document.py
# class ExternalDocumentRef(object):
# class License(object):
# class LicenseConjunction(License):
# class LicenseDisjunction(License):
# class ExtractedLicense(License):
# class Document(object):
#     def __init__(
#         self, external_document_id=None, spdx_document_uri=None, check_sum=None
#     ):
#     def __eq__(self, other):
#     def __lt__(self, other):
#     def validate(self, messages):
#     def validate_ext_doc_id(self, messages):
#     def validate_spdx_doc_uri(self, messages):
#     def validate_checksum(self, messages):
# def _add_parens(required, text):
#     def __init__(self, full_name, identifier):
#     def from_identifier(cls, identifier):
#     def from_full_name(cls, full_name):
#     def url(self):
#     def full_name(self):
#     def full_name(self, value):
#     def set_full_name(self, value):
#     def identifier(self):
#     def identifier(self, value):
#     def set_identifier(self, value):
#     def __eq__(self, other):
#     def __lt__(self, other):
#     def __str__(self):
#     def __hash__(self):
#     def __init__(self, license_1, license_2):
#     def full_name(self):
#     def identifier(self):
#     def __init__(self, license_1, license_2):
#     def full_name(self):
#     def identifier(self):
#     def __init__(self, identifier):
#     def __eq__(self, other):
#     def __lt__(self, other):
#     def add_xref(self, ref):
#     def validate(self, messages):
#     def __init__(
#         self,
#         version=None,
#         data_license=None,
#         name=None,
#         spdx_id=None,
#         namespace=None,
#         comment=None,
#         package=None,
#         license_list_version=None,
#     ):
#     def add_review(self, review):
#     def add_annotation(self, annotation):
#     def add_relationships(self, relationship):
#     def add_extr_lic(self, lic):
#     def add_ext_document_reference(self, ext_doc_ref):
#     def add_snippet(self, snip):
#     def add_package(self, package):
#     def package(self):
#     def package(self, value):
#     def files(self):
#     def files(self, value):
#     def has_comment(self):
#     def validate(self, messages=None):
#     def validate_version(self, messages):
#     def validate_data_lics(self, messages):
#     def validate_name(self, messages):
#     def validate_namespace(self, messages):
#     def validate_spdx_id(self, messages):
#     def validate_ext_document_references(self, messages):
#     def validate_reviews(self, messages):
#     def validate_annotations(self, messages):
#     def validate_relationships(self, messages):
#     def validate_snippet(self, messages=None):
#     def validate_creation_info(self, messages):
#     def validate_packages(self, messages):
#     def validate_package(self, messages):
#     def validate_extracted_licenses(self, messages):
# 
# 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: spdx/snippet.py
from spdx import document
from spdx import utils

            messages.append("Snippet has no SPDX Identifier.")

    def validate_copyright_text(self, messages):
        if not isinstance(
            self.copyright,
            (str, utils.NoAssert, utils.SPDXNone),
        ):
            messages.append(
                "Snippet copyright must be str or unicode or utils.NoAssert or utils.SPDXNone"
            )

    def validate_snip_from_file_spdxid(self, messages):
        if self.snip_from_file_spdxid is None:
            messages.append("Snippet has no Snippet from File SPDX Identifier.")

    def validate_concluded_license(self, messages):
        if not isinstance(
            self.conc_lics, (document.License, utils.NoAssert, utils.SPDXNone)
        ):
            messages.append(
                "Snippet Concluded License must be one of "
                "document.License, utils.NoAssert or utils.SPDXNone"
            )

    def validate_licenses_in_snippet(self, messages):
        if len(self.licenses_in_snippet) == 0:
            messages.append("Snippet must have at least one license in file.")
        else:
            for lic in self.licenses_in_snippet:
                if not isinstance(

                    lic, (document.License, utils.NoAssert, utils.SPDXNone)