- support of Python 3.13
- support of Python 3.10 to 3.12
- removal of left-over traces of support of Python version < 3.6.
- support of Python 3.9
- support of tornado < 6.3
- removal of Python 2 support
- support of Python 3.8
- use html.escape instead of cgi.escape if available
- removed statistics collection logic and default statistics handler (/_system/stats)
- set the Server header to Supercell (was TornadoServer and tornado version before)
- added a flag validate to the consumer decorator supercell.decorators.consumes that is True by default and controls whether the input model is validated
- introduced new command line argument --logformat to customize the logging format, the default logging format was changed to: %(asctime)s [%(levelname)s] %(hostname)s %(name)s: %(message)s
- set the validate flag of the supercell.decorators.consumes decorator to False in case input model validation should not be done before passing the model to the handler
- official Python 3.7 support
- require pytest-cov < 2.6.0 to ensure that travis CI pipeline works
- introduced Python 3.7 compatibility
- return default content-type for wild-card accept type (*.*) instead of raising a 406 HTTP response status
- renamed the async decorator form supercell.api to coroutine because async will be a reserved keyword in Python 3.7
- rename all occurrences of supercell.api.async to supercell.api.coroutine
Add configuration via environment variables. The load precedence of service configurations is:
environment variables > command line arguments > config file
- Requirements update:
- tornado: >=4.2.1,<=5.1.1
- schematics: >= 1.1.1
- Due to a security risk, query values in responding error messages encode html (<,>,&) now
- HTTP response status 406 if no matching provider is found. If the request is not parsable (400) and no matching provider (406) the responded http status is 406.
Add gitlab-ci configuration to the project to run automatic testing The configuration is not part of the released package
Add Makefile to build and test the project in python 2.7, 3.6 and a local version To build and test the project run:
make install test
The Makefile is not part of the released package
- added option to suppress (successful) health check logs in an application
- new load model from arguments helper for request handlers
- provides decorator with new partial option for partial validation
- added support for partial validation in case of JsonProvider
- NOTE: with schematics < 2.0.1, ModelType isn't properly partially validated
- added python3.6 travis integration
- removed python2.6 support
- add patch to http verbs that consume models
- add Content-Type and Consumer for json patches
- extend RequestHandler for async-await syntax compatibility
- allow to log forwarded requests differently if X-Forwarded-For is set
- improved error mechanism to be consistent in error writing
- updated requirements to newer versions
- schematics BaseError handling
- changes necessary for moving truemped->retresco
- Updated requires.io badge
- Removed buildout
- Tornado 4.2.1
- Python 3.4 compatibility
- Add pytest to mocked sys.argv
- Simplify integration testing of services
- Optionally install signal handlers
- Fix: the exception is called NotImplementedError.
- Fix minor typo in @provides docstring
- add graceful shutdown
- allow logging to stdout
- Enable log file name with pid
- General base class for middleware decorators
- Typed query params deal with validation of query params
- add a NoContent (204) http response
- upgrade schematics to 0.9-4 (#7, #8)
- add a text/html provider for rendering html using tornado.template
- Raise HTTPError when not returning a model
- A ValueError thrown by Model initialization returns a 400 Error
- fix for broken IE6 accept header
- allow latin1 encoded urls
- show-config, show-config-name and show-config-file-order
- enable tornado debug mode in the config
- Only add future callbacks if it is a future in the request handler
- Unittests using py.test
- HTTP Expires header support
- Caching configurable when adding the handlers
- Stats collecting using scales
- Fixed logging configuration
- Introduce health checks into supercell
- Add a test for mapping ctypes with encodings
- Only call finish() if the handler did not
- Minor fix for accessing the app in environments
- Add the @s.cache decorator
- Allow binding to a socket via command line param
- Use MediaType.ApplicationJson instead of the plain string
- Add managed objects and their access in handlers
- Use the async decorator instead of gen.coroutine
- Application integration tests
- Initial base service with testing
- Add the initial default environment
- No Python 3.3 because schematics is not compatible
- Request handling code, working provider/consumer
- Base consumer and consumer mapping
- Cleaned up code for provider logic
- Working provider logic and accept negotiation
- Fixing FloatType on Python 3.3
- Initial provider logic
- PyPy testing, dependencies and py2.6 unittest2
- Decorators simplified and working correctly
- Unused import
- Fixing iteritems on dicts in Py 3.3
- Fixing sort comparator issue on Py 3.3
- fix string format in Python 2.6
- Fixing test requirements
- nosetests
- travis-ci