tina4-python 0.2.160__tar.gz → 0.2.162__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tina4_python-0.2.160 → tina4_python-0.2.162}/PKG-INFO +1 -1
- {tina4_python-0.2.160 → tina4_python-0.2.162}/pyproject.toml +1 -1
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Webserver.py +14 -4
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Websocket.py +2 -2
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/__init__.py +13 -2
- {tina4_python-0.2.160 → tina4_python-0.2.162}/.gitignore +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/README.md +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Api.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Auth.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/CRUD.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Constant.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Database.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/DatabaseResult.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/DatabaseTypes.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Debug.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Env.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/FieldTypes.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/HtmlElement.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Localization.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Messages.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/MiddleWare.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Migration.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/ORM.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Queue.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Request.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Response.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Router.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Session.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/ShellColors.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Swagger.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Template.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/Testing.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/WSDL.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/cli.py +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/messages.pot +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/css/readme.md +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/favicon.ico +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/images/403.png +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/images/404.png +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/images/500.png +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/images/logo.png +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/images/readme.md +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/js/readme.md +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/js/reconnecting-websocket.js +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/js/tina4helper.js +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/swagger/index.html +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/swagger/oauth2-redirect.html +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/templates/components/crud.twig +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/templates/errors/403.twig +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/templates/errors/404.twig +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/templates/errors/500.twig +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/templates/readme.md +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/en/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/en/LC_MESSAGES/messages.po +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/fr/LC_MESSAGES/messages.po +0 -0
|
@@ -317,7 +317,17 @@ class Webserver:
|
|
|
317
317
|
self.send_header("Access-Control-Allow-Credentials", "true", headers)
|
|
318
318
|
|
|
319
319
|
headers_bytes = await self.get_headers(headers, self.response_protocol, HTTP_OK)
|
|
320
|
-
|
|
320
|
+
class _Tina4Response:
|
|
321
|
+
def __init__(self, content: str = "", http_code: int = HTTP_OK, content_type: str = "text/plain", headers: dict | None = None):
|
|
322
|
+
self.content = content
|
|
323
|
+
self.http_code = http_code
|
|
324
|
+
self.content_type = content_type
|
|
325
|
+
self.headers = headers or {}
|
|
326
|
+
|
|
327
|
+
if not asgi_response:
|
|
328
|
+
return headers_bytes
|
|
329
|
+
|
|
330
|
+
return _Tina4Response(content="", http_code=HTTP_OK, content_type="text/plain", headers={}), headers
|
|
321
331
|
|
|
322
332
|
# ------------------------------------------------------------------
|
|
323
333
|
# Query string parsing with nested support
|
|
@@ -534,9 +544,9 @@ class Webserver:
|
|
|
534
544
|
# Route or WebSocket
|
|
535
545
|
# ------------------------------------------------------------------
|
|
536
546
|
if "sec-websocket-key" in lowercase_headers:
|
|
537
|
-
await self.get_response(self.method, reader, writer)
|
|
547
|
+
await self.get_response(self.method, scope={'type': 'websocket'}, reader=reader, writer=writer)
|
|
538
548
|
else:
|
|
539
|
-
response_bytes = await self.get_response(self.method, reader, writer)
|
|
549
|
+
response_bytes = await self.get_response(self.method, scope={'type': 'http'}, reader=reader, writer=writer)
|
|
540
550
|
if response_bytes:
|
|
541
551
|
writer.write(response_bytes)
|
|
542
552
|
await writer.drain()
|
|
@@ -592,4 +602,4 @@ class Webserver:
|
|
|
592
602
|
"""
|
|
593
603
|
if self.server:
|
|
594
604
|
self.server.close()
|
|
595
|
-
self.running = False
|
|
605
|
+
self.running = False
|
|
@@ -32,12 +32,12 @@ class Websocket:
|
|
|
32
32
|
else:
|
|
33
33
|
if os.name == "nt":
|
|
34
34
|
connection = await self.server.AioServer.accept(
|
|
35
|
-
sock=TransportSocket(self.request.
|
|
35
|
+
sock=TransportSocket(self.request.asgi_writer.transport._sock), # not working properly
|
|
36
36
|
headers=self.request.headers
|
|
37
37
|
)
|
|
38
38
|
else:
|
|
39
39
|
connection = await self.server.AioServer.accept(
|
|
40
|
-
sock=self.request.
|
|
40
|
+
sock=self.request.asgi_writer.get_extra_info('socket').dup(),
|
|
41
41
|
headers=self.request.headers
|
|
42
42
|
)
|
|
43
43
|
return connection
|
|
@@ -413,8 +413,19 @@ async def app(scope, receive, send):
|
|
|
413
413
|
if message["type"] != "websocket":
|
|
414
414
|
response_headers = []
|
|
415
415
|
for header in tina4_headers:
|
|
416
|
-
header
|
|
417
|
-
|
|
416
|
+
# ensure header is a str
|
|
417
|
+
if isinstance(header, bytes):
|
|
418
|
+
header = header.decode()
|
|
419
|
+
else:
|
|
420
|
+
header = str(header)
|
|
421
|
+
|
|
422
|
+
# split only on the first ':' to preserve ':' in values (e.g. URLs with ports)
|
|
423
|
+
name, sep, value = header.partition(":")
|
|
424
|
+
if not sep:
|
|
425
|
+
# malformed header, skip it
|
|
426
|
+
continue
|
|
427
|
+
|
|
428
|
+
response_headers.append([name.strip().encode(), value.lstrip().encode()])
|
|
418
429
|
|
|
419
430
|
await send({
|
|
420
431
|
'type': 'http.response.start',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/js/reconnecting-websocket.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/public/swagger/oauth2-redirect.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/en/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/en/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/fr/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{tina4_python-0.2.160 → tina4_python-0.2.162}/tina4_python/translations/fr/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|