We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[DOC] transformers tutorial
There should be a notebook that explains the different transformer scitypes, and how transformers work in `sktime`.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `sktime/datatypes/_series/_examples.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 """Example generation for testing.
3 
4 Exports dict of examples, useful for testing as fixtures.
5 
6 example_dict: dict indexed by triple
7   1st element = mtype - str
8   2nd element = considered as this scitype - str
9   3rd element = int - index of example
10 elements are data objects, considered examples for the mtype
11     all examples with same index are considered "same" on scitype content
12     if None, indicates that representation is not possible
13 
14 example_lossy: dict of bool indexed by triple
15   1st element = mtype - str
16   2nd element = considered as this scitype - str
17   3rd element = int - index of example
18 elements are bool, indicate whether representation has information removed
19     all examples with same index are considered "same" on scitype content
20 
21 example_metadata: dict of metadata dict, indexed by pair
22   1st element = considered as this scitype - str
23   2nd element = int - index of example
24   (there is no "mtype" element, as properties are equal for all mtypes)
25 elements are metadata dict, as returned by check_is_mtype
26     used as expected return of check_is_mtype in tests
27 
28 overall, conversions from non-lossy representations to any other ones
29     should yield the element exactly, identidally (given same index)
30 """
31 
32 import numpy as np
33 import pandas as pd
34 
35 from sktime.utils.validation._dependencies import _check_soft_dependencies
36 
37 example_dict = dict()
38 example_dict_lossy = dict()
39 example_dict_metadata = dict()
40 
41 ###
42 # example 0: univariate
43 
44 s = pd.Series([1, 4, 0.5, -3], dtype=np.float64, name="a")
45 
46 example_dict[("pd.Series", "Series", 0)] = s
47 example_dict_lossy[("pd.Series", "Series", 0)] = False
48 
49 df = pd.DataFrame({"a": [1, 4, 0.5, -3]})
50 
51 example_dict[("pd.DataFrame", "Series", 0)] = df
52 example_dict_lossy[("pd.DataFrame", "Series", 0)] = False
53 
54 arr = np.array([[1], [4], [0.5], [-3]])
55 
56 example_dict[("np.ndarray", "Series", 0)] = arr
57 example_dict_lossy[("np.ndarray", "Series", 0)] = True
58 
59 if _check_soft_dependencies("xarray", severity="none"):
60     import xarray as xr
61 
62     da = xr.DataArray(
63         [[1], [4], [0.5], [-3]],
64         coords=[[0, 1, 2, 3], ["a"]],
65     )
66 
67     example_dict[("xr.DataArray", "Series", 0)] = da
68     example_dict_lossy[("xr.DataArray", "Series", 0)] = False
69 
70 
71 example_dict_metadata[("Series", 0)] = {
72     "is_univariate": True,
73     "is_equally_spaced": True,
74     "is_empty": False,
75     "has_nans": False,
76 }
77 
78 ###
79 # example 1: multivariate
80 
81 example_dict[("pd.Series", "Series", 1)] = None
82 example_dict_lossy[("pd.Series", "Series", 1)] = None
83 
84 df = pd.DataFrame({"a": [1, 4, 0.5, -3], "b": [3, 7, 2, -3 / 7]})
85 
86 example_dict[("pd.DataFrame", "Series", 1)] = df
87 example_dict_lossy[("pd.DataFrame", "Series", 1)] = False
88 
89 arr = np.array([[1, 3], [4, 7], [0.5, 2], [-3, -3 / 7]])
90 
91 example_dict[("np.ndarray", "Series", 1)] = arr
92 example_dict_lossy[("np.ndarray", "Series", 1)] = True
93 if _check_soft_dependencies("xarray", severity="none"):
94     import xarray as xr
95 
96     da = xr.DataArray(
97         [[1, 3], [4, 7], [0.5, 2], [-3, -3 / 7]],
98         coords=[[0, 1, 2, 3], ["a", "b"]],
99     )
100 
101     example_dict[("xr.DataArray", "Series", 1)] = da
102     example_dict_lossy[("xr.DataArray", "Series", 1)] = False
103 
104 example_dict_metadata[("Series", 1)] = {
105     "is_univariate": False,
106     "is_equally_spaced": True,
107     "is_empty": False,
108     "has_nans": False,
109 }
110 
111 ###
112 # example 2: multivariate, positive
113 
114 example_dict[("pd.Series", "Series", 2)] = None
115 example_dict_lossy[("pd.Series", "Series", 2)] = None
116 
117 df = pd.DataFrame({"a": [1, 4, 0.5, 3], "b": [3, 7, 2, 3 / 7]})
118 
119 example_dict[("pd.DataFrame", "Series", 2)] = df
120 example_dict_lossy[("pd.DataFrame", "Series", 2)] = False
121 
122 arr = np.array([[1, 3], [4, 7], [0.5, 2], [3, 3 / 7]])
123 
124 example_dict[("np.ndarray", "Series", 2)] = arr
125 example_dict_lossy[("np.ndarray", "Series", 2)] = True
126 
127 if _check_soft_dependencies("xarray", severity="none"):
128     import xarray as xr
129 
130     da = xr.DataArray(
131         [[1, 3], [4, 7], [0.5, 2], [3, 3 / 7]],
132         coords=[[0, 1, 2, 3], ["a", "b"]],
133     )
134 
135     example_dict[("xr.DataArray", "Series", 2)] = da
136     example_dict_lossy[("xr.DataArray", "Series", 2)] = False
137 
138 
139 example_dict_metadata[("Series", 2)] = {
140     "is_univariate": False,
141     "is_equally_spaced": True,
142     "is_empty": False,
143     "has_nans": False,
144 }
145
```
--- 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()

```

diff --git a/sktime/datatypes/_series/_examples.py b/sktime/datatypes/_series/_examples.py
--- a/sktime/datatypes/_series/_examples.py
+++ b/sktime/datatypes/_series/_examples.py
@@ -142,3 +142,39 @@
     "is_empty": False,
     "has_nans": False,
 }
+
+###
+# example 3: univariate, positive
+
+s = pd.Series([1, 4, 0.5, 3], dtype=np.float64, name="a")
+
+example_dict[("pd.Series", "Series", 3)] = s
+example_dict_lossy[("pd.Series", "Series", 3)] = False
+
+df = pd.DataFrame({"a": [1, 4, 0.5, 3]})
+
+example_dict[("pd.DataFrame", "Series", 3)] = df
+example_dict_lossy[("pd.DataFrame", "Series", 3)] = False
+
+arr = np.array([[1], [4], [0.5], [3]])
+
+example_dict[("np.ndarray", "Series", 3)] = arr
+example_dict_lossy[("np.ndarray", "Series", 3)] = True
+
+if _check_soft_dependencies("xarray", severity="none"):
+    import xarray as xr
+
+    da = xr.DataArray(
+        [[1], [4], [0.5], [3]],
+        coords=[[0, 1, 2, 3], ["a"]],
+    )
+
+    example_dict[("xr.DataArray", "Series", 3)] = da
+    example_dict_lossy[("xr.DataArray", "Series", 3)] = False
+
+example_dict_metadata[("Series", 3)] = {
+    "is_univariate": True,
+    "is_equally_spaced": True,
+    "is_empty": False,
+    "has_nans": False,
+}

{"golden_diff": "diff --git a/sktime/datatypes/_series/_examples.py b/sktime/datatypes/_series/_examples.py\n--- a/sktime/datatypes/_series/_examples.py\n+++ b/sktime/datatypes/_series/_examples.py\n@@ -142,3 +142,39 @@\n     \"is_empty\": False,\n     \"has_nans\": False,\n }\n+\n+###\n+# example 3: univariate, positive\n+\n+s = pd.Series([1, 4, 0.5, 3], dtype=np.float64, name=\"a\")\n+\n+example_dict[(\"pd.Series\", \"Series\", 3)] = s\n+example_dict_lossy[(\"pd.Series\", \"Series\", 3)] = False\n+\n+df = pd.DataFrame({\"a\": [1, 4, 0.5, 3]})\n+\n+example_dict[(\"pd.DataFrame\", \"Series\", 3)] = df\n+example_dict_lossy[(\"pd.DataFrame\", \"Series\", 3)] = False\n+\n+arr = np.array([[1], [4], [0.5], [3]])\n+\n+example_dict[(\"np.ndarray\", \"Series\", 3)] = arr\n+example_dict_lossy[(\"np.ndarray\", \"Series\", 3)] = True\n+\n+if _check_soft_dependencies(\"xarray\", severity=\"none\"):\n+    import xarray as xr\n+\n+    da = xr.DataArray(\n+        [[1], [4], [0.5], [3]],\n+        coords=[[0, 1, 2, 3], [\"a\"]],\n+    )\n+\n+    example_dict[(\"xr.DataArray\", \"Series\", 3)] = da\n+    example_dict_lossy[(\"xr.DataArray\", \"Series\", 3)] = False\n+\n+example_dict_metadata[(\"Series\", 3)] = {\n+    \"is_univariate\": True,\n+    \"is_equally_spaced\": True,\n+    \"is_empty\": False,\n+    \"has_nans\": False,\n+}\n", "issue": "[DOC] transformers tutorial\nThere should be a notebook that explains the different transformer scitypes, and how transformers work in `sktime`.\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\"\"\"Example generation for testing.\n\nExports dict of examples, useful for testing as fixtures.\n\nexample_dict: dict indexed by triple\n  1st element = mtype - str\n  2nd element = considered as this scitype - str\n  3rd element = int - index of example\nelements are data objects, considered examples for the mtype\n    all examples with same index are considered \"same\" on scitype content\n    if None, indicates that representation is not possible\n\nexample_lossy: dict of bool indexed by triple\n  1st element = mtype - str\n  2nd element = considered as this scitype - str\n  3rd element = int - index of example\nelements are bool, indicate whether representation has information removed\n    all examples with same index are considered \"same\" on scitype content\n\nexample_metadata: dict of metadata dict, indexed by pair\n  1st element = considered as this scitype - str\n  2nd element = int - index of example\n  (there is no \"mtype\" element, as properties are equal for all mtypes)\nelements are metadata dict, as returned by check_is_mtype\n    used as expected return of check_is_mtype in tests\n\noverall, conversions from non-lossy representations to any other ones\n    should yield the element exactly, identidally (given same index)\n\"\"\"\n\nimport numpy as np\nimport pandas as pd\n\nfrom sktime.utils.validation._dependencies import _check_soft_dependencies\n\nexample_dict = dict()\nexample_dict_lossy = dict()\nexample_dict_metadata = dict()\n\n###\n# example 0: univariate\n\ns = pd.Series([1, 4, 0.5, -3], dtype=np.float64, name=\"a\")\n\nexample_dict[(\"pd.Series\", \"Series\", 0)] = s\nexample_dict_lossy[(\"pd.Series\", \"Series\", 0)] = False\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, -3]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 0)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 0)] = False\n\narr = np.array([[1], [4], [0.5], [-3]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 0)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 0)] = True\n\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1], [4], [0.5], [-3]],\n        coords=[[0, 1, 2, 3], [\"a\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 0)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 0)] = False\n\n\nexample_dict_metadata[(\"Series\", 0)] = {\n    \"is_univariate\": True,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n\n###\n# example 1: multivariate\n\nexample_dict[(\"pd.Series\", \"Series\", 1)] = None\nexample_dict_lossy[(\"pd.Series\", \"Series\", 1)] = None\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, -3], \"b\": [3, 7, 2, -3 / 7]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 1)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 1)] = False\n\narr = np.array([[1, 3], [4, 7], [0.5, 2], [-3, -3 / 7]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 1)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 1)] = True\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1, 3], [4, 7], [0.5, 2], [-3, -3 / 7]],\n        coords=[[0, 1, 2, 3], [\"a\", \"b\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 1)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 1)] = False\n\nexample_dict_metadata[(\"Series\", 1)] = {\n    \"is_univariate\": False,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n\n###\n# example 2: multivariate, positive\n\nexample_dict[(\"pd.Series\", \"Series\", 2)] = None\nexample_dict_lossy[(\"pd.Series\", \"Series\", 2)] = None\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, 3], \"b\": [3, 7, 2, 3 / 7]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 2)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 2)] = False\n\narr = np.array([[1, 3], [4, 7], [0.5, 2], [3, 3 / 7]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 2)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 2)] = True\n\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1, 3], [4, 7], [0.5, 2], [3, 3 / 7]],\n        coords=[[0, 1, 2, 3], [\"a\", \"b\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 2)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 2)] = False\n\n\nexample_dict_metadata[(\"Series\", 2)] = {\n    \"is_univariate\": False,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n", "path": "sktime/datatypes/_series/_examples.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\"\"\"Example generation for testing.\n\nExports dict of examples, useful for testing as fixtures.\n\nexample_dict: dict indexed by triple\n  1st element = mtype - str\n  2nd element = considered as this scitype - str\n  3rd element = int - index of example\nelements are data objects, considered examples for the mtype\n    all examples with same index are considered \"same\" on scitype content\n    if None, indicates that representation is not possible\n\nexample_lossy: dict of bool indexed by triple\n  1st element = mtype - str\n  2nd element = considered as this scitype - str\n  3rd element = int - index of example\nelements are bool, indicate whether representation has information removed\n    all examples with same index are considered \"same\" on scitype content\n\nexample_metadata: dict of metadata dict, indexed by pair\n  1st element = considered as this scitype - str\n  2nd element = int - index of example\n  (there is no \"mtype\" element, as properties are equal for all mtypes)\nelements are metadata dict, as returned by check_is_mtype\n    used as expected return of check_is_mtype in tests\n\noverall, conversions from non-lossy representations to any other ones\n    should yield the element exactly, identidally (given same index)\n\"\"\"\n\nimport numpy as np\nimport pandas as pd\n\nfrom sktime.utils.validation._dependencies import _check_soft_dependencies\n\nexample_dict = dict()\nexample_dict_lossy = dict()\nexample_dict_metadata = dict()\n\n###\n# example 0: univariate\n\ns = pd.Series([1, 4, 0.5, -3], dtype=np.float64, name=\"a\")\n\nexample_dict[(\"pd.Series\", \"Series\", 0)] = s\nexample_dict_lossy[(\"pd.Series\", \"Series\", 0)] = False\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, -3]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 0)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 0)] = False\n\narr = np.array([[1], [4], [0.5], [-3]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 0)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 0)] = True\n\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1], [4], [0.5], [-3]],\n        coords=[[0, 1, 2, 3], [\"a\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 0)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 0)] = False\n\n\nexample_dict_metadata[(\"Series\", 0)] = {\n    \"is_univariate\": True,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n\n###\n# example 1: multivariate\n\nexample_dict[(\"pd.Series\", \"Series\", 1)] = None\nexample_dict_lossy[(\"pd.Series\", \"Series\", 1)] = None\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, -3], \"b\": [3, 7, 2, -3 / 7]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 1)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 1)] = False\n\narr = np.array([[1, 3], [4, 7], [0.5, 2], [-3, -3 / 7]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 1)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 1)] = True\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1, 3], [4, 7], [0.5, 2], [-3, -3 / 7]],\n        coords=[[0, 1, 2, 3], [\"a\", \"b\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 1)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 1)] = False\n\nexample_dict_metadata[(\"Series\", 1)] = {\n    \"is_univariate\": False,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n\n###\n# example 2: multivariate, positive\n\nexample_dict[(\"pd.Series\", \"Series\", 2)] = None\nexample_dict_lossy[(\"pd.Series\", \"Series\", 2)] = None\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, 3], \"b\": [3, 7, 2, 3 / 7]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 2)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 2)] = False\n\narr = np.array([[1, 3], [4, 7], [0.5, 2], [3, 3 / 7]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 2)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 2)] = True\n\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1, 3], [4, 7], [0.5, 2], [3, 3 / 7]],\n        coords=[[0, 1, 2, 3], [\"a\", \"b\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 2)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 2)] = False\n\n\nexample_dict_metadata[(\"Series\", 2)] = {\n    \"is_univariate\": False,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n\n###\n# example 3: univariate, positive\n\ns = pd.Series([1, 4, 0.5, 3], dtype=np.float64, name=\"a\")\n\nexample_dict[(\"pd.Series\", \"Series\", 3)] = s\nexample_dict_lossy[(\"pd.Series\", \"Series\", 3)] = False\n\ndf = pd.DataFrame({\"a\": [1, 4, 0.5, 3]})\n\nexample_dict[(\"pd.DataFrame\", \"Series\", 3)] = df\nexample_dict_lossy[(\"pd.DataFrame\", \"Series\", 3)] = False\n\narr = np.array([[1], [4], [0.5], [3]])\n\nexample_dict[(\"np.ndarray\", \"Series\", 3)] = arr\nexample_dict_lossy[(\"np.ndarray\", \"Series\", 3)] = True\n\nif _check_soft_dependencies(\"xarray\", severity=\"none\"):\n    import xarray as xr\n\n    da = xr.DataArray(\n        [[1], [4], [0.5], [3]],\n        coords=[[0, 1, 2, 3], [\"a\"]],\n    )\n\n    example_dict[(\"xr.DataArray\", \"Series\", 3)] = da\n    example_dict_lossy[(\"xr.DataArray\", \"Series\", 3)] = False\n\nexample_dict_metadata[(\"Series\", 3)] = {\n    \"is_univariate\": True,\n    \"is_equally_spaced\": True,\n    \"is_empty\": False,\n    \"has_nans\": False,\n}\n", "path": "sktime/datatypes/_series/_examples.py"}]}