Handle mismatch..

This commit is contained in:
Dima Gerasimov 2018-10-01 23:48:00 +01:00
parent f4f1777a8c
commit 83b0eb1d6e
2 changed files with 18 additions and 6 deletions

View file

@ -1,11 +1,15 @@
from kython import load_json_file from kython import load_json_file
from typing import Dict, List, Union, Any, NamedTuple from typing import Dict, List, Union, Any, NamedTuple
from datetime import datetime from datetime import datetime
import logging
import os import os
BPATH = "/L/backups/github-events" BPATH = "/L/backups/github-events"
def get_logger():
return logging.getLogger('github-provider')
def iter_files(): def iter_files():
for f in os.listdir(BPATH): for f in os.listdir(BPATH):
if f.endswith('.json'): if f.endswith('.json'):
@ -17,9 +21,9 @@ def iter_events():
class Event(NamedTuple): class Event(NamedTuple):
dt: datetime dt: datetime
name: str summary: str
def _get_name(e) -> str: def _get_summary(e) -> str:
tp = e['type'] tp = e['type']
pl = e['payload'] pl = e['payload']
rname = e['repo']['name'] rname = e['repo']['name']
@ -61,10 +65,11 @@ def _get_name(e) -> str:
): ):
return tp # TODO ??? return tp # TODO ???
else: else:
import ipdb; ipdb.set_trace()
return tp return tp
def get_events(): def get_events():
logger = get_logger()
events: Dict[str, Any] = {} events: Dict[str, Any] = {}
for f in iter_events(): for f in iter_events():
jj = load_json_file(f) jj = load_json_file(f)
@ -73,11 +78,14 @@ def get_events():
prev = events.get(eid, None) prev = events.get(eid, None)
if prev is not None: if prev is not None:
if prev != e: if prev != e:
raise RuntimeError(f"Mismatch in {e}") # a = prev['payload']
# b = e['payload']
# TODO err... push_id has changed??? wtf??
logger.error(f"Mismatch in \n{e}\n vs \n{prev}")
events[eid] = e events[eid] = e
# TODO utc?? localize # TODO utc?? localize
ev = [Event( ev = [Event(
dt=datetime.strptime(d['created_at'], '%Y-%m-%dT%H:%M:%SZ'), dt=datetime.strptime(d['created_at'], '%Y-%m-%dT%H:%M:%SZ'),
name=_get_name(d), summary=_get_summary(d),
) for d in events.values()] ) for d in events.values()]
return sorted(ev, key=lambda e: e.dt) return sorted(ev, key=lambda e: e.dt)

View file

@ -1,4 +1,8 @@
from github import get_events from github import get_events, get_logger
from kython import setup_logzero
logger = get_logger()
setup_logzero(logger)
for e in get_events(): for e in get_events():
print(e) print(e)