Changelog#
3.2.0 (2023-05-29)#
The latest _rororo_ version allows to install library alongside latest version
of attrs & email-validator and require latest environ-config
version. On top of that rororo==3.2.0 ensure that web.HTTPRedirection
errors will not handled by error middleware and will result in proper redirects.
Features:
Ensure support of
environ-config@^23.2.0(#360)
Fixes:
(settings) Ensure
setup_settings_from_environfunction works well (#361)[#191] (openapi) Do not handle redirection errors (#362)
Other:
Monthly maintenance (Jan 2023) (#314)
Bump dev Python version to 3.11.2 (#326)
(deps) bump actions/checkout from 3.2.0 to 3.3.0 (#323)
(deps-dev) bump redis from 4.5.1 to 4.5.3 (#328)
(deps-dev) bump types-redis from 4.5.1.3 to 4.5.3.0 (#329)
(deps) bump requests from 2.28.2 to 2.31.0 (#353)
(deps) bump attrs from 22.2.0 to 23.1.0 (#349)
Bump dev Python version to 3.11.3 (#359)
(deps) bump actions/checkout from 3.3.0 to 3.5.2 (#352)
(deps) bump email-validator from 1.3.1 to 2.0.0.post2 (#346)
(deps-dev) bump mypy from 1.0.1 to 1.3.0 (#357)
(deps-dev) bump redis from 4.5.3 to 4.5.4 (#330)
(deps-dev) bump pytest from 7.2.1 to 7.3.1 (#347)
(deps-dev) bump pytest-asyncio from 0.20.3 to 0.21.0 (#336)
(deps-dev) bump types-pyyaml from 6.0.12.8 to 6.0.12.10 (#358)
(deps-dev) bump types-redis from 4.5.3.0 to 4.5.5.2 (#356)
(deps-dev) bump furo from 2022.12.7 to 2023.3.27 (#332)
(deps-dev) bump sphinx-copybutton from 0.5.1 to 0.5.2 (#344)
(deps-dev) bump sphinx-autodoc-typehints from 1.22 to 1.23.0 (#345)
[#159] (openapi) Cover oneOf schema from Verifiable Credential API with test (#363)
3.1.0 (2022-12-26)#
Features:
Set aiohttp 3.8.1 as minimum supported version (#304)
Fixes:
[#308] Depend on specific openapi-spec-validator version (#309)
Other:
Update dev Python version to 3.11.1 (#306)
(deps) bump certifi from 2022.9.24 to 2022.12.7 (#305)
Sync common project files (#307)
Update CI workflows & composite actions (#310)
3.0.1 (2022-10-23)#
This release ensures dependency on openapi-spec-validator<=0.4.0, so now it is safe to
run poetry update in projects, which depends on rororo==3.0.1. Previously,
poetry update have been installed latest openapi-spec-validator==0.5.1 and as side-effect
introduce ImportError: cannot import name 'default_handlers' from 'openapi_spec_validator'
to such project :(
Other:
Sync common project files (#291)
Update Python dev version to 3.10.8 (#293)
Enforce mypy no-implicit-optional setting (#294)
Introduce no-optional pre-commit hook (#295)
3.0.0 (2022-08-09)#
rororo==3.0.0 release drops Python 3.6 support, as well as ensures that latest versions
of dependent libraries, such as attrs, aiohttp-middlewares, and environ-config
can be installed alongside rororo.
Features:
BREAKING CHANGE: Drop Python 3.6 support (#276)
Other:
(deps) bump isodate from 0.6.0 to 0.6.1 (#222)
Fix example code in README (#224)
(deps-dev) bump mypy from 0.910 to 0.920 (#223)
(deps) bump attrs from 21.2.0 to 21.4.0 (#227)
(deps-dev) bump aioredis from 2.0.0 to 2.0.1 (#225)
(deps-dev) bump mypy from 0.920 to 0.930 (#226)
(deps) bump peter-evans/create-pull-request from 3.11.0 to 3.12.0 (#228)
Update Python dev version to 3.10.1 (#229)
Fix operations typo (#230)
Fix more typos in README and code (#232)
(deps) bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 (#238)
Fix links in documentation (#234)
(deps) bump peter-evans/create-pull-request from 3.12.0 to 3.12.1 (#237)
(deps-dev) bump mypy from 0.930 to 0.931 (#235)
(deps-dev) bump types-pyyaml from 6.0.1 to 6.0.4 (#236)
(deps) bump pre-commit/action from 2.0.3 to 3.0.0 (#265)
(deps) bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 (#271)
(deps) bump tibdex/github-app-token from 1.5 to 1.6 (#272)
(deps) bump peter-evans/create-pull-request from 3.12.1 to 4.0.4 (#266)
Sync common project files (#279)
2.4.1 (2021-12-16)#
Maintenance release, which in same time ensures that rororo installs
typing-extensions only for Python <3.8. Thanks @q0w
for contribution.
Other:
(deps) bump actions/checkout from 2.3.5 to 2.4.0 (#218)
(deps) bump actions/setup-python from 2.2.2 to 2.3.1 (#216)
(deps) bump actions/cache from 2.1.6 to 2.1.7 (#214)
(deps) bump tibdex/github-app-token from 1.4 to 1.5 (#215)
(deps) bump peter-evans/create-pull-request from 3.10.1 to 3.11.0 (#217)
(deps) bump aiohttp from 3.8.0 to 3.8.1 (#211)
(deps) bump aiohttp-middlewares from 1.2.0 to 1.2.1 (#209)
(deps) bump typing-extensions from 3.10.0.2 to 4.0.1 (#213)
(deps-dev) bump coverage from 6.1.1 to 6.2 (#210)
(deps-dev) bump types-pyyaml from 6.0.0 to 6.0.1 (#212)
Fix link (#219)
Install typing_extensions only for python<3.8 (#220)
2.4.0 (2021-11-06)#
Features:
Ensure support of aiohttp 3.8.0 version (#205)
Other:
(deps) bump actions/checkout from 2.3.4 to 2.3.5 (#204)
Switch to Furo theme (#206)
Tweak documentation (#207)
2.3.0 (2021-10-31)#
Use Python 3.10 as dev version, as well as update minimum supported
openapi-core version to 0.13.4.
Also loose a bit pyrsistent & PyYAML requirements to allow dependent
projects use latest versions of given libraries.
Other:
(deps) bump actions/cache from 2.1.5 to 2.1.6 (#185)
(deps) bump peter-evans/create-pull-request from 3.8.2 to 3.10.0 (#186)
(deps) bump environ-config from 21.1.0 to 21.2.0 (#183)
(deps-dev) bump pytest-cov from 2.11.1 to 2.12.1 (#187)
(deps) bump email-validator from 1.1.2 to 1.1.3 (#190)
(deps) bump pyrsistent from 0.17.3 to 0.18.0 (#189)
(deps) bump urllib3 from 1.26.4 to 1.26.5 in /docs (#188)
(deps-dev) bump aioredis from 1.3.1 to 2.0.0 (#192)
(deps) bump tibdex/github-app-token from 1.3 to 1.4 (#197)
Use Python 3.10 as dev version (#194)
(deps) bump peter-evans/create-pull-request from 3.10.0 to 3.10.1 (#198)
(deps) bump PyYAML from 5.4.1 to 6.0 (#201)
2.2.2 (2021-05-10)#
Fixes:
Ensure that Operation ID is an optional value (#178)
Other:
Depend on typing-extensions (#179)
2.2.1 (2021-05-09)#
This release allows to install latest versions of,
attrsenviron-config
As well as depend on only supported version of openapi-core library,
which ensures that poetry update do not install unsupported version
of openapi-core.
Other:
(deps) bump pyyaml from 5.3.1 to 5.4.1 (#147)
(deps-dev) bump coverage from 5.3.1 to 5.4 (#145)
(deps-dev) bump pytest from 6.2.1 to 6.2.2 (#146)
(deps-dev) bump pytest-cov from 2.10.1 to 2.11.1 (#144)
(deps) bump peter-evans/create-pull-request from v3.6.0 to v3.8.0 (#148)
Bump Python dev version to 3.9.2 (#160)
(deps) bump actions/cache from v2.1.3 to v2.1.4 (#158)
(deps) bump pypa/gh-action-pypi-publish from v1.4.1 to v1.4.2 (#157)
(deps) bump peter-evans/create-pull-request from v3.8.0 to v3.8.2 (#156)
(deps) bump actions/setup-python from v2.2.1 to v2.2.2 (#165)
(deps) bump actions/cache from v2.1.4 to v2.1.5 (#166)
(deps) bump pre-commit/action from v2.0.0 to v2.0.3 (#167)
(deps) bump environ-config from 20.1.0 to 21.1.0 (#164)
(deps-dev) bump pytest from 6.2.2 to 6.2.3 (#163)
[#149] Pin supported openapi-core version (#170)
Apply isort pre-commit hook (#174)
(deps) bump attrs from 20.3.0 to 21.2.0 (#171)
(deps-dev) bump pytest from 6.2.3 to 6.2.4 (#173)
Update docs requirements (#175)
2.2.0 (2021-01-05)#
Features:
[#133] (openapi) Allow to pass kwargs to validate email func (#135)
[#100, #132] (openapi) Improve validation errors (#142)
Other:
Update dev Python version to 3.9.1 (#136)
(deps-dev) bump pytest from 6.1.2 to 6.2.1 (#131)
(deps-dev) bump coverage from 5.3 to 5.3.1 (#130)
(deps) bump actions/checkout from v2.3.3 to v2.3.4 (#141)
(deps) bump actions/cache from v2.1.2 to v2.1.3 (#138)
(deps) bump actions/setup-python from v2.1.4 to v2.2.1 (#139)
(deps) bump peter-evans/create-pull-request from v3.4.1 to v3.6.0 (#140)
(deps) bump tibdex/github-app-token from v1.1.0 to v1.3 (#137)
2.1.3 (2020-12-09)#
Fixes:
(openapi) Allow to use parameters within path object (#128)
Other:
Several updates to pre-commit hooks (#122)
(deps) bump aiohttp from 3.7.2 to 3.7.3 (#125)
(deps) bump attrs from 20.2.0 to 20.3.0 (#126)
(deps) bump email-validator from 1.1.1 to 1.1.2 (#124)
2.1.2 (2020-11-01)#
Fixes:
Proper handling of operations with empty security list (#120)
Other:
Improve examples & tests structure (#118)
(deps) bump aiohttp from 3.6.3 to 3.7.2 (#119)
2.1.1 (2020-10-29)#
Fixes:
(openapi) Proper handling of operations with empty security list (#115)
Other:
Do not enforce commitizen check at CI (#113)
2.1.0 (2020-10-25)#
Features:
Ensure Python 3.9 support (#109)
Other:
(deps) bump attrs from 20.1.0 to 20.2.0 (#108)
(deps-dev) bump pytest from 6.0.1 to 6.1.0 (#107)
(deps-dev) bump coverage from 5.2.1 to 5.3 (#106)
(deps) bump pyrsistent from 0.16.0 to 0.17.3 (#105)
Integrate badabump for release needs (#110)
2.0.2 (2020-09-04)#
Features:
Require
attrs>=19.1,<21to allow useattrs==20.1.0in dependent projects
Other:
Massive infrastrucutre update: move code to
src/directory, use latestpytestfor tests, betterMakefiletargets, etc
2.0.1 (2020-07-21)#
Features:
Ensure rororo to work properly with
openapi-core==0.13.4
2.0.0 (2020-06-29)#
Final 2.0.0 release, which completes reimplementing rororo as library for implementing aiohttp.web OpenAPI 3 server applications with schema first approach.
Quickstart:
rororo relies on valid OpenAPI 3 schema (both JSON & YAML formats supported).
Example below illustrates using openapi.yaml schema file, stored next to
app module,
from pathlib import Path
from typing import List
from aiohttp import web
from rororo import setup_openapi
from .views import operations
def create_app(argv: List[str] = None) -> web.Application:
return setup_openapi(
web.Application(),
Path(__file__).parent / "openapi.yaml",
operations,
)
Then, you need to register operation handlers in views module. Example
below shows registering handler for operationId hello_world,
from aiohttp import web
from rororo import OperationTableDef
@operations.register
async def hello_world(request: web.Request) -> web.Response:
return web.json_response({"data": "Hello, world!"})
Documentation provides more information on implementing aiohttp.web OpenAPI 3 server applications with schema first approach using rororo.
2.0.0rc3 (2020-06-15)#
Features:
Allow passing
schemaandspeckeyword args tosetup_openapi(#84)
Fixes:
Handle all errors on creating OpenAPI spec from schema (#74)
Allow nullable arrays & objects in request/response data (#85)
Other:
2.0.0rc2 (2020-05-15)#
Fixes:
When possible pass request body as string to
OpenAPIRequest, not as bytes
Other:
Update pre-commit hooks, integrate
flake8-variable-namescheck
2.0.0rc1 (2020-05-04)#
Performance:
Use
yaml.CSafeLoaderinstead ofyaml.SafeLoaderwhen possible. Allow to supply schema loader function to use custom loader, for exampleujson.loadsinstead ofjson.loadsUse
yaml.CSadeDumperinstead ofyaml.Dumperwhen possible on dumping OpenAPI schema when it is requested in YAML formatAllow to cache create schema and spec call, usable for speeding up tests
Other:
Use
sphinx-autobuildfor building docs at local env
2.0.0rc0 (2020-04-27)#
Breaking Changes:
Use environ-config for settings needs, instead of providing extra sugar to attrs
Features:
Upgrade to latest
openapi-core==0.13.3Support class based views
Deprecate old approach of validating OpenAPI requests via
openapi_operationdecorator in favor ofopenapi_middleware. Improvements to error middleware, validate error responses against OpenAPI schema as wellValid request data is freezed with pyrsistent.freeze call. Parameters and security data now wrapped into pyrsistent.pmap for immutability needs
Use email-validator to support
format: "email"Ensure TZ aware date times works as expected
Ensure support of optional security schemes
Other:
Provide
Todo-Backendexample to illustrate how to use class based viewsUpdate pre-commit hooks, integrate
blacken-docs&commitizenpre-commit hooksSpeed up CI exec time, by not waiting on build to start test job
Add more badges to README
2.0.0b3 (2020-01-27)#
Features:
Provide human readable security, request & response validation errors
Support free form objects in request body
Allow to enable CORS / error middleware on setting up OpenAPI support for
aiohttp.webapplicationProvide
BaseSettingsandenv_factoryhelpers to work with settings withinaiohttp.webapplications. Cover how to work with settings at docs as well
Other:
Stricter
mypyconfig to ensure@operations.registeris a typed decorator
2.0.0b2 (2019-12-19)#
Other:
setup_openapifunction returnsweb.Applicaitoninstead ofNoneProvide
ACCESS_LOG_FORMATforaiohttpapplications
2.0.0b1 (2019-11-20)#
Fixes:
Fix type annotation for
add_resource_contextcontext manager
2.0.0b0 (2019-11-15)#
Features:
Ensure Python 3.8 support. Move
2.0.0release to beta phase
2.0.0a4 (2019-10-22)#
Features:
Parse API Key & HTTP security data for OpenAPI operation
Allow to remove root handlers on setting up logging config
Other:
Cover
rororo.openapiwith non-machine docsProvide another example on using OpenAPI schema inside aiohttp.web application
2.0.0a3 (2019-10-09)#
Features:
Support
type: arrayrequest bodies as wellAllow to validate responses against OpenAPI schema
Other:
Do not directly depend on
jsonschema
2.0.0a2 (2019-10-08)#
Fixes:
Depend on
aiohttp>=3.5,<4.0
2.0.0a1 (2019-10-08)#
Features:
Add
rororo.get_openapi_contextshortcut
Other:
Update API docs for
rororo.openapipublic functions & classes
2.0.0a0 (2019-10-08)#
Breaking Changes:
Complete library rewrite
Instead of targeting any Python web framework, make
rororosupport onlyaiohttp.webapplicationsBuild the library around the OpenAPI 3 schema support for
aiohttp.webapplicationsAs result entirely remove
rororo.schemaspackage from the project
1.2.1 (2019-07-08)#
Publish 1.2.1 release
1.2.1a1 (2019-07-03)#
chore: Introduce
pre-commithookschore: Use
pytestfor testschore: Use
blackfor code formatting
1.2.1a0 (2019-02-24)#
fix: Do not yet depend on
jsonschema>=3.0.0chore: Move
tox.inicontent intopyproject.tomlchore: Only use poetry for install project deps for tests & lint
1.2.0 (2018-11-01)#
Publish 1.2.0 release
1.2.0a1 (2018-10-22)#
Make all project packages PEP-561 compatible
1.2.0a0 (2018-10-18)#
Python 3.7 support
Ensure that
rororoworks well with latestaiohttpAllow setting
levelon updating logging dict to use Sentry handlerAdd new
rororo.timedeltamodule with utilities to work with timedeltasAdd new
rororo.utilsmoduleMove type annotations to
rororo.annotationsmodule
1.1.1 (2017-10-09)#
Do not attempt to convert empty list to dict for request/response data
1.1.0 (2017-10-09)#
Allow to supply non-dicts in request/response data
1.0.0 (2017-05-14)#
Publish 1.0 release, even proper docs are not ready yet
1.0.0b1 (2017-05-13)#
Annotate all code in
rororoUse mypy on linting source code
Require Python 3.5 or higher due to changes above
1.0.0a5 (2016-10-23)#
Support validating schema via fastjsonschema or any other validator
1.0.0a4 (2016-09-01)#
Pass
kwargstoSentryHandleron configuring Sentry logging
1.0.0a3 (2016-08-08)#
Add
rororo.aiomodule with:add_resource_contextcontext manageris_xhr_request,parse_aioredis_urlutility functions
Update flake8 config & bump aiohttp version for tests
Added ChangeLog & modified GitHub Releases Page
1.0.0a2 (2015-12-18)#
Adds ability to supply custom error class while making manual errors by
schema.make_errormethodDefault validator class preset default values from schema to instance for validation
Several improvements to test process
1.0.0a1 (2015-11-26)#
New beginning for rororo project. Now it is a bunch of helper methods instead of yet another web-framework.