reflex 0.6.6.post3__tar.gz → 0.6.7__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.
- {reflex-0.6.6.post3 → reflex-0.6.7}/PKG-INFO +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/pyproject.toml +18 -24
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +5 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/state.js +36 -28
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/__init__.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/__init__.pyi +1 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/app.py +41 -16
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/assets.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/base.py +8 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/compiler/templates.py +1 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/compiler/utils.py +2 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/bare.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/component.py +54 -29
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/banner.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/banner.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/client_side_routing.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/client_side_routing.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/clipboard.py +11 -9
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/clipboard.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/cond.py +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/foreach.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/html.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/upload.py +8 -8
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/code.py +5 -5
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/dataeditor.py +8 -28
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/dataeditor.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/shiki_code_block.py +7 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/dynamic.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/__init__.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/__init__.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/base.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/base.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/forms.py +40 -10
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/forms.pyi +17 -15
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/inline.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/inline.pyi +28 -28
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/media.py +1 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/media.pyi +25 -26
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/metadata.py +6 -6
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/metadata.pyi +4 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/other.py +17 -9
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/other.pyi +7 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/scripts.py +1 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/scripts.pyi +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/sectioning.py +16 -16
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/sectioning.pyi +15 -15
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/tables.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/tables.pyi +10 -10
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/typography.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/elements/typography.pyi +15 -15
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/markdown/markdown.py +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/image.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/image.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/plotly/plotly.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/accordion.py +2 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/form.pyi +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/slider.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/base.py +4 -10
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/color_mode.pyi +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/alert_dialog.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/badge.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/button.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/callout.pyi +5 -5
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/card.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/checkbox.pyi +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/context_menu.py +11 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/context_menu.pyi +155 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/dialog.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/hover_card.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/icon_button.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/icon_button.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/inset.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/popover.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/radio_group.py +2 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/radio_group.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/select.pyi +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/slider.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/switch.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/table.pyi +7 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/tabs.pyi +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/text_area.py +3 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/text_area.pyi +3 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/text_field.py +16 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/text_field.pyi +105 -17
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/box.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/center.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/flex.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/grid.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/list.py +0 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/list.pyi +3 -8
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/section.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/spacer.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/stack.pyi +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/blockquote.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/code.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/heading.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/link.py +5 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/link.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/text.pyi +7 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/cartesian.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/charts.py +4 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/polar.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/polar.pyi +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/sonner/toast.py +4 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/suneditor/editor.py +6 -6
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/suneditor/editor.pyi +6 -6
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/config.py +25 -10
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/compiler.py +6 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/config.py +2 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/custom_components.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/route.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/custom_components/custom_components.py +21 -21
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/event.py +57 -22
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/client_state.py +2 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/layout.py +0 -6
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/model.py +125 -9
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/reflex.py +5 -6
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/state.py +200 -88
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/style.py +1 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/testing.py +10 -11
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/build.py +1 -1
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/console.py +75 -6
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/exceptions.py +12 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/exec.py +10 -10
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/export.py +1 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/format.py +11 -8
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/path_ops.py +2 -2
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/prerequisites.py +31 -28
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/processes.py +4 -4
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/pyi_generator.py +12 -11
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/types.py +6 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/vars/__init__.py +1 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/vars/base.py +75 -38
- reflex-0.6.7/reflex/vars/datetime.py +222 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/vars/function.py +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/vars/number.py +3 -3
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/vars/object.py +5 -5
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/vars/sequence.py +7 -7
- {reflex-0.6.6.post3 → reflex-0.6.7}/LICENSE +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/README.md +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/next.config.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/styles/tailwind.css +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/client_side_routing.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/__main__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/admin.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/app_module_for_backend.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/compiler/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/compiler/compiler.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/body.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/body.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/document.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/document.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/fragment.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/head.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/head.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/link.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/link.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/meta.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/script.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/base/script.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/colors.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/debounce.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/html.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/match.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/responsive.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/element.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/el/element.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/literals.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/lucide/icon.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/lucide/icon.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/moment/moment.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/base.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/base.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/link.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/link.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/video.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/next/video.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/props.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/video.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/general.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/suneditor/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/tags/tag.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/base.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/colors.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/event.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/installer.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/state.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/style.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/constants/utils.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/assets.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/hooks.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/layout.pyi +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/experimental/misc.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/istate/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/istate/data.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/istate/dynamic.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/istate/proxy.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/istate/storage.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/istate/wrappers.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/middleware/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/middleware/middleware.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/page.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/route.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/__init__.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/codespaces.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/compat.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/imports.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/net.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/redir.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/registry.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/serializers.py +0 -0
- {reflex-0.6.6.post3 → reflex-0.6.7}/reflex/utils/telemetry.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.7
|
|
4
4
|
Summary: Web apps in pure Python.
|
|
5
5
|
Home-page: https://reflex.dev
|
|
6
6
|
License: Apache-2.0
|
|
@@ -39,7 +39,7 @@ Requires-Dist: setuptools (>=75.0)
|
|
|
39
39
|
Requires-Dist: sqlmodel (>=0.0.14,<0.1)
|
|
40
40
|
Requires-Dist: starlette-admin (>=0.11.0,<1.0)
|
|
41
41
|
Requires-Dist: tomlkit (>=0.12.4,<1.0)
|
|
42
|
-
Requires-Dist: twine (>=4.0.0,<
|
|
42
|
+
Requires-Dist: twine (>=4.0.0,<7.0)
|
|
43
43
|
Requires-Dist: typer (>=0.4.2,<1.0)
|
|
44
44
|
Requires-Dist: typing_extensions (>=4.6.0)
|
|
45
45
|
Requires-Dist: uvicorn (>=0.20.0)
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "reflex"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.7"
|
|
4
4
|
description = "Web apps in pure Python."
|
|
5
5
|
license = "Apache-2.0"
|
|
6
6
|
authors = [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"Nikhil Rao <nikhil@reflex.dev>",
|
|
8
|
+
"Alek Petuskey <alek@reflex.dev>",
|
|
9
|
+
"Masen Furer <masen@reflex.dev>",
|
|
10
|
+
"Elijah Ahianyo <elijah@reflex.dev>",
|
|
11
|
+
"Thomas Brandého <thomas@reflex.dev>",
|
|
12
12
|
]
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
homepage = "https://reflex.dev"
|
|
15
15
|
repository = "https://github.com/reflex-dev/reflex"
|
|
16
16
|
documentation = "https://reflex.dev/docs/getting-started/introduction"
|
|
17
|
-
keywords = [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
]
|
|
21
|
-
classifiers = [
|
|
22
|
-
"Development Status :: 4 - Beta",
|
|
23
|
-
]
|
|
24
|
-
packages = [
|
|
25
|
-
{include = "reflex"}
|
|
26
|
-
]
|
|
17
|
+
keywords = ["web", "framework"]
|
|
18
|
+
classifiers = ["Development Status :: 4 - Beta"]
|
|
19
|
+
packages = [{ include = "reflex" }]
|
|
27
20
|
|
|
28
21
|
[tool.poetry.dependencies]
|
|
29
22
|
python = "^3.9"
|
|
@@ -42,11 +35,11 @@ uvicorn = ">=0.20.0"
|
|
|
42
35
|
starlette-admin = ">=0.11.0,<1.0"
|
|
43
36
|
alembic = ">=1.11.1,<2.0"
|
|
44
37
|
platformdirs = ">=3.10.0,<5.0"
|
|
45
|
-
distro = {version = ">=1.8.0,<2.0", platform = "linux"}
|
|
38
|
+
distro = { version = ">=1.8.0,<2.0", platform = "linux" }
|
|
46
39
|
python-engineio = "!=4.6.0"
|
|
47
40
|
wrapt = [
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
{ version = ">=1.14.0,<2.0", python = ">=3.11" },
|
|
42
|
+
{ version = ">=1.11.0,<2.0", python = "<3.11" },
|
|
50
43
|
]
|
|
51
44
|
packaging = ">=23.1,<25.0"
|
|
52
45
|
reflex-hosting-cli = ">=0.1.29,<2.0"
|
|
@@ -55,7 +48,7 @@ wheel = ">=0.42.0,<1.0"
|
|
|
55
48
|
build = ">=1.0.3,<2.0"
|
|
56
49
|
setuptools = ">=75.0"
|
|
57
50
|
httpx = ">=0.25.1,<1.0"
|
|
58
|
-
twine = ">=4.0.0,<
|
|
51
|
+
twine = ">=4.0.0,<7.0"
|
|
59
52
|
tomlkit = ">=0.12.4,<1.0"
|
|
60
53
|
lazy_loader = ">=0.4"
|
|
61
54
|
reflex-chakra = ">=0.6.0"
|
|
@@ -70,7 +63,7 @@ dill = ">=0.3.8"
|
|
|
70
63
|
toml = ">=0.10.2,<1.0"
|
|
71
64
|
pytest-asyncio = ">=0.24.0"
|
|
72
65
|
pytest-cov = ">=4.0.0,<7.0"
|
|
73
|
-
ruff = "0.
|
|
66
|
+
ruff = "0.8.2"
|
|
74
67
|
pandas = ">=2.1.1,<3.0"
|
|
75
68
|
pillow = ">=10.0.0,<12.0"
|
|
76
69
|
plotly = ">=5.13.0,<6.0"
|
|
@@ -92,14 +85,15 @@ build-backend = "poetry.core.masonry.api"
|
|
|
92
85
|
|
|
93
86
|
[tool.ruff]
|
|
94
87
|
target-version = "py39"
|
|
88
|
+
output-format = "concise"
|
|
95
89
|
lint.isort.split-on-trailing-comma = false
|
|
96
|
-
lint.select = ["B", "D", "E", "F", "I", "SIM", "W"]
|
|
97
|
-
lint.ignore = ["B008", "D205", "E501", "F403", "SIM115"]
|
|
90
|
+
lint.select = ["B", "C4", "D", "E", "ERA", "F", "FURB", "I", "PERF", "PTH", "RUF", "SIM", "W"]
|
|
91
|
+
lint.ignore = ["B008", "D205", "E501", "F403", "SIM115", "RUF006", "RUF012"]
|
|
98
92
|
lint.pydocstyle.convention = "google"
|
|
99
93
|
|
|
100
94
|
[tool.ruff.lint.per-file-ignores]
|
|
101
95
|
"__init__.py" = ["F401"]
|
|
102
|
-
"tests/*.py" = ["D100", "D103", "D104", "B018"]
|
|
96
|
+
"tests/*.py" = ["D100", "D103", "D104", "B018", "PERF"]
|
|
103
97
|
"reflex/.templates/*.py" = ["D100", "D103", "D104"]
|
|
104
98
|
"*.pyi" = ["D301", "D415", "D417", "D418", "E742"]
|
|
105
99
|
"*/blank.py" = ["I001"]
|
{reflex-0.6.6.post3 → reflex-0.6.7}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2
RENAMED
|
@@ -5,11 +5,15 @@ export function {{tag_name}} () {
|
|
|
5
5
|
{{ hook }}
|
|
6
6
|
{% endfor %}
|
|
7
7
|
|
|
8
|
+
{% for hook, data in component._get_all_hooks().items() if not data.position or data.position == const.hook_position.PRE_TRIGGER %}
|
|
9
|
+
{{ hook }}
|
|
10
|
+
{% endfor %}
|
|
11
|
+
|
|
8
12
|
{% for hook in memo_trigger_hooks %}
|
|
9
13
|
{{ hook }}
|
|
10
14
|
{% endfor %}
|
|
11
15
|
|
|
12
|
-
{% for hook in component._get_all_hooks() %}
|
|
16
|
+
{% for hook, data in component._get_all_hooks().items() if data.position and data.position == const.hook_position.POST_TRIGGER %}
|
|
13
17
|
{{ hook }}
|
|
14
18
|
{% endfor %}
|
|
15
19
|
|
|
@@ -40,9 +40,6 @@ let event_processing = false;
|
|
|
40
40
|
// Array holding pending events to be processed.
|
|
41
41
|
const event_queue = [];
|
|
42
42
|
|
|
43
|
-
// Pending upload promises, by id
|
|
44
|
-
const upload_controllers = {};
|
|
45
|
-
|
|
46
43
|
/**
|
|
47
44
|
* Generate a UUID (Used for session tokens).
|
|
48
45
|
* Taken from: https://stackoverflow.com/questions/105034/how-do-i-create-a-guid-uuid
|
|
@@ -300,7 +297,7 @@ export const applyEvent = async (event, socket) => {
|
|
|
300
297
|
if (socket) {
|
|
301
298
|
socket.emit(
|
|
302
299
|
"event",
|
|
303
|
-
|
|
300
|
+
event,
|
|
304
301
|
);
|
|
305
302
|
return true;
|
|
306
303
|
}
|
|
@@ -407,6 +404,8 @@ export const connect = async (
|
|
|
407
404
|
transports: transports,
|
|
408
405
|
autoUnref: false,
|
|
409
406
|
});
|
|
407
|
+
// Ensure undefined fields in events are sent as null instead of removed
|
|
408
|
+
socket.current.io.encoder.replacer = (k, v) => (v === undefined ? null : v)
|
|
410
409
|
|
|
411
410
|
function checkVisibility() {
|
|
412
411
|
if (document.visibilityState === "visible") {
|
|
@@ -443,8 +442,7 @@ export const connect = async (
|
|
|
443
442
|
});
|
|
444
443
|
|
|
445
444
|
// On each received message, queue the updates and events.
|
|
446
|
-
socket.current.on("event", async (
|
|
447
|
-
const update = JSON5.parse(message);
|
|
445
|
+
socket.current.on("event", async (update) => {
|
|
448
446
|
for (const substate in update.delta) {
|
|
449
447
|
dispatch[substate](update.delta[substate]);
|
|
450
448
|
}
|
|
@@ -456,7 +454,7 @@ export const connect = async (
|
|
|
456
454
|
});
|
|
457
455
|
socket.current.on("reload", async (event) => {
|
|
458
456
|
event_processing = false;
|
|
459
|
-
queueEvents([...initialEvents(),
|
|
457
|
+
queueEvents([...initialEvents(), event], socket);
|
|
460
458
|
});
|
|
461
459
|
|
|
462
460
|
document.addEventListener("visibilitychange", checkVisibility);
|
|
@@ -485,7 +483,9 @@ export const uploadFiles = async (
|
|
|
485
483
|
return false;
|
|
486
484
|
}
|
|
487
485
|
|
|
488
|
-
|
|
486
|
+
const upload_ref_name = `__upload_controllers_${upload_id}`
|
|
487
|
+
|
|
488
|
+
if (refs[upload_ref_name]) {
|
|
489
489
|
console.log("Upload already in progress for ", upload_id);
|
|
490
490
|
return false;
|
|
491
491
|
}
|
|
@@ -497,23 +497,31 @@ export const uploadFiles = async (
|
|
|
497
497
|
// Whenever called, responseText will contain the entire response so far.
|
|
498
498
|
const chunks = progressEvent.event.target.responseText.trim().split("\n");
|
|
499
499
|
// So only process _new_ chunks beyond resp_idx.
|
|
500
|
-
chunks.slice(resp_idx).map((
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
500
|
+
chunks.slice(resp_idx).map((chunk_json) => {
|
|
501
|
+
try {
|
|
502
|
+
const chunk = JSON5.parse(chunk_json);
|
|
503
|
+
event_callbacks.map((f, ix) => {
|
|
504
|
+
f(chunk)
|
|
505
|
+
.then(() => {
|
|
506
|
+
if (ix === event_callbacks.length - 1) {
|
|
507
|
+
// Mark this chunk as processed.
|
|
508
|
+
resp_idx += 1;
|
|
509
|
+
}
|
|
510
|
+
})
|
|
511
|
+
.catch((e) => {
|
|
512
|
+
if (progressEvent.progress === 1) {
|
|
513
|
+
// Chunk may be incomplete, so only report errors when full response is available.
|
|
514
|
+
console.log("Error processing chunk", chunk, e);
|
|
515
|
+
}
|
|
516
|
+
return;
|
|
517
|
+
});
|
|
518
|
+
});
|
|
519
|
+
} catch (e) {
|
|
520
|
+
if (progressEvent.progress === 1) {
|
|
521
|
+
console.log("Error parsing chunk", chunk_json, e);
|
|
522
|
+
}
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
517
525
|
});
|
|
518
526
|
};
|
|
519
527
|
|
|
@@ -537,7 +545,7 @@ export const uploadFiles = async (
|
|
|
537
545
|
});
|
|
538
546
|
|
|
539
547
|
// Send the file to the server.
|
|
540
|
-
|
|
548
|
+
refs[upload_ref_name] = controller;
|
|
541
549
|
|
|
542
550
|
try {
|
|
543
551
|
return await axios.post(getBackendURL(UPLOADURL), formdata, config);
|
|
@@ -557,7 +565,7 @@ export const uploadFiles = async (
|
|
|
557
565
|
}
|
|
558
566
|
return false;
|
|
559
567
|
} finally {
|
|
560
|
-
delete
|
|
568
|
+
delete refs[upload_ref_name];
|
|
561
569
|
}
|
|
562
570
|
};
|
|
563
571
|
|
|
@@ -799,7 +807,7 @@ export const useEventLoop = (
|
|
|
799
807
|
connect(
|
|
800
808
|
socket,
|
|
801
809
|
dispatch,
|
|
802
|
-
["websocket"
|
|
810
|
+
["websocket"],
|
|
803
811
|
setConnectErrors,
|
|
804
812
|
client_storage
|
|
805
813
|
);
|
|
@@ -186,6 +186,7 @@ from .istate.wrappers import get_state as get_state
|
|
|
186
186
|
from .middleware import Middleware as Middleware
|
|
187
187
|
from .middleware import middleware as middleware
|
|
188
188
|
from .model import Model as Model
|
|
189
|
+
from .model import asession as asession
|
|
189
190
|
from .model import session as session
|
|
190
191
|
from .page import page as page
|
|
191
192
|
from .state import ComponentState as ComponentState
|
|
@@ -17,6 +17,7 @@ import sys
|
|
|
17
17
|
import traceback
|
|
18
18
|
from datetime import datetime
|
|
19
19
|
from pathlib import Path
|
|
20
|
+
from types import SimpleNamespace
|
|
20
21
|
from typing import (
|
|
21
22
|
TYPE_CHECKING,
|
|
22
23
|
Any,
|
|
@@ -363,6 +364,11 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
363
364
|
max_http_buffer_size=constants.POLLING_MAX_HTTP_BUFFER_SIZE,
|
|
364
365
|
ping_interval=constants.Ping.INTERVAL,
|
|
365
366
|
ping_timeout=constants.Ping.TIMEOUT,
|
|
367
|
+
json=SimpleNamespace(
|
|
368
|
+
dumps=staticmethod(format.json_dumps),
|
|
369
|
+
loads=staticmethod(json.loads),
|
|
370
|
+
),
|
|
371
|
+
transports=["websocket"],
|
|
366
372
|
)
|
|
367
373
|
elif getattr(self.sio, "async_mode", "") != "asgi":
|
|
368
374
|
raise RuntimeError(
|
|
@@ -430,7 +436,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
430
436
|
allow_credentials=True,
|
|
431
437
|
allow_methods=["*"],
|
|
432
438
|
allow_headers=["*"],
|
|
433
|
-
allow_origins=
|
|
439
|
+
allow_origins=get_config().cors_allowed_origins,
|
|
434
440
|
)
|
|
435
441
|
|
|
436
442
|
@property
|
|
@@ -467,7 +473,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
467
473
|
|
|
468
474
|
def add_page(
|
|
469
475
|
self,
|
|
470
|
-
component: Component | ComponentCallable,
|
|
476
|
+
component: Component | ComponentCallable | None = None,
|
|
471
477
|
route: str | None = None,
|
|
472
478
|
title: str | Var | None = None,
|
|
473
479
|
description: str | Var | None = None,
|
|
@@ -490,17 +496,33 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
490
496
|
meta: The metadata of the page.
|
|
491
497
|
|
|
492
498
|
Raises:
|
|
493
|
-
|
|
499
|
+
PageValueError: When the component is not set for a non-404 page.
|
|
500
|
+
RouteValueError: When the specified route name already exists.
|
|
494
501
|
"""
|
|
495
502
|
# If the route is not set, get it from the callable.
|
|
496
503
|
if route is None:
|
|
497
504
|
if not isinstance(component, Callable):
|
|
498
|
-
raise
|
|
505
|
+
raise exceptions.RouteValueError(
|
|
506
|
+
"Route must be set if component is not a callable."
|
|
507
|
+
)
|
|
499
508
|
# Format the route.
|
|
500
509
|
route = format.format_route(component.__name__)
|
|
501
510
|
else:
|
|
502
511
|
route = format.format_route(route, format_case=False)
|
|
503
512
|
|
|
513
|
+
if route == constants.Page404.SLUG:
|
|
514
|
+
if component is None:
|
|
515
|
+
component = Default404Page.create()
|
|
516
|
+
component = wait_for_client_redirect(self._generate_component(component))
|
|
517
|
+
title = title or constants.Page404.TITLE
|
|
518
|
+
description = description or constants.Page404.DESCRIPTION
|
|
519
|
+
image = image or constants.Page404.IMAGE
|
|
520
|
+
else:
|
|
521
|
+
if component is None:
|
|
522
|
+
raise exceptions.PageValueError(
|
|
523
|
+
"Component must be set for a non-404 page."
|
|
524
|
+
)
|
|
525
|
+
|
|
504
526
|
# Check if the route given is valid
|
|
505
527
|
verify_route_validity(route)
|
|
506
528
|
|
|
@@ -516,7 +538,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
516
538
|
if route == constants.PageNames.INDEX_ROUTE
|
|
517
539
|
else f"`{route}`"
|
|
518
540
|
)
|
|
519
|
-
raise
|
|
541
|
+
raise exceptions.RouteValueError(
|
|
520
542
|
f"Duplicate page route {route_name} already exists. Make sure you do not have two"
|
|
521
543
|
f" pages with the same route"
|
|
522
544
|
)
|
|
@@ -633,10 +655,14 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
633
655
|
on_load: The event handler(s) that will be called each time the page load.
|
|
634
656
|
meta: The metadata of the page.
|
|
635
657
|
"""
|
|
636
|
-
|
|
637
|
-
|
|
658
|
+
console.deprecate(
|
|
659
|
+
feature_name="App.add_custom_404_page",
|
|
660
|
+
reason=f"Use app.add_page(component, route='/{constants.Page404.SLUG}') instead.",
|
|
661
|
+
deprecation_version="0.6.7",
|
|
662
|
+
removal_version="0.8.0",
|
|
663
|
+
)
|
|
638
664
|
self.add_page(
|
|
639
|
-
component=
|
|
665
|
+
component=component,
|
|
640
666
|
route=constants.Page404.SLUG,
|
|
641
667
|
title=title or constants.Page404.TITLE,
|
|
642
668
|
image=image or constants.Page404.IMAGE,
|
|
@@ -837,7 +863,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
837
863
|
|
|
838
864
|
# Render a default 404 page if the user didn't supply one
|
|
839
865
|
if constants.Page404.SLUG not in self.unevaluated_pages:
|
|
840
|
-
self.
|
|
866
|
+
self.add_page(route=constants.Page404.SLUG)
|
|
841
867
|
|
|
842
868
|
# Fix up the style.
|
|
843
869
|
self.style = evaluate_style_namespaces(self.style)
|
|
@@ -947,12 +973,12 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
947
973
|
is not None
|
|
948
974
|
):
|
|
949
975
|
executor = concurrent.futures.ProcessPoolExecutor(
|
|
950
|
-
max_workers=number_of_processes,
|
|
976
|
+
max_workers=number_of_processes or None,
|
|
951
977
|
mp_context=multiprocessing.get_context("fork"),
|
|
952
978
|
)
|
|
953
979
|
else:
|
|
954
980
|
executor = concurrent.futures.ThreadPoolExecutor(
|
|
955
|
-
max_workers=environment.REFLEX_COMPILE_THREADS.get()
|
|
981
|
+
max_workers=environment.REFLEX_COMPILE_THREADS.get() or None
|
|
956
982
|
)
|
|
957
983
|
|
|
958
984
|
for route, component in zip(self.pages, page_components):
|
|
@@ -965,7 +991,6 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
965
991
|
|
|
966
992
|
def _submit_work(fn, *args, **kwargs):
|
|
967
993
|
f = executor.submit(fn, *args, **kwargs)
|
|
968
|
-
# f = executor.apipe(fn, *args, **kwargs)
|
|
969
994
|
result_futures.append(f)
|
|
970
995
|
|
|
971
996
|
# Compile the pre-compiled pages.
|
|
@@ -1157,7 +1182,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1157
1182
|
if hasattr(handler_fn, "__name__"):
|
|
1158
1183
|
_fn_name = handler_fn.__name__
|
|
1159
1184
|
else:
|
|
1160
|
-
_fn_name = handler_fn.
|
|
1185
|
+
_fn_name = type(handler_fn).__name__
|
|
1161
1186
|
|
|
1162
1187
|
if isinstance(handler_fn, functools.partial):
|
|
1163
1188
|
raise ValueError(
|
|
@@ -1270,7 +1295,7 @@ async def process(
|
|
|
1270
1295
|
await asyncio.create_task(
|
|
1271
1296
|
app.event_namespace.emit(
|
|
1272
1297
|
"reload",
|
|
1273
|
-
data=
|
|
1298
|
+
data=event,
|
|
1274
1299
|
to=sid,
|
|
1275
1300
|
)
|
|
1276
1301
|
)
|
|
@@ -1523,7 +1548,7 @@ class EventNamespace(AsyncNamespace):
|
|
|
1523
1548
|
"""
|
|
1524
1549
|
# Creating a task prevents the update from being blocked behind other coroutines.
|
|
1525
1550
|
await asyncio.create_task(
|
|
1526
|
-
self.emit(str(constants.SocketEvent.EVENT), update
|
|
1551
|
+
self.emit(str(constants.SocketEvent.EVENT), update, to=sid)
|
|
1527
1552
|
)
|
|
1528
1553
|
|
|
1529
1554
|
async def on_event(self, sid, data):
|
|
@@ -1536,7 +1561,7 @@ class EventNamespace(AsyncNamespace):
|
|
|
1536
1561
|
sid: The Socket.IO session id.
|
|
1537
1562
|
data: The event data.
|
|
1538
1563
|
"""
|
|
1539
|
-
fields =
|
|
1564
|
+
fields = data
|
|
1540
1565
|
# Get the event.
|
|
1541
1566
|
event = Event(
|
|
1542
1567
|
**{k: v for k, v in fields.items() if k not in ("handler", "event_actions")}
|
|
@@ -5,7 +5,7 @@ from pathlib import Path
|
|
|
5
5
|
from typing import Optional
|
|
6
6
|
|
|
7
7
|
from reflex import constants
|
|
8
|
-
from reflex.
|
|
8
|
+
from reflex.config import EnvironmentVariables
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def asset(
|
|
@@ -52,7 +52,7 @@ def asset(
|
|
|
52
52
|
The relative URL to the asset.
|
|
53
53
|
"""
|
|
54
54
|
assets = constants.Dirs.APP_ASSETS
|
|
55
|
-
backend_only =
|
|
55
|
+
backend_only = EnvironmentVariables.REFLEX_BACKEND_ONLY.get()
|
|
56
56
|
|
|
57
57
|
# Local asset handling
|
|
58
58
|
if not shared:
|
|
@@ -30,15 +30,16 @@ def validate_field_name(bases: List[Type["BaseModel"]], field_name: str) -> None
|
|
|
30
30
|
|
|
31
31
|
# can't use reflex.config.environment here cause of circular import
|
|
32
32
|
reload = os.getenv("__RELOAD_CONFIG", "").lower() == "true"
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
base = None
|
|
34
|
+
try:
|
|
35
|
+
for base in bases:
|
|
35
36
|
if not reload and getattr(base, field_name, None):
|
|
36
37
|
pass
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
except TypeError as te:
|
|
39
|
+
raise VarNameError(
|
|
40
|
+
f'State var "{field_name}" in {base} has been shadowed by a substate var; '
|
|
41
|
+
f'use a different field name instead".'
|
|
42
|
+
) from te
|
|
42
43
|
|
|
43
44
|
|
|
44
45
|
# monkeypatch pydantic validate_field_name method to skip validating
|
|
@@ -45,6 +45,7 @@ class ReflexJinjaEnvironment(Environment):
|
|
|
45
45
|
"on_load_internal": constants.CompileVars.ON_LOAD_INTERNAL,
|
|
46
46
|
"update_vars_internal": constants.CompileVars.UPDATE_VARS_INTERNAL,
|
|
47
47
|
"frontend_exception_state": constants.CompileVars.FRONTEND_EXCEPTION_STATE_FULL,
|
|
48
|
+
"hook_position": constants.Hooks.HookPosition,
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
|
|
@@ -115,7 +115,7 @@ def compile_imports(import_dict: ParsedImportDict) -> list[dict]:
|
|
|
115
115
|
default, rest = compile_import_statement(fields)
|
|
116
116
|
|
|
117
117
|
# prevent lib from being rendered on the page if all imports are non rendered kind
|
|
118
|
-
if not any(
|
|
118
|
+
if not any(f.render for f in fields): # type: ignore
|
|
119
119
|
continue
|
|
120
120
|
|
|
121
121
|
if not lib:
|
|
@@ -123,8 +123,7 @@ def compile_imports(import_dict: ParsedImportDict) -> list[dict]:
|
|
|
123
123
|
raise ValueError("No default field allowed for empty library.")
|
|
124
124
|
if rest is None or len(rest) == 0:
|
|
125
125
|
raise ValueError("No fields to import.")
|
|
126
|
-
for module in sorted(rest)
|
|
127
|
-
import_dicts.append(get_import_dict(module))
|
|
126
|
+
import_dicts.extend(get_import_dict(module) for module in sorted(rest))
|
|
128
127
|
continue
|
|
129
128
|
|
|
130
129
|
# remove the version before rendering the package imports
|
|
@@ -103,8 +103,8 @@ class Bare(Component):
|
|
|
103
103
|
def _render(self) -> Tag:
|
|
104
104
|
if isinstance(self.contents, Var):
|
|
105
105
|
if isinstance(self.contents, (BooleanVar, ObjectVar)):
|
|
106
|
-
return Tagless(contents=f"{{{
|
|
107
|
-
return Tagless(contents=f"{{{
|
|
106
|
+
return Tagless(contents=f"{{{self.contents.to_string()!s}}}")
|
|
107
|
+
return Tagless(contents=f"{{{self.contents!s}}}")
|
|
108
108
|
return Tagless(contents=str(self.contents))
|
|
109
109
|
|
|
110
110
|
def _get_vars(self, include_children: bool = False) -> Iterator[Var]:
|