o
    }h                     @   sT   d dl Z d dlmZ d dlmZ ddddZdZd	d
 Zdd Zdd Z	dd Z
dS )    N)ElementTreebiolucida_name_mapzhttp://ns.adobe.com/xap/1.0/z+http://www.w3.org/1999/02/22-rdf-syntax-ns#zadobe:ns:meta/)xmprdfxz^XMP Core ([\d]+\.[\d]+\.[\d])$c                 C   s   i }|  dt}|d ur|jdtd  d |d< |  dt}|d ur0|jdtd  d |d< |  d	t}|d urG|jdtd  d
 |d< |sMt| }|S )Nz#.//rdf:Description[@xmp:PixelWidth]{r   }PixelWidthpixel_widthz$.//rdf:Description[@xmp:PixelHeight]}PixelHeightpixel_heightz.//rdf:Description[@xmp:SizeZ]z}SizeZ	z_spacing)findXMP_NSattrib_process_5_6_0)xmlxmp_infopixel_width_elementpixel_height_elementz_spacing_element r   H/home/cmiss/Jenkins/workspace/SPARC-API/app/biolucida_process_results.py_process_5_5_0   s   r   c                    s  i }|  dt}|d ur|jdtd  d |d< |  dt}|d ur0|jdtd  d |d< |  d	t}|d urG|jdtd  d
 |d< |  dt}|d ur|jdtd  d }|| dtd d  }|d | d }td|}	tt|	}	t|	dkr|	d |d< nd|d< td|}
td|}t|
t|kri gt|
 |d< |D ]+ t d } fdd|
D }t|d } d  d	|d? d@  d|d |< qtd|}	t|	dkrt|	d dk|d< |S ) Nz.//rdf:li[@xmp:PixelWidth]r   r   r	   r
   z.//rdf:li[@xmp:PixelHeight]r   r   z.//rdf:li[@xmp:SpacingZ]z	}SpacingZr   z.//rdf:li[@xmp:Description]z}Descriptionz	<mbf_map>z
</mbf_map>z+Channel:0:[0-9]+:AcquisitionMode\?([^?]+)\?   r   ZmodalityRGBz#Channel:0:([0-9]+):Color\?([^?]+)\?z"Channel:0:([0-9]+):Name\?([^?]+)\?Zchannel_coloursc                    s$   g | ]}|d   d  kr|d qS )r   r   r   ).0colournamer   r   
<listcomp>?   s   $ z"_process_5_6_0.<locals>.<listcomp>z#{0:06X}   i )r   labelzSizeZ\?([^?]+)\?Zthree_d)
r   r   r   lenrefindalllistsetintformat)r   r   r   r   r   elementZimage_descriptionZimage_description_mbf_mapZmbf_mapmatchedZmatched_colourZmatched_nameindexZcolour_listr   r   r   r   r      sD   "r   c                 C   s   t | }|dtd  d}tt|}|d ur?|d}d|dd }t	 |d }|d ur7||S t
d| d	td
| d	)Nr   r   z}xmptkr   Z	_process_._z4Not able to handle XMP core meta data for version: ''z!Not able to match version from: ')r   
fromstringgetr   r$   matchXMP_CORE_REGEXPgroupreplaceglobalsNotImplementedErrorAttributeError)datar   Zxmp_version_stringr2   versionZhandling_function_nameZhandling_functionr   r   r   process_resultsL   s   

r;   c                 C   s(   d| v r| d }|t v rt | | d< | S )Nr   r   )r9   Z
image_namer   r   r   process_result]   s
   r<   )r$   	xml.etreer   "app.manifest_name_to_discover_namer   r   r3   r   r   r;   r<   r   r   r   r   <module>   s    .