Skip to content

Commit 684b91d

Browse files
author
Steve Canny
committed
opc: factor leading period out of PackURI.ext
1 parent 2e15855 commit 684b91d

File tree

9 files changed

+36
-35
lines changed

9 files changed

+36
-35
lines changed

docx/opc/oxml.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def new(ext, content_type):
113113
"""
114114
xml = '<Default xmlns="%s"/>' % nsmap['ct']
115115
default = oxml_fromstring(xml)
116-
default.set('Extension', ext[1:])
116+
default.set('Extension', ext)
117117
default.set('ContentType', content_type)
118118
return default
119119

docx/opc/packuri.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,12 @@ def baseURI(self):
4444
@property
4545
def ext(self):
4646
"""
47-
The extension portion of this pack URI, e.g. ``'.xml'`` for
48-
``'/ppt/slides/slide1.xml'``. Note that the period is included,
49-
consistent with the behavior of :meth:`posixpath.ext`.
47+
The extension portion of this pack URI, e.g. ``'xml'`` for
48+
``'/word/document.xml'``. Note the period is not included.
5049
"""
51-
return posixpath.splitext(self)[1]
50+
# raw_ext is either empty string or starts with period, e.g. '.xml'
51+
raw_ext = posixpath.splitext(self)[1]
52+
return raw_ext[1:] if raw_ext.startswith('.') else raw_ext
5253

5354
@property
5455
def filename(self):

docx/opc/pkgreader.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ def from_file(pkg_file):
3232
phys_reader = PhysPkgReader(pkg_file)
3333
content_types = _ContentTypeMap.from_xml(phys_reader.content_types_xml)
3434
pkg_srels = PackageReader._srels_for(phys_reader, PACKAGE_URI)
35-
sparts = PackageReader._load_serialized_parts(phys_reader, pkg_srels,
36-
content_types)
35+
sparts = PackageReader._load_serialized_parts(
36+
phys_reader, pkg_srels, content_types
37+
)
3738
phys_reader.close()
3839
return PackageReader(content_types, pkg_srels, sparts)
3940

@@ -153,8 +154,7 @@ def _add_default(self, extension, content_type):
153154
Add the default mapping of *extension* to *content_type* to this
154155
content type mapping.
155156
"""
156-
ext = '.%s' % extension
157-
self._defaults[ext] = content_type
157+
self._defaults[extension] = content_type
158158

159159
def _add_override(self, partname, content_type):
160160
"""

docx/opc/pkgwriter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ def from_parts(cls, parts):
9191
``[Content_Types].xml`` in an OPC package.
9292
"""
9393
cti = cls()
94-
cti._defaults['.rels'] = CT.OPC_RELATIONSHIPS
95-
cti._defaults['.xml'] = CT.XML
94+
cti._defaults['rels'] = CT.OPC_RELATIONSHIPS
95+
cti._defaults['xml'] = CT.XML
9696
for part in parts:
9797
cti._add_content_type(part.partname, part.content_type)
9898
return cti

docx/opc/spec.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@
88

99

1010
default_content_types = (
11-
('.bin', CT.PML_PRINTER_SETTINGS),
12-
('.bin', CT.SML_PRINTER_SETTINGS),
13-
('.bin', CT.WML_PRINTER_SETTINGS),
14-
('.bmp', CT.BMP),
15-
('.emf', CT.X_EMF),
16-
('.fntdata', CT.X_FONTDATA),
17-
('.gif', CT.GIF),
18-
('.jpe', CT.JPEG),
19-
('.jpeg', CT.JPEG),
20-
('.jpg', CT.JPEG),
21-
('.png', CT.PNG),
22-
('.rels', CT.OPC_RELATIONSHIPS),
23-
('.tif', CT.TIFF),
24-
('.tiff', CT.TIFF),
25-
('.wdp', CT.MS_PHOTO),
26-
('.wmf', CT.X_WMF),
27-
('.xlsx', CT.SML_SHEET),
28-
('.xml', CT.XML),
11+
('bin', CT.PML_PRINTER_SETTINGS),
12+
('bin', CT.SML_PRINTER_SETTINGS),
13+
('bin', CT.WML_PRINTER_SETTINGS),
14+
('bmp', CT.BMP),
15+
('emf', CT.X_EMF),
16+
('fntdata', CT.X_FONTDATA),
17+
('gif', CT.GIF),
18+
('jpe', CT.JPEG),
19+
('jpeg', CT.JPEG),
20+
('jpg', CT.JPEG),
21+
('png', CT.PNG),
22+
('rels', CT.OPC_RELATIONSHIPS),
23+
('tif', CT.TIFF),
24+
('tiff', CT.TIFF),
25+
('wdp', CT.MS_PHOTO),
26+
('wmf', CT.X_WMF),
27+
('xlsx', CT.SML_SHEET),
28+
('xml', CT.XML),
2929
)

docx/parts/image.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ def filename(self):
236236
"""
237237
if self._image is not None:
238238
return self._image.filename
239-
return 'image%s' % self.partname.ext
239+
return 'image.%s' % self.partname.ext
240240

241241
@classmethod
242242
def from_image(cls, image, partname):

tests/opc/test_oxml.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def it_provides_read_access_to_xml_values(self):
2323
assert default.content_type == 'application/xml'
2424

2525
def it_can_construct_a_new_default_element(self):
26-
default = CT_Default.new('.xml', 'application/xml')
26+
default = CT_Default.new('xml', 'application/xml')
2727
expected_xml = a_Default().xml
2828
assert default.xml == expected_xml
2929

@@ -124,8 +124,8 @@ def it_can_construct_a_new_types_element(self):
124124

125125
def it_can_build_types_element_incrementally(self):
126126
types = CT_Types.new()
127-
types.add_default('.xml', 'application/xml')
128-
types.add_default('.jpeg', 'image/jpeg')
127+
types.add_default('xml', 'application/xml')
128+
types.add_default('jpeg', 'image/jpeg')
129129
types.add_override('/docProps/core.xml', 'app/vnd.type1')
130130
types.add_override('/ppt/presentation.xml', 'app/vnd.type2')
131131
types.add_override('/docProps/thumbnail.jpeg', 'image/jpeg')

tests/opc/test_packuri.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def it_can_calculate_baseURI(self):
4343
assert pack_uri.baseURI == expected_baseURI
4444

4545
def it_can_calculate_extension(self):
46-
expected_values = ('', '.xml', '.xml')
46+
expected_values = ('', 'xml', 'xml')
4747
for pack_uri, expected_ext in self.cases(expected_values):
4848
assert pack_uri.ext == expected_ext
4949

tests/opc/test_pkgreader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ def from_xml_fixture(self):
306306
expected_overrides = {}
307307
for entry in entries:
308308
if entry[0] == 'Default':
309-
ext = ('.%s' % entry[1]).lower()
309+
ext = entry[1].lower()
310310
content_type = entry[2]
311311
expected_defaults[ext] = content_type
312312
elif entry[0] == 'Override':

0 commit comments

Comments
 (0)