Skip to main content

Mokkari

What is it?

Mokkari is a python wrapper for the Metron Comic Book Database API.

Installation

pip install mokkari

Example Usage

import mokkari

# Your own config file to keep your credentials secret
from config import username, password

m = mokkari.api(username, password)

# Get all Marvel comics for the week of 2021-06-07
this_week = m.issues_list({"store_date_range_after": "2021-06-07", "store_date_range_before": "2021-06-13", "publisher_name": "marvel"})

# Print the results
for i in this_week:
print(f"{i.id} {i.issue_name}")

# Retrieve the detail for an individual issue
asm_68 = m.issue(31660)

# Print the issue Description
print(asm_68.desc)

Rate Limiting

The API has rate limits of 20 requests per minute and 5,000 requests per day. Mokkari automatically enforces these limits locally to prevent unnecessary API calls. When a rate limit is exceeded, a RateLimitError is raised.

Handling Rate Limits

The RateLimitError includes a retry_after attribute that tells you exactly how many seconds to wait before making another request:

import mokkari
from mokkari.exceptions import RateLimitError
import time

m = mokkari.api(username, password)

try:
issue = m.issue(31660)
except RateLimitError as e:
# Display user-friendly message
print(f"Rate limited: {e}")

# Programmatically wait for the exact time needed
print(f"Waiting {e.retry_after} seconds...")
time.sleep(e.retry_after)

# Retry the request
issue = m.issue(31660)

Documentation

Can be found at ReadTheDocs.

Code

The projects code can be found at GitHub.

Bugs / Feature Requests

Any bugs or feature requests can be filed here.