Unfortunately, ArangoDB isn't SQL, so this would probably have to expose AQL instead of SQL, or only support a subset. The question is whether SQLAlchemy's architecture is flexible enough for AQL instead of SQL.
It provides a dataframe API that compiles to backend-specific query languages.
t = con.table("users")
t.filter(t.age > 30).group_by("country").count()df = arangodb.to_pandas()db.aql(...).to_polars()
Arrow has become the common interchange format.
I could take over the project. Update the CI, at first.
https://github.com/arangodb/nx-arangodb
It has 3 issues and 2 draft PRs
I could also add better support in the driver:
G = db.graph("social").to_networkx()Very Pythonic.
class User(BaseModel):
name: str
age: int
db.collection("users").insert(User(...))
users = db.collection("users").find(User)This is becoming the standard experience in modern Python libraries.
Note: for these extensions, use optional dependencies in pyproject.toml:
[project.optional-dependencies]
pandas = [
"pandas>=2.0",
]