Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/Tools/pynche/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/Tools/pynche/__pycache__/ColorDB.cpython-33.pyc

�
��f�"c@s-dZddlZddlZddlTddlZGdd�de�ZdadZ	dZ
Gdd	�d	�ZGd
d�de�ZGdd
�d
e�Z
Gdd�de
�ZGdd�de�Zejd�efejd�efejd�e
fejd�efejd�efgZddd�ZiZdd�Ziadd�Zd9Zdd �Zd!d"�Zed#kr)ed$�Zes�ed%�ejd&�nd'Zeje�\Z Z!Z"Z#eed(e e!e"ee#��ej$e#�\Z%Z&ed)e%d*e
j'e&��d:\Z(Z)Z*d;\Z(Z)Z*d<\Z(Z)Z*ed2ed3�ddl+Z+e+j+�Z,ej-e(e)e*�Z-e+j+�Z.ed4e-d5e.e,d6�xtej/�D]cZ0eje0�\Z(Z)Z*ej1e(e)e*�Z&ed7e0e(e)e*e	j'e&d&d��f�q�WndS(=uGColor Database.

This file contains one class, called ColorDB, and several utility functions.
The class must be instantiated by the get_colordb() function in this file,
passing it a filename to read a database out of.

The get_colordb() function will try to examine the file to figure out what the
format of the file is.  If it can't figure out the file format, or it has
trouble reading the file, None is returned.  You can pass get_colordb() an
optional filetype argument.

Supporte file types are:

    X_RGB_TXT -- X Consortium rgb.txt format files.  Three columns of numbers
                 from 0 .. 255 separated by whitespace.  Arbitrary trailing
                 columns used as the color name.

The utility functions are useful for converting between the various expected
color formats, and for calculating other color values.

iN(u*cBs|EeZdZdS(uBadColorN(u__name__u
__module__u__qualname__(u
__locals__((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyuBadColorsuBadColoru u, cBs�|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS(uColorDBc
Cs>d}|j|_i|_i|_d|_x
|D]}|jj|�}|s�td|jd|dt	j
�|d7}q4n|j|�\}}}|j|�}|j
�}	|||f}
|jj|
|gf�\}}||kr||kr|j|�n||f|j|
<|
|j|	<|d}q4WdS(NiuError inu lineufilei(unameu_ColorDB__nameu_ColorDB__byrgbu_ColorDB__bynameuNoneu_ColorDB__allnamesu_reumatchuprintusysustderru_extractrgbu_extractnameulowerugetuappend(
uselfufpulinenoulineumouredugreenublueunameukeynameukeyu	foundnameualiases((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu__init__'s*			

!
uColorDB.__init__cCs dd�|jddd�D�S(NcSsg|]}t|��qS((uint(u.0ux((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu
<listcomp>Ns	u'ColorDB._extractrgb.<locals>.<listcomp>uredugreenublue(ugroup(uselfumo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu_extractrgbMsuColorDB._extractrgbcCs
|jd�S(Nuname(ugroup(uselfumo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu_extractnamePsuColorDB._extractnamecCs|jS(N(u_ColorDB__name(uself((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyufilenameSsuColorDB.filenamecCs4y|j|SWntk
r/t|��YnXdS(uReturn name for rgbtupleN(u_ColorDB__byrgbuKeyErroruBadColor(uselfurgbtuple((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu
find_byrgbVs
uColorDB.find_byrgbcCs@|j�}y|j|SWntk
r;t|��YnXdS(u"Return (red, green, blue) for nameN(uloweru_ColorDB__bynameuKeyErroruBadColor(uselfuname((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyufind_byname]s

uColorDB.find_bynamecCs�d}d}x�|jj�D]�\}}|j|j�\}}	}
||}||	}||
}
|||||
|
}|dks�||kr|}|}qqW|S(u3Return the name of color nearest (red, green, blue)iui����i����(u_ColorDB__byrgbuvaluesu_ColorDB__bynameulower(uselfuredugreenublueunearestunearest_nameunameualiasesuruguburdeltaugdeltaubdeltaudistance((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyunearestes



uColorDB.nearestcCsb|js[g|_x-|jj�D]\}}|jj|�q"W|jjdtj�n|jS(Nukey(u_ColorDB__allnamesu_ColorDB__byrgbuvaluesuappendusortustrulower(uselfunameualiases((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyuunique_namesws		uColorDB.unique_namescCsUy |j|||f\}}Wn'tk
rIt|||f��YnX|g|S(N(u_ColorDB__byrgbuKeyErroruBadColor(uselfuredugreenublueunameualiases((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu
aliases_of�s
 
uColorDB.aliases_ofN(u__name__u
__module__u__qualname__u__init__u_extractrgbu_extractnameufilenameu
find_byrgbufind_bynameunearestuunique_namesu
aliases_of(u
__locals__((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyuColorDB&s&	uColorDBcBs#|EeZdZejd�ZdS(u
RGBColorDBu?\s*(?P<red>\d+)\s+(?P<green>\d+)\s+(?P<blue>\d+)\s+(?P<name>.*)N(u__name__u
__module__u__qualname__ureucompileu_re(u
__locals__((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu
RGBColorDB�su
RGBColorDBcBs/|EeZdZejd�Zdd�ZdS(uHTML40DBu+(?P<name>\S+)\s+(?P<hexrgb>#[0-9a-fA-F]{6})cCst|jd��S(Nuhexrgb(urrggbb_to_tripletugroup(uselfumo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu_extractrgb�suHTML40DB._extractrgbN(u__name__u
__module__u__qualname__ureucompileu_reu_extractrgb(u
__locals__((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyuHTML40DB�suHTML40DBcBs/|EeZdZejd�Zdd�ZdS(uLightlinkDBu,(?P<name>(.+))\s+(?P<hexrgb>#[0-9a-fA-F]{6})cCs|jd�j�S(Nuname(ugroupustrip(uselfumo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu_extractname�suLightlinkDB._extractnameN(u__name__u
__module__u__qualname__ureucompileu_reu_extractname(u
__locals__((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyuLightlinkDB�suLightlinkDBcBs;|EeZdZejd�Zdd�Zdd�ZdS(u	WebsafeDBu(?P<hexrgb>#[0-9a-fA-F]{6})cCst|jd��S(Nuhexrgb(urrggbb_to_tripletugroup(uselfumo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu_extractrgb�suWebsafeDB._extractrgbcCs|jd�j�S(Nuhexrgb(ugroupuupper(uselfumo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu_extractname�suWebsafeDB._extractnameN(u__name__u
__module__u__qualname__ureucompileu_reu_extractrgbu_extractname(u
__locals__((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu	WebsafeDB�su	WebsafeDBuXorguXConsortiumuHTMLu	lightlinkuWebsafec	
Cs�d}t|�}zx|j�}|s+dS|dkr@t}n	|g}x1|D]%\}}|j|�}|rPPqPqPWdS||�}Wd|j�X|a|S(N(uNoneuopenureadlineu	FILETYPESusearchucloseu
DEFAULT_DB(	ufileufiletypeucolordbufpulineu	filetypesutypereuclass_umo((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyuget_colordb�s$		uget_colordbcCs�tj|�}|dkr�|ddkr:t|��n|dd�}|dd�}|dd�}t|d�t|d�t|d�f}|t|<n|S(	u9Converts a #rrggbb color to the tuple (red, green, blue).iu#iiiiiN(u	_namedictugetuNoneuBadColoruint(ucolorurgbtupleuredugreenublue((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyurrggbb_to_triplet�s*
urrggbb_to_tripletcCs6tj|�}|dkr2d|}|t|<n|S(u/Converts a (red, green, blue) tuple to #rrggbb.u
#%02x%02x%02xN(u	_tripdictugetuNone(urgbtupleuhexname((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyutriplet_to_rrggbb�s


utriplet_to_rrggbbgp@icCstttj|t��S(N(ulistumapuoperatoru__div__u	_maxtuple(urgbtuple((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyutriplet_to_fractional_rgb�sutriplet_to_fractional_rgbcCs6d}d}d}||d||d||dS(Ng�A`��"�?gbX9���?g�v��/�?iii((urgbtupleurugub((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyutriplet_to_brightness�sutriplet_to_brightnessu__main__u/usr/openwin/lib/rgb.txtu!No parseable color database foundiunavyu:uname:ualiases:i�i�i�i�i�i�i�ufinding nearest tou...ufound nearest coloruinusecondsu%20s: (%3d/%3d/%3d) == %s(gp@(gp@gp@gp@(iii�(i�i�i�(i�i�i�(2u__doc__usysureutypesuoperatoru	ExceptionuBadColoruNoneu
DEFAULT_DBuSPACEu
COMMASPACEuColorDBu
RGBColorDBuHTML40DBuLightlinkDBu	WebsafeDBucompileu	FILETYPESuget_colordbu	_namedicturrggbb_to_tripletu	_tripdictutriplet_to_rrggbbu	_maxtupleutriplet_to_fractional_rgbutriplet_to_brightnessu__name__ucolordbuprintuexitutargetufind_bynameuredugreenublueurgbtupleu
find_byrgbunameualiasesujoinurugubutimeut0unearestut1uunique_namesunu
aliases_of(((u9/opt/alt/python33/lib64/python3.3/Tools/pynche/ColorDB.pyu<module>sd
b