Пример #1
0
def to_neo4j_datetime(dt):
    return _Neo4jDateTimeInput(year=dt.year,
                               month=dt.month,
                               day=dt.day,
                               hour=dt.hour,
                               minute=dt.minute,
                               second=dt.second)
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
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 find(self, text, dt=None):
        op = Operation(Query)
        minutes_filter = _MinutesFilter(None)
        minutes_filter.name_contains = text
        if dt:
            minutes_filter.start_date_time = _Neo4jDateTimeInput(
                year=dt.year, month=dt.month, day=dt.day)
        op.minutes(filter=minutes_filter)

        data = self.client.endpoint(op)
        GraphQLClient.validate_response_or_raise(data)
        minutes = (op + data).minutes
        return minutes
Пример #6
0
def main():
    gql_client = GraphQLClient()
    bill_list = gql_client.get_all_bills(['id'] + BILL_DATE_FIELDS)
    LOGGER.info(f'fetched {len(bill_list)} bills')
    minutes_list = gql_client.get_all_minutes(['id'] + MINUTES_DATE_FIELD)
    LOGGER.info(f'fetched {len(minutes_list)} minutes')
    news_list = gql_client.get_all_news(['id', 'is_timeline'] +
                                        NEWS_DATE_FIELD,
                                        start_date=args.start_date,
                                        end_date=args.end_date)
    LOGGER.info(f'fetched {len(news_list)} news')
    date2bill = build_date_dict(bill_list, BILL_DATE_FIELDS)
    date2minutes = build_date_dict(minutes_list, MINUTES_DATE_FIELD)
    date2news = build_date_dict(news_list, NEWS_DATE_FIELD)

    dates = [
        args.start_date + timedelta(i)
        for i in range((args.end_date - args.start_date).days)
    ]
    for date in tqdm(dates):
        timeline = Timeline(None)
        timeline.date = _Neo4jDateTimeInput(year=date.year,
                                            month=date.month,
                                            day=date.day)
        timeline.id = idgen(timeline)
        gql_client.merge(timeline)

        from_ids = []
        for bill in date2bill[date]:
            from_ids.append(bill.id)
        for minutes in date2minutes[date]:
            from_ids.append(minutes.id)
        for news in date2news[date]:
            if news.is_timeline:
                from_ids.append(news.id)
        gql_client.bulk_link(from_ids, [timeline.id] * len(from_ids))
        LOGGER.info(f'linked {len(from_ids)} events to {date}')
Пример #7
0
 def to_neo4j_datetime(dt):
     return _Neo4jDateTimeInput(year=dt.year,
                                month=dt.month,
                                day=dt.day)
Пример #8
0
 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
Пример #9
0
 def _build_sample_timeline():
     timeline = Timeline(None)
     timeline.date = _Neo4jDateTimeInput(year=2020, month=1, day=1)
     timeline.id = idgen(timeline)
     return timeline
Пример #10
0
def to_neo4j_datetime(dt_str):
    dt = datetime.strptime(dt_str, '%Y-%m-%d').date()
    return _Neo4jDateTimeInput(year=dt.year, month=dt.month, day=dt.day)
Пример #11
0
def test_basegen_minutes():
    minutes = Minutes({'name': '参議院災害対策特別委員会'})
    minutes.start_date_time = _Neo4jDateTimeInput(year=2020, month=1, day=20)
    assert _basegen_minutes(minutes) == _basegen_str('参議院災害対策特別委員会20200120')