Skip to content

Commit 168e4e4

Browse files
committed
Update Python bindings documentation and features
- Updated Python version requirements to 3.10–3.14 in installation and distribution docs. - Enhanced data import options to include ArcadeDB JSONL format instead of Neo4j. - Added support for Gremlin queries in the graphs guide, including examples and comparisons with Cypher and SQL. - Improved the server mode documentation to clarify multi-process access benefits. - Removed the troubleshooting guide as it was deemed unnecessary. - Updated Java API coverage analysis to reflect improved coverage metrics. - Adjusted examples and documentation to align with recent changes in the API and features. - Bumped version to 25.11.1.dev0 and updated author information in pyproject.toml.
1 parent ecd1dfb commit 168e4e4

48 files changed

Lines changed: 7455 additions & 501 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/test-python-bindings.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,14 @@ jobs:
107107

108108
# Second job: Build and test on each platform
109109
test:
110-
name: Test arcadedb-embedded (${{ matrix.platform }})
110+
name: Test arcadedb-embedded (${{ matrix.platform }}, Python ${{ matrix.python-version }})
111111
runs-on: ${{ matrix.runs-on }}
112112
needs: download-jars
113113
strategy:
114114
# Don't cancel other matrix jobs if one fails
115115
fail-fast: false
116116
matrix:
117+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
117118
include:
118119
- platform: linux/amd64
119120
runs-on: ubuntu-24.04
@@ -135,7 +136,7 @@ jobs:
135136
- name: Set up Python
136137
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
137138
with:
138-
python-version: '3.11'
139+
python-version: ${{ matrix.python-version }}
139140

140141
- name: Download ArcadeDB JARs artifact
141142
# Skip for Linux: Docker build downloads JARs from ArcadeDB image directly
@@ -190,7 +191,7 @@ jobs:
190191
- name: Set up Python for host testing
191192
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
192193
with:
193-
python-version: '3.11'
194+
python-version: ${{ matrix.python-version }}
194195

195196
# Note: Java is NOT required for arcadedb-embedded (JRE is bundled)
196197
# This package works without any external Java installation!

.github/workflows/test-python-examples.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ jobs:
148148
- name: Set up Python
149149
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
150150
with:
151-
python-version: '3.11'
151+
python-version: '3.12'
152152

153153
- name: Install Python build dependencies
154154
shell: bash

bindings/python/Dockerfile.build

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,12 @@ RUN echo "🔨 Building minimal JRE for platform: ${TARGET_PLATFORM}" && \
8282

8383
# Stage 3: Build Python wheel
8484

85-
FROM python:3.11-slim AS python-builder
85+
FROM python:3.12-slim AS python-builder
8686

87-
# Install system dependencies (JDK needed for JPype at build/test time)
87+
# Install system dependencies (JDK needed for JPype at build/test time, build-essential for jpype1 compilation)
8888
RUN apt-get update && apt-get install -y \
8989
openjdk-21-jdk \
90+
build-essential \
9091
&& rm -rf /var/lib/apt/lists/*
9192

9293
# Set JAVA_HOME
@@ -160,7 +161,7 @@ FROM python-builder AS export
160161
# The dist directory is preserved from python-builder stage
161162

162163
# Stage 5: Test the built wheel
163-
FROM python:3.11-slim AS tester
164+
FROM python:3.12-slim AS tester
164165

165166
# Install Java runtime for JPype
166167
RUN apt-get update && apt-get install -y \

bindings/python/README.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pip install arcadedb-embedded
3030

3131
**Requirements:**
3232

33-
- **Python 3.8+ only** - No Java installation required!
33+
- **Python 3.10–3.14** (packaged/tested on CPython 3.11) - No Java installation required!
3434
- **Supported Platforms**: Prebuilt wheels for **6 platforms**
3535
- Linux: x86_64, ARM64
3636
- macOS: Intel (x86_64), Apple Silicon (ARM64)
@@ -76,7 +76,7 @@ with arcadedb.create_database("/tmp/mydb") as db:
7676
-**High performance**: Direct JVM integration via JPype
7777
- 🔒 **ACID transactions**: Full transaction support
7878
- 🎯 **Vector storage**: Store and query vector embeddings with JVector indexing
79-
- 📥 **Data import**: Built-in CSV, JSON, Neo4j importers
79+
- 📥 **Data import**: Built-in CSV, XML, ArcadeDB JSONL import
8080

8181
---
8282

@@ -207,10 +207,16 @@ arcadedb_embedded/
207207
├── server.py # ArcadeDBServer for HTTP mode
208208
├── results.py # ResultSet and Result wrappers
209209
├── transactions.py # TransactionContext manager
210+
├── schema.py # Schema management API
210211
├── vector.py # Vector search and JVector indexing
211-
├── importer.py # Data import (CSV, JSON, Neo4j)
212+
├── importer.py # Data import (CSV, XML)
213+
├── exporter.py # Data export (JSONL, GraphML, GraphSON, CSV)
214+
├── batch.py # Batch operations context
215+
├── async_executor.py # Asynchronous query execution
216+
├── type_conversion.py # Python-Java type conversion utilities
212217
├── exceptions.py # ArcadeDBError exception
213-
└── jvm.py # JVM lifecycle management
218+
├── jvm.py # JVM lifecycle management
219+
└── _version.py # Package version info
214220
```
215221

216222
**[Architecture details](https://humemai.github.io/arcadedb-embedded-python/latest/development/architecture/)**

bindings/python/build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,11 @@ echo ""
174174

175175
if [[ "$USE_NATIVE" == true ]]; then
176176
# Native build
177-
echo -e "${YELLOW} Building natively on ${PLATFORM}...${NC}"
177+
echo -e "${YELLOW} Building natively on ${PLATFORM}...${NC}"
178178
"$SCRIPT_DIR/build-native.sh" "$PLATFORM" "$PACKAGE_NAME" "$DESCRIPTION" "$DOCKER_TAG" "${BUILD_VERSION:-}"
179179
else
180180
# Docker build
181-
echo -e "${YELLOW}🐳 Building in Docker...${NC}"
181+
echo -e "${YELLOW} 🐳 Building in Docker...${NC}"
182182

183183
# Check if BUILD_VERSION is set (from CI/CD)
184184
BUILD_VERSION_ARG=""

0 commit comments

Comments
 (0)