reflex 0.8.0a6__tar.gz → 0.8.0a7__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.

Potentially problematic release.


This version of reflex might be problematic. Click here for more details.

Files changed (402) hide show
  1. {reflex-0.8.0a6 → reflex-0.8.0a7}/PKG-INFO +2 -2
  2. {reflex-0.8.0a6 → reflex-0.8.0a7}/pyproject.toml +2 -2
  3. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/config.py +7 -36
  4. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/environment.py +70 -0
  5. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/exec.py +8 -3
  6. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/misc.py +1 -2
  7. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/processes.py +9 -1
  8. {reflex-0.8.0a6 → reflex-0.8.0a7}/.gitignore +0 -0
  9. {reflex-0.8.0a6 → reflex-0.8.0a7}/LICENSE +0 -0
  10. {reflex-0.8.0a6 → reflex-0.8.0a7}/README.md +0 -0
  11. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  12. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  13. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/apps/blank/code/blank.py +0 -0
  14. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  15. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  16. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  17. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  18. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  19. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  20. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  21. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  22. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  23. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  24. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  25. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  26. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  27. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  28. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  29. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  30. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  31. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  32. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  33. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  34. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/.gitignore +0 -0
  35. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/app/entry.client.js +0 -0
  36. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/app/routes.js +0 -0
  37. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  38. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/components/shiki/code.js +0 -0
  39. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/jsconfig.json +0 -0
  40. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/postcss.config.js +0 -0
  41. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/react-router.config.js +0 -0
  42. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
  43. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  44. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  45. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  46. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  47. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/helpers/range.js +0 -0
  48. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  49. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/react-theme.js +0 -0
  50. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/utils/state.js +0 -0
  51. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/.templates/web/vite.config.js +0 -0
  52. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/__init__.py +0 -0
  53. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/__init__.pyi +0 -0
  54. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/__main__.py +0 -0
  55. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/admin.py +0 -0
  56. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/app.py +0 -0
  57. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/app_mixins/__init__.py +0 -0
  58. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/app_mixins/lifespan.py +0 -0
  59. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/app_mixins/middleware.py +0 -0
  60. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/app_mixins/mixin.py +0 -0
  61. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/assets.py +0 -0
  62. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/base.py +0 -0
  63. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/compiler/__init__.py +0 -0
  64. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/compiler/compiler.py +0 -0
  65. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/compiler/templates.py +0 -0
  66. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/compiler/utils.py +0 -0
  67. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/__init__.py +0 -0
  68. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/__init__.pyi +0 -0
  69. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/__init__.py +0 -0
  70. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/__init__.pyi +0 -0
  71. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/app_wrap.py +0 -0
  72. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/app_wrap.pyi +0 -0
  73. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/bare.py +0 -0
  74. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/body.py +0 -0
  75. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/body.pyi +0 -0
  76. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/document.py +0 -0
  77. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/document.pyi +0 -0
  78. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/error_boundary.py +0 -0
  79. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/error_boundary.pyi +0 -0
  80. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/fragment.py +0 -0
  81. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/fragment.pyi +0 -0
  82. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/link.py +0 -0
  83. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/link.pyi +0 -0
  84. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/meta.py +0 -0
  85. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/meta.pyi +0 -0
  86. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/script.py +0 -0
  87. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/script.pyi +0 -0
  88. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/strict_mode.py +0 -0
  89. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/base/strict_mode.pyi +0 -0
  90. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/component.py +0 -0
  91. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/__init__.py +0 -0
  92. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/__init__.pyi +0 -0
  93. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/auto_scroll.py +0 -0
  94. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/auto_scroll.pyi +0 -0
  95. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/banner.py +0 -0
  96. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/banner.pyi +0 -0
  97. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/breakpoints.py +0 -0
  98. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/client_side_routing.py +0 -0
  99. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/client_side_routing.pyi +0 -0
  100. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/clipboard.py +0 -0
  101. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/clipboard.pyi +0 -0
  102. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/colors.py +0 -0
  103. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/cond.py +0 -0
  104. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/debounce.py +0 -0
  105. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/debounce.pyi +0 -0
  106. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/foreach.py +0 -0
  107. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/helmet.py +0 -0
  108. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/helmet.pyi +0 -0
  109. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/html.py +0 -0
  110. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/html.pyi +0 -0
  111. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/layout/__init__.py +0 -0
  112. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/match.py +0 -0
  113. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/responsive.py +0 -0
  114. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/sticky.py +0 -0
  115. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/sticky.pyi +0 -0
  116. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/upload.py +0 -0
  117. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/core/upload.pyi +0 -0
  118. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/__init__.py +0 -0
  119. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/__init__.pyi +0 -0
  120. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/code.py +0 -0
  121. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/code.pyi +0 -0
  122. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/dataeditor.py +0 -0
  123. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  124. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/logo.py +0 -0
  125. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  126. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  127. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/dynamic.py +0 -0
  128. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/__init__.py +0 -0
  129. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/__init__.pyi +0 -0
  130. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/constants/__init__.py +0 -0
  131. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/constants/html.py +0 -0
  132. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/constants/react.py +0 -0
  133. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/constants/reflex.py +0 -0
  134. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/element.py +0 -0
  135. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/element.pyi +0 -0
  136. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/__init__.py +0 -0
  137. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/__init__.pyi +0 -0
  138. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/base.py +0 -0
  139. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/base.pyi +0 -0
  140. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/forms.py +0 -0
  141. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/forms.pyi +0 -0
  142. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/inline.py +0 -0
  143. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/inline.pyi +0 -0
  144. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/media.py +0 -0
  145. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/media.pyi +0 -0
  146. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/metadata.py +0 -0
  147. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/metadata.pyi +0 -0
  148. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/other.py +0 -0
  149. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/other.pyi +0 -0
  150. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/scripts.py +0 -0
  151. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/scripts.pyi +0 -0
  152. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/sectioning.py +0 -0
  153. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/sectioning.pyi +0 -0
  154. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/tables.py +0 -0
  155. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/tables.pyi +0 -0
  156. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/typography.py +0 -0
  157. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/el/elements/typography.pyi +0 -0
  158. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/field.py +0 -0
  159. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/gridjs/__init__.py +0 -0
  160. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/gridjs/datatable.py +0 -0
  161. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/gridjs/datatable.pyi +0 -0
  162. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/literals.py +0 -0
  163. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/lucide/__init__.py +0 -0
  164. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/lucide/icon.py +0 -0
  165. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/lucide/icon.pyi +0 -0
  166. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/markdown/__init__.py +0 -0
  167. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/markdown/markdown.py +0 -0
  168. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/markdown/markdown.pyi +0 -0
  169. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/moment/__init__.py +0 -0
  170. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/moment/moment.py +0 -0
  171. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/moment/moment.pyi +0 -0
  172. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/plotly/__init__.py +0 -0
  173. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/plotly/plotly.py +0 -0
  174. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/plotly/plotly.pyi +0 -0
  175. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/props.py +0 -0
  176. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/__init__.py +0 -0
  177. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/__init__.pyi +0 -0
  178. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/__init__.py +0 -0
  179. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/__init__.pyi +0 -0
  180. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/accordion.py +0 -0
  181. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/accordion.pyi +0 -0
  182. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/base.py +0 -0
  183. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/base.pyi +0 -0
  184. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/drawer.py +0 -0
  185. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/drawer.pyi +0 -0
  186. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/form.py +0 -0
  187. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/form.pyi +0 -0
  188. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/progress.py +0 -0
  189. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/progress.pyi +0 -0
  190. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/slider.py +0 -0
  191. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/primitives/slider.pyi +0 -0
  192. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/__init__.py +0 -0
  193. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/__init__.pyi +0 -0
  194. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/base.py +0 -0
  195. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/base.pyi +0 -0
  196. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/color_mode.py +0 -0
  197. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/color_mode.pyi +0 -0
  198. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/__init__.py +0 -0
  199. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  200. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  201. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  202. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  203. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  204. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/avatar.py +0 -0
  205. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  206. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/badge.py +0 -0
  207. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/badge.pyi +0 -0
  208. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/button.py +0 -0
  209. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/button.pyi +0 -0
  210. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/callout.py +0 -0
  211. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/callout.pyi +0 -0
  212. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/card.py +0 -0
  213. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/card.pyi +0 -0
  214. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/checkbox.py +0 -0
  215. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  216. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  217. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  218. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  219. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  220. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/context_menu.py +0 -0
  221. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  222. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/data_list.py +0 -0
  223. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  224. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/dialog.py +0 -0
  225. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  226. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  227. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  228. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/hover_card.py +0 -0
  229. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  230. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/icon_button.py +0 -0
  231. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  232. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/inset.py +0 -0
  233. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/inset.pyi +0 -0
  234. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/popover.py +0 -0
  235. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/popover.pyi +0 -0
  236. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/progress.py +0 -0
  237. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/progress.pyi +0 -0
  238. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/radio.py +0 -0
  239. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/radio.pyi +0 -0
  240. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  241. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  242. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/radio_group.py +0 -0
  243. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  244. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  245. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  246. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  247. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  248. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/select.py +0 -0
  249. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/select.pyi +0 -0
  250. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/separator.py +0 -0
  251. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/separator.pyi +0 -0
  252. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/skeleton.py +0 -0
  253. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  254. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/slider.py +0 -0
  255. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/slider.pyi +0 -0
  256. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/spinner.py +0 -0
  257. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  258. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/switch.py +0 -0
  259. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/switch.pyi +0 -0
  260. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/table.py +0 -0
  261. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/table.pyi +0 -0
  262. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/tabs.py +0 -0
  263. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  264. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/text_area.py +0 -0
  265. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  266. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/text_field.py +0 -0
  267. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  268. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/tooltip.py +0 -0
  269. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  270. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/__init__.py +0 -0
  271. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  272. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/base.py +0 -0
  273. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/base.pyi +0 -0
  274. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/box.py +0 -0
  275. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/box.pyi +0 -0
  276. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/center.py +0 -0
  277. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/center.pyi +0 -0
  278. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/container.py +0 -0
  279. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/container.pyi +0 -0
  280. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/flex.py +0 -0
  281. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  282. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/grid.py +0 -0
  283. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  284. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/list.py +0 -0
  285. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/list.pyi +0 -0
  286. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/section.py +0 -0
  287. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/section.pyi +0 -0
  288. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/spacer.py +0 -0
  289. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  290. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/stack.py +0 -0
  291. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  292. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/__init__.py +0 -0
  293. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  294. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/base.py +0 -0
  295. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  296. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  297. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/code.py +0 -0
  298. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/code.pyi +0 -0
  299. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/heading.py +0 -0
  300. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  301. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/link.py +0 -0
  302. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/link.pyi +0 -0
  303. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/text.py +0 -0
  304. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/radix/themes/typography/text.pyi +0 -0
  305. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/__init__.py +0 -0
  306. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/audio.py +0 -0
  307. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/audio.pyi +0 -0
  308. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/react_player.py +0 -0
  309. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/react_player.pyi +0 -0
  310. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/video.py +0 -0
  311. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/react_player/video.pyi +0 -0
  312. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/__init__.py +0 -0
  313. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/__init__.pyi +0 -0
  314. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/cartesian.py +0 -0
  315. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/cartesian.pyi +0 -0
  316. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/charts.py +0 -0
  317. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/charts.pyi +0 -0
  318. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/general.py +0 -0
  319. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/general.pyi +0 -0
  320. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/polar.py +0 -0
  321. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/polar.pyi +0 -0
  322. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/recharts.py +0 -0
  323. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/recharts/recharts.pyi +0 -0
  324. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/sonner/__init__.py +0 -0
  325. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/sonner/toast.py +0 -0
  326. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/sonner/toast.pyi +0 -0
  327. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/tags/__init__.py +0 -0
  328. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/tags/cond_tag.py +0 -0
  329. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/tags/iter_tag.py +0 -0
  330. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/tags/match_tag.py +0 -0
  331. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/tags/tag.py +0 -0
  332. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/components/tags/tagless.py +0 -0
  333. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/__init__.py +0 -0
  334. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/base.py +0 -0
  335. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/colors.py +0 -0
  336. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/compiler.py +0 -0
  337. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/config.py +0 -0
  338. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/custom_components.py +0 -0
  339. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/event.py +0 -0
  340. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/installer.py +0 -0
  341. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/route.py +0 -0
  342. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/state.py +0 -0
  343. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/constants/utils.py +0 -0
  344. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/custom_components/__init__.py +0 -0
  345. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/custom_components/custom_components.py +0 -0
  346. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/event.py +0 -0
  347. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/experimental/__init__.py +0 -0
  348. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/experimental/client_state.py +0 -0
  349. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/experimental/hooks.py +0 -0
  350. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/__init__.py +0 -0
  351. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/data.py +0 -0
  352. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/dynamic.py +0 -0
  353. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/manager.py +0 -0
  354. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/proxy.py +0 -0
  355. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/storage.py +0 -0
  356. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/istate/wrappers.py +0 -0
  357. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/middleware/__init__.py +0 -0
  358. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/middleware/hydrate_middleware.py +0 -0
  359. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/middleware/middleware.py +0 -0
  360. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/model.py +0 -0
  361. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/page.py +0 -0
  362. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/plugins/__init__.py +0 -0
  363. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/plugins/base.py +0 -0
  364. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/plugins/shared_tailwind.py +0 -0
  365. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/plugins/sitemap.py +0 -0
  366. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/plugins/tailwind_v3.py +0 -0
  367. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/plugins/tailwind_v4.py +0 -0
  368. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/py.typed +0 -0
  369. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/reflex.py +0 -0
  370. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/route.py +0 -0
  371. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/state.py +0 -0
  372. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/style.py +0 -0
  373. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/testing.py +0 -0
  374. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/__init__.py +0 -0
  375. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/build.py +0 -0
  376. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/codespaces.py +0 -0
  377. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/compat.py +0 -0
  378. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/console.py +0 -0
  379. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/decorator.py +0 -0
  380. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/exceptions.py +0 -0
  381. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/export.py +0 -0
  382. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/format.py +0 -0
  383. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/imports.py +0 -0
  384. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/lazy_loader.py +0 -0
  385. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/net.py +0 -0
  386. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/path_ops.py +0 -0
  387. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/prerequisites.py +0 -0
  388. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/pyi_generator.py +0 -0
  389. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/redir.py +0 -0
  390. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/registry.py +0 -0
  391. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/serializers.py +0 -0
  392. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/telemetry.py +0 -0
  393. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/utils/types.py +0 -0
  394. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/__init__.py +0 -0
  395. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/base.py +0 -0
  396. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/datetime.py +0 -0
  397. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/dep_tracking.py +0 -0
  398. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/function.py +0 -0
  399. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/number.py +0 -0
  400. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/object.py +0 -0
  401. {reflex-0.8.0a6 → reflex-0.8.0a7}/reflex/vars/sequence.py +0 -0
  402. {reflex-0.8.0a6 → reflex-0.8.0a7}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.8.0a6
3
+ Version: 0.8.0a7
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -21,7 +21,7 @@ Requires-Python: <4.0,>=3.10
21
21
  Requires-Dist: alembic<2.0,>=1.15.2
22
22
  Requires-Dist: click>=8.2
23
23
  Requires-Dist: fastapi>=0.115.0
24
- Requires-Dist: granian[reload]>=2.2.5
24
+ Requires-Dist: granian[reload]>=2.4.0
25
25
  Requires-Dist: httpx<1.0,>=0.28.0
26
26
  Requires-Dist: jinja2<4.0,>=3.1.2
27
27
  Requires-Dist: packaging<26,>=24.2
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "reflex"
3
- version = "0.8.0a6"
3
+ version = "0.8.0a7"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -22,7 +22,7 @@ requires-python = ">=3.10,<4.0"
22
22
  dependencies = [
23
23
  "alembic >=1.15.2,<2.0",
24
24
  "fastapi >=0.115.0",
25
- "granian[reload] >=2.2.5",
25
+ "granian[reload] >=2.4.0",
26
26
  "httpx >=0.28.0,<1.0",
27
27
  "jinja2 >=3.1.2,<4.0",
28
28
  "packaging >=24.2,<26",
@@ -19,7 +19,12 @@ from reflex.base import Base
19
19
  from reflex.constants.base import LogLevel
20
20
  from reflex.environment import EnvironmentVariables as EnvironmentVariables
21
21
  from reflex.environment import EnvVar as EnvVar
22
- from reflex.environment import ExistingPath, interpret_env_var_value
22
+ from reflex.environment import (
23
+ ExistingPath,
24
+ _load_dotenv_from_files,
25
+ _paths_from_env_files,
26
+ interpret_env_var_value,
27
+ )
23
28
  from reflex.environment import env_var as env_var
24
29
  from reflex.environment import environment as environment
25
30
  from reflex.plugins import Plugin
@@ -27,40 +32,6 @@ from reflex.utils import console
27
32
  from reflex.utils.exceptions import ConfigError
28
33
  from reflex.utils.types import true_type_for_pydantic_field
29
34
 
30
- try:
31
- from dotenv import load_dotenv
32
- except ImportError:
33
- load_dotenv = None
34
-
35
-
36
- def _load_dotenv_from_str(env_files: str) -> None:
37
- if not env_files:
38
- return
39
-
40
- if load_dotenv is None:
41
- console.error(
42
- """The `python-dotenv` package is required to load environment variables from a file. Run `pip install "python-dotenv>=1.1.0"`."""
43
- )
44
- return
45
-
46
- # load env files in reverse order if they exist
47
- for env_file_path in [
48
- Path(p) for s in reversed(env_files.split(os.pathsep)) if (p := s.strip())
49
- ]:
50
- if env_file_path.exists():
51
- load_dotenv(env_file_path, override=True)
52
-
53
-
54
- def _load_dotenv_from_env():
55
- """Load environment variables from paths specified in REFLEX_ENV_FILE."""
56
- env_env_file = os.environ.get("REFLEX_ENV_FILE")
57
- if env_env_file:
58
- _load_dotenv_from_str(env_env_file)
59
-
60
-
61
- # Load the env files at import time if they are set in the ENV_FILE environment variable.
62
- _load_dotenv_from_env()
63
-
64
35
 
65
36
  class DBConfig(Base):
66
37
  """Database config."""
@@ -358,7 +329,7 @@ class Config(Base):
358
329
  The updated config values.
359
330
  """
360
331
  if self.env_file:
361
- _load_dotenv_from_str(self.env_file)
332
+ _load_dotenv_from_files(_paths_from_env_files(self.env_file))
362
333
 
363
334
  updated_values = {}
364
335
  # Iterate over the fields.
@@ -606,3 +606,73 @@ class EnvironmentVariables:
606
606
 
607
607
 
608
608
  environment = EnvironmentVariables()
609
+
610
+ try:
611
+ from dotenv import load_dotenv
612
+ except ImportError:
613
+ load_dotenv = None
614
+
615
+
616
+ def _paths_from_env_files(env_files: str) -> list[Path]:
617
+ """Convert a string of paths separated by os.pathsep into a list of Path objects.
618
+
619
+ Args:
620
+ env_files: The string of paths.
621
+
622
+ Returns:
623
+ A list of Path objects.
624
+ """
625
+ # load env files in reverse order
626
+ return list(
627
+ reversed(
628
+ [
629
+ Path(path)
630
+ for path_element in env_files.split(os.pathsep)
631
+ if (path := path_element.strip())
632
+ ]
633
+ )
634
+ )
635
+
636
+
637
+ def _load_dotenv_from_files(files: list[Path]):
638
+ """Load environment variables from a list of files.
639
+
640
+ Args:
641
+ files: A list of Path objects representing the environment variable files.
642
+ """
643
+ from reflex.utils import console
644
+
645
+ if not files:
646
+ return
647
+
648
+ if load_dotenv is None:
649
+ console.error(
650
+ """The `python-dotenv` package is required to load environment variables from a file. Run `pip install "python-dotenv>=1.1.0"`."""
651
+ )
652
+ return
653
+
654
+ for env_file in files:
655
+ if env_file.exists():
656
+ load_dotenv(env_file, override=True)
657
+
658
+
659
+ def _paths_from_environment() -> list[Path]:
660
+ """Get the paths from the REFLEX_ENV_FILE environment variable.
661
+
662
+ Returns:
663
+ A list of Path objects.
664
+ """
665
+ env_files = os.environ.get("REFLEX_ENV_FILE")
666
+ if not env_files:
667
+ return []
668
+
669
+ return _paths_from_env_files(env_files)
670
+
671
+
672
+ def _load_dotenv_from_env():
673
+ """Load environment variables from paths specified in REFLEX_ENV_FILE."""
674
+ _load_dotenv_from_files(_paths_from_environment())
675
+
676
+
677
+ # Load the env files at import time if they are set in the ENV_FILE environment variable.
678
+ _load_dotenv_from_env()
@@ -519,9 +519,11 @@ def run_granian_backend(host: str, port: int, loglevel: LogLevel):
519
519
 
520
520
  from granian.constants import Interfaces
521
521
  from granian.log import LogLevels
522
- from granian.server import MPServer as Granian
522
+ from granian.server import Server as Granian
523
523
 
524
- Granian(
524
+ from reflex.environment import _paths_from_environment
525
+
526
+ granian_app = Granian(
525
527
  target=get_app_instance_from_file(),
526
528
  factory=True,
527
529
  address=host,
@@ -533,8 +535,11 @@ def run_granian_backend(host: str, port: int, loglevel: LogLevel):
533
535
  reload_ignore_worker_failure=True,
534
536
  reload_ignore_patterns=HOTRELOAD_IGNORE_PATTERNS,
535
537
  reload_tick=100,
538
+ env_files=_paths_from_environment() or None,
536
539
  workers_kill_timeout=2,
537
- ).serve()
540
+ )
541
+
542
+ granian_app.serve()
538
543
 
539
544
 
540
545
  def run_backend_prod(
@@ -31,14 +31,13 @@ def get_module_path(module_name: str) -> Path | None:
31
31
  for i, part in enumerate(parts):
32
32
  potential_file = current_path / (part + ".py")
33
33
  potential_dir = current_path / part
34
- potential_init = current_path / part / "__init__.py"
35
34
 
36
35
  if potential_file.is_file():
37
36
  # We encountered a file, but we can't continue deeper
38
37
  if i == len(parts) - 1:
39
38
  return potential_file
40
39
  return None # Can't continue deeper
41
- if potential_dir.is_dir() and potential_init.is_file():
40
+ if potential_dir.is_dir():
42
41
  # It's a package, so we can continue deeper
43
42
  current_path = potential_dir
44
43
  else:
@@ -61,8 +61,16 @@ def is_process_on_port(port: int) -> bool:
61
61
  Returns:
62
62
  Whether a process is running on the given port.
63
63
  """
64
+ # Test IPv4 localhost (127.0.0.1)
64
65
  with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
65
- return sock.connect_ex(("127.0.0.1", port)) == 0
66
+ ipv4_result = sock.connect_ex(("127.0.0.1", port)) == 0
67
+
68
+ # Test IPv6 localhost (::1)
69
+ with closing(socket.socket(socket.AF_INET6, socket.SOCK_STREAM)) as sock:
70
+ ipv6_result = sock.connect_ex(("::1", port)) == 0
71
+
72
+ # Port is in use if either IPv4 or IPv6 is listening
73
+ return ipv4_result or ipv6_result
66
74
 
67
75
 
68
76
  def change_port(port: int, _type: str) -> int:
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