4f8fc9f2421538c190622949921523e6f1117881
Introduce a dedicated synchronous API client module in src/devranta/api_requests.py that encapsulates request formatting, authentication via username/password login, and voting functionality for devRant interactions. The module provides an Api class with methods for login, URL patching, auth dict injection, and vote submission using the requests library, centralizing input preprocessing and reducing duplication across callers.
devRanta
devRanta is an async devrant client written in and for Python. Authentication is only needed for half of the functionality and thus username and password are optional parameters by constructing the main class of this package (Api).
You can find last packages in tar and wheel format here.
Running
make run
Testing
Tests are only made for methods not requireing authentication. I do not see value in mocking requests.
make test
How to use
Implementation:
from devranta.api import Api
api = Api(username="optional!", password="optional!")
async def list_rants():
async for rant in api.get_rants():
print(rant["user_username"], ":", rant["text"])
Languages
Python
94.5%
Makefile
5.5%