← back to Rentv Sheet Enrich Refine

__pycache__/enrich.cpython-314.pyc

51 lines

+
|~j0��d�Rt^RIt^RIt^RIt^RIt]P
P
^]P
P]44^RI	t	0Rmt
R]!R^^^^^
R7R]!R^^^^^R7R]!R^^^^^	R7R	]!R
^^^^^R7/t.ROt
RtRtR
tRtRtRt]R8Xd
]!4R#R#)u�
enrich.py — RENTV CRE-sheet enrichment engine.

LAYER 1 (this file, $0, deterministic): derive each company's Website from its
existing corporate email domain, and add a Website/LinkedIn/Marketing-VP column set.
Only EMPTY target cells are filled; existing data is never overwritten. Every filled
cell is stamped light-green by lib.batch_fill.

Modes:
  --dry-run   read local data/tab_<gid>.csv, report projected fills, write NOTHING
  --apply     read the LIVE tab via the Sheets API and write fills (needs connect.py)

LinkedIn + Marketing/VP contact enrichment is LAYER 2 (research) — added next,
after Layer 1 is verified on the live sheet.
Ni��[zSponsor & Speaker Companies)�name�
header_row�
data_start�company�email�basei�le|zStrong Prospectsi�:szEvent SponsorsiW:zUnique Contacts (all tabs)c�Z�VR,p\W^,V^,V^,R7#)r)�new_website�new_li_company�new_li_contact�new_mvp)�dict)�cfg�bs& �7/Users/macstudio3/Projects/rentv-sheet-enrich/enrich.py�colsr/s'���F��A��A��c�!�A�#�q�QR�s�S�S�c�R�V\V48dW,P4#R#)�)�len�strip)�row�is&&r�cellr3s����S��\�3�6�<�<�>�1�r�1rc��\P!RT;'gR4F1pVP4PR4pV\9gK/Vu#	R#)zPPick the first corporate (non-freemail) domain from a possibly multi-email cell.z[\w.+-]+@([\w-]+\.[\w.-]+)r�.)�re�findall�lowerr�FREEMAIL)�	emailcell�m�ds&  r�domain_from_emailsr#6sE��
�Z�Z�5�y���B�
G��
�G�G�I�O�O�C� ���H���H�H�rc	�r�\V,p\V4p.\^^^^^R7rTVR,pV\V48d	W,M.p\	\
4F>wr�VR,V,p
\
Wz4R8XgK'VPRVRV
RV	/4K@	\VR,\V44F�pW,p\
W�R	,4p
V
'gK'VR
;;,^,
uu&\
W�R,4p\
W�R,4R8wdKg\V4pV'dKVR
;;,^,
uu&VR;;,^,
uu&VPRVRVR,RV/4K�V'dVR;;,^,
uu&K�VR;;,^,
uu&K�	WE3#)z9Return (fills, stats). fills = list of {row0,col0,value}.)�rows�	has_email�website_fill�
freemail_only�no_emailrrr�row0�col0�valuerrr%rr	r&r'r(r))
�TABSrr
r�	enumerate�
NEW_LABELSr�append�ranger#)�gidr%r�nc�fills�stats�hr�hdrr�label�col�rr�comp�emailc�doms&&              r�plan_tabr>>sg��
�s�)�C�$�s�)�R��t��a�a�q�[\�]�5�	�\�	�B��3�t�9�n�$�(�"�C��j�)����&�k�A�o����>�R���L�L�&�"�f�c�7�E�B�C�*��3�|�$�c�$�i�
0���g���C�Y��(����
�f�
���
��c�w�<�(����
�&�'�2�-�� ��(����+��!�#��U�>�%:�a�%?�%:��L�L�&�!�V�R�
�->���M�N�
��/�"�a�'�"��*���"��#1�$�<�rc�8�\PP\PP\4RRVR24p\VRRRR7;_uu_4p\
\P!V44uuRRR4# +'giR#;i)�data�tab_z.csvrzutf-8�ignore)�newline�encoding�errorsN)	�os�path�join�dirname�__file__�open�list�csv�reader)r2rG�fs&  r�load_csvrP]sa��
�7�7�<�<�������1�6�T�#��d�;K�L�D�	
�d�B���	B�	B�a��C�J�J�q�M�"�
C�	B�	B�	B�s�B�B	c��R\P9dRMRpVR8Xd\P!4MRpV'd\P!V4MRp/pV'd1VR,F#pVR,R,W4R,R,&K%	RpR\P9dE\\P\PP
R4^,,4p\P4EFzwrgVe	We8wdKVR8Xd\P!WV,4pM\V4p\Wh4wr�V	Uu.uFq�R,VR	,8wgKVNK	pp\R
VR,RVR
24\RV
R,RV
R,RV
R,RV
R,24\R\V	4R\V4R24VR,FGp\RVR,^,R\P!VR,4RVR,24KI	VR8XgEKD\P!WV	4p
\RV
P!R R!4R"24EK}	R#uupi)#z--applyz	--dry-runN�sheets�
properties�title�sheetIdz--onlyr*rz
=== rz (gid=z) ===z
  companies: r%z | website derivable now: r'z | freemail-only (Layer2): r(z | no-email (Layer2): r)z  cells to fill this run: z (z websites + headers):N�Nz    -> R�Cr+z: r,z  APPLIED: �totalUpdatedCells�?z cells written (light-green).)�sys�argv�lib�access_token�get_meta�int�indexr-�items�read_tabrPr>�printr�
col_letter�
batch_fill�get)�mode�tok�meta�title_by_gid�s�onlyr2rr%r4r5rO�
data_fills�ress              r�mainrobs��#�3�8�8�3�;��D� $�	� 1�#�
�
�
�t�C� #�3�<�<����D��L���h���A�78���w�7O�L�<���3�4� ��D��3�8�8���3�8�8�C�H�H�N�N�8�4�Q�6�7�8���J�J�L���������9���<�<��#�%6�7�D��C�=�D���*���!&�I��A�F�)�s�<�7H�*H�a�a��
�I�
��s�6�{�m�6�#��e�4�5�
�
�e�F�m�_�,F�u�^�G\�F]�+�E�/�,B�+C�CY�Z_�`j�Zk�Yl�n�	o�
�*�3�u�:�,�b��Z��8I�I]�^�_��B���A��H�Q�v�Y�q�[�M��3�>�>�!�F�)�+D�*E�R��'�
�|�T�U� ��9���.�.��5�1�C��K����(;�C� @�A�A^�_�`�#!��Js�J�/J�__main__>�me.com�aol.com�att.net�cox.net�mac.com�msn.com�live.com�	gmail.com�	yahoo.com�	ymail.com�
icloud.com�comcast.net�hotmail.com�outlook.com�verizon.net�
sbcglobal.net�protonmail.com)�WebsitezLinkedIn (Company)zLinkedIn (Contact)zMarketing/VP ContactzUpdated Email (found))�__doc__rZrFrMrrG�insertrIrJr\rr
r-r/rrr#r>rPro�__name__�rr�<module>r�s������������2�7�7�?�?�8�,�-�
�8����7���A�Q�R�A���,���A�Q�R�A���*���A�Q�Q�@��T�3���A�Q�R�A�	��?�
�T�2���>#�
a�>�z���F�r