tw-framework 0.3.1__tar.gz → 0.3.2__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.
Files changed (63) hide show
  1. {tw_framework-0.3.1 → tw_framework-0.3.2}/PKG-INFO +1 -1
  2. {tw_framework-0.3.1 → tw_framework-0.3.2}/pyproject.toml +1 -1
  3. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/compiler.py +15 -1
  4. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework.egg-info/PKG-INFO +1 -1
  5. {tw_framework-0.3.1 → tw_framework-0.3.2}/README.md +0 -0
  6. {tw_framework-0.3.1 → tw_framework-0.3.2}/setup.cfg +0 -0
  7. {tw_framework-0.3.1 → tw_framework-0.3.2}/tests/test_deployment.py +0 -0
  8. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/__init__.py +0 -0
  9. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/adapters/__init__.py +0 -0
  10. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/adapters/cloudflare.py +0 -0
  11. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/adapters/netlify.py +0 -0
  12. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/adapters/vercel.py +0 -0
  13. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/adapters/vercel_functions.py +0 -0
  14. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/advanced_diagnostics.py +0 -0
  15. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/asset_optimizer.py +0 -0
  16. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/ast_nodes.py +0 -0
  17. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/build.py +0 -0
  18. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/build_performance.py +0 -0
  19. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/build_report.py +0 -0
  20. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/cli.py +0 -0
  21. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/code_splitting.py +0 -0
  22. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/common.py +0 -0
  23. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/compiler_stats.py +0 -0
  24. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/dead_code.py +0 -0
  25. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/dependency_graph.py +0 -0
  26. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/deploy.py +0 -0
  27. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/dev.py +0 -0
  28. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/diagnostics.py +0 -0
  29. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/dynamic_imports.py +0 -0
  30. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/error_formatter.py +0 -0
  31. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/framework.py +0 -0
  32. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/hydration.py +0 -0
  33. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/incremental_cache.py +0 -0
  34. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/interpreter.py +0 -0
  35. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/ir.py +0 -0
  36. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/lexer.py +0 -0
  37. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/lowering.py +0 -0
  38. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/parser.py +0 -0
  39. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/partial_rebuild.py +0 -0
  40. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/performance_analyzer.py +0 -0
  41. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/plugin_runtime.py +0 -0
  42. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/production_optimizer.py +0 -0
  43. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/reactivity.py +0 -0
  44. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/render_css.py +0 -0
  45. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/render_html.py +0 -0
  46. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/route_optimizer.py +0 -0
  47. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/router.py +0 -0
  48. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/runtime_model.py +0 -0
  49. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/runtime_values.py +0 -0
  50. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/semantic.py +0 -0
  51. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/server.py +0 -0
  52. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/signature.py +0 -0
  53. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/static_dynamic_auto.py +0 -0
  54. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/streaming.py +0 -0
  55. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/test_build_cli_pytest.py +0 -0
  56. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/tree_shaking.py +0 -0
  57. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/twm_api_runner.js +0 -0
  58. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework/twm_parser.py +0 -0
  59. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework.egg-info/SOURCES.txt +0 -0
  60. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework.egg-info/dependency_links.txt +0 -0
  61. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework.egg-info/entry_points.txt +0 -0
  62. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework.egg-info/requires.txt +0 -0
  63. {tw_framework-0.3.1 → tw_framework-0.3.2}/tw_framework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tw-framework
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: TW framework CLI with create, dev, build, and deploy commands
5
5
  Author: TW Framework
6
6
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tw-framework"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "TW framework CLI with create, dev, build, and deploy commands"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1161,6 +1161,15 @@ def tokenize(code, allow_inline_scripts=False):
1161
1161
  ):
1162
1162
  word.append(advance_one())
1163
1163
  continue
1164
+ if (
1165
+ ch == "."
1166
+ and word
1167
+ and word[-1].isdigit()
1168
+ and i + 1 < n
1169
+ and code[i + 1].isdigit()
1170
+ ):
1171
+ word.append(advance_one())
1172
+ continue
1164
1173
  break
1165
1174
  word.append(advance_one())
1166
1175
  word = "".join(word)
@@ -3227,6 +3236,8 @@ def render_value(value, context):
3227
3236
 
3228
3237
 
3229
3238
  def html_escape(value):
3239
+ if isinstance(value, bool):
3240
+ value = "true" if value else "false"
3230
3241
  s = "" if value is None else str(value)
3231
3242
  return (
3232
3243
  s.replace("&", "&amp;")
@@ -3259,7 +3270,10 @@ def render_attrs(attrs, context):
3259
3270
  logger.exception("transform_reactive_attrs failed; continuing without reactive directives")
3260
3271
  parts = []
3261
3272
  for name, raw_value in attrs:
3262
- value = render_value(raw_value, context)
3273
+ if name.startswith("data-tw-"):
3274
+ value = raw_value
3275
+ else:
3276
+ value = render_value(raw_value, context)
3263
3277
  if name in {"src", "href", "poster"}:
3264
3278
  value = resolve_static_asset_url(value)
3265
3279
  elif name == "srcset" and isinstance(value, str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tw-framework
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: TW framework CLI with create, dev, build, and deploy commands
5
5
  Author: TW Framework
6
6
  Requires-Python: >=3.9
File without changes
File without changes