Skip to content

Instantly share code, notes, and snippets.

@theotheo
Created December 29, 2018 20:30
Show Gist options
  • Save theotheo/bb9638512649682522204670a5a6564e to your computer and use it in GitHub Desktop.
Save theotheo/bb9638512649682522204670a5a6564e to your computer and use it in GitHub Desktop.
def extract_ref(sel):
refs = []
for bibl in sel.xpath("//tei:biblStruct[@xml:id]"):
ref = {}
ref['title'] = bibl.xpath('./tei:analytic/tei:title/text()').get()
ref['date'] = bibl.xpath('./tei:monogr/tei:imprint/tei:date/@when').get()
ref['persons'] = []
for pers in bibl.xpath('./tei:monogr/tei:author'):
res = {
'forename': pers.xpath('./*/tei:forename/text()').get(),
'surname': pers.xpath('./*/tei:surname/text()').get()
}
ref['persons'].append(res)
if ref['date']:
ref['year'] = ref['date'].split('-')[0]
ref['id'] = create_citekey(ref)
refs.append(ref)
return refs
- сколько циклов?
- сколько условий?
- сколько здесь создается объектов (объекты в циклах считать 1 раз, в условиях считать, что условие выполнилось)?
- сколько объектов сохраняется (объекты в циклах считать 1 раз, в условиях считать, что условие выполнилось)?
- сколько строк (объектов типа строка) в коде?
- сколько списков создается явно, т.е. не учитывая то, что функции могут возвращать?
- сколько словарей создается явно? по каким переменным к ним можно обратиться/использовать?
- сколько вызывается функций (в том числе методов) в коде?
- перечислите каждую фукнцию единожды (т.е. если какая-то функция использовалась несколько раз в коде, то укажите ее всего 1 раз)
- попробуйте угадать какого типа объекты возвращают эти фукнций?
- сколько блоков кода?
- как называется функция, которая создается этим кодом?
- как бы ее лучше переименовать?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment