소스 검색

Comment out pclist (#407)

Nikhil Rao 2 년 전
부모
커밋
e578956b0c
3개의 변경된 파일134개의 추가작업 그리고 132개의 파일을 삭제
  1. 17 15
      pynecone/state.py
  2. 1 1
      pynecone/utils.py
  3. 116 116
      tests/test_app.py

+ 17 - 15
pynecone/state.py

@@ -90,7 +90,7 @@ class State(Base, ABC):
         Primarily for mutation in fields of mutable data types.
 
         Args:
-            field_name (str): The name of the field we want to reassign
+            field_name: The name of the field we want to reassign
         """
         setattr(
             self,
@@ -287,9 +287,9 @@ class State(Base, ABC):
         defined statically in the model.
 
         Args:
-            name (str): The name of the variable
-            type_ (Any): The type of the variable
-            default_value (Any): The default value of the variable
+            name: The name of the variable
+            type_: The type of the variable
+            default_value: The default value of the variable
 
         Raises:
             NameError: if a variable of this name already exists
@@ -688,17 +688,19 @@ def _convert_mutable_datatypes(
     Returns:
         The converted field_value
     """
-    if isinstance(field_value, list):
-        for index in range(len(field_value)):
-            field_value[index] = _convert_mutable_datatypes(
-                field_value[index], reassign_field, field_name
-            )
-
-        field_value = PCList(
-            field_value, reassign_field=reassign_field, field_name=field_name
-        )
-
-    elif isinstance(field_value, dict):
+    # TODO: The PCList class needs to be pickleable to work with Redis.
+    # We will uncomment this code once this is fixed.
+    # if isinstance(field_value, list):
+    #     for index in range(len(field_value)):
+    #         field_value[index] = _convert_mutable_datatypes(
+    #             field_value[index], reassign_field, field_name
+    #         )
+
+    #     field_value = PCList(
+    #         field_value, reassign_field=reassign_field, field_name=field_name
+    #     )
+
+    if isinstance(field_value, dict):
         for key, value in field_value.items():
             field_value[key] = _convert_mutable_datatypes(
                 value, reassign_field, field_name

+ 1 - 1
pynecone/utils.py

@@ -1316,7 +1316,7 @@ def is_backend_variable(name: str) -> bool:
     """Check if this variable name correspond to a backend variable.
 
     Args:
-        name (str): The name of the variable to check
+        name: The name of the variable to check
 
     Returns:
         bool: The result of the check

+ 116 - 116
tests/test_app.py

@@ -222,119 +222,119 @@ def list_mutation_state():
     return TestState()
 
 
-@pytest.mark.asyncio
-@pytest.mark.parametrize(
-    "event_tuples",
-    [
-        pytest.param(
-            [
-                (
-                    "test_state.make_friend",
-                    {"test_state": {"plain_friends": ["Tommy", "another-fd"]}},
-                ),
-                (
-                    "test_state.change_first_friend",
-                    {"test_state": {"plain_friends": ["Jenny", "another-fd"]}},
-                ),
-            ],
-            id="append then __setitem__",
-        ),
-        pytest.param(
-            [
-                (
-                    "test_state.unfriend_first_friend",
-                    {"test_state": {"plain_friends": []}},
-                ),
-                (
-                    "test_state.make_friend",
-                    {"test_state": {"plain_friends": ["another-fd"]}},
-                ),
-            ],
-            id="delitem then append",
-        ),
-        pytest.param(
-            [
-                (
-                    "test_state.make_friends_with_colleagues",
-                    {"test_state": {"plain_friends": ["Tommy", "Peter", "Jimmy"]}},
-                ),
-                (
-                    "test_state.remove_tommy",
-                    {"test_state": {"plain_friends": ["Peter", "Jimmy"]}},
-                ),
-                (
-                    "test_state.remove_last_friend",
-                    {"test_state": {"plain_friends": ["Peter"]}},
-                ),
-                (
-                    "test_state.unfriend_all_friends",
-                    {"test_state": {"plain_friends": []}},
-                ),
-            ],
-            id="extend, remove, pop, clear",
-        ),
-        pytest.param(
-            [
-                (
-                    "test_state.add_jimmy_to_second_group",
-                    {
-                        "test_state": {
-                            "friends_in_nested_list": [["Tommy"], ["Jenny", "Jimmy"]]
-                        }
-                    },
-                ),
-                (
-                    "test_state.remove_first_person_from_first_group",
-                    {
-                        "test_state": {
-                            "friends_in_nested_list": [[], ["Jenny", "Jimmy"]]
-                        }
-                    },
-                ),
-                (
-                    "test_state.remove_first_group",
-                    {"test_state": {"friends_in_nested_list": [["Jenny", "Jimmy"]]}},
-                ),
-            ],
-            id="nested list",
-        ),
-        pytest.param(
-            [
-                (
-                    "test_state.add_jimmy_to_tommy_friends",
-                    {"test_state": {"friends_in_dict": {"Tommy": ["Jenny", "Jimmy"]}}},
-                ),
-                (
-                    "test_state.remove_jenny_from_tommy",
-                    {"test_state": {"friends_in_dict": {"Tommy": ["Jimmy"]}}},
-                ),
-                (
-                    "test_state.tommy_has_no_fds",
-                    {"test_state": {"friends_in_dict": {"Tommy": []}}},
-                ),
-            ],
-            id="list in dict",
-        ),
-    ],
-)
-async def test_list_mutation_detection__plain_list(
-    event_tuples: List[Tuple[str, List[str]]], list_mutation_state: State
-):
-    """Test list mutation detection
-    when reassignment is not explicitly included in the logic.
-
-    Args:
-        event_tuples: From parametrization.
-        list_mutation_state: A state with list mutation features.
-    """
-    for event_name, expected_delta in event_tuples:
-        result = await list_mutation_state.process(
-            Event(
-                token="fake-token",
-                name=event_name,
-                router_data={"pathname": "/", "query": {}},
-                payload={},
-            )
-        )
-
-        assert result.delta == expected_delta
+# @pytest.mark.asyncio
+# @pytest.mark.parametrize(
+#     "event_tuples",
+#     [
+#         pytest.param(
+#             [
+#                 (
+#                     "test_state.make_friend",
+#                     {"test_state": {"plain_friends": ["Tommy", "another-fd"]}},
+#                 ),
+#                 (
+#                     "test_state.change_first_friend",
+#                     {"test_state": {"plain_friends": ["Jenny", "another-fd"]}},
+#                 ),
+#             ],
+#             id="append then __setitem__",
+#         ),
+#         pytest.param(
+#             [
+#                 (
+#                     "test_state.unfriend_first_friend",
+#                     {"test_state": {"plain_friends": []}},
+#                 ),
+#                 (
+#                     "test_state.make_friend",
+#                     {"test_state": {"plain_friends": ["another-fd"]}},
+#                 ),
+#             ],
+#             id="delitem then append",
+#         ),
+#         pytest.param(
+#             [
+#                 (
+#                     "test_state.make_friends_with_colleagues",
+#                     {"test_state": {"plain_friends": ["Tommy", "Peter", "Jimmy"]}},
+#                 ),
+#                 (
+#                     "test_state.remove_tommy",
+#                     {"test_state": {"plain_friends": ["Peter", "Jimmy"]}},
+#                 ),
+#                 (
+#                     "test_state.remove_last_friend",
+#                     {"test_state": {"plain_friends": ["Peter"]}},
+#                 ),
+#                 (
+#                     "test_state.unfriend_all_friends",
+#                     {"test_state": {"plain_friends": []}},
+#                 ),
+#             ],
+#             id="extend, remove, pop, clear",
+#         ),
+#         pytest.param(
+#             [
+#                 (
+#                     "test_state.add_jimmy_to_second_group",
+#                     {
+#                         "test_state": {
+#                             "friends_in_nested_list": [["Tommy"], ["Jenny", "Jimmy"]]
+#                         }
+#                     },
+#                 ),
+#                 (
+#                     "test_state.remove_first_person_from_first_group",
+#                     {
+#                         "test_state": {
+#                             "friends_in_nested_list": [[], ["Jenny", "Jimmy"]]
+#                         }
+#                     },
+#                 ),
+#                 (
+#                     "test_state.remove_first_group",
+#                     {"test_state": {"friends_in_nested_list": [["Jenny", "Jimmy"]]}},
+#                 ),
+#             ],
+#             id="nested list",
+#         ),
+#         pytest.param(
+#             [
+#                 (
+#                     "test_state.add_jimmy_to_tommy_friends",
+#                     {"test_state": {"friends_in_dict": {"Tommy": ["Jenny", "Jimmy"]}}},
+#                 ),
+#                 (
+#                     "test_state.remove_jenny_from_tommy",
+#                     {"test_state": {"friends_in_dict": {"Tommy": ["Jimmy"]}}},
+#                 ),
+#                 (
+#                     "test_state.tommy_has_no_fds",
+#                     {"test_state": {"friends_in_dict": {"Tommy": []}}},
+#                 ),
+#             ],
+#             id="list in dict",
+#         ),
+#     ],
+# )
+# async def test_list_mutation_detection__plain_list(
+#     event_tuples: List[Tuple[str, List[str]]], list_mutation_state: State
+# ):
+#     """Test list mutation detection
+#     when reassignment is not explicitly included in the logic.
+
+#     Args:
+#         event_tuples: From parametrization.
+#         list_mutation_state: A state with list mutation features.
+#     """
+#     for event_name, expected_delta in event_tuples:
+#         result = await list_mutation_state.process(
+#             Event(
+#                 token="fake-token",
+#                 name=event_name,
+#                 router_data={"pathname": "/", "query": {}},
+#                 payload={},
+#             )
+#         )
+
+#         assert result.delta == expected_delta