neo4j-python-driver

Neo4j Bolt driver for Python

https://github.com/neo4j/neo4j-python-driver

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

binary-protocol cypher database-driver driver graph-database neo4j neo4j-driver protocol python python3 query-language
Last synced: 6 months ago · JSON representation

Repository

Neo4j Bolt driver for Python

Basic Info
Statistics
  • Stars: 980
  • Watchers: 96
  • Forks: 201
  • Open Issues: 2
  • Releases: 114
Topics
binary-protocol cypher database-driver driver graph-database neo4j neo4j-driver protocol python python3 query-language
Created almost 11 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

README.rst

****************************
Neo4j Bolt Driver for Python
****************************

This repository contains the official Neo4j driver for Python.

Driver upgrades within a major version will never contain breaking API changes.

For version compatibility with Neo4j server, please refer to:
https://neo4j.com/developer/kb/neo4j-supported-versions/

+ Python 3.13 supported.
+ Python 3.12 supported.
+ Python 3.11 supported.
+ Python 3.10 supported.


Installation
============

To install the latest stable version, use:

.. code:: bash

    pip install neo4j


.. TODO: 7.0 - remove this note

.. note::

    ``neo4j-driver`` is the old name for this package. It is now deprecated and
    and will receive no further updates starting with 6.0.0. Make sure to
    install ``neo4j`` as shown above.


Alternative Installation for Better Performance
-----------------------------------------------

You may want to have a look at the available Rust extensions for this driver
for better performance. The Rust extensions are not installed by default. For
more information, see `neo4j-rust-ext`_.

.. _neo4j-rust-ext: https://github.com/neo4j/neo4j-python-driver-rust-ext


Quick Example
=============

.. code-block:: python

    from neo4j import GraphDatabase, RoutingControl


    URI = "neo4j://localhost:7687"
    AUTH = ("neo4j", "password")


    def add_friend(driver, name, friend_name):
        driver.execute_query(
            "MERGE (a:Person {name: $name}) "
            "MERGE (friend:Person {name: $friend_name}) "
            "MERGE (a)-[:KNOWS]->(friend)",
            name=name, friend_name=friend_name, database_="neo4j",
        )


    def print_friends(driver, name):
        records, _, _ = driver.execute_query(
            "MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name "
            "RETURN friend.name ORDER BY friend.name",
            name=name, database_="neo4j", routing_=RoutingControl.READ,
        )
        for record in records:
            print(record["friend.name"])


    with GraphDatabase.driver(URI, auth=AUTH) as driver:
        add_friend(driver, "Arthur", "Guinevere")
        add_friend(driver, "Arthur", "Lancelot")
        add_friend(driver, "Arthur", "Merlin")
        print_friends(driver, "Arthur")


Further Information
===================

* `The Neo4j Operations Manual`_ (docs on how to run a Neo4j server)
* `The Neo4j Python Driver Manual`_ (good introduction to this driver)
* `Python Driver API Documentation`_ (full API documentation for this driver)
* `Neo4j Cypher Cheat Sheet`_ (summary of Cypher syntax - Neo4j's graph query language)
* `Example Project`_ (small web application using this driver)
* `GraphAcademy`_ (interactive, free online trainings for Neo4j)
* `Driver Wiki`_ (includes change logs)
* `Neo4j Migration Guide`_

.. _`The Neo4j Operations Manual`: https://neo4j.com/docs/operations-manual/current/
.. _`The Neo4j Python Driver Manual`: https://neo4j.com/docs/python-manual/current/
.. _`Python Driver API Documentation`: https://neo4j.com/docs/api/python-driver/current/
.. _`Neo4j Cypher Cheat Sheet`: https://neo4j.com/docs/cypher-cheat-sheet/
.. _`Example Project`: https://github.com/neo4j-examples/movies-python-bolt
.. _`GraphAcademy`: https://graphacademy.neo4j.com/categories/python/
.. _`Driver Wiki`: https://github.com/neo4j/neo4j-python-driver/wiki
.. _`Neo4j Migration Guide`: https://neo4j.com/docs/migration-guide/current/

Owner

  • Name: Neo4j
  • Login: neo4j
  • Kind: organization

GitHub Events

Total
  • Fork event: 16
  • Create event: 10
  • Release event: 5
  • Issues event: 21
  • Watch event: 93
  • Delete event: 1
  • Member event: 4
  • Issue comment event: 39
  • Push event: 78
  • Pull request review comment event: 29
  • Gollum event: 20
  • Pull request event: 179
  • Pull request review event: 117
Last Year
  • Fork event: 16
  • Create event: 10
  • Release event: 5
  • Issues event: 21
  • Watch event: 93
  • Delete event: 1
  • Member event: 4
  • Issue comment event: 39
  • Push event: 78
  • Pull request review comment event: 29
  • Gollum event: 20
  • Pull request event: 179
  • Pull request review event: 117

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,386
  • Total Committers: 39
  • Avg Commits per committer: 35.538
  • Development Distribution Score (DDS): 0.551
Past Year
  • Commits: 79
  • Committers: 3
  • Avg Commits per committer: 26.333
  • Development Distribution Score (DDS): 0.025
Top Committers
Name Email Commits
Nigel Small n****l@n****m 622
Robsdedude r****r@n****m 428
Martin m****e@n****m 91
Zhen z****i@n****m 79
RagnarW r****n@n****m 38
Steven R. Baker s****n@s****m 16
Peter Wilhelmsson p****n@n****m 13
Zhen Li z****o 13
Stefano Ottolenghi 1****i 10
Andrew Jefferson a****n@n****m 9
Pontus Melke p****e@g****m 7
Jacob Hansson j****s@g****m 6
Antonio Barcélos a****s@n****m 5
grant lodge 6****s 5
lutovich k****h@n****m 5
Nigel Small n****l@p****m 4
Petra Selmer p****r@n****m 3
Jonas Kalderstam j****s@k****e 3
Praveena G p****r@g****m 3
Stefan Plantikow s****w@g****m 3
Ali Ince a****e@c****k 3
liutec a****i@l****o 2
Mark Needham m****m@g****m 2
Alvaro Alonso 1****n 1
Andrew Jefferson 8****r 1
Estelle Scifo s****a 1
Florent Biville f****e@n****m 1
Jonatan Jäderberg j****g@n****m 1
mariascharin m****n@n****m 1
Gregory Woods G****s@a****o 1
and 9 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 59
  • Total pull requests: 389
  • Average time to close issues: 21 days
  • Average time to close pull requests: 20 days
  • Total issue authors: 56
  • Total pull request authors: 16
  • Average comments per issue: 3.64
  • Average comments per pull request: 0.15
  • Merged pull requests: 333
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 172
  • Average time to close issues: 6 days
  • Average time to close pull requests: 7 days
  • Issue authors: 12
  • Pull request authors: 4
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.11
  • Merged pull requests: 135
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • havardthom (2)
  • khteh (2)
  • FrancescoSaverioZuppichini (1)
  • Starfruit007 (1)
  • mfreeman451 (1)
  • eric-nguyen-cs (1)
  • erikpavl (1)
  • danielostling (1)
  • prrao87 (1)
  • tla (1)
  • duclinhfetel (1)
  • na-wapf (1)
  • anabapy (1)
  • SaiChaitanya13 (1)
  • magicat777 (1)
Pull Request Authors
  • robsdedude (431)
  • stefano-ottolenghi (15)
  • bigmontz (4)
  • dimbleby (2)
  • joshbtn (2)
  • nissan-polyrize (2)
  • robsdetester (1)
  • vkagamlyk (1)
  • AzuObs (1)
  • OliverFarren (1)
  • omar952 (1)
  • Tanguy-Boisset (1)
  • thelonelyvulpes (1)
  • Prychantovskyi (1)
  • thesamesam (1)
Top Labels
Issue Labels
bug (24) feature request (7) question (4)
Pull Request Labels
feature request (2)

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 5,410,811 last-month
  • Total docker downloads: 28,907,583
  • Total dependent packages: 154
    (may contain duplicates)
  • Total dependent repositories: 2,217
    (may contain duplicates)
  • Total versions: 302
  • Total maintainers: 1
pypi.org: neo4j

Neo4j Bolt driver for Python

  • Versions: 101
  • Dependent Packages: 139
  • Dependent Repositories: 1,776
  • Downloads: 5,220,528 Last month
  • Docker Downloads: 28,904,303
Rankings
Dependent packages count: 0.2%
Dependent repos count: 0.3%
Downloads: 0.3%
Docker downloads count: 0.5%
Average: 1.2%
Stargazers count: 2.1%
Forks count: 3.7%
Maintainers (1)
Last synced: 6 months ago
pypi.org: neo4j-driver

Neo4j Bolt driver for Python

  • Versions: 147
  • Dependent Packages: 12
  • Dependent Repositories: 427
  • Downloads: 190,283 Last month
  • Docker Downloads: 3,280
Rankings
Dependent repos count: 0.7%
Downloads: 0.8%
Dependent packages count: 0.8%
Average: 1.7%
Docker downloads count: 2.0%
Stargazers count: 2.1%
Forks count: 3.7%
Maintainers (1)
Last synced: 7 months ago
conda-forge.org: neo4j-python-driver
  • Versions: 37
  • Dependent Packages: 3
  • Dependent Repositories: 7
Rankings
Dependent repos count: 12.8%
Forks count: 13.5%
Average: 14.0%
Stargazers count: 14.2%
Dependent packages count: 15.6%
Last synced: 6 months ago
anaconda.org: neo4j-python-driver

The official Neo4j driver for Python.

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Forks count: 24.5%
Stargazers count: 25.6%
Average: 32.9%
Dependent repos count: 40.5%
Dependent packages count: 41.0%
Last synced: 6 months ago
anaconda.org: neo4j-driver

The official Neo4j driver for Python.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 23.0%
Stargazers count: 23.4%
Average: 35.1%
Dependent packages count: 44.7%
Dependent repos count: 49.2%
Last synced: 6 months ago
anaconda.org: neo4j

The official Neo4j driver for Python.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 44.7%
Average: 47.0%
Dependent repos count: 49.2%
Last synced: 6 months ago

Dependencies

testkit/Dockerfile docker
  • ubuntu 20.04 build
requirements-dev.txt pypi
  • coverage >=5.5 development
  • isort >=5.10.0 development
  • mock >=4.0.3 development
  • mypy >=0.971 development
  • numpy >=1.7.0 development
  • pandas >=1.0.0 development
  • pre-commit >=2.15.0 development
  • pyarrow >=1.0.0 development
  • pytest >=6.2.5 development
  • pytest-asyncio >=0.16.0 development
  • pytest-benchmark >=3.4.1 development
  • pytest-cov >=3.0.0 development
  • pytest-mock >=3.6.1 development
  • setuptools * development
  • sphinx * development
  • teamcity-messages >=1.29 development
  • tomlkit * development
  • tox >=4.0.0 development
  • types-pytz >=2022.1.2 development
  • typing-extensions >=4.3.0 development
  • unasync >=0.5.0 development
requirements.txt pypi
  • pytz *