spreadsheet_intelligence.parsers.drawing.drawing_element_parser package#

Submodules#

spreadsheet_intelligence.parsers.drawing.drawing_element_parser.base_drawing_parser module#

spreadsheet_intelligence.parsers.drawing.drawing_element_parser.base_drawing_parser.parse_anchor_point(element: Element, namespaces: Dict[str, str]) AnchorPoint[source]#

Parses an anchor point from the given XML element.

Parameters:
  • element (ET.Element) – The XML element containing the anchor point.

  • namespaces (Dict[str, str]) – The XML namespaces.

Returns:

The parsed anchor point.

Return type:

AnchorPoint

spreadsheet_intelligence.parsers.drawing.drawing_element_parser.base_drawing_parser.parse_anchor(element: Element, namespaces: Dict[str, str]) Anchor[source]#

Parses an anchor from the given XML element.

Parameters:
  • element (ET.Element) – The XML element containing the anchor.

  • namespaces (Dict[str, str]) – The XML namespaces.

Returns:

The parsed anchor.

Return type:

Anchor

class spreadsheet_intelligence.parsers.drawing.drawing_element_parser.base_drawing_parser.BaseDrawingParser(namespaces: dict[str, str])[source]#

Bases: BaseParser, ABC, Generic[TBaseAnchorRaw, TBaseDrawingRaw]

parse_anchor(twocellanchor_element: Element) Anchor[source]#

Parses an anchor and returns the model.

Parameters:

twocellanchor_element (ET.Element) – The XML element containing the two-cell anchor.

Returns:

The parsed anchor.

Return type:

Anchor

parse_info(sp_el: Element, nv_tag_name: str) tuple[str, str][source]#

Parses drawing id and name.

Parameters:
  • sp_el (ET.Element) – The XML element containing the drawing information.

  • nv_tag_name (str) – The tag name for the non-visual properties.

Returns:

A tuple containing the id and name.

Return type:

tuple[str, str]

parse_style_ref_el(style_ref_el: Element) StyleBaseRef[source]#

Parses elements like <a:lnRef> and <a:fillRef> under <xdr:style> and returns a StyleBaseRef type.

Parameters:

style_ref_el (ET.Element) – Elements like <a:lnRef> and <a:fillRef> under <xdr:style>.

Raises:

ValueError – If neither schemeClr nor scrgbClr is present.

Returns:

Returns schemeClr if both schemeClr and scrgbClr are present. Returns scrgbClr if only scrgbClr is present.

Return type:

StyleBaseRef

parse_style_element(style_el: Element) StyleRefs[source]#

Parses the <xdr:style> element and returns a StyleRefs type.

Parameters:

style_el (ET.Element) – The <xdr:style> element.

Returns:

A class that consolidates the four elements: lnRef, fillRef, effectRef, and fontRef.

Return type:

StyleRefs

parse_color(parent_el: Element) tuple[SchemeClr | None, SrgbClr | None][source]#

Parses color from xdr:spPr/a:ln or xdr:spPr(solidFill).

Parameters:

parent_el (ET.Element) – When borderColor, parent_el is xdr:spPr/a:ln; when fillColor, parent_el is xdr:spPr.

Returns:

A tuple containing SchemeClr and SrgbClr.

Return type:

tuple[SchemeClr | None, SrgbClr | None]

abstractmethod _parse_drawing(twocellanchor_element: Element) TBaseDrawingRaw[source]#

Abstract method to parse a drawing element.

Parameters:

twocellanchor_element (ET.Element) – The XML element containing the two-cell anchor.

Returns:

The parsed drawing raw data.

Return type:

TBaseDrawingRaw

abstractmethod _create_anchor_raw(anchor: Anchor, drawing_raw: TBaseDrawingRaw) TBaseAnchorRaw[source]#

Abstract method to create an anchor raw model.

Parameters:
  • anchor (Anchor) – The parsed anchor.

  • drawing_raw (TBaseDrawingRaw) – The parsed drawing raw data.

Returns:

The created anchor raw model.

Return type:

TBaseAnchorRaw

parse(twocellanchor_element: Element) TBaseAnchorRaw[source]#

Parses an element and returns the model.

Parameters:

twocellanchor_element (ET.Element) – The XML element containing the two-cell anchor.

Returns:

The parsed anchor raw model.

Return type:

TBaseAnchorRaw

_abc_impl = <_abc._abc_data object>#

spreadsheet_intelligence.parsers.drawing.drawing_element_parser.connector_parser module#

class spreadsheet_intelligence.parsers.drawing.drawing_element_parser.connector_parser.ConnectorParser(namespaces: dict[str, str])[source]#

Bases: BaseDrawingParser[ConnectorAnchorRaw, ConnectorRaw]

Parser for the connector element.

parse_line_element(line_el: Element) ArrowLine[source]#

Parses the <a:ln> element and returns an ArrowLine type.

Parameters:

line_el (ET.Element) – The <a:ln> element.

Returns:

The ArrowLine type.

Return type:

ArrowLine

parse_text(text_el: Element) str[source]#

Parses the <xdr:txBody> element and returns a text string.

Parameters:

text_el (ET.Element) – The <xdr:txBody> element.

Returns:

The text string.

Return type:

str

Raises:

ValueError – If the text element is not found.

TODO: - Text parsing is not implemented when the text contains multiple formats.

_parse_drawing(element: Element) ConnectorRaw[source]#

Parses the drawing element and returns a ConnectorRaw object.

Parameters:

element (ET.Element) – The drawing element.

Returns:

The parsed ConnectorRaw object.

Return type:

ConnectorRaw

_create_anchor_raw(anchor: Anchor, drawing_raw: ConnectorRaw) ConnectorAnchorRaw[source]#

Creates a ConnectorAnchorRaw object.

Parameters:
  • anchor (Anchor) – The anchor object.

  • drawing_raw (ConnectorRaw) – The drawing raw object.

Returns:

The created ConnectorAnchorRaw object.

Return type:

ConnectorAnchorRaw

_abc_impl = <_abc._abc_data object>#

spreadsheet_intelligence.parsers.drawing.drawing_element_parser.picture_parser module#

class spreadsheet_intelligence.parsers.drawing.drawing_element_parser.picture_parser.PictureParser(namespaces: dict[str, str])[source]#

Bases: BaseDrawingParser

_parse_drawing(element: Element) PictureRaw[source]#

Parses the drawing element and returns a PictureRaw object.

Parameters:

element (ET.Element) – The drawing element.

Returns:

The parsed PictureRaw object.

Return type:

PictureRaw

Raises:

NotImplementedError – If the method is not implemented.

_create_anchor_raw(anchor: Anchor, drawing_raw: PictureRaw) PictureAnchorRaw[source]#

Creates a PictureAnchorRaw object.

Parameters:
  • anchor (Anchor) – The anchor object.

  • drawing_raw (PictureRaw) – The drawing raw object.

Returns:

The created PictureAnchorRaw object.

Return type:

PictureAnchorRaw

Raises:

NotImplementedError – If the method is not implemented.

_abc_impl = <_abc._abc_data object>#

spreadsheet_intelligence.parsers.drawing.drawing_element_parser.shape_parser module#

class spreadsheet_intelligence.parsers.drawing.drawing_element_parser.shape_parser.ShapeParser(namespaces: dict[str, str])[source]#

Bases: BaseDrawingParser[ShapeAnchorRaw, ShapeRaw]

Parser for the shape element.

_parse_text(text_el: Element) str[source]#

Parses the text element and returns the text string.

Parameters:

text_el (ET.Element) – The text element.

Returns:

The parsed text string.

Return type:

str

Raises:

ValueError – If the text element is not found.

TODO: - Text parsing is not implemented when the text contains multiple formats.

_parse_drawing(element: Element) ShapeRaw[source]#

Parses the drawing element and returns a ShapeRaw object.

Parameters:

element (ET.Element) – The drawing element.

Returns:

The parsed ShapeRaw object.

Return type:

ShapeRaw

_create_anchor_raw(anchor: Anchor, drawing_raw: ShapeRaw) ShapeAnchorRaw[source]#

Creates a ShapeAnchorRaw object.

Parameters:
  • anchor (Anchor) – The anchor object.

  • drawing_raw (ShapeRaw) – The drawing raw object.

Returns:

The created ShapeAnchorRaw object.

Return type:

ShapeAnchorRaw

_abc_impl = <_abc._abc_data object>#

Module contents#