tw-framework 0.2.8__tar.gz → 0.3.0__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.
- {tw_framework-0.2.8 → tw_framework-0.3.0}/PKG-INFO +1 -1
- {tw_framework-0.2.8 → tw_framework-0.3.0}/pyproject.toml +1 -1
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/compiler.py +5 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/framework.py +3 -3
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/PKG-INFO +1 -1
- {tw_framework-0.2.8 → tw_framework-0.3.0}/README.md +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/setup.cfg +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tests/test_deployment.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/__init__.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/__init__.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/cloudflare.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/netlify.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/vercel.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/vercel_functions.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/advanced_diagnostics.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/asset_optimizer.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/ast_nodes.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/build.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/build_performance.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/build_report.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/cli.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/code_splitting.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/common.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/compiler_stats.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dead_code.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dependency_graph.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/deploy.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dev.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/diagnostics.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dynamic_imports.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/error_formatter.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/hydration.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/incremental_cache.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/interpreter.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/ir.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/lexer.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/lowering.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/parser.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/partial_rebuild.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/performance_analyzer.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/plugin_runtime.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/production_optimizer.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/reactivity.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/render_css.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/render_html.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/route_optimizer.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/router.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/runtime_model.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/runtime_values.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/semantic.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/server.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/signature.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/static_dynamic_auto.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/streaming.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/test_build_cli_pytest.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/tree_shaking.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/twm_api_runner.js +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/twm_parser.py +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/SOURCES.txt +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/dependency_links.txt +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/entry_points.txt +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/requires.txt +0 -0
- {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/top_level.txt +0 -0
|
@@ -2095,6 +2095,11 @@ def finalize_css_value(css_prop, raw_value, context):
|
|
|
2095
2095
|
return _append_px_if_numeric(value)
|
|
2096
2096
|
if isinstance(value, str):
|
|
2097
2097
|
stripped = value.strip()
|
|
2098
|
+
if len(stripped) >= 2 and (
|
|
2099
|
+
(stripped[0] == '"' and stripped[-1] == '"')
|
|
2100
|
+
or (stripped[0] == "'" and stripped[-1] == "'")
|
|
2101
|
+
):
|
|
2102
|
+
stripped = stripped[1:-1]
|
|
2098
2103
|
stripped = _normalize_css_function_args(stripped)
|
|
2099
2104
|
if css_prop == "line-height" and NUM_RE.match(stripped):
|
|
2100
2105
|
return stripped
|
|
@@ -2526,13 +2526,13 @@ def write_route_artifacts(output_dir: str):
|
|
|
2526
2526
|
|
|
2527
2527
|
def strip_html_to_text(html_text: str) -> str:
|
|
2528
2528
|
# Remove script/style blocks
|
|
2529
|
-
html_text = re.sub(r"<script[
|
|
2530
|
-
html_text = re.sub(r"<style[
|
|
2529
|
+
html_text = re.sub(r"<script[\s\S]*?</script>", " ", html_text, flags=re.I)
|
|
2530
|
+
html_text = re.sub(r"<style[\s\S]*?</style>", " ", html_text, flags=re.I)
|
|
2531
2531
|
# Remove tags
|
|
2532
2532
|
html_text = re.sub(r"<[^>]+>", " ", html_text)
|
|
2533
2533
|
# Decode entities + normalize whitespace
|
|
2534
2534
|
html_text = html.unescape(html_text)
|
|
2535
|
-
html_text = re.sub(r"
|
|
2535
|
+
html_text = re.sub(r"\s+", " ", html_text).strip()
|
|
2536
2536
|
return html_text
|
|
2537
2537
|
|
|
2538
2538
|
|
|
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
|
|
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
|