
    >CiM                         d Z ddlZddlZddlZddlZddlmZmZ ddl	m
Z
mZmZmZ dedefdZd Zed	k(  r e        yy)
a  
Load relationships from CSV into Neo4j using batch MERGE.
Safe to re-run -- MERGE won't create duplicates.

Usage:
    python load_links.py diplo                    # Load diplomacy links
    python load_links.py dw                       # Load dig.watch links
    python load_links.py diplo --csv diplomacy_links_16032026.csv  # Specific CSV
    python load_links.py dw --csv dw_links_16032026.csv
    N)DIPLO_CONFIG	DW_CONFIG)
get_driverload_relationshipsensure_indexes	run_queryprefixreturnc                     |  d}t        t        j                  |      t        j                  j                  d      }|s$t        d| d       t        j                  d       |d   S )Nz_links_*.csvT)keyreversezNo CSV found matching 'z'. Use --csv to specify.   r   )sortedglobospathgetmtimeprintsysexit)r	   patternfiless      load_links.pyfind_latest_csvr      sY    %G499W%277+;+;TJE'y0HIJ8O    c                     t        t        j                        dk  st        j                  d   dvr t        d       t        j                  d       t        j                  d   } | dk(  rt
        nt        }| dk(  rdnd}d }dt        j                  v r4t        j                  t        j                  j                  d      dz      }nt        |      }t        d	|         t        d
|d           t        d|        t        j                  |      }t        dt        |       d|d   j                          d       t        |d   j                         j                  d             t               }t        ||d          t        d|d    d       t!        ||d   |       t#        ||d   d      }t        d|d    d|d   d           |j%                          t        d       y )N   r   )diplodwz;Usage: python load_links.py <diplo|dw> [--csv filename.csv]r   	diplomacyr   z--csvzSite: z
Database: neo4j_databasezCSV: zLoaded z links (linkz types)
   z 
--- Loading relationships into z ---z'MATCH ()-[r]->() RETURN count(r) AS cntz
Total relationships in z: r   cntzDone.)lenr   argvr   r   r   r   indexr   pdread_csvnuniquevalue_countsheadr   r   r   r   close)sitecfg
csv_prefixcsv_pathdf_linksdriverrelss          r   mainr5      s   
388}qCHHQK>KL88A;D'/,yC $TJH#((88CHHNN73a78":.	F4&/	Js+,-
./	E(
{{8$H	GCM?(8F+;+C+C+E*Fg
NO	(6

'
'
)
.
.r
23\F63/01	-c2B.C-DD
IJvs#34h?VS!12>@D	%c*:&;%<BtAwu~>N
OP
LLN	'Nr   __main__)__doc__r   r   r   pandasr(   configr   r   neo4j_loaderr   r   r   r   strr   r5   __name__ r   r   <module>r>      sN   	   	  * R RC C "J zF r   