Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REF-3591] Remove chakra-related files from immutable vars PR #3821

Merged
merged 18 commits into from
Aug 22, 2024

Conversation

masenf
Copy link
Collaborator

@masenf masenf commented Aug 22, 2024

Note: this requires reflex-dev/reflex-chakra#8 for the CI to pass integration/test_form_submit.py

Copy link

linear bot commented Aug 22, 2024

@masenf masenf force-pushed the masenf/remove-chakra-immutable branch from e766957 to 61bb1c1 Compare August 22, 2024 23:05
@masenf masenf changed the base branch from masenf/var-perf to immutable-vars August 22, 2024 23:05
@masenf masenf merged commit 26002a8 into immutable-vars Aug 22, 2024
1 check passed
@masenf masenf deleted the masenf/remove-chakra-immutable branch August 22, 2024 23:15
masenf added a commit that referenced this pull request Aug 26, 2024
* 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 <[email protected]>

* 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 <[email protected]>

---------

Co-authored-by: Masen Furer <[email protected]>

* Bump memory on relevant actions (#3781)

Co-authored-by: Alek Petuskey <[email protected]>

* [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 <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Khaleel Al-Adhami <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>

* 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 <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>
adhami3310 added a commit that referenced this pull request Aug 27, 2024
* 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 <[email protected]>

* 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 <[email protected]>

---------

Co-authored-by: Masen Furer <[email protected]>

* Bump memory on relevant actions (#3781)

Co-authored-by: Alek Petuskey <[email protected]>

* [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 <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Khaleel Al-Adhami <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>

* 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 <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>
adhami3310 added a commit that referenced this pull request Aug 27, 2024
* 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 <[email protected]>

* 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 <[email protected]>

---------

Co-authored-by: Masen Furer <[email protected]>

* Bump memory on relevant actions (#3781)

Co-authored-by: Alek Petuskey <[email protected]>

* [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 <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Khaleel Al-Adhami <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>

* 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 <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>
adhami3310 added a commit that referenced this pull request Aug 27, 2024
* 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 <[email protected]>

* 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 <[email protected]>

---------

Co-authored-by: Masen Furer <[email protected]>

* Bump memory on relevant actions (#3781)

Co-authored-by: Alek Petuskey <[email protected]>

* [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 <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Khaleel Al-Adhami <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>

* 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 <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Manas Gupta <[email protected]>
Co-authored-by: coolstorm <[email protected]>
Co-authored-by: Thomas Brandého <[email protected]>
Co-authored-by: Shubhankar Dimri <[email protected]>
Co-authored-by: benedikt-bartscher <[email protected]>
Co-authored-by: Alek Petuskey <[email protected]>
Co-authored-by: Elijah Ahianyo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants