Как я могу реорганизовать этот код py2neo v4 для использования временных типов данных neo4j 3.4? - PullRequest
0 голосов
/ 15 ноября 2018

Я застрял, пытаясь добавить свойство date_accepted к узлу загрузки, который представляет научную статью. Ранее я бы просто добавил узел дерева времени. Однако py2neo v4 больше не поддерживает GregorianCalendar (позор). Как бы я преобразовал этот фрагмент кода, чтобы использовать один из новых временных типов данных? Я посмотрел на документы и онлайн, но я еще не достаточно подкован, я боюсь.

from datetime import date, datetime # ??? how to use this...

def getAccepted(year_accepted, month, day):
    with open('/home/pmy/pdf/id.txt') as f:
        id = f.read()
        matcher = NodeMatcher(graph)
        upload = matcher.match("Upload", id = id).first()

        a = year_accepted+month+day
        d = datetime.strptime(a, '%Y%m%d').strftime('%Y-%m-%d') 
        # >>> HOW TO CONVERT d TO A TEMPORAL DATA TYPE HERE? <<<            
        try:
            graph.merge(upload)
            upload['accepted_date']=d
            graph.push(upload)

        except IndexError as e:
            print("type error: " + str(e))
        pass
    return 0

Это работает, но это выдвигает строку даты и времени, тогда как я хочу выдвинуть временную дату не-времени ...

Можно вставить указанную выше переменную даты и времени d во что-то вроде этого запроса ниже, что также работает, но я собираюсь это сделать и подозреваю, что есть лучший способ ...

query='''UNWIND [date({param})] AS date RETURN date'''
result=graph.run(query, param=d).data()
print(result)

, который возвращает

[{'date': neotime.Date(2010, 10, 23)}]

Таким образом, я мог бы извлечь значение и вставить его в график? Это то, что разработчики намеревались? Документы краткие и нацелены на правильных программистов, поэтому IDK

Может

 accepted=result[0].get('date')  # <class 'neotime.Date'>

и, возможно, выдвинуть это на график?

Временные типы py2neo v4 neotime появились совсем недавно, и документации для их адаптации не так много. Отсюда и этот многословный пост. Кто-нибудь с опытом заботы прокомментировать?

...