arxivis-python
Official Python SDK for the Arxivis document store.
Requirements
- Python ≥ 3.9
- httpx (installed automatically)
Installation
pip install arxivis
Or from source:
pip install ./sdk/python
Quick start
Synchronous
from arxivis import ArxivisClient, UploadOptions
with ArxivisClient("http://localhost:8080", "axv_xxxx_yyyy") as client:
# Upload a file
record = client.upload(
open("invoice.pdf", "rb").read(),
"invoice.pdf",
UploadOptions(path="/invoices/2024/", tags=["cliente", "enero"]),
)
print(f"Stored: {record.id} ({record.size} bytes)")
# List files
result = client.list("/invoices/2024/", limit=20)
for f in result.files:
print(f.original_name)
# Full-text search
hits = client.search("factura enero")
for f in hits.files:
print(f.original_name)
# Download
data = client.download(record.id)
open("copy.pdf", "wb").write(data)
# Delete
client.delete(record.id)
Asynchronous
import asyncio
from arxivis import AsyncArxivisClient, UploadOptions
async def main():
async with AsyncArxivisClient("http://localhost:8080", "axv_xxxx_yyyy") as client:
stats = await client.get_stats()
print(f"Total files: {stats.total_files}")
record = await client.upload(
open("doc.pdf", "rb").read(),
"doc.pdf",
UploadOptions(path="/docs/"),
)
print(record.id)
asyncio.run(main())
Upload from disk
record = client.upload_file("/path/to/file.pdf", UploadOptions(path="/docs/"))
API reference
ArxivisClient / AsyncArxivisClient
Both classes expose identical methods; async versions are prefixed with await.
| Method | Description |
|---|---|
get_stats() |
Aggregate storage statistics |
upload(data, filename, opts) |
Upload raw bytes |
upload_file(path, opts) |
Upload from disk |
list(path, limit, offset) |
Paginated file listing |
get(id) |
Fetch file metadata |
download(id) |
Download raw bytes |
delete(id) |
Soft-delete a file |
download_zip(ids) |
Export multiple files as ZIP |
create_folder(path) |
Create a virtual folder |
search(query, limit, offset) |
Full-text search (FTS5) |
semantic_search(query, limit) |
Vector similarity search |
hybrid_search(query, limit) |
FTS5 + semantic fusion |
create_key(name) |
Create an API key |
list_keys() |
List all API keys |
revoke_key(id) |
Revoke an API key |
download_url(id) |
Direct download URL |
preview_url(id) |
Inline preview URL |
path_url(file_path) |
Virtual-path URL |
UploadOptions
from arxivis import UploadOptions
opts = UploadOptions(
path="/invoices/2024/", # virtual folder (default "/")
tags=["cliente", "ene"], # list of tags (default [])
compress=True, # override server default (default None)
encrypt=True, # override server default (default None)
)
ArxivisError
from arxivis import ArxivisError
try:
client.get("nonexistent-id")
except ArxivisError as e:
print(e.status) # HTTP status code
print(e.is_not_found) # True if 404
print(e.is_unauthorized) # True if 401
print(e.is_rate_limited) # True if 429
License
MIT
Release files for arxivis 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arxivis-1.0.0.tar.gz | 6.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arxivis-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.3 kB
Release files / arxivis-1.0.0.tar.gz
| Download URL | arxivis-1.0.0.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61d79e3c3479336ed40361ccc1e24ad728642e924cd38a31a65cc651afcdb355
|
|
BLAKE2b-256 checksum How to use checksums |
7af1d34f4b10c68aa5a8ca4f278484e4eeab35ee296a585e95b6630c92b80252
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 15, 2026.
Transparency logRelease files / arxivis-1.0.0-py3-none-any.whl
| Download URL | arxivis-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fbc3233a7e60c72ade3e692db0438b1bad16995456b23116dcd57664e2d4e281
|
|
BLAKE2b-256 checksum How to use checksums |
9b4706ff26640f7845cd12d91738cc7070de15e007795178822f97b407aa8189
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 15, 2026.
Transparency log