dave-howard / vsdx

vsdx - A python library for processing .vsdx files
BSD 3-Clause "New" or "Revised" License
67 stars 25 forks source link

shape: is_master_shape(self) incorrect #66

Closed kempeng closed 8 months ago

kempeng commented 8 months ago

the function is_master_shape(self) as part of the Shape class is not working correctly, the issues seems to be with the function

def is_master_page(self): return type(self.vis.masters_xml)==ET.Element and self.vis.masters_xml.find(f'{namespace}Master[@ID="{self.page_id}"]/{namespace}PageSheet') is not None

in the Page class: it uses the Page ID to test wether a Master exists with the same ID.

I don't think that a page ID and a master ID share the same ID "space" and are unique between them. I am working on a VSDX file in which a Page and a Master have the same ID value.

dave-howard commented 8 months ago

Hi @kempeng - you are right, this method appers to be incorrect (it is only referenced in Shape.__repr__() within the package). I will take a look, hoepfully be able to resolve and add some tests to validate. Thanks for raising the issue

dave-howard commented 8 months ago

@kempeng - this should be resolved in v0.5.19