Commit graph

58 commits

Author SHA1 Message Date
michalpokusa
7ddc32a38e Removed unnecessary indentation in docstring example 2023-04-03 09:25:45 +00:00
michalpokusa
d5817b0abd Refactor for removing the need for saving last match group 2023-04-01 18:36:55 +00:00
michalpokusa
994a7e87c0 Minor changes to repr of _HTTPRoute and _HTTPRoutes 2023-03-20 04:12:02 +00:00
michalpokusa
813c53296b Optimization, reduced number of re.match calls per request 2023-03-20 04:05:14 +00:00
michalpokusa
e2a4761eef Made variable name and docstring more verbose 2023-03-20 03:49:23 +00:00
michalpokusa
cf6903599f Removed old deprecation error 2023-03-20 03:11:05 +00:00
michalpokusa
030390a252 Fix: Prevent creating empty query param 2023-03-19 15:49:21 +00:00
michalpokusa
78cfa0e022 Updated examples and added new ones hat present added functionality 2023-03-19 15:49:21 +00:00
michalpokusa
c95290f390 Replaced route_handlers dict with _HTTPRoutes object in HTTPServer 2023-03-19 15:07:44 +00:00
michalpokusa
8e2967b293 Changed how routes are mapped to handler functions, added _HTTPRoutes
Added option to provide regex-like URLs using <> brackets
2023-03-19 15:02:36 +00:00
foamyguy
874d3ed886
Merge pull request #37 from matemaciek/main
Buffer_size improvements
2023-02-06 15:32:32 -06:00
Maciej Sokołowski
9808f15e2e
Auto-serve index.html for root path 2023-01-20 14:51:10 +01:00
Maciej Sokołowski
4e63771c3b
Expose buffer_size in response.send_file, adjust default to match the one in server 2023-01-20 09:57:19 +01:00
Radomir Dopieralski
20f50ac385 Allow sending raw bytes in the response
We now only encode the body if it has an encode method, which usually
means it's a string. This allows passing bytes, bytearray or memoryview.

I also changed the logic for sending a chunk, that avoids copying the
data unnecessarily. I believe this also fixes a bug, where the size of
unencoded chunk was sent, in characters, instead of encoded size, in
bytes.
2023-01-11 21:54:05 +01:00
michalpokusa
c609a821d5 Changed address to client_address to match CPython's http.server module naming 2023-01-02 17:22:53 +00:00
michalpokusa
c758e519c0 Changed root to root_path in docstrings 2022-12-28 17:44:05 +00:00
michalpokusa
d14a13a1c4 Fix: Content type not setting properly 2022-12-28 05:51:40 +00:00
michalpokusa
f0b61a721f Prevented from calling .send() multiple times and added deprecation error if handler returns HTTPResponse 2022-12-26 01:52:39 +00:00
michalpokusa
4b61d74e1f Fix: Missing chunk length in ending message due to .lstrip() 2022-12-26 01:21:51 +00:00
michalpokusa
c222d09a71 Changed send_chunk_body to send_chunk for unification 2022-12-24 06:26:23 +00:00
michalpokusa
a12d4abbc6 Minor changes to docstrings 2022-12-23 18:57:28 +00:00
michalpokusa
2ca4756bac Changed HTTPResponse to use context managers 2022-12-23 11:57:27 +00:00
michalpokusa
00d3247825 Refactor for unifying the HTTPResponse API 2022-12-23 11:55:57 +00:00
michalpokusa
c1d2f55c46 Merge remote-tracking branch 'origin/main' into test 2022-12-23 11:54:37 +00:00
michalpokusa
aeb95a2932 Encoding body only once when constructing response bytes 2022-12-20 01:02:51 +00:00
michalpokusa
be20bb12e7 Black format changes 2022-12-19 21:15:05 +00:00
michalpokusa
d3adfd824c Fixed wrong content length for multibyte characters 2022-12-19 20:26:24 +00:00
michalpokusa
d547c7fa39 Fixed and extended docstrings 2022-12-19 20:24:31 +00:00
michalpokusa
f1878b3ace Replacing dict with HTTPHeaders in other modules 2022-12-19 20:24:31 +00:00
michalpokusa
aad7010218 Added HTTPHeaders 2022-12-19 19:35:20 +00:00
paul-1
4768bbd20a Add Chunked Encoding to minimize memory usage for
large dynamic html pages.
2022-12-14 20:00:41 -05:00
paul-1
e66cfbfcb5 Add Cache-Control to headers. 2022-12-14 19:58:14 -05:00
Scott Povlot
7249a5ec76
Ensure the headers are not modified 2022-12-02 12:52:21 -05:00
michalpokusa
469f0eb9a0 Implemented processing 'Content-Length' header and limiting received bytes 2022-11-22 04:40:52 +00:00
michalpokusa
0d69a4c101 Fix: First header was skipped and headers were case-sensitive 2022-11-22 04:25:52 +00:00
michalpokusa
4a4cdfdbcd Removed body attribute and added as property 2022-11-22 02:22:05 +00:00
michalpokusa
04805467cb Changed default socket_timeout and made it possible to be a positive number only 2022-11-20 14:17:13 +00:00
michalpokusa
4a1a3a129d Added option to pass status to HTTPResponse as tuple, overwrited eq method on HTTPStatus 2022-11-19 13:45:53 +00:00
michalpokusa
85d1c3cc89 Changed how incoming data is received
Solved problem when data is sent in chunks and is not received in full.
Bypassed ESP32 TCP buffer limit of 2880 bytes.
2022-11-19 02:08:04 +00:00
michalpokusa
eaea81d923 Added HTTPServer.socket_timeout 2022-11-19 02:07:31 +00:00
michalpokusa
0fe7bd7453 Fix: Wrong typing and return type in HTTPResponse._construct_response_bytes 2022-11-18 00:26:50 +00:00
michalpokusa
6585d3f709 Resolving rest of pylint and black errors 2022-11-14 00:34:05 +00:00
michalpokusa
21e20b6041 Preparing code for docs generation, black formatting, updating examples 2022-11-13 23:26:25 +00:00
michalpokusa
41edff8ceb Added CommonHTTPStatus 2022-11-13 22:10:05 +00:00
michalpokusa
132d36c8ca Added passing HTTPResponse headers to file response 2022-11-13 14:56:46 +00:00
michalpokusa
e7f0dea179 Added missing typing 2022-11-13 14:52:34 +00:00
michalpokusa
bc46b67e81 Fixed: Support for query params without value 2022-11-13 14:18:07 +00:00
michalpokusa
6c5e201420 Small refactor of HTTPRequest, added ability to process body bytes that are not utf-8 decodable 2022-11-13 14:03:49 +00:00
michalpokusa
4b3e4f9866 Refactor of MIMEType 2022-11-13 13:19:02 +00:00
michalpokusa
e0a117fedf Removed blocking behavior of socket 2022-11-13 12:16:18 +00:00