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