summaryrefslogtreecommitdiffhomepage
path: root/src/python/nxt_python.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-12-14Python: Added "prefix" to configuration.OutOfFocus41-0/+2
This patch gives users the option to set a `"prefix"` attribute for Python applications, either at the top level or for specific `"target"`s. If the attribute is present, the value of `"prefix"` must be a string beginning with `"/"`. If the value of the `"prefix"` attribute is longer than 1 character and ends in `"/"`, the trailing `"/"` is stripped. The purpose of the `"prefix"` attribute is to set the `SCRIPT_NAME` context value for WSGI applications and the `root_path` context value for ASGI applications, allowing applications to properly route requests regardless of the path that the server uses to expose the application. The context value is only set if the request's URL path begins with the value of the `"prefix"` attribute. In all other cases, the `SCRIPT_NAME` or `root_path` values are not set. In addition, for WSGI applications, the value of `"prefix"` will be stripped from the beginning of the request's URL path before it is sent to the application. Reviewed-by: Andrei Zeliankou <zelenkov@nginx.com> Reviewed-by: Artem Konev <artem.konev@nginx.com> Signed-off-by: Alejandro Colomar <alx@nginx.com>
2021-10-28Moving request limit control to libunit.Max Romanov1-1/+0
Introducting application graceful stop. For now only used when application process reach request limit value. This closes #585 issue on GitHub.
2021-07-20Python: using default event_loop for main thread for ASGI.Max Romanov1-1/+1
Unit's ASGI implementation creates a new event loop to run an application for each thread since 542b5b8c0647. This may cause unexpected exceptions or strange bugs if asyncio synchronisation primitives are initialised before the application starts (e.g. globally). Although the approach with a new event loop for the main thread is consistent and helps to prepare the application to run in multiple threads, it can be a source of pain for people who just want to run single-threaded ASGI applications in Unit. This is related to #560 issue on GitHub.
2021-05-20Python: support for multiple targets.Oisin Canty1-1/+16
2020-11-05Python: request processing in multiple threads.Max Romanov1-7/+12
This closes #459 issue on GitHub.
2020-11-05Python: introducting macro to simplify minor version check.Max Romanov1-1/+3
2020-10-13Fixed building with Python 3.9.Valentin Bartenev1-0/+1
PyUnicode_GET_SIZE() in deprecated since 3.3 and will be removed in 3.12. In version 3.9 it was explicitly marked by deprecation warning causing compilation error with Unit. PyUnicode_GET_LENGTH() must be used instead.
2020-10-01Python: ASGI server introduced.Max Romanov1-0/+29
This closes #461 issue on GitHub.
2020-09-14Python: split module initialization from WSGI implementation.Max Romanov1-0/+31
This is required for futher ASGI implementation.