hyperflask 0.4.1__tar.gz → 0.4.3__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 (120) hide show
  1. {hyperflask-0.4.1 → hyperflask-0.4.3}/PKG-INFO +1 -1
  2. {hyperflask-0.4.1 → hyperflask-0.4.3}/pyproject.toml +1 -1
  3. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/app.py +3 -2
  4. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/cli/runner.py +33 -26
  5. {hyperflask-0.4.1 → hyperflask-0.4.3}/README.md +0 -0
  6. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/__init__.py +0 -0
  7. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/__main__.py +0 -0
  8. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/actors.py +0 -0
  9. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/cli/__init__.py +0 -0
  10. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/cli/reloader.py +0 -0
  11. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/cli/worker.py +0 -0
  12. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/components/__init__.py +0 -0
  13. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/components/alpine.py +0 -0
  14. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/components/core.py +0 -0
  15. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/components/jsx.py +0 -0
  16. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/components/webcomponent.py +0 -0
  17. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/factory.py +0 -0
  18. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/forms/__init__.py +0 -0
  19. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/forms/fields.py +0 -0
  20. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/forms/widgets.py +0 -0
  21. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/layouts/email.mjml +0 -0
  22. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/layouts/web.html +0 -0
  23. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/model.py +0 -0
  24. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/page_helpers.py +0 -0
  25. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/security.py +0 -0
  26. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/alpine-csp.js +0 -0
  27. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/alpine.js +0 -0
  28. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/app.css +0 -0
  29. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/app.js +0 -0
  30. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/htmx-exts.js +0 -0
  31. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/react.js +0 -0
  32. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/stimulus.js +0 -0
  33. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/static/translations.js +0 -0
  34. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Accordion.html +0 -0
  35. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/AccordionPanel.html +0 -0
  36. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Alert.html +0 -0
  37. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Avatar.html +0 -0
  38. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/AvatarGroup.html +0 -0
  39. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Badge.html +0 -0
  40. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Breadcrumbs.html +0 -0
  41. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/BreadcrumbsItem.html +0 -0
  42. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Button.html +0 -0
  43. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Card.html +0 -0
  44. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/CardActions.html +0 -0
  45. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/CardTitle.html +0 -0
  46. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/ChatBubble.html +0 -0
  47. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Checkbox.html +0 -0
  48. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/CollapsibleSubMenu.html +0 -0
  49. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Countdown.html +0 -0
  50. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Divider.html +0 -0
  51. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Drawer.html +0 -0
  52. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/DrawerContent.html +0 -0
  53. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/DrawerSide.html +0 -0
  54. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Dropdown.html +0 -0
  55. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/DropdownItem.html +0 -0
  56. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Fieldset.html +0 -0
  57. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/FieldsetLegend.html +0 -0
  58. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/FileInput.html +0 -0
  59. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Filter.html +0 -0
  60. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/FilterItem.html +0 -0
  61. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Footer.html +0 -0
  62. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/FooterLink.html +0 -0
  63. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/FooterNav.html +0 -0
  64. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Indicator.html +0 -0
  65. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Input.html +0 -0
  66. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/InputLabel.html +0 -0
  67. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Join.html +0 -0
  68. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Kbd.html +0 -0
  69. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Label.html +0 -0
  70. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/LabeledCheckbox.html +0 -0
  71. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/LabeledToggle.html +0 -0
  72. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Link.html +0 -0
  73. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/List.html +0 -0
  74. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/ListItem.html +0 -0
  75. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Loading.html +0 -0
  76. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Menu.html +0 -0
  77. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/MenuItem.html +0 -0
  78. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/MenuTitle.html +0 -0
  79. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Modal.html +0 -0
  80. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/ModalAction.html +0 -0
  81. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/ModalTitle.html +0 -0
  82. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Navbar.html +0 -0
  83. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Pagination.html +0 -0
  84. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/PaginationNext.html +0 -0
  85. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/PaginationPage.html +0 -0
  86. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/PaginationPrev.html +0 -0
  87. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Progress.html +0 -0
  88. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/README.md +0 -0
  89. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Radio.html +0 -0
  90. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Range.html +0 -0
  91. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Rating.html +0 -0
  92. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Select.html +0 -0
  93. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Stack.html +0 -0
  94. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Stat.html +0 -0
  95. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Stats.html +0 -0
  96. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Step.html +0 -0
  97. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Steps.html +0 -0
  98. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/SubMenu.html +0 -0
  99. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Swap.html +0 -0
  100. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Tab.html +0 -0
  101. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Table.html +0 -0
  102. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Tabs.html +0 -0
  103. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Textarea.html +0 -0
  104. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Toast.html +0 -0
  105. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Toggle.html +0 -0
  106. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/daisyui/Tooltip.html +0 -0
  107. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/flash.html +0 -0
  108. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/forms.html +0 -0
  109. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/icons.html +0 -0
  110. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/layout.html +0 -0
  111. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/modal.html +0 -0
  112. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/skeleton.html +0 -0
  113. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/ui/sse.html +0 -0
  114. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/__init__.py +0 -0
  115. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/html.py +0 -0
  116. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/htmx.py +0 -0
  117. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/markdown.py +0 -0
  118. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/metadata.py +0 -0
  119. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/page_actions.py +0 -0
  120. {hyperflask-0.4.1 → hyperflask-0.4.3}/src/hyperflask/utils/tokens.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperflask
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: Full stack web framework
5
5
  Author: Maxime Bouroumeau-Fuseau
6
6
  Author-email: Maxime Bouroumeau-Fuseau <maxime.bouroumeau@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hyperflask"
3
- version = "0.4.1"
3
+ version = "0.4.3"
4
4
  description = "Full stack web framework"
5
5
  authors = [
6
6
  {"name" = "Maxime Bouroumeau-Fuseau", email = "maxime.bouroumeau@gmail.com"}
@@ -114,8 +114,9 @@ class Hyperflask(Flask):
114
114
  })
115
115
  self.config.setdefault("HSTS_HEADER", "max-age=31556926; includeSubDomains") # 1 year
116
116
 
117
- if (self.config['URL_FOR_SERVER_NAME'] or self.config.get('SERVER_NAME')) and not self.config.get('MERCURE_HUB_URL') and not self.config.get('MERCURE_PUBLIC_HUB_URL'):
118
- self.config['MERCURE_PUBLIC_HUB_URL'] = True
117
+ if not self.debug and not self.testing and not self.config.get('MERCURE_HUB_URL'):
118
+ self.config['MERCURE_HUB_URL'] = "http://localhost:5300/.well-known/mercure"
119
+ self.config.setdefault('MERCURE_PUBLIC_HUB_URL', True)
119
120
 
120
121
  #self.otel = Observability(self)
121
122
 
@@ -39,11 +39,12 @@ serve_command.params = flask_run_command.params + serve_command.params
39
39
  @click.option("--host", "-h", default="127.0.0.1", help="The interface to bind to.")
40
40
  @click.option("--port", "-p", default=5000, help="The port to bind to.")
41
41
  @click.option('--concurrency')
42
- @click.option("--extend-procfile")
42
+ @click.option("--extend-procfile", is_flag=True)
43
43
  @click.option("--init-db/--no-init-db", is_flag=True, default=None)
44
44
  @click.option("--dev", is_flag=True)
45
45
  def run_command(processes, host, port, concurrency, extend_procfile, init_db, dev):
46
- from honcho.command import _procfile, _parse_concurrency
46
+ from honcho.command import _parse_concurrency
47
+ from honcho.environ import parse_procfile
47
48
  from honcho.printer import Printer
48
49
  from honcho import environ
49
50
 
@@ -54,35 +55,41 @@ def run_command(processes, host, port, concurrency, extend_procfile, init_db, de
54
55
  print("Initializing database...")
55
56
  Popen([sys.argv[0], "db", "init"]).wait()
56
57
 
57
- _processes = None
58
+ _processes = {}
59
+ procfile = None
58
60
  config = load_config()
61
+
59
62
  for filename in [f"Procfile.{config['ENV']}", "Procfile"]:
60
63
  if os.path.exists(filename):
61
- _processes = _procfile(filename).processes
64
+ with open(filename) as f:
65
+ procfile = parse_procfile(f.read()).processes
62
66
  break
63
- if _processes is None or extend_procfile:
64
- if not _processes:
65
- _processes = {}
66
- _processes.update({
67
- "web": [sys.argv[0], "serve", "--host", host, "--port", "$PORT"],
68
- "worker": [sys.argv[0], "worker"],
69
- "scheduler": [sys.argv[0], "scheduler"]
70
- })
71
- if dev:
72
- _processes["assets"] = [sys.argv[0], "assets", "dev"]
73
- _processes["worker"].extend(["-p", "1", "-t", "1"])
67
+
68
+ _processes = {
69
+ "web": [sys.argv[0], "serve", "--host", host, "--port", "$PORT"],
70
+ "worker": [sys.argv[0], "worker"],
71
+ "scheduler": [sys.argv[0], "scheduler"]
72
+ }
73
+ if dev:
74
+ _processes["assets"] = [sys.argv[0], "assets", "dev"]
75
+ _processes["worker"].extend(["-p", "1", "-t", "1"])
76
+ else:
77
+ _processes["mercurehub"] = [sys.executable, "-m", "flask_mercure_sse.server", "--port", "$PORT"]
78
+ subscriber_secret_key = config.get("MERCURE_SUBSCRIBER_SECRET_KEY", config.get('SECRET_KEY'))
79
+ if subscriber_secret_key:
80
+ _processes["mercurehub"].extend(["--subscriber-secret", subscriber_secret_key])
81
+ else:
82
+ print("Warning: No MERCURE_SUBSCRIBER_SECRET_KEY or SECRET_KEY set, Mercure subscriber will not be authenticated.")
83
+ publisher_secret_key = config.get("MERCURE_PUBLISHER_SECRET_KEY", config.get('SECRET_KEY'))
84
+ if publisher_secret_key:
85
+ _processes["mercurehub"].extend(["--publisher-secret", publisher_secret_key])
74
86
  else:
75
- _processes["mercurehub"] = [sys.executable, "-m", "flask_mercure_sse.server"]
76
- subscriber_secret_key = config.get("MERCURE_SUBSCRIBER_SECRET_KEY", config.get('SECRET_KEY'))
77
- if subscriber_secret_key:
78
- _processes["mercurehub"].extend(["--subscriber-secret", subscriber_secret_key])
79
- else:
80
- print("Warning: No MERCURE_SUBSCRIBER_SECRET_KEY or SECRET_KEY set, Mercure subscriber will not be authenticated.")
81
- publisher_secret_key = config.get("MERCURE_PUBLISHER_SECRET_KEY", config.get('SECRET_KEY'))
82
- if publisher_secret_key:
83
- _processes["mercurehub"].extend(["--publisher-secret", publisher_secret_key])
84
- else:
85
- print("Warning: No MERCURE_PUBLISHER_SECRET_KEY or SECRET_KEY set, cannot publish Mercure messages.")
87
+ print("Warning: No MERCURE_PUBLISHER_SECRET_KEY or SECRET_KEY set, cannot publish Mercure messages.")
88
+
89
+ if procfile and extend_procfile:
90
+ _processes.update(procfile)
91
+ elif procfile:
92
+ _processes = procfile
86
93
 
87
94
  processes = {name: " ".join(_processes[name]) if isinstance(_processes[name], list) else _processes[name]
88
95
  for name in _processes if not processes or name in processes}
File without changes