HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/__pycache__/unohelper.cpython-38.pyc
U

N�}_�*�@sXddlZddlZddlZddlZddlmZmZmZddlm	Z	m
Z
ddlmZ
ddlmZddlmZmZmZddlmZmZmZmZm Z!m"Z#m$Z%m&Z'dd�Z(d	d
�Z)dd�Z*d
d�Z+Gdd�d�Z,Gdd�d�Z-Gdd�d�Z.dd�Z/dd�Z0dd�Z1dd�Z2dd�Z3dd �Z4iZ5d!d"�Z6Gd#d$�d$e�Z7Gd%d&�d&e
e7�Z8Gd'd(�d(eee7�Z9dS))�N)�
XTypeProvider�XSingleComponentFactory�XServiceInfo)�RuntimeException�XCurrentContext)�ALL)�IN�OUT�INOUT)�	MAYBEVOID�BOUND�CONSTRAINED�	TRANSIENT�READONLY�MAYBEAMBIGUOUS�MAYBEDEFAULT�	REMOVABLEcCs0d}|tkrd}n|tkr d}n|tkr,d}|S)Nz[]z[inout]z[out]z[in])�PARAM_MODE_INOUT�PARAM_MODE_OUT�
PARAM_MODE_IN��mode�ret�r�+/usr/lib/python3/dist-packages/unohelper.py�_mode_to_str,srcCs�d}t|@r|d}t|@r$|d}t|@r4|d}t|@rD|d}t|@rT|d}t|@rd|d}t|@rt|d}t|@r�|d	}|��S)
N�z
removable z
maybedefault zmaybeambiguous z	readonly z
transient zconstrained zbound z
maybevoid )	�PROP_ATTR_REMOVABLE�PROP_ATTR_MAYBEDEFAULT�PROP_ATTR_MAYBEAMBIGUOUS�PROP_ATTR_READONLY�PROP_ATTR_TRANSIENT�PROP_ATTR_CONSTRAINED�PROP_ATTR_BOUND�PROP_ATTR_MAYBEVOID�rstriprrrr�_propertymode_to_str6s$r&c
Cst|tj�sHt|tj�sHt|tj�sHt|tj�sHt|tj�sHt|tj�r^|�t	|�d�dSt�
�}|j�d|�}|�d�t
|d�r�|��}|D]}|�d|d�q�n
|�d�|�d�t
|d�r�|��}|D]}|�d|jd�q�n
|�d�|�|�}|�t�}|�d	�|D]�}|�d|jjd
|j�|j}	|j}
|�d�tdt|	��D]J}|dk�r||�d
�|�t|
|j�d
|	|jd
|
|j��qd|�d��q |�t�}|�d�|D]4}|�dt|j �d|jjd
|jd��q�dS)N�
z com.sun.star.beans.IntrospectionzSupported services:
�getSupportedServiceNamesz  z
  unknown
zInterfaces:
�getTypesz	Methods:
� z( rz, z )
zProperties:
z  (z) )!�
isinstance�unoZTypeZCharZBoolZByteSequence�EnumZAny�write�strZgetComponentContext�ServiceManager�createInstanceWithContext�hasattrr(r)ZtypeName�inspectZ
getMethods�METHOD_CONCEPT_ALLZ
ReturnType�NameZParameterTypesZParameterInfos�range�lenrZaModeZaNameZ
getProperties�PROPERTY_CONCEPT_ALLr&Z
Attributes)
�obj�outZctxZ
introspection�namesZiiZ
interfaces�access�methods�argsZinfos�iZpropsrrrr3JsZ
�
�
�
�
��











4

r3cCst|||�S�N)�_FactoryHelper_��clazz�implementationName�serviceNamesrrr�createSingleServiceFactory{srFc@seZdZdd�ZdS)�_ImplementationHelperEntrycCs||_||_dSr@)�ctorrE)�selfrHrErrr�__init__sz#_ImplementationHelperEntry.__init__N��__name__�
__module__�__qualname__rJrrrrrG~srGc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�ImplementationHelpercCs
i|_dSr@)�impls�rIrrrrJ�szImplementationHelper.__init__cCst||�|j|<dSr@)rGrP)rIrHrDrErrr�addImplementation�sz&ImplementationHelper.addImplementationcCsLt|j���D]8}d|dd}|�|�}|djD]}|�|�q6qdS)N�/r�
/UNO/SERVICES�)�listrP�items�	createKeyrE)rI�regKey�smgrr?�keyName�key�serviceNamerrr�writeRegistryInfo�s
z&ImplementationHelper.writeRegistryInfocCs4|j�|d�}|dkr$t|dd��t|j||j�S�Nz is unknown)rP�getrrFrHrE)rIrDrYrZ�entryrrr�getComponentFactory�sz(ImplementationHelper.getComponentFactorycCs*|j�|d�}|dkr$t|dd��|jSr_�rPr`rrE)rIrDrarrrr(�sz-ImplementationHelper.getSupportedServiceNamescCs.|j�|d�}|dkr$t|dd��||jkSr_rc)rIrDr]rarrr�supportsService�sz$ImplementationHelper.supportsServiceN)	rLrMrNrJrRr^rbr(rdrrrrrO�srOc@seZdZdd�ZdS)�ImplementationEntrycCs||_||_||_dSr@)�implName�supportedServicesrC)rIrfrgrCrrrrJ�szImplementationEntry.__init__NrKrrrrre�srecCs<|D]2}d|jd}|�|�}|jD]}|�|�q&qdS)NrSrT)rfrXrg)rZrY�
seqEntriesrar[r\r]rrr�writeRegistryInfoHelper�s


ricCs
t�|�S)z,returns a file-url for the given system path)�pyuno�systemPathToFileUrl)Z
systemPathrrrrk�srkcCs
t�|�S)zVreturns a system path (determined by the system, the python interpreter is running on))rj�fileUrlToSystemPath)Zurlrrrrl�srlcCst�||�S)z0returns an absolute file url from the given urls)rj�
absolutize)�pathZrelativeUrlrrrrm�srmcCs,|D]"}|j|krt|j||j�SqdSr@)rfrFrCrg)rDrZrYrh�xrrr�getComponentFactoryHelper�s
rpcCs�|j}|�||�}|�d|�}tjdkp0tjdk}tjdk}|D]�}	|�d|�}
|
�ddd�|s�|	�d	�r�|rz|	d
}	n|	d}	|�||	|
�|
�	�}|�
d�}|��}
|j}|
D](}|�t
|�d
��d|	|�}|�|�q�|
��q@dS)Nz0com.sun.star.registry.ImplementationRegistration�ntZdos�darwinz$com.sun.star.registry.SimpleRegistryrrrUz.unoz.dylibz.soZIMPLEMENTATIONSrS)r0r1�os�name�sys�platform�open�endswithZregisterImplementationZ
getRootKeyZopenKeyZgetKeyNamesZactivate�max�split�insert�close)ZtoBeExtendedContextZcontextRuntimeZ
componentUrlsZ
loaderNamerZ�loaderZimplRegZisWinZisMacZcomponentUrlZregZrootKeyZimplementationKeyZ	implNamesZextSMGRroZfacrrr�addComponentsToContext�s*


r~c
Cs�d}|jtkrt|j}n�i}t|jj�}t|�dkrt|��}|j}t�|�rZd||j<q*t|�dkr*|t|�}q*t|�	��}g}|D]}t�
|�}	|�|	�q�t|�}|t|j<|S)Nr)
�	__class__�_g_typeTablerV�	__bases__r7�popr,ZisInterfaceZ__pyunointerface__�keysZ
getTypeByName�append�tuple)
rIrr;Ztraverse�item�basesZlst�typesro�trrr�_unohelper_getHandle�s(



r�c@seZdZdd�Zdd�ZdS)�BasecCst|�Sr@)r�rQrrrr)�sz
Base.getTypescCsdS)NrrrQrrr�getImplementationId�szBase.getImplementationIdN)rLrMrNr)r�rrrrr��sr�c@s eZdZdZdd�Zdd�ZdS)�CurrentContextz�a current context implementation, which first does a lookup in the given
       hashmap and if the key cannot be found, it delegates to the predecessor
       if available
    cCs||_||_dSr@)�hashMap�
oldContext)rIr�r�rrrrJszCurrentContext.__init__cCs2||jkr|j|S|jdk	r*|j�|�SdSdSr@)r�r��getValueByName)rIrtrrrr�	s



zCurrentContext.getValueByNameN)rLrMrN�__doc__rJr�rrrrr�sr�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)rAcCs||_||_||_dSr@rB)rIrCrDrErrrrJsz_FactoryHelper_.__init__cCs|jSr@)rDrQrrr�getImplementationNamesz%_FactoryHelper_.getImplementationNamecCs
||jkSr@�rE)rIZServiceNamerrrrdsz_FactoryHelper_.supportsServicecCs|jSr@r�rQrrrr( sz(_FactoryHelper_.getSupportedServiceNamescCs
|�|�Sr@�rC)rI�contextrrrr1#sz)_FactoryHelper_.createInstanceWithContextcCs|j|f|��Sr@r�)rIr>r�rrr�%createInstanceWithArgumentsAndContext&sz5_FactoryHelper_.createInstanceWithArgumentsAndContextN)	rLrMrNrJr�rdr(r1r�rrrrrAsrA):r,rjrsruZcom.sun.star.langrrrZcom.sun.star.unorrZ com.sun.star.beans.MethodConceptrr4Z"com.sun.star.beans.PropertyConceptr8Z!com.sun.star.reflection.ParamModerrr	rr
rZ$com.sun.star.beans.PropertyAttributerr$rr#r
r"rr!rr rrrrrrrr&r3rFrGrOrerirkrlrmrpr~r�r�r�r�rArrrr�<module>s6(

1"