* add datetime var operations
* add future annotations
* add LiteralDatetimeVar
* remove methods that don't apply
* fix serialization
* add unit and integrations test
* oops, forgot to commit that important change
* Throw warnings when Redis lock is held for more than the allowed threshold
* initial tests
* fix tests and address comments
* fix tests fr, and use pydantic validators
* darglint fix
* increase lock expiration in tests to 2500
* remove print statement
---------
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
* [ENG-4165] Consider default and default_factory for state vars
When determining whether a state var should be marked as optional, check that
it is missing both default and default_factory and is not required.
Fix#4471
* add test for default factory with rx.foreach (#4515)
---------
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
* Avoid double JSON encode/decode for socket.io
socket.io (python and js) already has a built in mechanism for JSON encoding
and decoding messages over the websocket. To use it, we pass a custom `json`
namespace which uses `format.json_dumps` (leveraging reflex serializers) to encode the
messages. This avoids sending a JSON-encoded string of JSON over the wire, and
reduces the number of serialization/deserialization passes over the message
data.
The side benefit is that debugging websocket messages in browser tools displays
the parsed JSON hierarchy and is much easier to work with.
* JSON5.parse in on_upload_progress handler responses
* add eradicate rules for commented out code
* remove output change
* fix pyi messed up indent
* fix pyi again
* fix layout docstring
* fix pyi_generator to remove commented out props from docs
* fix pyi_generator and regenerate some pyi
* fix double strip
* update all pyi
* try to fix stuff in pyi_gen
* whatever
* remove that maybe? i don't know
* fix that shit?
* fix more shit, idk
* better not see you ever again, extra line
* fix: handle default_factory in get_attribute_access_type, add tests for sqla dataclasses
* only test classes which have default_factory + add test for no default
* Unit test updates
* test_client_storage: simulate backend state expiry
* [HOS-333] Send a "reload" message to the frontend after state expiry
1. a state instance expires on the backing store
2. frontend attempts to process an event against the expired token and gets a
fresh instance of the state without router_data set
3. backend sends a "reload" message on the websocket containing the event and
immediately stops processing
4. in response to the "reload" message, frontend sends
[hydrate, update client storage, on_load, <previous_event>]
This allows the frontend and backend to re-syncronize on the state of the app
before continuing to process regular events.
If the event in (2) is a special hydrate event, then it is processed normally
by the middleware and the "reload" logic is skipped since this indicates an
initial load or a browser refresh.
* unit tests working with redis
On py3.9 and py3.10, `dict[str, str]` and other typing forms are kinda
considered classes, but they still fail when doing `issubclass`, so
specifically exclude generic aliases before calling issubclass.
Fix#4424
Bonus fix: support upcasting of pydantic v1 and v2 models
* wip rx._x.asset improvements
* only add symlink if it doesn't already exist
* minor improvements, add more tests
* use deprecated Generator for python3.8 support
* improve docstring
* only allow explicit shared, only validate local assets if not backend_only
* fix darglint
* allow setting backend only env to false.
* use new is_backend_only in assets
* ruffing
* Move to `rx.asset`, retain old API in `rx._x.asset`
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
* [ENG-3953] Support pydantic BaseModel (v1 and v2) as state var
Provide serializers and mutable proxy tracking for pydantic models directly.
* conditionally define v2 serializer
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
* Add `MutableProxy._is_mutable_value` to avoid duplicate logic
* Conditionally import BaseModel to handle older pydantic v1 versions
* pre-commit fu
---------
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
* add typing to function vars
* import ParamSpec from typing_extensions
* remove ellipsis as they are not supported in 3.9
* try importing everything from extensions
* special case 3.9
* don't use Any from extensions
* get typevar from extensions
Because of some dodgy logic in Base.get_value and State.dict / State.get_delta
when the value of some state var X happened to be the name of another var in
the state Y, then the value for X would be returned as the value of Y.
wat.
Fixes#4369
* Temporarily downpin @radix-ui/themes <3.1.5
A visual/style regression was introduced in @radix-ui/themes 3.1.5
as described in radix-ui/themes#627 which reflex needs to avoid.
* Get expected radix library version from component
* Codeblock cleanup in markdown
* Initial approach to getting this working with rx.memo and reflex web
* abstract the map var logic
* the tests are not valid + pyright fix
* darglint fix
* Add unit tests plus mix components
* pyi run
* rebase on main
* fix darglint
* testing different OS
* revert
* This should fix it. Right?
* Fix tests
* minor fn signature fix
* use ArgsFunctionOperation
* use destructured args and pass the tests
* fix remaining unit tests
* fix pyi files
* rebase on main
* move language regex on codeblock to markdown
* fix tests
---------
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
* allow for event handlers to ignore args
* use a constant
* dang it darglint
* forgor
* keep the tests but move them to valid place
* add metainfo to keyevent
* format code
* fix pyi files
* generate all prefixes of event types
* change format rule
* fix and test bug in config env loading
* streamline env var interpretation with @adhami3310
* improve error messages, fix invalid value for TELEMETRY_ENABLED
* just a small hint
* ruffing
* fix typo from review
* refactor - ruff broke the imports..
* cleanup imports
* more
* add internal and enum env var support
* ruff cleanup
* more global imports
* revert telemetry, it lives in rx.Config
* minor fixes/cleanup
* i missed some refs
* fix darglint
* reload config is internal
* fix EnvVar name
* add test for EnvVar + minor typing improvement
* bool tests
* was this broken?
* retain old behavior
* migrate APP_HARNESS_HEADLESS to new env var system
* migrate more APP_HARNESS env vars to new config system
* migrate SCREENSHOT_DIR to new env var system
* refactor EnvVar.get to be a method
* readd deleted functions and deprecate them
* improve EnvVar api, cleanup RELOAD_CONFIG question
* move is_prod_mode back to where it was
* improve object var symantics
* add case for serializers
* check against serializer with to = dict
* add tests
* fix typing issues
* remove default value
* older version of python doesn't have assert type
* add base to rx field cases
* get it from typing_extension
* type check for event handler if spec arg are typed
* fix the typecheck logic
* rearrange logic pieces
* add try except
* add try except around compare
* change form and improve type checking
* print key instead
* dang it darglint
* change wording
* add basic test to cover it
* add a slightly more complicated test
* challenge it a bit by doing small capital list
* add multiple argspec
* fix slider event order
* i hate 3.9
* add note for UnionType
* move function to types
* add a test for type hint is subclass
* make on submit dict str any
* add testing for dict cases
* add check against any
* accept dict str str
* bruh i used i twice
* escape strings and print actual error message
* disable the error and print deprecation warning instead
* disable tests
* fix doc message
---------
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
* Shiki codeblock support decorations
* add decorations to useEffect
* fix pyright
* validate decorations dict
* Fix exception message plus unit tests
* possible test fix
* fix pyright
* possible tests fix
* cast decorations before creating codeblock
* `plain` is not a valid theme
* pyi fix
* address PR comment
* component as literal vars
* fix pyi
* use render
* fix pyi
* only render once
* add type ignore
* fix upload default value
* remove testcases if you don't pass them
* improve behavior
* fix render
* that's not how icon buttons work
* upgrade to next js 15 and remove babel and enable turbo
* upload is a silly guy
* woops
* how did this work before
* set env variable
* lower it even more
* lower it even more
* lower it even more
* only do literals as component vars
* basic functionality
* reorder page evaluation
* Fix benchmark tests (#3822)
* Upper bound for reflex-chakra dependency (#3824)
* Upper bound for reflex-chakra dependency
We have to make a breaking change in reflex-chakra, and it will happen in 0.6.0, so ensure that reflex 0.5.10 never installs the breaking version of reflex-chakra.
* Relock deps
* Add comments to DataList components (#3827)
* fix: Adding missing comments to the data list
* fix: Ran make pyi
* fully migrate vars into new system (#3743)
* fully migrate vars into new system
* i hate rufffff (no i don't)
* fix silly pright issues (except colormode and state)
* remove all instances of Var.create
* create immutable callable var and get rid of more base vars
* implement hash for all functions
* get reflex-web to compile
* get it to compile reflex-web successfully
* fix tests
* fix pyi
* use override from typing_extension
* put plotly inside of a catch
* dicts are unusable sadly
* fix silly mistake
* overload equals to special case immutable var
* improve test_cond
* solve more CI issues, down to 94 failures
* down to 20 errors
* down to 13 errors
* pass all testcases
* fix pyright issues
* reorder things
* use get origin more
* use fixed_type logic
* various optimizations
* go back to passing test cases
* use less boilerplate
* remove unnecessary print message
* remove weird comment
* add test for html issue
* add type ignore
* fix another silly issue
* override get all var data for var operations call
* make integration tests pass
* fix immutable call var
* better logic for finding parent class
* use even better logic for finding state wrt computedvar
* only choose the ones that are defined in the same module
* small dict to large dict
* [REF-3591] Remove chakra-related files from immutable vars PR (#3821)
* Add comments to html metadata component (#3731)
* fix: add verification for path /404 (#3723)
Co-authored-by: coolstorm <manas.gupta@fampay.in>
* Use the new state name when setting `is_hydrated` to false (#3738)
* Use `._is_mutable()` to account for parent state proxy (#3739)
When a parent state proxy is set, also allow child StateProxy._self_mutable to
override the parent's `_is_mutable()`.
* bump to 0.5.9 (#3746)
* add message when installing requirements.txt is needed for chosen template during init (#3750)
* #3752 bugfix add domain for XAxis (#3764)
* fix appharness app_source typing (#3777)
* fix import clash between connectionToaster and hooks.useState (#3749)
* use different registry when in china, fixes#3700 (#3702)
* do not reload compilation if using local app in AppHarness (#3790)
* do not reload if using local app
* Update reflex/testing.py
Co-authored-by: Masen Furer <m_github@0x26.net>
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
* Bump memory on relevant actions (#3781)
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
* [REF-3334] Validate Toast Props (#3793)
* [REF-3536][REF-3537][REF-3541] Move chakra components into its repo(reflex-chakra) (#3798)
* fix get_uuid_string_var (#3795)
* minor State cleanup (#3768)
* Fix code wrap in markdown (#3755)
---------
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
* pyproject.toml: bump to 0.6.0a1
* pyproject.toml: depend on reflex-chakra>=0.6.0a
New Var system support in reflex-chakra 0.6.0a1
* poetry.lock: relock dependencies
* integration: bump listening timeout to 1200 seconds
* integration: bump listening timeout to 1800 seconds
* Use cached_var_no_lock to avoid ImmutableVar deadlocks (#3835)
* Use cached_var_no_lock to avoid ImmutableVar deadlocks
ImmutableVar subclasses will always return the same value for a _var_name or
_get_all_var_data so there is no need to use a per-class lock to protect a
cached attribute on an instance, and doing so actually is observed to cause
deadlocks when a particular _cached_var_name creates new LiteralVar instances
and attempts to serialize them.
* remove unused module global
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
* guess_type: if the type is optional, treat it like it's "not None" (#3839)
* guess_type: if the type is optional, treat it like it's "not None"
When guessing the type for an Optional annotation, the Optional was already
being stripped off, but this value was being ignored, except for error
messages. So actually use the Optional-stripped value.
* Strip Optional when casting Var .to
* Fix double-quoting of defaultColorMode (#3840)
If the user provided an `appearance` or `color_mode` value to `rx.theme`, then
the resulting value ended up being double-double-quoted in the resulting JS
output.
Instead remove the quotes from the context.js.jinja2 and always pass appearance
as a Var.
* basic functionality
* run pyright
* fully migrate vars into new system (#3743)
* fully migrate vars into new system
* i hate rufffff (no i don't)
* fix silly pright issues (except colormode and state)
* remove all instances of Var.create
* create immutable callable var and get rid of more base vars
* implement hash for all functions
* get reflex-web to compile
* get it to compile reflex-web successfully
* fix tests
* fix pyi
* use override from typing_extension
* put plotly inside of a catch
* dicts are unusable sadly
* fix silly mistake
* overload equals to special case immutable var
* improve test_cond
* solve more CI issues, down to 94 failures
* down to 20 errors
* down to 13 errors
* pass all testcases
* fix pyright issues
* reorder things
* use get origin more
* use fixed_type logic
* various optimizations
* go back to passing test cases
* use less boilerplate
* remove unnecessary print message
* remove weird comment
* add test for html issue
* add type ignore
* fix another silly issue
* override get all var data for var operations call
* make integration tests pass
* fix immutable call var
* better logic for finding parent class
* use even better logic for finding state wrt computedvar
* only choose the ones that are defined in the same module
* small dict to large dict
* [REF-3591] Remove chakra-related files from immutable vars PR (#3821)
* Add comments to html metadata component (#3731)
* fix: add verification for path /404 (#3723)
Co-authored-by: coolstorm <manas.gupta@fampay.in>
* Use the new state name when setting `is_hydrated` to false (#3738)
* Use `._is_mutable()` to account for parent state proxy (#3739)
When a parent state proxy is set, also allow child StateProxy._self_mutable to
override the parent's `_is_mutable()`.
* bump to 0.5.9 (#3746)
* add message when installing requirements.txt is needed for chosen template during init (#3750)
* #3752 bugfix add domain for XAxis (#3764)
* fix appharness app_source typing (#3777)
* fix import clash between connectionToaster and hooks.useState (#3749)
* use different registry when in china, fixes#3700 (#3702)
* do not reload compilation if using local app in AppHarness (#3790)
* do not reload if using local app
* Update reflex/testing.py
Co-authored-by: Masen Furer <m_github@0x26.net>
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
* Bump memory on relevant actions (#3781)
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
* [REF-3334] Validate Toast Props (#3793)
* [REF-3536][REF-3537][REF-3541] Move chakra components into its repo(reflex-chakra) (#3798)
* fix get_uuid_string_var (#3795)
* minor State cleanup (#3768)
* Fix code wrap in markdown (#3755)
---------
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
* pyproject.toml: bump to 0.6.0a1
* pyproject.toml: depend on reflex-chakra>=0.6.0a
New Var system support in reflex-chakra 0.6.0a1
* poetry.lock: relock dependencies
* integration: bump listening timeout to 1200 seconds
* integration: bump listening timeout to 1800 seconds
* Use cached_var_no_lock to avoid ImmutableVar deadlocks (#3835)
* Use cached_var_no_lock to avoid ImmutableVar deadlocks
ImmutableVar subclasses will always return the same value for a _var_name or
_get_all_var_data so there is no need to use a per-class lock to protect a
cached attribute on an instance, and doing so actually is observed to cause
deadlocks when a particular _cached_var_name creates new LiteralVar instances
and attempts to serialize them.
* remove unused module global
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
* basic functionality
* reorder page evaluation
* fully migrate vars into new system (#3743)
* fully migrate vars into new system
* i hate rufffff (no i don't)
* fix silly pright issues (except colormode and state)
* remove all instances of Var.create
* create immutable callable var and get rid of more base vars
* implement hash for all functions
* get reflex-web to compile
* get it to compile reflex-web successfully
* fix tests
* fix pyi
* use override from typing_extension
* put plotly inside of a catch
* dicts are unusable sadly
* fix silly mistake
* overload equals to special case immutable var
* improve test_cond
* solve more CI issues, down to 94 failures
* down to 20 errors
* down to 13 errors
* pass all testcases
* fix pyright issues
* reorder things
* use get origin more
* use fixed_type logic
* various optimizations
* go back to passing test cases
* use less boilerplate
* remove unnecessary print message
* remove weird comment
* add test for html issue
* add type ignore
* fix another silly issue
* override get all var data for var operations call
* make integration tests pass
* fix immutable call var
* better logic for finding parent class
* use even better logic for finding state wrt computedvar
* only choose the ones that are defined in the same module
* small dict to large dict
* [REF-3591] Remove chakra-related files from immutable vars PR (#3821)
* Add comments to html metadata component (#3731)
* fix: add verification for path /404 (#3723)
Co-authored-by: coolstorm <manas.gupta@fampay.in>
* Use the new state name when setting `is_hydrated` to false (#3738)
* Use `._is_mutable()` to account for parent state proxy (#3739)
When a parent state proxy is set, also allow child StateProxy._self_mutable to
override the parent's `_is_mutable()`.
* bump to 0.5.9 (#3746)
* add message when installing requirements.txt is needed for chosen template during init (#3750)
* #3752 bugfix add domain for XAxis (#3764)
* fix appharness app_source typing (#3777)
* fix import clash between connectionToaster and hooks.useState (#3749)
* use different registry when in china, fixes#3700 (#3702)
* do not reload compilation if using local app in AppHarness (#3790)
* do not reload if using local app
* Update reflex/testing.py
Co-authored-by: Masen Furer <m_github@0x26.net>
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
* Bump memory on relevant actions (#3781)
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
* [REF-3334] Validate Toast Props (#3793)
* [REF-3536][REF-3537][REF-3541] Move chakra components into its repo(reflex-chakra) (#3798)
* fix get_uuid_string_var (#3795)
* minor State cleanup (#3768)
* Fix code wrap in markdown (#3755)
---------
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
* pyproject.toml: bump to 0.6.0a1
* pyproject.toml: depend on reflex-chakra>=0.6.0a
New Var system support in reflex-chakra 0.6.0a1
* poetry.lock: relock dependencies
* integration: bump listening timeout to 1200 seconds
* integration: bump listening timeout to 1800 seconds
* Use cached_var_no_lock to avoid ImmutableVar deadlocks (#3835)
* Use cached_var_no_lock to avoid ImmutableVar deadlocks
ImmutableVar subclasses will always return the same value for a _var_name or
_get_all_var_data so there is no need to use a per-class lock to protect a
cached attribute on an instance, and doing so actually is observed to cause
deadlocks when a particular _cached_var_name creates new LiteralVar instances
and attempts to serialize them.
* remove unused module global
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
* guess_type: if the type is optional, treat it like it's "not None" (#3839)
* guess_type: if the type is optional, treat it like it's "not None"
When guessing the type for an Optional annotation, the Optional was already
being stripped off, but this value was being ignored, except for error
messages. So actually use the Optional-stripped value.
* Strip Optional when casting Var .to
* run format
* use original mp
* evaluate page regardless
* use old typing
* dangit pydantic
* i have two braincells and they are NOT collaborating
* adjust testcases
* always add the upload endpoint
* retrieve upload but after evaluate component
* check against none
Co-authored-by: Masen Furer <m_github@0x26.net>
* make it var
* fix page title
* don't change style.py
* fix counter
* remove duplicated logic
---------
Co-authored-by: Elijah Ahianyo <elijahahianyo@gmail.com>
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: elvis kahoro <elvis@reflex.dev>
Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Manas Gupta <53006261+Manas1820@users.noreply.github.com>
Co-authored-by: coolstorm <manas.gupta@fampay.in>
Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
Co-authored-by: Shubhankar Dimri <dimrishubhi@gmail.com>
Co-authored-by: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
* [ENG-3970] When normal pickle fails, try dill
If dill is not installed, suggest that the user `pip install` it.
Fix#4147
* re-lock depenedencies
* Include original pickle error message for better debugging
When the pickling throws a warning and dill is not installed, include the
original pickle error.
Add a test case for an object that even dill cannot pickle to ensure error path
is hit as expected.
* py3.9 compatibility
* use $ syntax
* missing test case change
* try being a little smart
* improve merge imports logic
* add public as well
* oops missed that one
* last one there
* fix and test bug in config env loading
* streamline env var interpretation with @adhami3310
* improve error messages, fix invalid value for TELEMETRY_ENABLED
* just a small hint
* ruffing
* fix typo from review
If a non-root state was serialized, but its substates were not, then these
would not be populated when reloading the pickled state, because only substates
from the root were being populated with fresh versions.
Now, capture the substates from all fresh states and apply them to the
deserialized state for each substate to ensure that the entire state tree has
all substates instantiated after deserializing, even substates that were never
serialized originally.
* Shiki Code block Experimental
* refactor
* update code
* remove console.log
* add transformers to namespace
* some validations
* fix components paths
* fix ruff
* add a high-level component
* fix mapping
* fix mapping
* python 3.9+
* see if this fixes the tests
* fix pyi and annotations
* minimal update of theme and language map
* add hack for reflex-web/flexdown
* unit test file commit
* [ENG-3895] [ENG-3896] Update styling for shiki code block
* strip transformer triggers
* minor refactor
* linter
* fix pyright
* pyi fix
* add unit tests
* sneaky pyright ignore
* the transformer trigger regex should remove the language comment character
* minor refactor
* fix silly mistake
* component mapping in markdown should use the first child for codeblock
* use ternary operator in numbers.py, move code block args to class for docs discoverability
* precommit
* pyright fix
* remove id on copy button animation
* pyright fix for real
* pyi fix
* pyi fix fr
* check if svg exists
* copy event chain
* do a concatenation instead of first child
* added comment
---------
Co-authored-by: Carlos <cutillascarlos@gmail.com>
* make var system expandable
* use old syntax
* remove newer features
* that's a weird error
* remove unnecessary error message
* remove hacky getattr as it's no longer necessary
* improve color handling
* get it right pyright
* dang it darglint
* fix prototype to string
* don't try twice
* adjust test case
* add test for var alpha
* change place of type ignore
* fix json
* add name to custom var operation
* don't delete that you silly
* change logic
* remove extra word
* move all environment variables to the same place
* reorder things around
* move more variables to environment
* remove cyclical imports
* forgot default value for field
* for some reason type hints aren't being interpreted
* put the field type *before* not after
* make it get
* move a bit more
* add more fields
* move reflex dir
* add return
* put things somewhere else
* add custom error