[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "pyfragment" version = "2026.3.3" description = "Async Python client for the Fragment.com marketplace API." readme = "README.md" license = { text = "MIT" } requires-python = ">=3.11" authors = [{ name = "bohd4nx" }] keywords = [ "fragment", "telegram", "telegram-stars", "telegram-premium", "ton", "tonapi", "anonymous-numbers", "asyncio", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Framework :: AsyncIO", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed", ] dependencies = ["curl-cffi>=0.14.0", "tonutils>=2.0.1"] [project.optional-dependencies] dev = ["pytest", "pytest-asyncio", "pytest-mock", "mypy", "ruff"] browser = ["rookiepy>=0.5.6"] [project.urls] Repository = "https://github.com/bohd4nx/pyfragment" Documentation = "https://bohd4nx.gitbook.io/pyfragment/" Issues = "https://github.com/bohd4nx/pyfragment/issues" Changelog = "https://github.com/bohd4nx/pyfragment/blob/master/CHANGELOG.md" [tool.hatch.build.targets.wheel] packages = ["pyfragment"] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["[0-9][0-9][0-9]_test_*.py"] asyncio_mode = "auto" addopts = "-v --tb=short" [tool.ruff] line-length = 128 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "W", "I", "UP"] ignore = ["E501"] [tool.ruff.lint.per-file-ignores] "tests/*" = ["E402"] [tool.mypy] python_version = "3.11" strict = true exclude = ["^examples/", "^logs/", "^tests/"] [[tool.mypy.overrides]] module = [ "rookiepy", "httpx", "ton_core", "tonutils", "tonutils.*", ] ignore_missing_imports = true [[tool.mypy.overrides]] # rookiepy = None assignment is valid when the package is installed (type: ModuleType) # but mypy on CI (without rookiepy) sees it as Any and flags the comment as unused. module = "pyfragment.services.cookies.service" warn_unused_ignores = false