Commit Graph

1757 Commits

Author SHA1 Message Date
Masen Furer
3237904c5a
use VarData.__bool__ instead of is None 2024-10-03 10:07:04 -07:00
Masen Furer
0bf6addf44
[ENG-3870] rx.call_script with f-string var produces incorrect code
Avoid casting javascript code with embedded Var as LiteralStringVar

There are two cases that need to be handled:

1. The javascript code contains Vars with VarData, these can only be evaluated
   in the component context, since they may use hooks. Vars with VarData cannot be
   used from the backend. In this case, we cast the given code as a raw js
   expression and include the extracted VarData.

2. The javascript code has no VarData. In this case, we pass the code as the
   raw js expression and cast to a python str to get a js literal string to eval.
2024-10-01 17:03:25 -07:00
Masen Furer
565df06508
Add additional test cases for rx.call_script
Include internal vars inside an f-string to be properly rendered on the backend
and frontend.
2024-10-01 16:57:52 -07:00
Masen Furer
c08720ed1a
Use an equality check instead of startswith (#4024) 2024-10-01 15:23:35 -07:00
Simon Young
e96b4bf42e
a friendly little helper (#4021)
* a friendly little helper

* addressing comments

* update comment

---------

Co-authored-by: simon <simon@reflex.dev>
2024-10-01 14:32:05 -07:00
Masen Furer
9c3cc0cfa6
bump version to 0.6.2dev1 (#4025)
For further development against the version that will become 0.6.2
2024-10-01 12:34:28 -07:00
ChinoUkaegbu
bd71c8e6c9
feat: Add support for missing SVGs (#3962) 2024-10-01 09:24:26 -07:00
Khaleel Al-Adhami
9719f5d57e
use literal var instead of serialize for toast props (#4027) 2024-09-29 12:08:56 -07:00
Thomas Brandého
23e979717f
remove all runtime asserts (#4019)
* remove all runtime asserts

* Update reflex/testing.py

Co-authored-by: Masen Furer <m_github@0x26.net>

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-09-27 17:25:22 -07:00
Khaleel Al-Adhami
62021b0b40
implement _evaluate in state (#4018)
* implement _evaluate in state

* add warning

* use typing_extension

* add integration test
2024-09-27 16:58:20 -07:00
Thomas Brandého
1b3422dab6
improve lifespan typecheck and debug (#4014)
* add lifespan debug statement

* improve some of the logic for lifespan tasks

* fix partial name with update_wrapper
2024-09-27 16:17:30 -07:00
Masen Furer
9ca5d4a095
Track backend-only vars that are declared without a default value (#4016)
* Track backend-only vars that are declared without a default value

Without this provision, declared backend vars can be accidentally shared among
all states if a mutable value is assigned to the class attribute.

* add test case for no default backend var
2024-09-27 12:04:43 -07:00
Khaleel Al-Adhami
eea5dc1918
change loglevel and fix granian on linux (#4012)
* change loglevel and fix it on linux

* run precommit

* fix that as well
2024-09-26 21:54:03 -07:00
Masen Furer
ae0f3f820e
Handle bool cast for optional NumberVar (#4010)
* Handle bool cast for optional NumberVar

If the _var_type is optional, then also check that the value is not None

* boolify the result of `and_operation`

* flip order to be more semantically pure

---------

Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
2024-09-26 21:52:31 -07:00
Thomas Brandého
299f842756
add env var to enable using system node and bun (#4006)
* add env var to enable using system node and bun

* fix test to use env var
2024-09-26 16:12:12 -07:00
Khaleel Al-Adhami
0ab161c119
remove format_state and override behavior for bare (#3979)
* remove format_state and override behavior for bare

* pass the test cases

* only do one level of dicting dataclasses

* remove dict and replace list with set

* delete unnecessary serialize calls

* remove serialize for mutable proxy

* dang it darglint
2024-09-26 16:00:28 -07:00
Khaleel Al-Adhami
70bd88c682
serialize default value for disk state manager (#4008) 2024-09-26 13:59:17 -07:00
LeoH
60276cf1ff
EventFnArgMismatch fix to support defaults args (#4004)
* EventFnArgMismatch fix to support defaults args

* fixing type hint and docstring raises

* enforce stronger type checking

* unwrap var annotations :(

---------

Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
2024-09-26 13:56:53 -07:00
Khaleel Al-Adhami
54c7b5a261
disable prose by default for rx.html (#4001)
* disable prose by default for rx.html

* remove styled

* put that on one line
2024-09-26 13:47:05 -07:00
Thomas Brandého
130bcf96ca
default on_submit in form set to prevent_default (#4005)
* default submit forms set to prevent_default

* fix tests
2024-09-26 11:56:59 -07:00
Masen Furer
25016f5e27
Update markdown component map to use new rx.code_block.theme enum (#3996)
* Update markdown component map to use new rx.code_block.theme enum

* change var to theme

* give the types some attention instead of ignoring them

---------

Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
2024-09-26 11:04:35 -07:00
Thomas Brandého
3f538865b5
reorganize all tests in a single top folder (#3981)
* lift node version restraint to allow more recent version if already installed

* add node test for latest version

* change python version

* use purple for debug logs

* update workflow

* add playwright dev dependency

* update workflow

* change test

* oops

* improve test

* update test

* fix tests

* mv units tests to a subfolder

* reorganize tests

* fix install

* update test_state

* revert node changes and only keep new tests organization

* move integration tests in tests/integration

* fix integration workflow

* fix dockerfile workflow

* fix dockerfile workflow 2

* fix shared_state
2024-09-26 01:22:52 +02:00
Thomas Brandého
b07fba72e9
add missing message when running in backend_only (#4002)
* add missing message when running in backend_only

* actually pass loglevel to backend_cmd
2024-09-26 00:57:08 +02:00
Khaleel Al-Adhami
9d8b737b1a
hash the state file name (#4000)
* hash the state file name

* forgot to digest my food oop
2024-09-25 13:11:04 -07:00
Masen Furer
e1538b75f8
bump to 0.6.1 for further dev (#3995)
* bump version to 0.6.1dev1

* bump reflex-chakra requirement to 0.6.0

* update poetry file

---------

Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
2024-09-25 11:31:45 -07:00
Khaleel Al-Adhami
74d1c47ce2
allow classname to be state vars (#3991)
* allow classname to be state vars

* simplify join with all literal string vars

* add test case and avoid concat var operation if it's not necessary

* remove silly print statement

* simplify case where there's no var

* don't automatically do class name str to literal var
2024-09-25 09:57:29 -07:00
Khaleel Al-Adhami
982c43d595
use bundled radix ui for dynamic components (#3993) 2024-09-25 09:57:16 -07:00
Thomas Brandého
3eeb0bde9c
bump nextjs version (#3992) 2024-09-25 09:56:15 -07:00
Khaleel Al-Adhami
fc5d352431
add basic integration test for dynamic components (#3990)
* add basic integration test

* fix docstrings

* dang it darglint
2024-09-25 09:55:16 -07:00
Khaleel Al-Adhami
5e738fd62b
don't camel case keys of dicts in style (#3982)
* don't camel case keys of dicts in style

* change tests to fit the code 😎

* respect objectvars as true dicts
2024-09-24 17:38:49 -07:00
Thomas Brandého
46be46d6ea
allow link as metatags (#3980)
* allow link as metatags

* remove stray print & fix nit
2024-09-24 17:38:12 -07:00
Thomas Brandého
001b8c4222
can run with granian by setting REFLEX_USE_GRANIAN var (#3919)
* can run with granian by setting REFLEX_USE_GRANIAN var

* granian also useable for prod mode

* adjust reload paths for granian

* move uvicorn / granian logic to their own function

* fix prod mode
2024-09-24 17:36:58 -07:00
Thomas Brandého
d0ad5cd15e
use svg elements instead of raw html for logo (#3978)
* use svg elements instead of raw html for logo

* avoid duplication
2024-09-24 17:34:41 -07:00
Thomas Brandého
4e4d36a867
re add removed method with better behaviour and tests (#3986) 2024-09-24 23:29:56 +02:00
Andrew Davies
2c4310d9ff
Use tailwind typography plugin by default (#3593)
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
2024-09-23 18:18:05 -07:00
Masen Furer
2883e541a9
Bring back py3.9 support with a deprecation warning. (#3976)
* Revert "ruff formatting to unbreak `main` CI (#3964)"

This reverts commit f9be184b86.

* Revert "bump python>=3.10 for 0.6.0 (#3956)"

This reverts commit fe1833c5e1.

* drop python3.8 support

* relock dependencies

* Raise warning when < py310 is used

* Move python version check to reflex version check function

Avoid spammy deprecation warnings by only emitting warning once per project,
per reflex version, per reinit.

* Remove other references to python3.8
2024-09-23 18:15:16 -07:00
Khaleel Al-Adhami
00d995d971
[ENG-3833] handle object in is bool (#3974)
* handle object in is bool

* use if statements
2024-09-23 18:14:28 -07:00
Khaleel Al-Adhami
a5ad5203df
suggest bool() for wrong values (#3975) 2024-09-23 18:13:55 -07:00
Khaleel Al-Adhami
47c9938d95
use is true for bool var (#3973) 2024-09-23 16:36:58 -07:00
Khaleel Al-Adhami
ee3b0e614c
fix set value logix for client state (#3966) 2024-09-23 12:40:14 -07:00
Thomas Brandého
61332fdba1
add some more tests (#3965) 2024-09-22 14:44:44 -07:00
Elijah Ahianyo
afd52a87dd
Make reflex init --ai use light mode (#3963) 2024-09-22 14:44:16 -07:00
Masen Furer
f9be184b86
ruff formatting to unbreak main CI (#3964) 2024-09-20 20:01:57 +02:00
Thomas Brandého
fe1833c5e1
bump python>=3.10 for 0.6.0 (#3956) 2024-09-20 09:52:29 -07:00
Thomas Brandého
456672149b
use current version as default for new custom components (#3957) 2024-09-19 19:08:23 -07:00
Masen Furer
d4cd512144
Add shim for format_event_chain (#3958)
Allow `format_event_chain` to continue working until 0.7.0 to allow third party
component wraps to adapt.
2024-09-19 19:08:00 -07:00
Khaleel Al-Adhami
a5d73654fc
use serializer before serializing base yourself (#3960) 2024-09-19 19:07:09 -07:00
Masen Furer
bca49d3537
Component as Var type (#3732)
* [WiP] Support UI components returned from a computed var

* Get rid of nasty react hooks warning

* include @babel/standalone in the base to avoid CDN

* put window variables behind an object

* use jsx

* implement the thing

* cleanup dead test code (#3909)

* override dict in propsbase to use camelCase (#3910)

* override dict in propsbase to use camelCase

* fix underscore in dict

* dang it darglint

* [REF-3562][REF-3563] Replace chakra usage (#3872)

* [ENG-3717] [flexgen] Initialize app from refactored code (#3918)

* Remove Pydantic from some classes (#3907)

* half of the way there

* add dataclass support

* Forbid Computed var shadowing (#3843)

* get it right pyright

* fix unit tests

* rip out more pydantic

* fix weird issues with merge_imports

* add missing docstring

* make special props a list instead of a set

* fix moment pyi

* actually ignore the runtime error

* it's ruff out there

---------

Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>

* Merging

* fixss

* fix field_name

* always import react

* move func to file

* do some weird things

* it's really ruff out there

* add docs

* how does this work

* dang it darglint

* fix the silly

* don't remove computed guy

* silly goose, don't ignore var types :D

* update code

* put f string on one line

* make it deprecated instead of outright killing it

* i hate it

* add imports from react

* assert it has evalReactComponent

* do things ig

* move get field to global context

* ooops

---------

Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
2024-09-19 19:06:53 -07:00
Thomas Brandého
ef38ac29ea
remove unused badge (#3955) 2024-09-19 11:32:29 -07:00
Masen Furer
5f296eec38
[ENG-3817] deprecate _var_name_unwrapped (instead of removing it) (#3951)
some components and code examples used `_var_name_unwrapped`, so map this
property back to `_js_expr` and deprecate it.
2024-09-18 21:33:50 -07:00