Как сделать так, чтобы глобальная переменная не выполнялась при развертывании, или как лучше ссылаться на нее? - PullRequest
0 голосов
/ 07 октября 2019

Я использую чашу для приложения с Neo4j. Мой (пример) код выглядит следующим образом:

from neo4j import GraphDatabase

uri = "bolt://<some IP address>:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "<password>"))

def do_something(u):
    with driver.session() as session:
        result = session.run(
            "MATCH (u) "
            "RETURN u",
            u=u)

Как видите, мои 'uri' и 'driver' объявлены на верхнем уровне, что идеально, когда мне нужно сослаться на них для множества различных функций.

Когда я выполняю развертывание чаши, он пытается разрешить переменную «драйвер» в сборке / упаковке, которая вызывает ошибку тайм-аута для базы данных, вероятно потому, что она не всегда работает.

Есть ли лучший способ сделать это?

Я могу написать это так, и он будет развернут, но, кажется, не нужно так много копировать:

 def do_something(u):
    with GraphDatabase.driver(uri, auth=("neo4j", "<password>")).session() as session:
        result = session.run(
           "MATCH (u) "
           "RETURN u",
           u=u)

Спасибо

...