prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Repeated Paragraph in the documentation for `core-concepts`
  In the file `core-concepts.md`, the section on [`Pipeline`](https://github.com/zenml-io/zenml/blob/b94dff83f0e7c8ab29e99d6b42a0c906a3512b63/docs/book/introduction/core-concepts.md?plain=1#L27-L41) includes a repeated paragraph. The first paragraph in the the pipeline section is repeated in the 3rd paragraph of the same section.  
  
  ```markdown
  Within your repository, you will have one or more pipelines as part of your experimentation workflow. A ZenML 
  pipeline is a sequence of tasks that execute in a specific order and yield artifacts. The artifacts are stored 
  within the artifact store and indexed via the metadata store. Each individual task within a pipeline is known as a 
  step. The standard pipelines within ZenML are designed to have easy interfaces to add pre-decided steps, with the 
  order also pre-decided. Other sorts of pipelines can be created as well from scratch.
  
  Pipelines are designed as simple functions. They are created by using decorators appropriate to the specific use case 
  you have. The moment it is `run`, a pipeline is compiled and passed directly to the orchestrator, to be run in the 
  orchestrator environment.
  
  Within your repository, you will have one or more pipelines as part of your experimentation workflow. A ZenML 
  pipeline is a sequence of tasks that execute in a specific order and yield artifacts. The artifacts are stored 
  within the artifact store and indexed via the metadata store. Each individual task within a pipeline is known as a 
  step. The standard pipelines (like `TrainingPipeline`) within ZenML are designed to have easy interfaces to add 
  pre-decided steps, with the order also pre-decided. Other sorts of pipelines can be created as well from scratch.
  ```
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `src/zenml/materializers/built_in_materializer.py`
  Content:
  ```
  1 #  Copyright (c) ZenML GmbH 2021. All Rights Reserved.
  2 #
  3 #  Licensed under the Apache License, Version 2.0 (the "License");
  4 #  you may not use this file except in compliance with the License.
  5 #  You may obtain a copy of the License at:
  6 #
  7 #       https://www.apache.org/licenses/LICENSE-2.0
  8 #
  9 #  Unless required by applicable law or agreed to in writing, software
  10 #  distributed under the License is distributed on an "AS IS" BASIS,
  11 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
  12 #  or implied. See the License for the specific language governing
  13 #  permissions and limitations under the License.
  14 import os
  15 from typing import Any, Type
  16 
  17 from zenml.artifacts import DataAnalysisArtifact, DataArtifact
  18 from zenml.logger import get_logger
  19 from zenml.materializers.base_materializer import BaseMaterializer
  20 from zenml.utils import yaml_utils
  21 
  22 logger = get_logger(__name__)
  23 DEFAULT_FILENAME = "data.json"
  24 
  25 
  26 class BuiltInMaterializer(BaseMaterializer):
  27     """Read/Write JSON files."""
  28 
  29     # TODO [LOW]: consider adding typing.Dict and typing.List
  30     # since these are the 'correct' way to annotate these types.
  31 
  32     ASSOCIATED_ARTIFACT_TYPES = [
  33         DataArtifact,
  34         DataAnalysisArtifact,
  35     ]
  36     ASSOCIATED_TYPES = [
  37         int,
  38         str,
  39         bytes,
  40         dict,
  41         float,
  42         list,
  43         tuple,
  44         bool,
  45     ]
  46 
  47     def handle_input(self, data_type: Type[Any]) -> Any:
  48         """Reads basic primitive types from json."""
  49         super().handle_input(data_type)
  50         filepath = os.path.join(self.artifact.uri, DEFAULT_FILENAME)
  51         contents = yaml_utils.read_json(filepath)
  52         if type(contents) != data_type:
  53             # TODO [ENG-142]: Raise error or try to coerce
  54             logger.debug(
  55                 f"Contents {contents} was type {type(contents)} but expected "
  56                 f"{data_type}"
  57             )
  58         return contents
  59 
  60     def handle_return(self, data: Any) -> None:
  61         """Handles basic built-in types and stores them as json"""
  62         super().handle_return(data)
  63         filepath = os.path.join(self.artifact.uri, DEFAULT_FILENAME)
  64         yaml_utils.write_json(filepath, data)
  65
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/src/zenml/materializers/built_in_materializer.py b/src/zenml/materializers/built_in_materializer.py
  --- a/src/zenml/materializers/built_in_materializer.py
  +++ b/src/zenml/materializers/built_in_materializer.py
  @@ -26,7 +26,7 @@
   class BuiltInMaterializer(BaseMaterializer):
       """Read/Write JSON files."""
   
  -    # TODO [LOW]: consider adding typing.Dict and typing.List
  +    # TODO [ENG-322]: consider adding typing.Dict and typing.List
       # since these are the 'correct' way to annotate these types.
   
       ASSOCIATED_ARTIFACT_TYPES = [
  
verification_info: {"golden_diff": "diff --git a/src/zenml/materializers/built_in_materializer.py b/src/zenml/materializers/built_in_materializer.py\n--- a/src/zenml/materializers/built_in_materializer.py\n+++ b/src/zenml/materializers/built_in_materializer.py\n@@ -26,7 +26,7 @@\n class BuiltInMaterializer(BaseMaterializer):\n     \"\"\"Read/Write JSON files.\"\"\"\n \n-    # TODO [LOW]: consider adding typing.Dict and typing.List\n+    # TODO [ENG-322]: consider adding typing.Dict and typing.List\n     # since these are the 'correct' way to annotate these types.\n \n     ASSOCIATED_ARTIFACT_TYPES = [\n", "issue": "Repeated Paragraph in the documentation for `core-concepts`\nIn the file `core-concepts.md`, the section on [`Pipeline`](https://github.com/zenml-io/zenml/blob/b94dff83f0e7c8ab29e99d6b42a0c906a3512b63/docs/book/introduction/core-concepts.md?plain=1#L27-L41) includes a repeated paragraph. The first paragraph in the the pipeline section is repeated in the 3rd paragraph of the same section.  \r\n\r\n```markdown\r\nWithin your repository, you will have one or more pipelines as part of your experimentation workflow. A ZenML \r\npipeline is a sequence of tasks that execute in a specific order and yield artifacts. The artifacts are stored \r\nwithin the artifact store and indexed via the metadata store. Each individual task within a pipeline is known as a \r\nstep. The standard pipelines within ZenML are designed to have easy interfaces to add pre-decided steps, with the \r\norder also pre-decided. Other sorts of pipelines can be created as well from scratch.\r\n\r\nPipelines are designed as simple functions. They are created by using decorators appropriate to the specific use case \r\nyou have. The moment it is `run`, a pipeline is compiled and passed directly to the orchestrator, to be run in the \r\norchestrator environment.\r\n\r\nWithin your repository, you will have one or more pipelines as part of your experimentation workflow. A ZenML \r\npipeline is a sequence of tasks that execute in a specific order and yield artifacts. The artifacts are stored \r\nwithin the artifact store and indexed via the metadata store. Each individual task within a pipeline is known as a \r\nstep. The standard pipelines (like `TrainingPipeline`) within ZenML are designed to have easy interfaces to add \r\npre-decided steps, with the order also pre-decided. Other sorts of pipelines can be created as well from scratch.\r\n```\n", "before_files": [{"content": "#  Copyright (c) ZenML GmbH 2021. All Rights Reserved.\n#\n#  Licensed under the Apache License, Version 2.0 (the \"License\");\n#  you may not use this file except in compliance with the License.\n#  You may obtain a copy of the License at:\n#\n#       https://www.apache.org/licenses/LICENSE-2.0\n#\n#  Unless required by applicable law or agreed to in writing, software\n#  distributed under the License is distributed on an \"AS IS\" BASIS,\n#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\n#  or implied. See the License for the specific language governing\n#  permissions and limitations under the License.\nimport os\nfrom typing import Any, Type\n\nfrom zenml.artifacts import DataAnalysisArtifact, DataArtifact\nfrom zenml.logger import get_logger\nfrom zenml.materializers.base_materializer import BaseMaterializer\nfrom zenml.utils import yaml_utils\n\nlogger = get_logger(__name__)\nDEFAULT_FILENAME = \"data.json\"\n\n\nclass BuiltInMaterializer(BaseMaterializer):\n    \"\"\"Read/Write JSON files.\"\"\"\n\n    # TODO [LOW]: consider adding typing.Dict and typing.List\n    # since these are the 'correct' way to annotate these types.\n\n    ASSOCIATED_ARTIFACT_TYPES = [\n        DataArtifact,\n        DataAnalysisArtifact,\n    ]\n    ASSOCIATED_TYPES = [\n        int,\n        str,\n        bytes,\n        dict,\n        float,\n        list,\n        tuple,\n        bool,\n    ]\n\n    def handle_input(self, data_type: Type[Any]) -> Any:\n        \"\"\"Reads basic primitive types from json.\"\"\"\n        super().handle_input(data_type)\n        filepath = os.path.join(self.artifact.uri, DEFAULT_FILENAME)\n        contents = yaml_utils.read_json(filepath)\n        if type(contents) != data_type:\n            # TODO [ENG-142]: Raise error or try to coerce\n            logger.debug(\n                f\"Contents {contents} was type {type(contents)} but expected \"\n                f\"{data_type}\"\n            )\n        return contents\n\n    def handle_return(self, data: Any) -> None:\n        \"\"\"Handles basic built-in types and stores them as json\"\"\"\n        super().handle_return(data)\n        filepath = os.path.join(self.artifact.uri, DEFAULT_FILENAME)\n        yaml_utils.write_json(filepath, data)\n", "path": "src/zenml/materializers/built_in_materializer.py"}], "after_files": [{"content": "#  Copyright (c) ZenML GmbH 2021. All Rights Reserved.\n#\n#  Licensed under the Apache License, Version 2.0 (the \"License\");\n#  you may not use this file except in compliance with the License.\n#  You may obtain a copy of the License at:\n#\n#       https://www.apache.org/licenses/LICENSE-2.0\n#\n#  Unless required by applicable law or agreed to in writing, software\n#  distributed under the License is distributed on an \"AS IS\" BASIS,\n#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\n#  or implied. See the License for the specific language governing\n#  permissions and limitations under the License.\nimport os\nfrom typing import Any, Type\n\nfrom zenml.artifacts import DataAnalysisArtifact, DataArtifact\nfrom zenml.logger import get_logger\nfrom zenml.materializers.base_materializer import BaseMaterializer\nfrom zenml.utils import yaml_utils\n\nlogger = get_logger(__name__)\nDEFAULT_FILENAME = \"data.json\"\n\n\nclass BuiltInMaterializer(BaseMaterializer):\n    \"\"\"Read/Write JSON files.\"\"\"\n\n    # TODO [ENG-322]: consider adding typing.Dict and typing.List\n    # since these are the 'correct' way to annotate these types.\n\n    ASSOCIATED_ARTIFACT_TYPES = [\n        DataArtifact,\n        DataAnalysisArtifact,\n    ]\n    ASSOCIATED_TYPES = [\n        int,\n        str,\n        bytes,\n        dict,\n        float,\n        list,\n        tuple,\n        bool,\n    ]\n\n    def handle_input(self, data_type: Type[Any]) -> Any:\n        \"\"\"Reads basic primitive types from json.\"\"\"\n        super().handle_input(data_type)\n        filepath = os.path.join(self.artifact.uri, DEFAULT_FILENAME)\n        contents = yaml_utils.read_json(filepath)\n        if type(contents) != data_type:\n            # TODO [ENG-142]: Raise error or try to coerce\n            logger.debug(\n                f\"Contents {contents} was type {type(contents)} but expected \"\n                f\"{data_type}\"\n            )\n        return contents\n\n    def handle_return(self, data: Any) -> None:\n        \"\"\"Handles basic built-in types and stores them as json\"\"\"\n        super().handle_return(data)\n        filepath = os.path.join(self.artifact.uri, DEFAULT_FILENAME)\n        yaml_utils.write_json(filepath, data)\n", "path": "src/zenml/materializers/built_in_materializer.py"}]}