← back to Sanderson Onboard

scripts/__pycache__/palette.cpython-314.pyc

47 lines

+
�aj���:�Rt^RIt^RIt^RIt^RIt^RIt^RIHt]PP]PP]4RR4t
Rt/RREbRRFbRRGbR	RHbR
RIbRRJbRRKbR
RLbRRMbRRNbRRObRRPbRRQbRRRbRRSbRRTbRRUb/RRVbRRWbRRXbRRYbRRZbRR[bRR\bRR]bRR^bR R_bR!R`bR"RabR#RbbR$RcbR%RdbR&RebR'RfbCR(RgR)RhR*RiR+RjR,RkR-RlR.RmR/RnR0RoR1Rp/
CtR2tRqR3ltR4t]PP]
R54t]PP)]4'g]!R64]h]!]4t]!]P4!]44t]P94]!]PP]
R74R84t^;tt]F�t ] R9,] R:,ut!t"]"'g]^,
tK)]PFPI]PFPK]"R;]/R<7^R=7PM4t']!]'4t(]('g]^,
tK�]PUR>]!]PV!](44R?]!](^,R@,4RA]!]!4RB24]^,
tK�	]P94]!RC]RD]24R# ])d]^,
tEKi;i)rzqIncremental local-PIL palette ($0). Reads data/palette_input.csv (mfr_sku,image_url) -> data/palette_updates.sql.N)�Imagez..�datazoMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120 Safari/537.36�White�	Alabaster�Cream�Ivory�Oatmeal�Greige�Beige�Taupe�Sand�Gold�Mustard�Ochre�Blush�Pink�Rose�	Raspberry�Red�
Terracotta�Orange�Brown�	Chocolate�Charcoal�Black�Grey�Silver�Stone�Sage�Green�Olive�Forest�TealzDuck Egg�Bluez
Delft Blue�Navy�Sky�Denim�Lilac�Purple�	Aubergine�Wedgwood�Linen�Mist�Marinec���VwrpRRrT\P4FJwpwrxp	W,
^,W(,
^,,W9,
^,,p
W�8gKHY�rEKL	V#)Ng�Ngm��C)�NAMED�items)�rgb�r�g�b�best�bd�n�nr�ng�nb�ds&          �scripts/palette.py�nearestr=sZ��

�E�A��t�D�B����
���*�2���4�!�)�Q�T�A�I�
�q�t�a�i�
'���4��D�&��K�c�b�\P!\P!V44P	R4q"PR4VP
V\PR7q3P4qCP4;'g.p\RV44;'g^p.p\VRR7Fowr�WI^,V	^,^,wr�p\^dV,V,^4p
V
^8dKDVPRRW�V3,R\W�V34RV
/4Kq	/pVF\pVR,V9dA\W�R,,R,VR,,^4W�R,,R&KQW�VR,&K^	\VP4R	R
7#)�RGB)�colors�methodc3�*"�TF	wrVx�K	R#5i)N�)�.0�c�_s&  r<�	<genexpr>�palette.<locals>.<genexpr>s���
"�6�C�A�a�6�s�T)�reverse�hexz
#%02x%02x%02x�name�pctc��VR,)#)rMrD)�xs&r<�<lambda>�palette.<locals>.<lambda>s
���%��yr>)�key)�rS)r�open�io�BytesIO�convert�	thumbnail�quantize�	MEDIANCUT�
getpalette�	getcolors�sum�sorted�round�appendr=�values)�bs�k�im�q�pal�counts�total�out�cnt�idxr2r3r4rM�mergedrFs&&              r<�paletterms\���z�z�"�*�*�R�.�!�)�)�%�0�B�,�,�y�2I��k�k��%�/�/�k�2�A����C�{�{�}�Ob�Ob�`b��

�
"�6�
"�
"�
'�
'�a�E�R���&��.����a�%��A��a�� ���A�e�C��G�E�M�!�&<�#��q�5�(��
�
�E�/�1�q�'�1�&��!�a��9I�%�PS�T�U�/��F�
���V�9����v��i�?P�QV�?W�XY�Z_�X`�?`�ab�9c���y� 1�%� 8� !�Q�v�Y����&�-�-�/�&8�9�9r>c�&�VPRR4#)�'z'')�replace)�ss&r<�escrrs��1�9�9�S��&�&r>zpalette_input.csvz"no palette_input.csv (nothing new)zpalette_updates.sql�w�mfr_sku�	image_urlz
User-Agent)�headers)�timeoutz(UPDATE sanderson_catalog SET ai_colors='z'::jsonb, ai_background_color='rLz' WHERE mfr_sku='z';
zpalette ok=z fail=)��rxrx)������)������)������)�����)���)���rS)rS��)��r��)��rS�P)r���2)r���<)r}r�r�)����)r��n�x)r�r�r�)r��(r�)r��Zr�)r~r�r�)r�r��7)�Fr�r�)r�r��:)�r�r�)r�r�r�)r�����)r�r�r�)r�r�r�)r�r�r�)r��sr�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)�#�-r�)r�r�r�)r�r�r�)r��r~)r�r�r�)r�r�r�)r�r�r�)r�����)r�r�r�)r�r�r�)�),�__doc__�csvrU�json�os�urllib.request�urllib�PILr�path�join�dirname�__file__�DATA�UAr/r=rmrr�inp�exists�print�
SystemExitrT�_inp_fh�list�
DictReader�rows�closeri�ok�failr2�sku�url�request�urlopen�Request�readr4rf�	Exception�write�dumpsrDr>r<�<module>r�s1��w�(�(�(���W�W�\�\�"�'�'�/�/�(�+�D��8��t��E�w�}�E�[��E�w�}�E�W�Ub�E�cl�mz�E�|D�ER�E�SZ�[h�E�ip�q~�E�E�FS�E�TZ�[g�E�hq�r~�E�F�GS�E�T[�\i�E�jp�q~�E�E�FS�E�T_�`k�E�lq�r}�E�~J�KV�E�W_�`l�E�mt�u@�E�AL�MW�E�Xb�cm�E�nu�v@�E�AG�HU�E�V^�_l�E�mt�uB	�E�C	I	�J	W	�E�X	_	�`	k	�E�l	s	�t	@
�E�A
I
�J
T
�E�U
[
�\
h
�E�i
s
�t
A�E�BH�IU�E�Vb�cn�E�ou�v@�AF�GT�U\�]i�jq�r�@
H
�I
U
�V
a
�b
l
�m
w
�x
D�EL�MZ�[a�bo�px�yD�E���:�'��G�G�L�L��)�*��	�w�w�~�~�c���E�"F�G�z�IY��S�	���S�^�^�G�4�5�4�w�}�}��D�QS�QX�QX�Q]�Q]�^b�cx�Qy�z}�L~��IJ�AJ�AC�DH�	
�A�
�i�L��;��G�C����a����(�
�.�.�
 �
 ����!7�!7��\�RT�DU�!7�!V�_a�
 �
b�
g�
g�
i��ov�wx�oy�kn���a�����I�I�8��T�Z�Z��_�9M�8N�Nm�nq�ru�vw�rx�y�sA�oB�nC�CT�UX�Y\�U]�T^�^b�c�d���E�B�
��	�	��U�[���F�4�&�1�
2��	�'�d�A�g�d�x�'�s�*AJ�J�J