python-fasthtml 0.12.30__tar.gz → 0.12.31__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 (42) hide show
  1. {python_fasthtml-0.12.30/python_fasthtml.egg-info → python_fasthtml-0.12.31}/PKG-INFO +1 -1
  2. python_fasthtml-0.12.31/fasthtml/__init__.py +2 -0
  3. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/_modidx.py +1 -0
  4. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/core.py +8 -3
  5. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/jupyter.py +1 -1
  6. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31/python_fasthtml.egg-info}/PKG-INFO +1 -1
  7. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/settings.ini +1 -1
  8. python_fasthtml-0.12.30/fasthtml/__init__.py +0 -2
  9. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/CONTRIBUTING.md +0 -0
  10. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/LICENSE +0 -0
  11. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/MANIFEST.in +0 -0
  12. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/README.md +0 -0
  13. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/authmw.py +0 -0
  14. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/basics.py +0 -0
  15. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/cli.py +0 -0
  16. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/common.py +0 -0
  17. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/components.py +0 -0
  18. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/components.pyi +0 -0
  19. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/core.pyi +0 -0
  20. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/fastapp.py +0 -0
  21. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/ft.py +0 -0
  22. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/js.py +0 -0
  23. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/katex.js +0 -0
  24. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/live_reload.py +0 -0
  25. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/oauth.py +0 -0
  26. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/pico.py +0 -0
  27. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/starlette.py +0 -0
  28. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/stripe_otp.py +0 -0
  29. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/svg.py +0 -0
  30. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/toaster.py +0 -0
  31. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/xtend.py +0 -0
  32. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/fasthtml/xtend.pyi +0 -0
  33. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/pyproject.toml +0 -0
  34. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/python_fasthtml.egg-info/SOURCES.txt +0 -0
  35. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/python_fasthtml.egg-info/dependency_links.txt +0 -0
  36. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/python_fasthtml.egg-info/entry_points.txt +0 -0
  37. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/python_fasthtml.egg-info/not-zip-safe +0 -0
  38. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/python_fasthtml.egg-info/requires.txt +0 -0
  39. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/python_fasthtml.egg-info/top_level.txt +0 -0
  40. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/setup.cfg +0 -0
  41. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/setup.py +0 -0
  42. {python_fasthtml-0.12.30 → python_fasthtml-0.12.31}/tests/test_toaster.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-fasthtml
3
- Version: 0.12.30
3
+ Version: 0.12.31
4
4
  Summary: The fastest way to create an HTML app
5
5
  Home-page: https://github.com/AnswerDotAI/fasthtml
6
6
  Author: Jeremy Howard and contributors
@@ -0,0 +1,2 @@
1
+ __version__ = "0.12.31"
2
+ from .core import *
@@ -80,6 +80,7 @@ d = { 'settings': { 'branch': 'main',
80
80
  'fasthtml.core._add_ids': ('api/core.html#_add_ids', 'fasthtml/core.py'),
81
81
  'fasthtml.core._annotations': ('api/core.html#_annotations', 'fasthtml/core.py'),
82
82
  'fasthtml.core._apply_ft': ('api/core.html#_apply_ft', 'fasthtml/core.py'),
83
+ 'fasthtml.core._canonical': ('api/core.html#_canonical', 'fasthtml/core.py'),
83
84
  'fasthtml.core._find_p': ('api/core.html#_find_p', 'fasthtml/core.py'),
84
85
  'fasthtml.core._find_targets': ('api/core.html#_find_targets', 'fasthtml/core.py'),
85
86
  'fasthtml.core._find_wsp': ('api/core.html#_find_wsp', 'fasthtml/core.py'),
@@ -421,6 +421,11 @@ def _part_resp(req, resp):
421
421
  return resp,kw
422
422
 
423
423
  # %% ../nbs/api/00_core.ipynb
424
+ def _canonical(req):
425
+ if not req.app.canonical: return []
426
+ url = str(getattr(req, 'canonical', req.url)).replace('http://', 'https://', 1)
427
+ return [Link(rel="canonical", href=url)]
428
+
424
429
  def _xt_cts(req, resp):
425
430
  "Extract content and headers, render as full page or fragment"
426
431
  hdr_tags = 'title','meta','link','style','base'
@@ -428,8 +433,7 @@ def _xt_cts(req, resp):
428
433
  heads,bdy = partition(resp, lambda o: getattr(o, 'tag', '') in hdr_tags)
429
434
  if not is_full_page(req, resp):
430
435
  title = [] if any(getattr(o, 'tag', '')=='title' for o in heads) else [Title(req.app.title)]
431
- canonical = [Link(rel="canonical", href=getattr(req, 'canonical', req.url))] if req.app.canonical else []
432
- resp = respond(req, [*heads, *title, *canonical], bdy)
436
+ resp = respond(req, [*heads, *title, *_canonical(req)], bdy)
433
437
  return _to_xml(req, resp, indent=fh_cfg.indent)
434
438
 
435
439
  # %% ../nbs/api/00_core.ipynb
@@ -481,12 +485,13 @@ htmx_exts = {
481
485
  "multi-swap": "https://cdn.jsdelivr.net/npm/htmx-ext-multi-swap@2.0.0/multi-swap.js",
482
486
  "path-deps": "https://cdn.jsdelivr.net/npm/htmx-ext-path-deps@2.0.0/path-deps.js",
483
487
  "remove-me": "https://cdn.jsdelivr.net/npm/htmx-ext-remove-me@2.0.0/remove-me.js",
488
+ "debug": "https://unpkg.com/htmx.org@1.9.12/dist/ext/debug.js",
484
489
  "ws": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.3/ws.js",
485
490
  "chunked-transfer": "https://cdn.jsdelivr.net/npm/htmx-ext-transfer-encoding-chunked@0.4.0/transfer-encoding-chunked.js"
486
491
  }
487
492
 
488
493
  # %% ../nbs/api/00_core.ipynb
489
- htmxsrc = Script(src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.6/dist/htmx.min.js")
494
+ htmxsrc = Script(src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.7/dist/htmx.js")
490
495
  fhjsscr = Script(src="https://cdn.jsdelivr.net/gh/answerdotai/fasthtml-js@1.0.12/fasthtml.js")
491
496
  surrsrc = Script(src="https://cdn.jsdelivr.net/gh/answerdotai/surreal@main/surreal.js")
492
497
  scopesrc = Script(src="https://cdn.jsdelivr.net/gh/gnat/css-scope-inline@main/script.js")
@@ -85,7 +85,7 @@ class JupyUvi:
85
85
  store_attr(but='start')
86
86
  self.server = None
87
87
  if start: self.start()
88
- htmx_config_port(port)
88
+ if not os.environ.get('IN_SOLVEIT'): htmx_config_port(port)
89
89
 
90
90
  def start(self):
91
91
  self.server = nb_serve(self.app, log_level=self.log_level, host=self.host, port=self.port, **self.kwargs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-fasthtml
3
- Version: 0.12.30
3
+ Version: 0.12.31
4
4
  Summary: The fastest way to create an HTML app
5
5
  Home-page: https://github.com/AnswerDotAI/fasthtml
6
6
  Author: Jeremy Howard and contributors
@@ -1,7 +1,7 @@
1
1
  [DEFAULT]
2
2
  repo = fasthtml
3
3
  lib_name = python-fasthtml
4
- version = 0.12.30
4
+ version = 0.12.31
5
5
  min_python = 3.10
6
6
  license = apache2
7
7
  requirements = fastcore>=1.8.1 python-dateutil starlette>0.33 oauthlib itsdangerous uvicorn[standard]>=0.30 httpx fastlite>=0.1.1 python-multipart beautifulsoup4
@@ -1,2 +0,0 @@
1
- __version__ = "0.12.30"
2
- from .core import *