예제 #1
0
파일: conftest.py 프로젝트: gridl/aioneo4j
def neo4j(loop):
    neo4j = Neo4j(loop=loop)
    neo4j.auth = ('neo4j', 'neo4jneo4j')

    yield neo4j

    loop.run_until_complete(neo4j.close())
예제 #2
0
def neo4j(loop):
    neo4j = Neo4j(loop=loop)
    neo4j.auth = ('neo4j', 'neo4jneo4j')

    try:
        yield neo4j
    finally:
        loop.run_until_complete(neo4j.close())
 def __init__(self,
              username,
              password,
              host='127.0.0.1:7474',
              request_timeout=10,
              loop=None):
     self.__url = f'http://{username}:{password}@{host}/'
     self.__conn = Neo4j(self.__url)
예제 #4
0
def neo4j(loop, neo4j_params):
    print('http://{host}:{http_port}'.format_map(neo4j_params))
    neo4j = Neo4j(url='http://{host}:{http_port}'.format_map(neo4j_params),
                  auth=neo4j_params['auth'],
                  loop=loop)

    yield neo4j

    loop.run_until_complete(neo4j.close())
예제 #5
0
async def getdata():

    # Shove them into Neo4j
    async with Neo4j(host='127.0.0.1',
                     port=7474,
                     user='******',
                     password='******',
                     database='marriagebottest') as client:
        _, data = await client.cypher(
            'MATCH (n:User {{user_id: 562131796603568158}})')
예제 #6
0
async def main():
    # Read db
    connection = await asyncpg.connect(user='******',
                                       password='******',
                                       database='marriagebot',
                                       port=5432,
                                       host='127.0.0.1')
    marriages = await connection.fetch("SELECT * FROM marriages")
    children = await connection.fetch("SELECT * FROM parents")
    await connection.close()

    # Shove them into Neo4j
    async with Neo4j(host='127.0.0.1',
                     port=7474,
                     user='******',
                     password='******',
                     database='marriagebottest') as client:

        merges = []

        for counter, row in enumerate(marriages, start=1, offset=8300):
            user_identifier = get_identifier()
            partner_identifier = get_identifier()
            merges.append(
                f"MERGE ({user_identifier}:FamilyTreeMember {{user_id: {row['user_id']}}})"
            )
            merges.append(
                f"MERGE ({partner_identifier}:FamilyTreeMember {{user_id: {row['partner_id']}}})"
            )
            if row['timestamp']:
                merges.append(
                    f"MERGE ({user_identifier})-[:MARRIED_TO {{timestamp: {row['timestamp'].timestamp()}, guild_id: {row['guild_id']}}}]->({partner_identifier})-[:MARRIED_TO {{timestamp: {row['timestamp'].timestamp()}, guild_id: {row['guild_id']}}}]->({user_identifier})"
                )
            else:
                merges.append(
                    f"MERGE ({user_identifier})-[:MARRIED_TO {{guild_id: {row['guild_id']}}}]->({partner_identifier})-[:MARRIED_TO {{guild_id: {row['guild_id']}}}]->({user_identifier})"
                )

            if counter % 50 == 0:
                print(f"Running {' '.join(merges)};")
                await client.cypher(' '.join(merges) + ';')
                merges.clear()

        for counter, row in enumerate(children, start=1):
            parent_identifier = get_identifier()
            child_identifier = get_identifier()
            merges.append(
                f"MERGE ({parent_identifier}:FamilyTreeMember {{user_id: {row['parent_id']}}})"
            )
            merges.append(
                f"MERGE ({child_identifier}:FamilyTreeMember {{user_id: {row['child_id']}}})"
            )
            if row['timestamp']:
                merges.append(
                    f"MERGE ({parent_identifier})-[:PARENT_OF {{timestamp: {row['timestamp'].timestamp()}, guild_id: {row['guild_id']}}}]->({child_identifier})-[:CHILD_OF {{timestamp: {row['timestamp'].timestamp()}, guild_id: {row['guild_id']}}}]->({parent_identifier})"
                )
            else:
                merges.append(
                    f"MERGE ({parent_identifier})-[:PARENT_OF {{guild_id: {row['guild_id']}}}]->({child_identifier})-[:CHILD_OF {{guild_id: {row['guild_id']}}}]->({parent_identifier})"
                )

            if counter % 50 == 0:
                print(f"Running {' '.join(merges)};")
                await client.cypher(' '.join(merges) + ';')
                merges.clear()

        if merges:
            print(f"Running {' '.join(merges)};")
            await client.cypher(' '.join(merges) + ';')
            merges.clear()
예제 #7
0
async def ph_query(statement):
    async with Neo4j(ph_graph_url) as conn:
        data = await conn.cypher(statement)
        return hydrate(data)
예제 #8
0
async def query(statement):
    async with Neo4j(graph_url) as conn:
        """simple hydrate a dictionary of data base on py2neo2.0  """
        data = await conn.cypher(statement)
        # logging.info("match %s data:%s", statement, data)
        return hydrate(data)