def _build_sample_speech(): minutes = TestGraphQLClient._build_sample_minutes() speech = Speech(None) speech.minutes_id = minutes.id speech.order_in_minutes = 1 speech.id = idgen(speech) return speech
def build_minutes_activity(member_id, minutes_id, dt): activity = Activity(None) activity.member_id = member_id activity.minutes_id = minutes_id activity.datetime = to_neo4j_datetime(dt) activity.id = idgen(activity) return activity
def build_bill_action(bill_id, minutes_id, bill_action_type): bill_action = BillAction(None) bill_action.bill_id = bill_id bill_action.minutes_id = minutes_id bill_action.type = bill_action_type bill_action.id = idgen(bill_action) return bill_action
def _build_sample_bill(): bill = Bill(None) bill.name = '公文書等の管理に関する法律の一部を改正する法律案' bill.bill_number = '第195回衆法第4号' bill.invalid_field = 'このfieldはmerge_billに使われない' bill.submitted_date = _Neo4jDateTimeInput(year=2020, month=1, day=1) bill.id = idgen(bill) return bill
def _build_sample_minutes(): minutes = Minutes(None) minutes.name = '第201回国会衆議院環境委員会第4号' minutes.topics = ["天気について", "カレーライスの件"] minutes.start_date_time = _Neo4jDateTimeInput(year=2020, month=1, day=20) minutes.id = idgen(minutes) return minutes
def test_idgen(): assert idgen('test') == 'str:CY9rzUYh03PK3k6DJie09g' assert idgen('test') == idgen('test') assert idgen('test') != idgen('test2') member = Member({'name': 'test'}) assert idgen(member) == 'Member:CY9rzUYh03PK3k6DJie09g' timeline = Timeline(None) timeline.date = _Neo4jDateTimeInput(year=2020, month=2, day=20) assert idgen(timeline) == 'Timeline:20200220'
def main(fp): gql_client = GraphQLClient() df = pd.read_csv(fp) diets = [] for _, row in df.iterrows(): diet = Diet(None) diet.number = int(row['number']) diet.name = f'第{diet.number}回国会' diet.category = row['category'] diet.start_date = to_neo4j_datetime(row['start_date']) diet.end_date = to_neo4j_datetime(row['end_date']) diet.id = idgen(diet) diets.append(diet) gql_client.bulk_merge(diets) LOGGER.info(f'merged {len(diets)} diets')
def build_member(name): member = Member(None) member.name = name member.id = idgen(member) return member
def build_committee(committee_name, house): committee = Committee(None) committee.name = committee_name committee.house = house committee.id = idgen(committee) return committee
def build_speech(minutes_id, order_in_minutes): speech = Speech(None) speech.minutes_id = minutes_id speech.order_in_minutes = order_in_minutes speech.id = idgen(speech) return speech
def _build_sample_activity(): activity = Activity(None) activity.member_id = 'Member:id' activity.datetime = _Neo4jDateTimeInput(year=2020, month=1, day=1) activity.id = idgen(activity) return activity
def _build_sample_member(): member = Member(None) member.name = 'ネコ・チャン' member.id = idgen(member) return member
def _build_sample_timeline(): timeline = Timeline(None) timeline.date = _Neo4jDateTimeInput(year=2020, month=1, day=1) timeline.id = idgen(timeline) return timeline
def build_gql_url(s3_url): url = Url({'url': s3_url, 'title': '自動文字起こし', 'domain': 'politylink.jp'}) url.id = idgen(url) return url
def _build_sample_news(): news = News(None) news.url = 'https://www.nikkei.com/article/DGXMZO64119940S0A920C2000000/' news.id = idgen(news) return news
def _build_sample_url(): url = Url(None) url.url = 'http://www.shugiin.go.jp/internet/itdb_gian.nsf/html/gian/honbun/g19505004.htm' url.id = idgen(url) return url
def build_url(url, title): domain = urlparse(url).netloc.replace('www.', '') url = Url({'url': url, 'title': title, 'domain': domain}) url.id = idgen(url) return url
def build_diet(number): diet = Diet(None) diet.number = number diet.id = idgen(diet) return diet
def _build_sample_committee(): committee = Committee(None) committee.name = '衆議院環境委員会' committee.topics = ['環境省の所管に属する事項'] committee.id = idgen(committee) return committee
def test_idgen_fail(): with pytest.raises(ValueError): idgen('') with pytest.raises(ValueError): idgen(dict())