aioRequest
Provides asynchronous user-friendly micro HTTP client with nothing but clean objects.
Basically, it is a wrapper over requests python library with async/await approach. Represents asynchronous version of urequest package.
Tools
Production
Development
Usage
Installation
pip install aiorequest
✨ 🍰 ✨
Quick start
>>> import asyncio
>>> from typing import Tuple
>>> from aiorequest.sessions import Session, HttpSession
>>> from aiorequest.responses import HTTPStatus, Response, JsonType
>>> from aiorequest.urls import HttpUrl
>>>
>>>
>>> async def aioresponse() -> Tuple[HTTPStatus, JsonType]:
... session: Session
... async with HttpSession() as session:
... response: Response = await session.get(
... HttpUrl(host="xkcd.com", path="info.0.json")
... )
... return await response.status(), await response.as_json()
...
...
>>>
>>> asyncio.run(aioresponse())
(
<HTTPStatus.OK: 200>,
{
"month": "3",
"num": 2284,
"link": "",
"year": "2020",
"news": "",
"safe_title": "Sabotage",
"transcript": "",
"img": "https://imgs.xkcd.com/comics/sabotage.png",
"title": "Sabotage",
"day": "23",
}
)
Source code
git clone git@github.com:aiopymake/aiorequest.git
python setup.py install
Or using specific release:
pip install git+https://github.com/aiopymake/aiorequest@0.0.1
Local debug
git clone git@github.com:aiopymake/aiorequest.git
>>> import aiorequest
>>> aiorequest.__doc__
'Package provides asynchronous user-friendly HTTP client with clean objects.'
Development notes
Testing
Generally, pytest
tool is used to organize testing procedure.
Please follow next command to run unittests:
pytest
CI
Project has Travis CI integration using .travis.yml file thus code analysis (black
, pylint
, flake8
, mypy
, pydocstyle
and interrogate
) and unittests (pytest
) will be run automatically after every made change to the repository.
To be able to run code analysis, please execute command below:
./analyse-source-code.sh
The package is also covered with the installation unit tests based on bats framework. Please run the following command to launch package unit tests:
bats --pretty test-package.bats
PACKAGE_NAME
andPACKAGE_VERSION
environment variables should be specified prelimirary.
Release notes
Please check changelog file to get more details about actual versions and it’s release notes.
Meta
Author – Volodymyr Yahello. Please check AUTHORS file for all contributors.
Distributed under the MIT
license. See LICENSE for more information.
You can reach out me at:
- vyahello@gmail.com
- https://twitter.com/vyahello
- https://www.linkedin.com/in/volodymyr-yahello-821746127
Contributing
I would highly appreciate any contribution and support. If you are interested to add your ideas into project please follow next simple steps:
- Clone the repository
- Configure
git
for the first time after cloning with yourname
andemail
pip install -r requirements.txt
to install all project dependenciespip install -r requirements-dev.txt
to install all development project dependencies- Create your feature branch (git checkout -b feature/fooBar)
- Commit your changes (git commit -am ‘Add some fooBar’)
- Push to the branch (git push origin feature/fooBar)
- Create a new Pull Request
What’s next
All recent activities and ideas are described at project issues page. If you have ideas you want to change/implement please do not hesitate and create an issue.