Something went wrong. Try again.
A decentralized music tracking and discovery platform built on AT Protocol 🎵
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384[project]name = "rocksky"version = "0.12.1"description = "Python SDK for Rocksky — native bindings to the shared Rust core"readme = "README.md"license = { text = "MIT" }authors = [{ name = "Rocksky" }]requires-python = ">=3.10"keywords = ["rocksky", "atproto", "bluesky", "scrobble", "lastfm", "music"]classifiers = [ "Development Status :: 4 - Beta", "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed",]dependencies = []
[project.urls]Homepage = "https://rocksky.app"Documentation = "https://docs.rocksky.app"Repository = "https://github.com/tsirysndr/rocksky"Issues = "https://github.com/tsirysndr/rocksky/issues"
[build-system]# Pinned: newer hatchling emits Metadata-Version 2.5, which twine/PyPI# reject ("'2.5' is not a valid metadata version"). 1.27.x emits 2.4.requires = ["hatchling==1.27.0"]build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]packages = ["src/rocksky"]# Ship the native-core download manifest, but NOT the native lib itself — the# wheel is pure-Python and fetches the ~14 MB lib on first import (see# rocksky/_native.py). A gitignored local dev build must be force-excluded.artifacts = ["src/rocksky/manifest.json"]exclude = [ "src/rocksky/*.so", "src/rocksky/*.dylib", "src/rocksky/*.dll",]
[dependency-groups]dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "respx>=0.21.0", "ruff>=0.5.0", "mypy>=1.10.0",]
[tool.uv]default-groups = ["dev"]
[tool.pytest.ini_options]asyncio_mode = "auto"testpaths = ["tests"]filterwarnings = ["error"]
[tool.ruff]line-length = 100target-version = "py310"# UniFFI codegen output — regenerated wholesale by sdk/scripts/gen-bindings.sh,# so lint fixes there would be overwritten on the next regen.extend-exclude = ["src/rocksky/rocksky_uniffi.py"]
[tool.ruff.lint]select = ["E", "F", "I", "B", "UP", "SIM", "RUF"]ignore = ["E501"]
[tool.mypy]python_version = "3.10"strict = truewarn_return_any = truedisallow_untyped_defs = true