Py-Codeforces is a high-performance and type-safe Python library designed for seamless interaction with Codeforces. It offers both asynchronous and synchronous client handlers, allowing developers to choose the appropriate method based on their requirements.
Key Features:
-
- Synchronous Handler:
SyncMethod
- Asynchronous Handler:
AsyncMethod
- Synchronous Handler:
-
Both client handlers offer the same set of functionalities, ensuring consistency and flexibility in usage.
-
To access user-related attributes, authentication must be enabled by setting the
enable_auth
parameter toTrue
. -
This library is built entirely based on the official Codeforces API Documentation, ensuring reliability and adherence to best practices.
Example Usage:
import asyncio
import pycodeforces
async def main():
api = pycodeforces.AsyncMethod()
users = await api.get_user_info(handles="DmitriyH;Fefer_Ivan")
# use `;` to add multiple parameters.
async for user in users:
print(user.avatar)
asyncio.run(main())
import pycodeforces
async def main():
get = pycodeforces.SyncMethod()
users = get.get_user_info(handles="DmitriyH;Fefer_Ivan")
# use `;` to add multiple parameters.
for user in users:
print(user.avatar)
- Is 100% type safe.
- For customisation in types, a specific module
abc
has been provided within the head module. - Dual modes for specific requirements regarding auth.
-- Can be enabled by passing a
True
toMethod
constructor
- msgspec - for data validation and then serialisation.
- ruff - for linear code formatting and consistency.
Installing as a user:
pip install py-codeforce
Installing as a developer:
pip install py-codeforce[dev]
Want to contribute? Great!
Check the Issues
for getting to know about further updates and solutions to occurring problems.
Maintain the type-checking as strict.
Stack a PR to the production
Thank you for checking out the repo. Give it a star if you've found it worthy.