@@ -47,6 +47,10 @@ def migrate_csv(
4747 log .info (f"[yellow]Loading: { filename } " )
4848 df = pd .read_csv (filename , header = None , skiprows = skip_rows , names = names )
4949 log .info (f"Size of dataframe: { len (df )} " )
50+ if model .__name__ == "Referring" : # Add date since this isn't included
51+ file_date = filename .name [:10 ]
52+ df .insert (loc = 0 , column = "date" , value = file_date )
53+
5054 if model .__name__ == "Paths" :
5155 repository_names = [a .split ("/" )[2 ] for a in df ["path" ].values ]
5256 df .insert (1 , "repository_name" , repository_names )
@@ -56,7 +60,12 @@ def migrate_csv(
5660 query_results = list (
5761 map (func , df ["repository_name" ], df ["date" ], df ["path" ])
5862 )
59- else :
63+ elif model .__name__ == "Referring" :
64+ func = partial (query_referring , engine = engine , model = model )
65+ query_results = list (
66+ map (func , df ["repository_name" ], df ["date" ], df ["site" ])
67+ )
68+ else : # For Clone and Traffic
6069 func = partial (query , engine = engine , model = model )
6170 query_results = list (map (func , df ["repository_name" ], df ["date" ]))
6271
@@ -125,3 +134,25 @@ def query_path(
125134 return result .one ()
126135 except NoResultFound :
127136 return
137+
138+
139+ def query_referring (
140+ repository_name : str ,
141+ date : str ,
142+ site : str ,
143+ engine : Engine ,
144+ model : Union [Type [SQLModel ], Referring ],
145+ ) -> Union [SQLModel , Referring , None ]:
146+
147+ with Session (engine ) as session :
148+ result = session .exec (
149+ select (model ).where (
150+ model .repository_name == repository_name ,
151+ model .date == date ,
152+ model .site == site ,
153+ )
154+ )
155+ try :
156+ return result .one ()
157+ except NoResultFound :
158+ return
0 commit comments