Skip to main content

A typed Python wrapper for Qiita API v2

Project description

pyqiita

Qiita api v2 client for Python.

pyqiita provides a small typed wrapper around Qiita API v2. Responses are converted to dataclass models such as User, Item, Comment, and Tag.

Installation

pip install qiita-v2-client

Setup

Get your token from https://qiita.com/settings/tokens/new.

from pyqiita import Qiita

qiita = Qiita(token="your access token")

You can also pass a custom endpoint, for example when using Qiita Team.

qiita = Qiita(
    token="your access token",
    endpoint="https://your-team.qiita.com",
)

Usage

from pyqiita import APIError, Qiita

qiita = Qiita(token="your access token")

me = qiita.authenticated_user.get()
print(me.id, me.items_count)

page = qiita.items.list(query="tag:Python", per_page=10)
for item in page.items:
    print(item.title, item.url)

for item in qiita.items.iter(query="tag:Python", per_page=100):
    print(item.id)

try:
    user = qiita.users.get("qiita")
except APIError as exc:
    print(exc.status_code, exc.type, exc.message)

Resources

The client is organized by API resource.

qiita.items.get(item_id)
qiita.items.create(title="...", body="...", tags=[{"name": "Python"}])
qiita.comments.get(comment_id)
qiita.comments.update(comment_id, body="...")
qiita.tags.get("Python")
qiita.tags.follow("Python")
qiita.users.get("qiita")
qiita.users.follow("user_id")

Available resource clients include:

  • access_tokens
  • authenticated_user
  • comments
  • expanded_templates
  • groups
  • item_actions
  • items
  • posting_campaigns
  • projects
  • reactions
  • tags
  • team_access_tokens
  • team_invitations
  • teams
  • templates
  • users

Development

uv run pytest
uv build

Samples

Example scripts are available in samples.

export QIITA_TOKEN="your access token"
uv run python samples/list_items.py
uv run python samples/authenticated_user.py
uv run python samples/search_users_and_tags.py

samples/create_private_item.py creates an actual private item on Qiita.

License

MIT License. See LICENSE.

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

qiita_v2_client-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

qiita_v2_client-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file qiita_v2_client-0.1.0.tar.gz.

File metadata

  • Download URL: qiita_v2_client-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qiita_v2_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e52d84f0cc3a94dd9a9650313c79d33c99f6f69ae901c0444da9fe17339b34b5
MD5 7e24c97fe981d2fad65071d5c812c721
BLAKE2b-256 ae0099446d7d82890e029eef7bcbe073c2ef8dffde94eb564faa622de601f7d8

See more details on using hashes here.

File details

Details for the file qiita_v2_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: qiita_v2_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qiita_v2_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf97b7b5015b36b837d92656782f39d20fbe81a44178f9e28eba6c3a03c543db
MD5 912e5e7b7425524bf2a38823b9d50e7d
BLAKE2b-256 2adc826f77e77d2eba475501cc64a3f75cb8697b28688ca758288adedf0c775a

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