reflex 0.6.0a3__tar.gz → 0.6.0a4__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 (381) hide show
  1. {reflex-0.6.0a3 → reflex-0.6.0a4}/PKG-INFO +4 -3
  2. {reflex-0.6.0a3 → reflex-0.6.0a4}/README.md +1 -1
  3. {reflex-0.6.0a3 → reflex-0.6.0a4}/pyproject.toml +3 -3
  4. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +1 -1
  5. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/state.js +3 -1
  6. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/app.py +2 -6
  7. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/app_module_for_backend.py +1 -1
  8. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/component.py +9 -1
  9. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/breakpoints.py +1 -3
  10. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/event.py +2 -2
  11. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/client_state.py +7 -6
  12. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/state.py +0 -1
  13. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/prerequisites.py +20 -7
  14. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/telemetry.py +1 -1
  15. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/types.py +1 -1
  16. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/vars/sequence.py +0 -8
  17. {reflex-0.6.0a3 → reflex-0.6.0a4}/LICENSE +0 -0
  18. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  19. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  20. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/apps/blank/code/blank.py +0 -0
  21. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  22. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  23. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  24. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  25. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  26. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  27. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  28. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  29. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  30. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  31. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  32. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  33. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  34. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  35. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  36. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  37. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  38. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  39. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  40. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/.gitignore +0 -0
  41. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  42. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/jsconfig.json +0 -0
  43. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/next.config.js +0 -0
  44. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/postcss.config.js +0 -0
  45. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/styles/tailwind.css +0 -0
  46. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  47. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  48. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  49. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  50. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/helpers/range.js +0 -0
  51. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  52. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/__init__.py +0 -0
  53. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/__init__.pyi +0 -0
  54. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/__main__.py +0 -0
  55. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/admin.py +0 -0
  56. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/app_mixins/__init__.py +0 -0
  57. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/app_mixins/lifespan.py +0 -0
  58. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/app_mixins/middleware.py +0 -0
  59. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/app_mixins/mixin.py +0 -0
  60. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/base.py +0 -0
  61. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/compiler/__init__.py +0 -0
  62. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/compiler/compiler.py +0 -0
  63. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/compiler/templates.py +0 -0
  64. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/compiler/utils.py +0 -0
  65. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/__init__.py +0 -0
  66. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/__init__.pyi +0 -0
  67. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/__init__.py +0 -0
  68. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/__init__.pyi +0 -0
  69. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/app_wrap.py +0 -0
  70. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/app_wrap.pyi +0 -0
  71. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/bare.py +0 -0
  72. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/body.py +0 -0
  73. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/body.pyi +0 -0
  74. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/document.py +0 -0
  75. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/document.pyi +0 -0
  76. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/error_boundary.py +0 -0
  77. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/error_boundary.pyi +0 -0
  78. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/fragment.py +0 -0
  79. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/fragment.pyi +0 -0
  80. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/head.py +0 -0
  81. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/head.pyi +0 -0
  82. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/link.py +0 -0
  83. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/link.pyi +0 -0
  84. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/meta.py +0 -0
  85. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/meta.pyi +0 -0
  86. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/script.py +0 -0
  87. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/base/script.pyi +0 -0
  88. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/__init__.py +0 -0
  89. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/__init__.pyi +0 -0
  90. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/banner.py +0 -0
  91. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/banner.pyi +0 -0
  92. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/client_side_routing.py +0 -0
  93. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/client_side_routing.pyi +0 -0
  94. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/clipboard.py +0 -0
  95. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/clipboard.pyi +0 -0
  96. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/colors.py +0 -0
  97. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/cond.py +0 -0
  98. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/debounce.py +0 -0
  99. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/debounce.pyi +0 -0
  100. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/foreach.py +0 -0
  101. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/html.py +0 -0
  102. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/html.pyi +0 -0
  103. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/layout/__init__.py +0 -0
  104. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/match.py +0 -0
  105. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/responsive.py +0 -0
  106. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/upload.py +0 -0
  107. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/core/upload.pyi +0 -0
  108. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/__init__.py +0 -0
  109. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/__init__.pyi +0 -0
  110. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/code.py +0 -0
  111. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/code.pyi +0 -0
  112. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/dataeditor.py +0 -0
  113. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  114. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/datadisplay/logo.py +0 -0
  115. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/__init__.py +0 -0
  116. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/__init__.pyi +0 -0
  117. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/constants/__init__.py +0 -0
  118. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/constants/html.py +0 -0
  119. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/constants/react.py +0 -0
  120. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/constants/reflex.py +0 -0
  121. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/element.py +0 -0
  122. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/element.pyi +0 -0
  123. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/__init__.py +0 -0
  124. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/__init__.pyi +0 -0
  125. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/base.py +0 -0
  126. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/base.pyi +0 -0
  127. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/forms.py +0 -0
  128. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/forms.pyi +0 -0
  129. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/inline.py +0 -0
  130. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/inline.pyi +0 -0
  131. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/media.py +0 -0
  132. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/media.pyi +0 -0
  133. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/metadata.py +0 -0
  134. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/metadata.pyi +0 -0
  135. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/other.py +0 -0
  136. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/other.pyi +0 -0
  137. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/scripts.py +0 -0
  138. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/scripts.pyi +0 -0
  139. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/sectioning.py +0 -0
  140. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/sectioning.pyi +0 -0
  141. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/tables.py +0 -0
  142. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/tables.pyi +0 -0
  143. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/typography.py +0 -0
  144. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/el/elements/typography.pyi +0 -0
  145. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/gridjs/__init__.py +0 -0
  146. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/gridjs/datatable.py +0 -0
  147. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/gridjs/datatable.pyi +0 -0
  148. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/literals.py +0 -0
  149. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/lucide/__init__.py +0 -0
  150. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/lucide/icon.py +0 -0
  151. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/lucide/icon.pyi +0 -0
  152. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/markdown/__init__.py +0 -0
  153. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/markdown/markdown.py +0 -0
  154. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/markdown/markdown.pyi +0 -0
  155. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/moment/__init__.py +0 -0
  156. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/moment/moment.py +0 -0
  157. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/moment/moment.pyi +0 -0
  158. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/__init__.py +0 -0
  159. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/base.py +0 -0
  160. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/base.pyi +0 -0
  161. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/image.py +0 -0
  162. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/image.pyi +0 -0
  163. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/link.py +0 -0
  164. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/link.pyi +0 -0
  165. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/video.py +0 -0
  166. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/next/video.pyi +0 -0
  167. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/plotly/__init__.py +0 -0
  168. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/plotly/plotly.py +0 -0
  169. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/plotly/plotly.pyi +0 -0
  170. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/props.py +0 -0
  171. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/__init__.py +0 -0
  172. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/__init__.pyi +0 -0
  173. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/__init__.py +0 -0
  174. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/__init__.pyi +0 -0
  175. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/accordion.py +0 -0
  176. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/accordion.pyi +0 -0
  177. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/base.py +0 -0
  178. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/base.pyi +0 -0
  179. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/drawer.py +0 -0
  180. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/drawer.pyi +0 -0
  181. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/form.py +0 -0
  182. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/form.pyi +0 -0
  183. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/progress.py +0 -0
  184. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/progress.pyi +0 -0
  185. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/slider.py +0 -0
  186. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/primitives/slider.pyi +0 -0
  187. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/__init__.py +0 -0
  188. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/__init__.pyi +0 -0
  189. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/base.py +0 -0
  190. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/base.pyi +0 -0
  191. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/color_mode.py +0 -0
  192. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/color_mode.pyi +0 -0
  193. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/__init__.py +0 -0
  194. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  195. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  196. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  197. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  198. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  199. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/avatar.py +0 -0
  200. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  201. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/badge.py +0 -0
  202. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/badge.pyi +0 -0
  203. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/button.py +0 -0
  204. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/button.pyi +0 -0
  205. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/callout.py +0 -0
  206. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/callout.pyi +0 -0
  207. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/card.py +0 -0
  208. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/card.pyi +0 -0
  209. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/checkbox.py +0 -0
  210. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  211. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  212. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  213. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  214. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  215. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/context_menu.py +0 -0
  216. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  217. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/data_list.py +0 -0
  218. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  219. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/dialog.py +0 -0
  220. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  221. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  222. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  223. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/hover_card.py +0 -0
  224. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  225. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/icon_button.py +0 -0
  226. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  227. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/inset.py +0 -0
  228. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/inset.pyi +0 -0
  229. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/popover.py +0 -0
  230. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/popover.pyi +0 -0
  231. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/progress.py +0 -0
  232. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/progress.pyi +0 -0
  233. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/radio.py +0 -0
  234. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/radio.pyi +0 -0
  235. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  236. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  237. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/radio_group.py +0 -0
  238. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  239. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  240. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  241. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  242. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  243. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/select.py +0 -0
  244. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/select.pyi +0 -0
  245. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/separator.py +0 -0
  246. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/separator.pyi +0 -0
  247. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/skeleton.py +0 -0
  248. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  249. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/slider.py +0 -0
  250. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/slider.pyi +0 -0
  251. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/spinner.py +0 -0
  252. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  253. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/switch.py +0 -0
  254. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/switch.pyi +0 -0
  255. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/table.py +0 -0
  256. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/table.pyi +0 -0
  257. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/tabs.py +0 -0
  258. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  259. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/text_area.py +0 -0
  260. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  261. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/text_field.py +0 -0
  262. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  263. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/tooltip.py +0 -0
  264. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  265. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/__init__.py +0 -0
  266. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  267. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/base.py +0 -0
  268. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/base.pyi +0 -0
  269. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/box.py +0 -0
  270. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/box.pyi +0 -0
  271. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/center.py +0 -0
  272. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/center.pyi +0 -0
  273. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/container.py +0 -0
  274. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/container.pyi +0 -0
  275. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/flex.py +0 -0
  276. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  277. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/grid.py +0 -0
  278. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  279. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/list.py +0 -0
  280. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/list.pyi +0 -0
  281. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/section.py +0 -0
  282. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/section.pyi +0 -0
  283. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/spacer.py +0 -0
  284. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  285. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/stack.py +0 -0
  286. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  287. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/__init__.py +0 -0
  288. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  289. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/base.py +0 -0
  290. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  291. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  292. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/code.py +0 -0
  293. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/code.pyi +0 -0
  294. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/heading.py +0 -0
  295. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  296. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/link.py +0 -0
  297. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/link.pyi +0 -0
  298. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/text.py +0 -0
  299. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/radix/themes/typography/text.pyi +0 -0
  300. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/__init__.py +0 -0
  301. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/audio.py +0 -0
  302. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/audio.pyi +0 -0
  303. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/react_player.py +0 -0
  304. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/react_player.pyi +0 -0
  305. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/video.py +0 -0
  306. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/react_player/video.pyi +0 -0
  307. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/__init__.py +0 -0
  308. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/__init__.pyi +0 -0
  309. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/cartesian.py +0 -0
  310. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/cartesian.pyi +0 -0
  311. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/charts.py +0 -0
  312. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/charts.pyi +0 -0
  313. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/general.py +0 -0
  314. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/general.pyi +0 -0
  315. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/polar.py +0 -0
  316. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/polar.pyi +0 -0
  317. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/recharts.py +0 -0
  318. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/recharts/recharts.pyi +0 -0
  319. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/sonner/__init__.py +0 -0
  320. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/sonner/toast.py +0 -0
  321. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/sonner/toast.pyi +0 -0
  322. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/suneditor/__init__.py +0 -0
  323. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/suneditor/editor.py +0 -0
  324. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/suneditor/editor.pyi +0 -0
  325. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/tags/__init__.py +0 -0
  326. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/tags/cond_tag.py +0 -0
  327. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/tags/iter_tag.py +0 -0
  328. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/tags/match_tag.py +0 -0
  329. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/tags/tag.py +0 -0
  330. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/components/tags/tagless.py +0 -0
  331. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/config.py +0 -0
  332. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/__init__.py +0 -0
  333. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/base.py +0 -0
  334. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/colors.py +0 -0
  335. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/compiler.py +0 -0
  336. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/config.py +0 -0
  337. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/custom_components.py +0 -0
  338. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/event.py +0 -0
  339. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/installer.py +0 -0
  340. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/route.py +0 -0
  341. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/constants/style.py +0 -0
  342. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/custom_components/__init__.py +0 -0
  343. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/custom_components/custom_components.py +0 -0
  344. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/__init__.py +0 -0
  345. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/assets.py +0 -0
  346. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/hooks.py +0 -0
  347. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/layout.py +0 -0
  348. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/layout.pyi +0 -0
  349. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/experimental/misc.py +0 -0
  350. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/middleware/__init__.py +0 -0
  351. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/middleware/hydrate_middleware.py +0 -0
  352. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/middleware/middleware.py +0 -0
  353. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/model.py +0 -0
  354. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/page.py +0 -0
  355. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/reflex.py +0 -0
  356. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/route.py +0 -0
  357. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/style.py +0 -0
  358. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/testing.py +0 -0
  359. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/__init__.py +0 -0
  360. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/build.py +0 -0
  361. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/codespaces.py +0 -0
  362. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/compat.py +0 -0
  363. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/console.py +0 -0
  364. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/exceptions.py +0 -0
  365. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/exec.py +0 -0
  366. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/export.py +0 -0
  367. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/format.py +0 -0
  368. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/imports.py +0 -0
  369. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/lazy_loader.py +0 -0
  370. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/net.py +0 -0
  371. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/path_ops.py +0 -0
  372. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/processes.py +0 -0
  373. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/pyi_generator.py +0 -0
  374. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/redir.py +0 -0
  375. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/registry.py +0 -0
  376. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/utils/serializers.py +0 -0
  377. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/vars/__init__.py +0 -0
  378. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/vars/base.py +0 -0
  379. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/vars/function.py +0 -0
  380. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/vars/number.py +0 -0
  381. {reflex-0.6.0a3 → reflex-0.6.0a4}/reflex/vars/object.py +0 -0
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.6.0a3
3
+ Version: 0.6.0a4
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
7
7
  Keywords: web,framework
8
8
  Author: Nikhil Rao
9
9
  Author-email: nikhil@reflex.dev
10
- Requires-Python: >=3.10,<4.0
10
+ Requires-Python: >=3.9,<4.0
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
14
15
  Classifier: Programming Language :: Python :: 3.10
15
16
  Classifier: Programming Language :: Python :: 3.11
16
17
  Classifier: Programming Language :: Python :: 3.12
@@ -86,7 +87,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
86
87
 
87
88
  ## ⚙️ Installation
88
89
 
89
- Open a terminal and run (Requires Python 3.10+):
90
+ Open a terminal and run (Requires Python 3.9+):
90
91
 
91
92
  ```bash
92
93
  pip install reflex
@@ -35,7 +35,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
35
35
 
36
36
  ## ⚙️ Installation
37
37
 
38
- Open a terminal and run (Requires Python 3.10+):
38
+ Open a terminal and run (Requires Python 3.9+):
39
39
 
40
40
  ```bash
41
41
  pip install reflex
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.6.0a3"
3
+ version = "0.6.0a4"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -26,7 +26,7 @@ packages = [
26
26
  ]
27
27
 
28
28
  [tool.poetry.dependencies]
29
- python = "^3.10"
29
+ python = "^3.9"
30
30
  dill = ">=0.3.8,<0.4"
31
31
  fastapi = ">=0.96.0,!=0.111.0,!=0.111.1"
32
32
  gunicorn = ">=20.1.0,<24.0"
@@ -88,7 +88,7 @@ build-backend = "poetry.core.masonry.api"
88
88
  [tool.pyright]
89
89
 
90
90
  [tool.ruff]
91
- target-version = "py310"
91
+ target-version = "py39"
92
92
  lint.select = ["B", "D", "E", "F", "I", "SIM", "W"]
93
93
  lint.ignore = ["B008", "D203", "D205", "D213", "D401", "D406", "D407", "E501", "F403", "F405", "F541"]
94
94
  lint.pydocstyle.convention = "google"
@@ -8,7 +8,7 @@ version = "0.0.1"
8
8
  description = "Reflex custom component {{ module_name }}"
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
11
- requires-python = ">=3.10"
11
+ requires-python = ">=3.9"
12
12
  authors = [{ name = "", email = "YOUREMAIL@domain.com" }]
13
13
  keywords = ["reflex","reflex-custom-components"]
14
14
 
@@ -805,7 +805,9 @@ export const useEventLoop = (
805
805
  * @returns True if the value is truthy, false otherwise.
806
806
  */
807
807
  export const isTrue = (val) => {
808
- return Array.isArray(val) ? val.length > 0 : !!val;
808
+ if (Array.isArray(val)) return val.length > 0;
809
+ if (val === Object(val)) return Object.keys(val).length > 0;
810
+ return Boolean(val);
809
811
  };
810
812
 
811
813
  /**
@@ -606,10 +606,7 @@ class App(MiddlewareMixin, LifespanMixin, Base):
606
606
  for route in self.pages:
607
607
  replaced_route = replace_brackets_with_keywords(route)
608
608
  for rw, r, nr in zip(
609
- replaced_route.split("/"),
610
- route.split("/"),
611
- new_route.split("/"),
612
- strict=False,
609
+ replaced_route.split("/"), route.split("/"), new_route.split("/")
613
610
  ):
614
611
  if rw in segments and r != nr:
615
612
  # If the slugs in the segments of both routes are not the same, then the route is invalid
@@ -958,7 +955,7 @@ class App(MiddlewareMixin, LifespanMixin, Base):
958
955
 
959
956
  # Prepopulate the global ExecutorSafeFunctions class with input data required by the compile functions.
960
957
  # This is required for multiprocessing to work, in presence of non-picklable inputs.
961
- for route, component in zip(self.pages, page_components, strict=False):
958
+ for route, component in zip(self.pages, page_components):
962
959
  ExecutorSafeFunctions.COMPILE_PAGE_ARGS_BY_ROUTE[route] = (
963
960
  route,
964
961
  component,
@@ -1172,7 +1169,6 @@ class App(MiddlewareMixin, LifespanMixin, Base):
1172
1169
  FRONTEND_ARG_SPEC,
1173
1170
  BACKEND_ARG_SPEC,
1174
1171
  ],
1175
- strict=False,
1176
1172
  ):
1177
1173
  if hasattr(handler_fn, "__name__"):
1178
1174
  _fn_name = handler_fn.__name__
@@ -15,7 +15,7 @@ if constants.CompileVars.APP != "app":
15
15
  telemetry.send("compile")
16
16
  app_module = get_app(reload=False)
17
17
  app = getattr(app_module, constants.CompileVars.APP)
18
- # For py3.8 and py3.9 compatibility when redis is used, we MUST add any decorator pages
18
+ # For py3.9 compatibility when redis is used, we MUST add any decorator pages
19
19
  # before compiling the app in a thread to avoid event loop error (REF-2172).
20
20
  app._apply_decorated_pages()
21
21
  compile_future = ThreadPoolExecutor(max_workers=1).submit(app._compile)
@@ -448,8 +448,16 @@ class Component(BaseComponent, ABC):
448
448
  and not types._issubclass(passed_type, expected_type, value)
449
449
  ):
450
450
  value_name = value._js_expr if isinstance(value, Var) else value
451
+
452
+ additional_info = (
453
+ " You can call `.bool()` on the value to convert it to a boolean."
454
+ if expected_type is bool and isinstance(value, Var)
455
+ else ""
456
+ )
457
+
451
458
  raise TypeError(
452
- f"Invalid var passed for prop {type(self).__name__}.{key}, expected type {expected_type}, got value {value_name} of type {passed_types or passed_type}."
459
+ f"Invalid var passed for prop {type(self).__name__}.{key}, expected type {expected_type}, got value {value_name} of type {passed_type}."
460
+ + additional_info
453
461
  )
454
462
  # Check if the key is an event trigger.
455
463
  if key in component_specific_triggers:
@@ -82,9 +82,7 @@ class Breakpoints(Dict[K, V]):
82
82
  return Breakpoints(
83
83
  {
84
84
  k: v
85
- for k, v in zip(
86
- ["initial", *breakpoint_names], thresholds, strict=False
87
- )
85
+ for k, v in zip(["initial", *breakpoint_names], thresholds)
88
86
  if v is not None
89
87
  }
90
88
  )
@@ -217,7 +217,7 @@ class EventHandler(EventActionsMixin):
217
217
  raise EventHandlerTypeError(
218
218
  f"Arguments to event handlers must be Vars or JSON-serializable. Got {arg} of type {type(arg)}."
219
219
  ) from e
220
- payload = tuple(zip(fn_args, values, strict=False))
220
+ payload = tuple(zip(fn_args, values))
221
221
 
222
222
  # Return the event spec.
223
223
  return EventSpec(
@@ -310,7 +310,7 @@ class EventSpec(EventActionsMixin):
310
310
  raise EventHandlerTypeError(
311
311
  f"Arguments to event handlers must be Vars or JSON-serializable. Got {arg} of type {type(arg)}."
312
312
  ) from e
313
- new_payload = tuple(zip(fn_args, values, strict=False))
313
+ new_payload = tuple(zip(fn_args, values))
314
314
  return self.with_args(self.args + new_payload)
315
315
 
316
316
 
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import dataclasses
6
+ import re
6
7
  import sys
7
8
  from typing import Any, Callable, Union
8
9
 
@@ -174,15 +175,15 @@ class ClientStateVar(Var):
174
175
  else self._setter_name
175
176
  )
176
177
  if value is not NoValue:
177
- import re
178
-
179
178
  # This is a hack to make it work like an EventSpec taking an arg
180
179
  value_str = str(LiteralVar.create(value))
181
180
 
182
- # remove patterns of ["*"] from the value_str using regex
183
- arg = re.sub(r"\[\".*\"\]", "", value_str)
184
-
185
- setter = f"({arg}) => {setter}({str(value)})"
181
+ if value_str.startswith("_"):
182
+ # remove patterns of ["*"] from the value_str using regex
183
+ arg = re.sub(r"\[\".*\"\]", "", value_str)
184
+ setter = f"(({arg}) => {setter}({value_str}))"
185
+ else:
186
+ setter = f"(() => {setter}({value_str}))"
186
187
  return Var(
187
188
  _js_expr=setter,
188
189
  _var_data=VarData(imports=_refs_import if self._global_ref else {}),
@@ -1302,7 +1302,6 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
1302
1302
  for part1, part2 in zip(
1303
1303
  cls.get_full_name().split("."),
1304
1304
  other.get_full_name().split("."),
1305
- strict=False,
1306
1305
  ):
1307
1306
  if part1 != part2:
1308
1307
  break
@@ -73,6 +73,18 @@ def get_web_dir() -> Path:
73
73
  return workdir
74
74
 
75
75
 
76
+ def _python_version_check():
77
+ """Emit deprecation warning for deprecated python versions."""
78
+ # Check for end-of-life python versions.
79
+ if sys.version_info < (3, 10):
80
+ console.deprecate(
81
+ feature_name="Support for Python 3.9 and older",
82
+ reason="please upgrade to Python 3.10 or newer",
83
+ deprecation_version="0.6.0",
84
+ removal_version="0.7.0",
85
+ )
86
+
87
+
76
88
  def check_latest_package_version(package_name: str):
77
89
  """Check if the latest version of the package is installed.
78
90
 
@@ -85,15 +97,16 @@ def check_latest_package_version(package_name: str):
85
97
  url = f"https://pypi.org/pypi/{package_name}/json"
86
98
  response = net.get(url)
87
99
  latest_version = response.json()["info"]["version"]
88
- if (
89
- version.parse(current_version) < version.parse(latest_version)
90
- and not get_or_set_last_reflex_version_check_datetime()
91
- ):
92
- # only show a warning when the host version is outdated and
93
- # the last_version_check_datetime is not set in reflex.json
100
+ if get_or_set_last_reflex_version_check_datetime():
101
+ # Versions were already checked and saved in reflex.json, no need to warn again
102
+ return
103
+ if version.parse(current_version) < version.parse(latest_version):
104
+ # Show a warning when the host version is older than PyPI version
94
105
  console.warn(
95
106
  f"Your version ({current_version}) of {package_name} is out of date. Upgrade to {latest_version} with 'pip install {package_name} --upgrade'"
96
107
  )
108
+ # Check for depreacted python versions
109
+ _python_version_check()
97
110
  except Exception:
98
111
  pass
99
112
 
@@ -290,7 +303,7 @@ def get_compiled_app(reload: bool = False, export: bool = False) -> ModuleType:
290
303
  """
291
304
  app_module = get_app(reload=reload)
292
305
  app = getattr(app_module, constants.CompileVars.APP)
293
- # For py3.8 and py3.9 compatibility when redis is used, we MUST add any decorator pages
306
+ # For py3.9 compatibility when redis is used, we MUST add any decorator pages
294
307
  # before compiling the app in a thread to avoid event loop error (REF-2172).
295
308
  app._apply_decorated_pages()
296
309
  app._compile(export=export)
@@ -121,7 +121,7 @@ def _prepare_event(event: str, **kwargs) -> dict:
121
121
  return {}
122
122
 
123
123
  if UTC is None:
124
- # for python 3.10
124
+ # for python 3.9 & 3.10
125
125
  stamp = datetime.utcnow().isoformat()
126
126
  else:
127
127
  # for python 3.11 & 3.12
@@ -632,7 +632,7 @@ def validate_parameter_literals(func):
632
632
  annotations = {param[0]: param[1].annotation for param in func_params}
633
633
 
634
634
  # validate args
635
- for param, arg in zip(annotations, args, strict=False):
635
+ for param, arg in zip(annotations, args):
636
636
  if annotations[param] is inspect.Parameter.empty:
637
637
  continue
638
638
  validate_literal(param, arg, annotations[param], func.__name__)
@@ -194,14 +194,6 @@ class StringVar(Var[str]):
194
194
  """
195
195
  return string_strip_operation(self)
196
196
 
197
- def bool(self):
198
- """Boolean conversion.
199
-
200
- Returns:
201
- The boolean value of the string.
202
- """
203
- return self.length() != 0
204
-
205
197
  def reversed(self) -> StringVar:
206
198
  """Reverse the string.
207
199
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes