# -*- coding: utf-8 -*-"""Auto-generated ADF ParserThis module provides functions to parse ADF JSON into Python objects."""importtypingasTfrom..type_hintimportT_DATAfrom..type_enumimportTypeEnumfrom..excimportUnimplementedTypeErrorifT.TYPE_CHECKING:# pragma: no coverfrom..mark_or_nodeimportT_NODE# =============================================================================# Node imports# =============================================================================from.node_textimportNodeTextfrom.node_ruleimportNodeRulefrom.node_list_itemimportNodeListItemfrom.node_bullet_listimportNodeBulletListfrom.node_ordered_listimportNodeOrderedListfrom.node_paragraphimportNodeParagraphfrom.node_task_itemimportNodeTaskItemfrom.node_task_listimportNodeTaskListfrom.node_decision_itemimportNodeDecisionItemfrom.node_decision_listimportNodeDecisionListfrom.node_emojiimportNodeEmojifrom.node_hard_breakimportNodeHardBreakfrom.node_dateimportNodeDatefrom.node_mentionimportNodeMentionfrom.node_statusimportNodeStatusfrom.node_headingimportNodeHeadingfrom.node_code_blockimportNodeCodeBlockfrom.node_inline_cardimportNodeInlineCardfrom.node_block_cardimportNodeBlockCardfrom.node_mediaimportNodeMediafrom.node_media_groupimportNodeMediaGroupfrom.node_media_singleimportNodeMediaSinglefrom.node_embed_cardimportNodeEmbedCardfrom.node_extensionimportNodeExtensionfrom.node_captionimportNodeCaptionfrom.node_media_inlineimportNodeMediaInlinefrom.node_panelimportNodePanelfrom.node_blockquoteimportNodeBlockquotefrom.node_expandimportNodeExpandfrom.node_nested_expandimportNodeNestedExpandfrom.node_table_cellimportNodeTableCellfrom.node_table_headerimportNodeTableHeaderfrom.node_table_rowimportNodeTableRowfrom.node_tableimportNodeTablefrom.node_docimportNodeDoc# =============================================================================# Node registry# =============================================================================NODE_TYPE_TO_CLASS_MAPPING={TypeEnum.doc.value:NodeDoc,TypeEnum.text.value:NodeText,TypeEnum.rule.value:NodeRule,TypeEnum.listItem.value:NodeListItem,TypeEnum.bulletList.value:NodeBulletList,TypeEnum.orderedList.value:NodeOrderedList,TypeEnum.paragraph.value:NodeParagraph,TypeEnum.taskItem.value:NodeTaskItem,TypeEnum.taskList.value:NodeTaskList,TypeEnum.decisionItem.value:NodeDecisionItem,TypeEnum.decisionList.value:NodeDecisionList,TypeEnum.emoji.value:NodeEmoji,TypeEnum.hardBreak.value:NodeHardBreak,TypeEnum.date.value:NodeDate,TypeEnum.mention.value:NodeMention,TypeEnum.status.value:NodeStatus,TypeEnum.heading.value:NodeHeading,TypeEnum.codeBlock.value:NodeCodeBlock,TypeEnum.inlineCard.value:NodeInlineCard,TypeEnum.blockCard.value:NodeBlockCard,TypeEnum.media.value:NodeMedia,TypeEnum.mediaGroup.value:NodeMediaGroup,TypeEnum.mediaSingle.value:NodeMediaSingle,TypeEnum.embedCard.value:NodeEmbedCard,TypeEnum.extension.value:NodeExtension,TypeEnum.caption.value:NodeCaption,TypeEnum.mediaInline.value:NodeMediaInline,TypeEnum.panel.value:NodePanel,TypeEnum.blockquote.value:NodeBlockquote,TypeEnum.expand.value:NodeExpand,TypeEnum.nestedExpand.value:NodeNestedExpand,TypeEnum.tableCell.value:NodeTableCell,TypeEnum.tableHeader.value:NodeTableHeader,TypeEnum.tableRow.value:NodeTableRow,TypeEnum.table.value:NodeTable,}
[docs]defparse_node(dct:T_DATA)->"T_NODE":""" Parse a node dictionary into a Node object. :param dct: The raw ADF node dictionary from JSON. :return: The parsed node instance. :raises UnimplementedTypeError: If the node type is not registered. """type_=dct["type"]try:klass=NODE_TYPE_TO_CLASS_MAPPING[type_]exceptKeyError:raiseUnimplementedTypeError(type_,"node")returnklass.from_dict(dct)