Python SDK for Atlas API - A research cartography platform
Project description
Atlas Python SDK
Official Python SDK for the Atlas API
Installation
pip install wattslab-atlas
Quick Start
from wattslab_atlas import AtlasClient
# Initialize (auto-saves tokens for reuse)
client = AtlasClient()
# Login - uses saved token if available
client.login("your-email@example.com")
# First time? Validate the magic link from your email
# client.validate_magic_link("token-from-email")
# List features
features = client.list_features()
for f in features:
print(f"{f.feature_name}: {f.feature_description}")
# List papers
papers = client.list_papers()
print(f"You have {papers.total_papers} papers")
Authentication
Atlas uses magic link authentication with automatic token storage:
First Time Setup
client = AtlasClient()
# Request magic link
client.login("user@example.com")
# >>> 📧 Magic link sent to user@example.com
# Check your email and validate
client.validate_magic_link("token-from-email")
# >>> ✓ Authentication successful! Token saved for future use.
Subsequent Logins
# Tokens are automatically reused
client = AtlasClient()
client.login("user@example.com")
# >>> ✓ Using stored credentials for user@example.com
Manual Token Management
# Disable auto-save if needed
client = AtlasClient(auto_save_token=False)
# Clear stored credentials
client.logout()
# >>> 🗑️ Cleared stored credentials.
Usage
Working with Features
from wattslab_atlas.models import FeatureCreate
# List all features
features = client.list_features()
# Create a feature
feature = FeatureCreate(
feature_name="Sample Size",
feature_description="Number of participants",
feature_identifier="sample_size",
feature_type="integer"
)
created = client.create_feature(feature)
# Delete a feature
client.delete_feature(feature_id)
Working with Papers
# List papers with pagination
papers = client.list_papers(page=1, page_size=10)
# Upload a paper
result = client.upload_paper(
project_id="project-123",
file_path="paper.pdf"
)
task_id = result['paper.pdf']
# Check upload status
status = client.check_task_status(task_id)
# Reprocess a paper
client.reprocess_paper(paper_id, project_id)
Managing Projects
# Get project features
features = client.get_project_features(project_id)
# Update project features
client.update_project_features(
project_id,
feature_ids=["feat1", "feat2"]
)
# Remove features from project
client.remove_project_features(
project_id,
feature_ids=["feat1"]
)
# Reprocess all papers in project
result = client.reprocess_project(project_id)
print(f"Reprocessing {result['total_papers']} papers")
Error Handling
from wattslab_atlas import AtlasClient, AuthenticationError, ResourceNotFoundError
client = AtlasClient()
try:
features = client.list_features()
except AuthenticationError:
print("Please login first")
client.login("user@example.com")
except ResourceNotFoundError as e:
print(f"Resource not found: {e}")
Requirements
- Python 3.8+
- Works in Jupyter notebooks
- Works in regular Python scripts
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wattslab_atlas-1.2.0.tar.gz
(17.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wattslab_atlas-1.2.0.tar.gz.
File metadata
- Download URL: wattslab_atlas-1.2.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64d83c9e8563a6475c5adccf46e77ab4baf4982197818d74abc6fc9014318b27
|
|
| MD5 |
58fc26d27edd1ab9d16448b2a12868e4
|
|
| BLAKE2b-256 |
2f578cbcde7d06a396376b7595a6f3534746e77e04501ea0e2c5361c2ade5257
|
File details
Details for the file wattslab_atlas-1.2.0-py3-none-any.whl.
File metadata
- Download URL: wattslab_atlas-1.2.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9ec1603c6c19f9d70b79d61df1cf9570d04614f0ecc9d069470f2cb9a97d21a
|
|
| MD5 |
ed67cc935477f4957de730f3fc274dbe
|
|
| BLAKE2b-256 |
96c59c206d25b5b1a92d8656ab07f1e50f5cf07c0cf33f0c13bc49b69771c7ed
|