File: //home/arjun/projects/env/lib/python3.10/site-packages/docx/opc/__pycache__/package.cpython-310.pyc
o
$we� � @ s� d Z ddlmZ ddlmZmZ ddlmZ ddl m
Z
ddlmZ ddl
mZ ddlmZ dd lmZ G d
d� d�ZG dd
� d
�ZdS )z8Objects that implement reading and writing OPC packages.� )�RELATIONSHIP_TYPE)�PACKAGE_URI�PackURI)�PartFactory)�CorePropertiesPart)�
PackageReader)�
PackageWriter)�
Relationships)�lazypropertyc s� e Zd ZdZ� fdd�Zdd� Zedd� �Zdd � Zd
d� Z d!d
d�Z
edd� �Zdd� Ze
dd� �Zdd� Zedd� �Zdd� Zedd� �Zdd� Zedd � �Z� ZS )"�
OpcPackagez�Main API class for |python-opc|.
A new instance is constructed by calling the :meth:`open` class method with a path
to a package file or file-like object containing one.
c s t t| ��� d S �N)�superr �__init__��self�� __class__� �I/home/arjun/projects/env/lib/python3.10/site-packages/docx/opc/package.pyr s zOpcPackage.__init__c C s dS )z�Entry point for any post-unmarshaling processing.
May be overridden by subclasses without forwarding call to super.
Nr r r r r �after_unmarshal s zOpcPackage.after_unmarshalc C s | j jS )zl|CoreProperties| object providing read/write access to the Dublin Core
properties for this document.)�_core_properties_part�core_propertiesr r r r r s zOpcPackage.core_propertiesc # s( � d� fdd� � � | �D ]}|V qdS )z�Generate exactly one reference to each relationship in the package by
performing a depth-first traversal of the rels graph.Nc 3 sh � |d u rg n|}| j �� D ]#}|V |jrq|j}||v rq|�|� |}� ||�D ]}|V q+qd S r ��rels�values�is_external�target_part�append��source�visited�rel�part�
new_source�� walk_relsr r r% * s �
��z'OpcPackage.iter_rels.<locals>.walk_relsr r )r r! r r$ r � iter_rels&