* 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
* 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>
* 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
* 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>
* 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>
* 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
* 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
* 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
* 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