* 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
* fix dynamic route vars silently shadow all other vars
* add test
* fix: allow multiple dynamic routes with the same arg
* add test for multiple dynamic args with the same name
* avoid side-effects with DynamicState tests
* fix dynamic route integration test which shadowed a var
* fix darglint
* refactor to DynamicRouteVar
* old typing stuff again
* from typing_extensions import Self
try to keep typing backward compatible with older releases we support
* Raise a specific exception when encountering dynamic route arg shadowing
---------
Co-authored-by: Masen Furer <m_github@0x26.net>
* test_component: improve valid/invalid event trigger tests
Add test cases for event triggers defined as annotations.
Add additional cases around lambda returning different values.
Improve assertions for invalid tests (each line needs its own `pytest.raises`).
More invalid test cases.
* [REF-3589] raise EventHandlerArgMismatch when event handler args don't match spec
Improve error message for common issue.
Previously when the event handler arguments didn't match the spec, the
traceback resulted in:
```
OSError: could not get source code
```
Now this problem is traceable as a distinct error condition and users are
empowered to debug their code and reference the documentation (to be updated)
for further information.
* raise EventFnArgMismatch when lambda args don't match event trigger spec
Improve error message for another common issue encountered in the reflex framework.
Previous error message was
```
TypeError: index.<locals>.<lambda>() takes 0 positional arguments but 1 was given
```
* Fix up lambda test cases
* call_event_fn: adjust number of args for bound methods