Skip to content

Commit

Permalink
Revert fstrings change (#895)
Browse files Browse the repository at this point in the history
  • Loading branch information
picklelo authored Apr 27, 2023
1 parent 5674d9a commit 60323a3
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 58 deletions.
1 change: 0 additions & 1 deletion pynecone/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,6 @@ def add_page(
# Generate the component if it is a callable.
try:
component = component if isinstance(component, Component) else component()
component.set_state(self.state)
except TypeError as e:
message = str(e)
if "BaseVar" in message or "ComputedVar" in message:
Expand Down
6 changes: 1 addition & 5 deletions pynecone/components/base/bare.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,4 @@ def create(cls, contents: Any) -> Component:
return cls(contents=str(contents)) # type: ignore

def _render(self) -> Tag:
contents = str(self.contents)
if self.state is not None:
check = f"{{{self.state.get_name()}"
contents = str(self.contents).replace(check, f"${check}")
return Tagless(contents=contents)
return Tagless(contents=str(self.contents))
23 changes: 2 additions & 21 deletions pynecone/components/component.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@
from pynecone.utils import format, imports, path_ops, types
from pynecone.var import BaseVar, Var

if typing.TYPE_CHECKING:
from pynecone.state import State


class Component(Base, ABC):
"""The base class for all Pynecone components."""
Expand All @@ -37,9 +34,6 @@ class Component(Base, ABC):
# The style of the component.
style: Style = Style()

# The app state the component is connected to.
state: Optional[Type[State]] = None

# A mapping from event triggers to event chains.
event_triggers: Dict[str, Union[EventChain, Var]] = {}

Expand Down Expand Up @@ -120,7 +114,7 @@ def __init__(self, *args, **kwargs):
if types._issubclass(field_type, Var):
try:
# Try to create a var from the value.
kwargs[key] = Var.create(value, is_string=type(value) == str)
kwargs[key] = Var.create(value)

# Check that the var type is not None.
if kwargs[key] is None:
Expand Down Expand Up @@ -365,7 +359,7 @@ def create(cls, *children, **props) -> Component:
children = [
child
if isinstance(child, Component)
else Bare.create(contents=Var.create(child))
else Bare.create(contents=Var.create(child, is_string=True))
for child in children
]
return cls(children=children, **props)
Expand Down Expand Up @@ -399,19 +393,6 @@ def add_style(self, style: ComponentStyle) -> Component:
child.add_style(style)
return self

def set_state(self, state: Type[State]):
"""Set the state of the component and its children.
Args:
state: The state to set.
"""
# Set the state of the component.
self.state = state

# Set the state of the children.
for child in self.children:
child.set_state(state)

def render(self) -> str:
"""Render the component.
Expand Down
Empty file removed tests/components/base/__init__.py
Empty file.
6 changes: 2 additions & 4 deletions tests/components/base/test_bare.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import pytest

from pynecone.components.base.bare import Bare
from pynecone.state import DefaultState


@pytest.mark.parametrize(
"contents,expected",
[
("hello", "hello"),
("{}", "{}"),
("{default_state.name}", "${default_state.name}"),
("${default_state.name}", "${default_state.name}"),
("{state.name}", "{state.name}"),
],
)
Expand All @@ -21,5 +20,4 @@ def test_fstrings(contents, expected):
expected: The expected output.
"""
comp = Bare.create(contents)
comp.set_state(DefaultState)
assert str(comp) == f"{{`{expected}`}}"
assert str(comp) == expected
4 changes: 2 additions & 2 deletions tests/components/forms/test_uploads.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def test_upload_component_render(upload_component):
str(upload_component) == f"<ReactDropzone multiple={{true}}{os.linesep}"
"onDrop={e => File(e)}>{({getRootProps, getInputProps}) => (<Box "
'sx={{"border": "1px dotted black"}}{...getRootProps()}><Input '
f"type={{`file`}}{{...getInputProps()}}/>{os.linesep}"
f'type="file"{{...getInputProps()}}/>{os.linesep}'
f"<Button>{{`select file`}}</Button>{os.linesep}"
"<Text>{`Drag and drop files here or click to select "
"files`}</Text></Box>)}</ReactDropzone>"
Expand All @@ -72,7 +72,7 @@ def test_upload_component_with_props_render(upload_component_with_props):
f"noDrag={{true}}{os.linesep}"
"onDrop={e => File(e)}>{({getRootProps, getInputProps}) => (<Box "
'sx={{"border": "1px dotted black"}}{...getRootProps()}><Input '
f"type={{`file`}}{{...getInputProps()}}/>{os.linesep}"
f'type="file"{{...getInputProps()}}/>{os.linesep}'
f"<Button>{{`select file`}}</Button>{os.linesep}"
"<Text>{`Drag and drop files here or click to select "
"files`}</Text></Box>)}</ReactDropzone>"
Expand Down
26 changes: 1 addition & 25 deletions tests/components/test_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from pynecone.components.component import Component, CustomComponent, custom_component
from pynecone.components.layout.box import Box
from pynecone.event import EVENT_ARG, EVENT_TRIGGERS, EventHandler
from pynecone.state import DefaultState, State
from pynecone.state import State
from pynecone.style import Style
from pynecone.utils import imports
from pynecone.var import Var
Expand Down Expand Up @@ -434,27 +434,3 @@ def test_get_hooks_nested2(component3, component4):
).get_hooks()
== exp_hooks
)


def test_set_state(component1, component2, component3):
"""Test that setting the state of a component works.
Args:
component1: test component.
component2: another component.
component3: component with hooks defined.
"""
c2 = component2.create()
c3 = component3.create()
c1 = component1.create(c2, c3)

# State should be None by default.
assert c1.state is None
assert c2.state is None
assert c3.state is None

# Setting the parent state should set the child state.
c1.set_state(DefaultState)
assert c1.state == DefaultState
assert c2.state == DefaultState
assert c3.state == DefaultState

0 comments on commit 60323a3

Please sign in to comment.