Skip to content

Commit d9bdeee

Browse files
committed
db: Add query_path function to handle Paths data query
1 parent f3b724d commit d9bdeee

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

github_stats_pages/db.py

+30-2
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,15 @@ def migrate_csv(
5050
repository_names = [a.split("/")[2] for a in df["path"].values]
5151
df.insert(1, "repository_name", repository_names)
5252

53-
func = partial(query, engine=engine, model=model)
53+
if model.__name__ == "Paths":
54+
func = partial(query_path, engine=engine, model=model)
55+
query_results = list(
56+
map(func, df["repository_name"], df["date"], df["path"])
57+
)
58+
else:
59+
func = partial(query, engine=engine, model=model)
60+
query_results = list(map(func, df["repository_name"], df["date"]))
5461

55-
query_results = list(map(func, df["repository_name"], df["date"]))
5662
new_df: pd.DataFrame = df.iloc[
5763
[idx for idx, item in enumerate(query_results) if not item]
5864
]
@@ -96,3 +102,25 @@ def query_all(
96102
with Session(engine) as session:
97103
result = session.exec(select(model))
98104
return result.all()
105+
106+
107+
def query_path(
108+
repository_name: str,
109+
date: str,
110+
path: str,
111+
engine: Engine,
112+
model: Union[Type[SQLModel], Clone, Referring, Paths, Traffic],
113+
) -> Union[SQLModel, Clone, Referring, Paths, Traffic, None]:
114+
115+
with Session(engine) as session:
116+
result = session.exec(
117+
select(model).where(
118+
model.repository_name == repository_name,
119+
model.date == date,
120+
model.path == path,
121+
)
122+
)
123+
try:
124+
return result.one()
125+
except NoResultFound:
126+
return

0 commit comments

Comments
 (0)