pyweber 1.5.2__tar.gz → 1.6.0.dev1__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.
- {pyweber-1.5.2/pyweber.egg-info → pyweber-1.6.0.dev1}/PKG-INFO +14 -1
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyproject.toml +7 -1
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/__init__.py +0 -2
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/cli/commands.py +9 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/components/__init__.py +0 -2
- pyweber-1.6.0.dev1/pyweber/components/input.py +663 -0
- pyweber-1.6.0.dev1/pyweber/connection/session.py +123 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/connection/websocket.py +43 -1
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/core/element.py +45 -4
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/core/template.py +10 -9
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/core/window.py +55 -25
- pyweber-1.6.0.dev1/pyweber/db/__init__.py +133 -0
- pyweber-1.6.0.dev1/pyweber/db/cli.py +254 -0
- pyweber-1.6.0.dev1/pyweber/db/config.py +125 -0
- pyweber-1.6.0.dev1/pyweber/db/engine.py +64 -0
- pyweber-1.6.0.dev1/pyweber/db/model.py +44 -0
- pyweber-1.6.0.dev1/pyweber/db/query.py +26 -0
- pyweber-1.6.0.dev1/pyweber/db/session.py +49 -0
- pyweber-1.6.0.dev1/pyweber/models/dom_merge.py +92 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/handoff.py +9 -2
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/routes.py +62 -4
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/ws_message.py +11 -2
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/pyweber/pyweber.py +49 -374
- pyweber-1.6.0.dev1/pyweber/services/__init__.py +13 -0
- pyweber-1.6.0.dev1/pyweber/services/openapi_setup.py +73 -0
- pyweber-1.6.0.dev1/pyweber/services/response_pipeline.py +239 -0
- pyweber-1.6.0.dev1/pyweber/services/static_files.py +68 -0
- pyweber-1.6.0.dev1/pyweber/services/template_service.py +158 -0
- pyweber-1.6.0.dev1/pyweber/session_store/__init__.py +244 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/config.toml +14 -9
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/types.py +8 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1/pyweber.egg-info}/PKG-INFO +14 -1
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber.egg-info/SOURCES.txt +14 -0
- pyweber-1.6.0.dev1/pyweber.egg-info/requires.txt +31 -0
- pyweber-1.5.2/pyweber/components/input.py +0 -814
- pyweber-1.5.2/pyweber/connection/session.py +0 -50
- pyweber-1.5.2/pyweber.egg-info/requires.txt +0 -12
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/LICENSE +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/MANIFEST.in +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/NOTICE +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/README.md +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/admin/index.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/admin/src/script.js +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/admin/src/style.css +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/auth/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/auth/decorators.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/auth/passwords.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/auth/rbac.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/auth/session.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/cli/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/components/form.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/components/general.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/config/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/config/config.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/connection/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/connection/http.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/connection/reload.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/connection/selector.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/core/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/core/events.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/core/html_parser.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/context.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/cookies.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/create_app.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/element.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/error_pages.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/field.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/field_storage.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/file.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/file_stream.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/headers.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/middleware.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/openapi.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/rate_limit.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/request.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/response.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/run.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/security.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/stream_stats.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/strem_stats.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/task_manager.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/models/template_diff.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/pyweber/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/.gitignore +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/css.css +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/docs.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/android-chrome-192x192.png +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/android-chrome-512x512.png +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/apple-touch-icon.png +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/favicon-16x16.png +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/favicon-32x32.png +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/favicon.ico +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/pyweber.png +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/favicon/site.webmanifest +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/handlers.js +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/html.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/html401.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/html404.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/html500.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/js.js +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/loading.html +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/main.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/pyweber.css +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/static/update.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/testing/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/testing/client.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/__init__.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/async_utils.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/deprecation.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/exceptions.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/icons.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/loads.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/mime.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/security.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber/utils/utils.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber.egg-info/dependency_links.txt +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber.egg-info/entry_points.txt +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/pyweber.egg-info/top_level.txt +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/setup.cfg +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/tests/test_config.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/tests/test_context.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/tests/test_cookies.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/tests/test_public_api.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/tests/test_response.py +0 -0
- {pyweber-1.5.2 → pyweber-1.6.0.dev1}/tests/test_template_diff.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyweber
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.0.dev1
|
|
4
4
|
Summary: A lightweight Python framework for building and managing web applications.
|
|
5
5
|
Author-email: DevPythonMZ <pypi.dev@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -24,6 +24,19 @@ Requires-Dist: pytest-cov; extra == "dev"
|
|
|
24
24
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
25
25
|
Provides-Extra: fast-html
|
|
26
26
|
Requires-Dist: lxml; extra == "fast-html"
|
|
27
|
+
Provides-Extra: db
|
|
28
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0; extra == "db"
|
|
29
|
+
Requires-Dist: alembic>=1.13; extra == "db"
|
|
30
|
+
Provides-Extra: db-sqlite
|
|
31
|
+
Requires-Dist: aiosqlite>=0.20; extra == "db-sqlite"
|
|
32
|
+
Provides-Extra: db-pg
|
|
33
|
+
Requires-Dist: asyncpg>=0.29; extra == "db-pg"
|
|
34
|
+
Provides-Extra: db-mysql
|
|
35
|
+
Requires-Dist: aiomysql>=0.2; extra == "db-mysql"
|
|
36
|
+
Provides-Extra: db-mssql
|
|
37
|
+
Requires-Dist: aioodbc>=0.5; extra == "db-mssql"
|
|
38
|
+
Provides-Extra: redis
|
|
39
|
+
Requires-Dist: redis[hiredis]>=8.1.0; extra == "redis"
|
|
27
40
|
Dynamic: license-file
|
|
28
41
|
|
|
29
42
|
# Pyweber Framework
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pyweber"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.6.0.dev1"
|
|
8
8
|
description = "A lightweight Python framework for building and managing web applications."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "DevPythonMZ", email = "pypi.dev@gmail.com" }]
|
|
@@ -29,6 +29,12 @@ include = ["pyweber*"]
|
|
|
29
29
|
[project.optional-dependencies]
|
|
30
30
|
dev = ["pytest", "pytest-cov", "pytest-asyncio"]
|
|
31
31
|
fast-html = ["lxml"]
|
|
32
|
+
db = ["sqlalchemy[asyncio]>=2.0", "alembic>=1.13"]
|
|
33
|
+
db-sqlite = ["aiosqlite>=0.20"]
|
|
34
|
+
db-pg = ["asyncpg>=0.29"]
|
|
35
|
+
db-mysql = ["aiomysql>=0.2"]
|
|
36
|
+
db-mssql = ["aioodbc>=0.5"]
|
|
37
|
+
redis = ["redis[hiredis]>=8.1.0"]
|
|
32
38
|
|
|
33
39
|
[tool.setuptools.package-data]
|
|
34
40
|
pyweber = ["static/**/*", "admin/**/*"]
|
|
@@ -148,7 +148,6 @@ from .components.input import (
|
|
|
148
148
|
Input,
|
|
149
149
|
InputButton,
|
|
150
150
|
InputCheckbox,
|
|
151
|
-
InputCheckbox,
|
|
152
151
|
InputColor,
|
|
153
152
|
InputDate,
|
|
154
153
|
InputEmail,
|
|
@@ -287,7 +286,6 @@ __all__ = [
|
|
|
287
286
|
'Input',
|
|
288
287
|
'InputButton',
|
|
289
288
|
'InputCheckbox',
|
|
290
|
-
'InputCheckbox',
|
|
291
289
|
'InputColor',
|
|
292
290
|
'InputDate',
|
|
293
291
|
'InputEmail',
|
|
@@ -36,6 +36,11 @@ class CLI:
|
|
|
36
36
|
self.add_cert_command()
|
|
37
37
|
self._add_run_command()
|
|
38
38
|
self.add_build_command()
|
|
39
|
+
try:
|
|
40
|
+
from pyweber.db.cli import build_parser as build_db_parser
|
|
41
|
+
build_db_parser(self.subparsers)
|
|
42
|
+
except Exception:
|
|
43
|
+
pass
|
|
39
44
|
|
|
40
45
|
self.commands_funcs = CommandFunctions()
|
|
41
46
|
self.edit_cli_parameters = ConfigManagerCLI()
|
|
@@ -301,6 +306,10 @@ class CLI:
|
|
|
301
306
|
elif args.command == 'build':
|
|
302
307
|
project_name = getattr(args, 'project_name')
|
|
303
308
|
self.commands_funcs.build_project(project_name=project_name)
|
|
309
|
+
|
|
310
|
+
elif args.command == 'db':
|
|
311
|
+
from pyweber.db.cli import handle_db_command
|
|
312
|
+
raise SystemExit(handle_db_command(args))
|
|
304
313
|
else:
|
|
305
314
|
self.parser.print_help()
|
|
306
315
|
exit(code=1)
|
|
@@ -12,7 +12,6 @@ from .input import (
|
|
|
12
12
|
Input,
|
|
13
13
|
InputButton,
|
|
14
14
|
InputCheckbox,
|
|
15
|
-
InputCheckbox,
|
|
16
15
|
InputColor,
|
|
17
16
|
InputDate,
|
|
18
17
|
InputEmail,
|
|
@@ -39,7 +38,6 @@ __all__ = [
|
|
|
39
38
|
'Input',
|
|
40
39
|
'InputButton',
|
|
41
40
|
'InputCheckbox',
|
|
42
|
-
'InputCheckbox',
|
|
43
41
|
'InputColor',
|
|
44
42
|
'InputDate',
|
|
45
43
|
'InputEmail',
|