# encoding: utf-8

"""
Constant values related to the Open Packaging Convention, in particular,
content types and relationship types.
"""


class CONTENT_TYPE(object):
    """
    Content type URIs (like MIME-types) that specify a part's format
    """
    BMP = (
        'image/bmp'
    )
    DML_CHART = (
        'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'
    )
    DML_CHARTSHAPES = (
        'application/vnd.openxmlformats-officedocument.drawingml.chartshapes'
        '+xml'
    )
    DML_DIAGRAM_COLORS = (
        'application/vnd.openxmlformats-officedocument.drawingml.diagramColo'
        'rs+xml'
    )
    DML_DIAGRAM_DATA = (
        'application/vnd.openxmlformats-officedocument.drawingml.diagramData'
        '+xml'
    )
    DML_DIAGRAM_LAYOUT = (
        'application/vnd.openxmlformats-officedocument.drawingml.diagramLayo'
        'ut+xml'
    )
    DML_DIAGRAM_STYLE = (
        'application/vnd.openxmlformats-officedocument.drawingml.diagramStyl'
        'e+xml'
    )
    GIF = (
        'image/gif'
    )
    JPEG = (
        'image/jpeg'
    )
    MS_PHOTO = (
        'image/vnd.ms-photo'
    )
    OFC_CUSTOM_PROPERTIES = (
        'application/vnd.openxmlformats-officedocument.custom-properties+xml'
    )
    OFC_CUSTOM_XML_PROPERTIES = (
        'application/vnd.openxmlformats-officedocument.customXmlProperties+x'
        'ml'
    )
    OFC_DRAWING = (
        'application/vnd.openxmlformats-officedocument.drawing+xml'
    )
    OFC_EXTENDED_PROPERTIES = (
        'application/vnd.openxmlformats-officedocument.extended-properties+x'
        'ml'
    )
    OFC_OLE_OBJECT = (
        'application/vnd.openxmlformats-officedocument.oleObject'
    )
    OFC_PACKAGE = (
        'application/vnd.openxmlformats-officedocument.package'
    )
    OFC_THEME = (
        'application/vnd.openxmlformats-officedocument.theme+xml'
    )
    OFC_THEME_OVERRIDE = (
        'application/vnd.openxmlformats-officedocument.themeOverride+xml'
    )
    OFC_VML_DRAWING = (
        'application/vnd.openxmlformats-officedocument.vmlDrawing'
    )
    OPC_CORE_PROPERTIES = (
        'application/vnd.openxmlformats-package.core-properties+xml'
    )
    OPC_DIGITAL_SIGNATURE_CERTIFICATE = (
        'application/vnd.openxmlformats-package.digital-signature-certificat'
        'e'
    )
    OPC_DIGITAL_SIGNATURE_ORIGIN = (
        'application/vnd.openxmlformats-package.digital-signature-origin'
    )
    OPC_DIGITAL_SIGNATURE_XMLSIGNATURE = (
        'application/vnd.openxmlformats-package.digital-signature-xmlsignatu'
        're+xml'
    )
    OPC_RELATIONSHIPS = (
        'application/vnd.openxmlformats-package.relationships+xml'
    )
    PML_COMMENTS = (
        'application/vnd.openxmlformats-officedocument.presentationml.commen'
        'ts+xml'
    )
    PML_COMMENT_AUTHORS = (
        'application/vnd.openxmlformats-officedocument.presentationml.commen'
        'tAuthors+xml'
    )
    PML_HANDOUT_MASTER = (
        'application/vnd.openxmlformats-officedocument.presentationml.handou'
        'tMaster+xml'
    )
    PML_NOTES_MASTER = (
        'application/vnd.openxmlformats-officedocument.presentationml.notesM'
        'aster+xml'
    )
    PML_NOTES_SLIDE = (
        'application/vnd.openxmlformats-officedocument.presentationml.notesS'
        'lide+xml'
    )
    PML_PRESENTATION_MAIN = (
        'application/vnd.openxmlformats-officedocument.presentationml.presen'
        'tation.main+xml'
    )
    PML_PRES_PROPS = (
        'application/vnd.openxmlformats-officedocument.presentationml.presPr'
        'ops+xml'
    )
    PML_PRINTER_SETTINGS = (
        'application/vnd.openxmlformats-officedocument.presentationml.printe'
        'rSettings'
    )
    PML_SLIDE = (
        'application/vnd.openxmlformats-officedocument.presentationml.slide+'
        'xml'
    )
    PML_SLIDESHOW_MAIN = (
        'application/vnd.openxmlformats-officedocument.presentationml.slides'
        'how.main+xml'
    )
    PML_SLIDE_LAYOUT = (
        'application/vnd.openxmlformats-officedocument.presentationml.slideL'
        'ayout+xml'
    )
    PML_SLIDE_MASTER = (
        'application/vnd.openxmlformats-officedocument.presentationml.slideM'
        'aster+xml'
    )
    PML_SLIDE_UPDATE_INFO = (
        'application/vnd.openxmlformats-officedocument.presentationml.slideU'
        'pdateInfo+xml'
    )
    PML_TABLE_STYLES = (
        'application/vnd.openxmlformats-officedocument.presentationml.tableS'
        'tyles+xml'
    )
    PML_TAGS = (
        'application/vnd.openxmlformats-officedocument.presentationml.tags+x'
        'ml'
    )
    PML_TEMPLATE_MAIN = (
        'application/vnd.openxmlformats-officedocument.presentationml.templa'
        'te.main+xml'
    )
    PML_VIEW_PROPS = (
        'application/vnd.openxmlformats-officedocument.presentationml.viewPr'
        'ops+xml'
    )
    PNG = (
        'image/png'
    )
    SML_CALC_CHAIN = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.calcCha'
        'in+xml'
    )
    SML_CHARTSHEET = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsh'
        'eet+xml'
    )
    SML_COMMENTS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.comment'
        's+xml'
    )
    SML_CONNECTIONS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.connect'
        'ions+xml'
    )
    SML_CUSTOM_PROPERTY = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.customP'
        'roperty'
    )
    SML_DIALOGSHEET = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.dialogs'
        'heet+xml'
    )
    SML_EXTERNAL_LINK = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.externa'
        'lLink+xml'
    )
    SML_PIVOT_CACHE_DEFINITION = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCa'
        'cheDefinition+xml'
    )
    SML_PIVOT_CACHE_RECORDS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCa'
        'cheRecords+xml'
    )
    SML_PIVOT_TABLE = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTa'
        'ble+xml'
    )
    SML_PRINTER_SETTINGS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.printer'
        'Settings'
    )
    SML_QUERY_TABLE = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTa'
        'ble+xml'
    )
    SML_REVISION_HEADERS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.revisio'
        'nHeaders+xml'
    )
    SML_REVISION_LOG = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.revisio'
        'nLog+xml'
    )
    SML_SHARED_STRINGS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedS'
        'trings+xml'
    )
    SML_SHEET = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
    )
    SML_SHEET_MAIN = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.m'
        'ain+xml'
    )
    SML_SHEET_METADATA = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMe'
        'tadata+xml'
    )
    SML_STYLES = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+'
        'xml'
    )
    SML_TABLE = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.table+x'
        'ml'
    )
    SML_TABLE_SINGLE_CELLS = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.tableSi'
        'ngleCells+xml'
    )
    SML_TEMPLATE_MAIN = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.templat'
        'e.main+xml'
    )
    SML_USER_NAMES = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.userNam'
        'es+xml'
    )
    SML_VOLATILE_DEPENDENCIES = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.volatil'
        'eDependencies+xml'
    )
    SML_WORKSHEET = (
        'application/vnd.openxmlformats-officedocument.spreadsheetml.workshe'
        'et+xml'
    )
    TIFF = (
        'image/tiff'
    )
    WML_COMMENTS = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.comm'
        'ents+xml'
    )
    WML_DOCUMENT_GLOSSARY = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.docu'
        'ment.glossary+xml'
    )
    WML_DOCUMENT_MAIN = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.docu'
        'ment.main+xml'
    )
    WML_ENDNOTES = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.endn'
        'otes+xml'
    )
    WML_FONT_TABLE = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.font'
        'Table+xml'
    )
    WML_FOOTER = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.foot'
        'er+xml'
    )
    WML_FOOTNOTES = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.foot'
        'notes+xml'
    )
    WML_HEADER = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.head'
        'er+xml'
    )
    WML_NUMBERING = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.numb'
        'ering+xml'
    )
    WML_PRINTER_SETTINGS = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.prin'
        'terSettings'
    )
    WML_SETTINGS = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.sett'
        'ings+xml'
    )
    WML_STYLES = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.styl'
        'es+xml'
    )
    WML_WEB_SETTINGS = (
        'application/vnd.openxmlformats-officedocument.wordprocessingml.webS'
        'ettings+xml'
    )
    XML = (
        'application/xml'
    )
    X_EMF = (
        'image/x-emf'
    )
    X_FONTDATA = (
        'application/x-fontdata'
    )
    X_FONT_TTF = (
        'application/x-font-ttf'
    )
    X_WMF = (
        'image/x-wmf'
    )


class NAMESPACE(object):
    """Constant values for OPC XML namespaces"""
    DML_WORDPROCESSING_DRAWING = (
        'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDraw'
        'ing'
    )
    OFC_RELATIONSHIPS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
    )
    OPC_RELATIONSHIPS = (
        'http://schemas.openxmlformats.org/package/2006/relationships'
    )
    OPC_CONTENT_TYPES = (
        'http://schemas.openxmlformats.org/package/2006/content-types'
    )
    WML_MAIN = (
        'http://schemas.openxmlformats.org/wordprocessingml/2006/main'
    )


class RELATIONSHIP_TARGET_MODE(object):
    """Open XML relationship target modes"""
    EXTERNAL = 'External'
    INTERNAL = 'Internal'


class RELATIONSHIP_TYPE(object):
    AUDIO = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/audio'
    )
    A_F_CHUNK = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/aFChunk'
    )
    CALC_CHAIN = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/calcChain'
    )
    CERTIFICATE = (
        'http://schemas.openxmlformats.org/package/2006/relationships/digita'
        'l-signature/certificate'
    )
    CHART = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/chart'
    )
    CHARTSHEET = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/chartsheet'
    )
    CHART_USER_SHAPES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/chartUserShapes'
    )
    COMMENTS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/comments'
    )
    COMMENT_AUTHORS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/commentAuthors'
    )
    CONNECTIONS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/connections'
    )
    CONTROL = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/control'
    )
    CORE_PROPERTIES = (
        'http://schemas.openxmlformats.org/package/2006/relationships/metada'
        'ta/core-properties'
    )
    CUSTOM_PROPERTIES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/custom-properties'
    )
    CUSTOM_PROPERTY = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/customProperty'
    )
    CUSTOM_XML = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/customXml'
    )
    CUSTOM_XML_PROPS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/customXmlProps'
    )
    DIAGRAM_COLORS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/diagramColors'
    )
    DIAGRAM_DATA = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/diagramData'
    )
    DIAGRAM_LAYOUT = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/diagramLayout'
    )
    DIAGRAM_QUICK_STYLE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/diagramQuickStyle'
    )
    DIALOGSHEET = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/dialogsheet'
    )
    DRAWING = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/drawing'
    )
    ENDNOTES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/endnotes'
    )
    EXTENDED_PROPERTIES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/extended-properties'
    )
    EXTERNAL_LINK = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/externalLink'
    )
    FONT = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/font'
    )
    FONT_TABLE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/fontTable'
    )
    FOOTER = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/footer'
    )
    FOOTNOTES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/footnotes'
    )
    GLOSSARY_DOCUMENT = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/glossaryDocument'
    )
    HANDOUT_MASTER = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/handoutMaster'
    )
    HEADER = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/header'
    )
    HYPERLINK = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/hyperlink'
    )
    IMAGE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/image'
    )
    NOTES_MASTER = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/notesMaster'
    )
    NOTES_SLIDE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/notesSlide'
    )
    NUMBERING = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/numbering'
    )
    OFFICE_DOCUMENT = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/officeDocument'
    )
    OLE_OBJECT = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/oleObject'
    )
    ORIGIN = (
        'http://schemas.openxmlformats.org/package/2006/relationships/digita'
        'l-signature/origin'
    )
    PACKAGE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/package'
    )
    PIVOT_CACHE_DEFINITION = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/pivotCacheDefinition'
    )
    PIVOT_CACHE_RECORDS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/spreadsheetml/pivotCacheRecords'
    )
    PIVOT_TABLE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/pivotTable'
    )
    PRES_PROPS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/presProps'
    )
    PRINTER_SETTINGS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/printerSettings'
    )
    QUERY_TABLE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/queryTable'
    )
    REVISION_HEADERS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/revisionHeaders'
    )
    REVISION_LOG = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/revisionLog'
    )
    SETTINGS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/settings'
    )
    SHARED_STRINGS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/sharedStrings'
    )
    SHEET_METADATA = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/sheetMetadata'
    )
    SIGNATURE = (
        'http://schemas.openxmlformats.org/package/2006/relationships/digita'
        'l-signature/signature'
    )
    SLIDE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/slide'
    )
    SLIDE_LAYOUT = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/slideLayout'
    )
    SLIDE_MASTER = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/slideMaster'
    )
    SLIDE_UPDATE_INFO = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/slideUpdateInfo'
    )
    STYLES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/styles'
    )
    TABLE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/table'
    )
    TABLE_SINGLE_CELLS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/tableSingleCells'
    )
    TABLE_STYLES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/tableStyles'
    )
    TAGS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/tags'
    )
    THEME = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/theme'
    )
    THEME_OVERRIDE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/themeOverride'
    )
    THUMBNAIL = (
        'http://schemas.openxmlformats.org/package/2006/relationships/metada'
        'ta/thumbnail'
    )
    USERNAMES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/usernames'
    )
    VIDEO = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/video'
    )
    VIEW_PROPS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/viewProps'
    )
    VML_DRAWING = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/vmlDrawing'
    )
    VOLATILE_DEPENDENCIES = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/volatileDependencies'
    )
    WEB_SETTINGS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/webSettings'
    )
    WORKSHEET_SOURCE = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/worksheetSource'
    )
    XML_MAPS = (
        'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
        '/xmlMaps'
    )
