Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wattslab_atlas-1.2.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

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

Hashes for wattslab_atlas-1.2.0.tar.gz
Algorithm Hash digest
SHA256 64d83c9e8563a6475c5adccf46e77ab4baf4982197818d74abc6fc9014318b27
MD5 58fc26d27edd1ab9d16448b2a12868e4
BLAKE2b-256 2f578cbcde7d06a396376b7595a6f3534746e77e04501ea0e2c5361c2ade5257

See more details on using hashes here.

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

Hashes for wattslab_atlas-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9ec1603c6c19f9d70b79d61df1cf9570d04614f0ecc9d069470f2cb9a97d21a
MD5 ed67cc935477f4957de730f3fc274dbe
BLAKE2b-256 96c59c206d25b5b1a92d8656ab07f1e50f5cf07c0cf33f0c13bc49b69771c7ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page