This file is indexed.

/usr/lib/python3/dist-packages/xlsxwriter/custom.py is in python3-xlsxwriter 0.9.6-0.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
###############################################################################
#
# Custom - A class for writing the Excel XLSX Custom Property file.
#
# Copyright 2013-2016, John McNamara, jmcnamara@cpan.org
#

# Package imports.
from . import xmlwriter


class Custom(xmlwriter.XMLwriter):
    """
    A class for writing the Excel XLSX Custom Workbook Property file.


    """

    ###########################################################################
    #
    # Public API.
    #
    ###########################################################################

    def __init__(self):
        """
        Constructor.

        """

        super(Custom, self).__init__()

        self.properties = []
        self.pid = 1

    def _set_properties(self, properties):
        # Set the document properties.
        self.properties = properties

    ###########################################################################
    #
    # Private API.
    #
    ###########################################################################

    def _assemble_xml_file(self):
        # Assemble and write the XML file.

        # Write the XML declaration.
        self._xml_declaration()

        self._write_properties()

        self._xml_end_tag('Properties')

        # Close the file.
        self._xml_close()

    ###########################################################################
    #
    # XML methods.
    #
    ###########################################################################

    def _write_properties(self):
        # Write the <Properties> element.
        schema = 'http://schemas.openxmlformats.org/officeDocument/2006/'
        xmlns = schema + 'custom-properties'
        xmlns_vt = schema + 'docPropsVTypes'

        attributes = [
            ('xmlns', xmlns),
            ('xmlns:vt', xmlns_vt),
        ]

        self._xml_start_tag('Properties', attributes)

        for custom_property in self.properties:
            # Write the property element.
            self._write_property(custom_property)

    def _write_property(self, custom_property):
        # Write the <property> element.

        fmtid = '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}'

        name, value, property_type = custom_property
        self.pid += 1

        attributes = [
            ('fmtid', fmtid),
            ('pid', self.pid),
            ('name', name),
        ]

        self._xml_start_tag('property', attributes)

        if property_type == 'number_int':
            # Write the vt:i4 element.
            self._write_vt_i4(value)
        elif property_type == 'number':
            # Write the vt:r8 element.
            self._write_vt_r8(value)
        elif property_type == 'date':
            # Write the vt:filetime element.
            self._write_vt_filetime(value)
        elif property_type == 'bool':
            # Write the vt:bool element.
            self._write_vt_bool(value)
        else:
            # Write the vt:lpwstr element.
            self._write_vt_lpwstr(value)

        self._xml_end_tag('property')

    def _write_vt_lpwstr(self, value):
        # Write the <vt:lpwstr> element.
        self._xml_data_element('vt:lpwstr', value)

    def _write_vt_filetime(self, value):
        # Write the <vt:filetime> element.
        self._xml_data_element('vt:filetime', value)

    def _write_vt_i4(self, value):
        # Write the <vt:i4> element.
        self._xml_data_element('vt:i4', value)

    def _write_vt_r8(self, value):
        # Write the <vt:r8> element.
        self._xml_data_element('vt:r8', value)

    def _write_vt_bool(self, value):
        # Write the <vt:bool> element.

        if value:
            value = 'true'
        else:
            value = 'false'

        self._xml_data_element('vt:bool', value)