{"id":20970,"library":"asyncprawcore","title":"Async PRAW Core","description":"asyncprawcore is the low-level asynchronous communication layer for Async PRAW 7+. It handles HTTP requests, rate limiting, and authentication. Version 3.0.2 supports Python >=3.9. Release cadence is irregular, typically updated alongside Async PRAW.","status":"active","version":"3.0.2","language":"python","source_language":"en","source_url":"https://github.com/praw-dev/asyncprawcore","tags":["reddit","async","http","api"],"install":[{"cmd":"pip install asyncprawcore","lang":"bash","label":"latest"}],"dependencies":[],"imports":[{"note":"Authorizer is a top-level export, not in auth module.","wrong":"from asyncprawcore.auth import Authorizer","symbol":"Authorizer","correct":"from asyncprawcore import Authorizer"},{"note":"Requestor is a top-level export.","wrong":"from asyncprawcore.requestor import Requestor","symbol":"Requestor","correct":"from asyncprawcore import Requestor"},{"note":"rate_limit is not a top-level symbol; use aiosqlite or other mechanisms to track it yourself.","wrong":"from asyncprawcore import rate_limit","symbol":"rate_limit"}],"quickstart":{"code":"import asyncio\nfrom asyncprawcore import Requestor, Authorizer\n\nasync def main():\n    requestor = Requestor(\"testapp/0.1\")\n    authorizer = Authorizer(requestor)\n    print(\"asyncprawcore ready\")\n    await requestor.close()\n\nasyncio.run(main())","lang":"python","description":"Minimal example to instantiate Requestor and Authorizer."},"warnings":[{"fix":"Upgrade Python to >=3.9 and asyncpraw to 7+.","message":"asyncprawcore 3.0.0 drops support for Python 3.8 and requires asyncpraw 7+.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Use async context manager or explicitly close the requestor.","message":"The Requestor session is not automatically closed. Always call `await requestor.close()` to avoid resource leaks.","severity":"gotcha","affected_versions":"all"},{"fix":"Use asyncpraw's rate limit handling or implement custom tracking.","message":"Rate limit information is not exposed via asyncprawcore. You must implement your own rate limiting or rely on asyncpraw's built-in handling.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Ensure you have asyncprawcore >=3.0 and use `from asyncprawcore import Authorizer`.","cause":"Importing from a wrong path or using an outdated version.","error":"AttributeError: module 'asyncprawcore' has no attribute 'Authorizer'"},{"fix":"Requestor only takes a user_agent string. Authentication is handled by Authorizer.","cause":"Attempting to pass authentication parameters to Requestor.","error":"TypeError: __init__() got an unexpected keyword argument 'username'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}