本文整理汇总了Python中pupa.scrape.Event.name方法的典型用法代码示例。如果您正苦于以下问题:Python Event.name方法的具体用法?Python Event.name怎么用?Python Event.name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pupa.scrape.Event
的用法示例。
在下文中一共展示了Event.name方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: scrape
# 需要导入模块: from pupa.scrape import Event [as 别名]
# 或者: from pupa.scrape.Event import name [as 别名]
def scrape(self):
method = 'events/?state={}&dtstart=1776-07-04'.format(self.state)
self.events = self.api(method)
seen = set()
for event in self.events:
begin = self._date_parse(event.pop('when'))
end = self._date_parse(event.pop('end'))
all_day = event.pop('all_day',False)
e = Event(name=event.pop('description'),
classification=event.pop('type'),
location_name=event.pop('location'),
timezone=event.pop('timezone'),
start_time=begin,
end_time=end,
all_day=all_day,)
if len(e.name) >= 300:
e.name = e.name[:290]
if len(e.location['name']) >= 100:
e.location['name'] = e.location['name'][:90]
composite_key = (e.name, e.description, e.start_time)
if composite_key in seen:
print("Duplicate found: %s/%s/%s" % (composite_key))
continue
seen.add(composite_key)
for source in event.pop('sources'):
if 'retrieved' in source:
source.pop('retrieved')
e.add_source(**source)
if e.sources == []:
continue
ignore = ['country', 'level', 'state', 'created_at', 'updated_at',
'notes', '+location_url', 'session', 'id', '+chamber',
'+agenda', '+cancelled', '+media_contact', '+contact',
'+details']
# +agenda:
# Agenda on old (very old) OpenStates data is actually a string
# and not any sort of structured data we can use in the items
# schema, and is only present for a handful of events.
for i in ignore:
if i in event:
event.pop(i)
for link in ['+link', 'link']:
if link in event:
e.add_source(url=event.pop(link))
for p in event.pop('participants', []):
type_ = {
"committee": "organization",
"legislator": "person",
None: None,
}[p.get('participant_type')]
if type_ is None:
# Garbage data.
continue
e.add_participant(name=p['participant'],
note=p['type'],
type=type_,)
for b in event.pop('related_bills', []):
item = e.add_agenda_item(
b.pop('description', b.pop('+description', None)))
item.add_bill(bill=b['bill_id'],
note=b.pop('type', b.pop('+type', None)))
seen_documents = set([])
for document in event.pop('documents', []):
if document['url'] in seen_documents:
print("XXX: Buggy data in: Duped Document URL: %s (%s)" % (
document['url'], document['name']
))
continue
seen_documents.add(document['url'])
e.add_document(url=document['url'],
note=document['name'])
assert event == {}, "Unknown fields: %s" % (
", ".join(event.keys())
)
yield e