Skip to content

Commit 103f6e5

Browse files
authored
Docs/add code block copy button (#2918)
* add copy button to code blocks * improve code copying * update code examples * update changelog
1 parent d1d4bbb commit 103f6e5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+509
-612
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ but cannot always guarantee backwards compatibility. Changes that may **break co
2525
- It is now possible to control the fit and predict verbosity in `ForecastingModel.historical_forecasts()` by passing `verbose` in parameters `fit_kwargs` and `predict_kwargs`. [#2805](https://github.com/unit8co/darts/pull/2805) by [Timon Erhart](https://github.com/turbotimon) and [Dennis Bader](https://github.com/dennisbader).
2626
- Added support for applying historical forecast, backtest and residuals globally on all series with parameter `apply_globally: bool`. If `True`, computes the output only the time intersection of all series. Additionally, with `retrain=True`, activates global model- and data transformer fitting (for global forecasting models). If `False` (default), computes the output on the entire extent of each individual series and performs local fitting. [#2916](https://github.com/unit8co/darts/pull/2916) by [Dennis Bader](https://github.com/dennisbader).
2727
- `TimeSeries.drop_before()` and `drop_after()` now support keeping the split point in the returned series by passing parameter `keep=True`. [#2916](https://github.com/unit8co/darts/pull/2916) by [Dennis Bader](https://github.com/dennisbader).
28+
- Added support for copying all example code blocks from the documentation to the clipboard. [#2918](https://github.com/unit8co/darts/pull/2918) by [Dennis Bader](https://github.com/dennisbader).
2829

2930
**Fixed**
3031

darts/dataprocessing/pipeline.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,19 @@ def __init__(
5252
--------
5353
>>> import numpy as np
5454
>>> from darts import TimeSeries
55-
>>> from darts.datasets import AirPassengersDataset
5655
>>> from darts.dataprocessing.transformers import Scaler, MissingValuesFiller
5756
>>> from darts.dataprocessing.pipeline import Pipeline
58-
>>> values = np.arange(start=0, stop=12.5, step=2.5)
57+
>>> values = np.arange(start=0, stop=10, step=2.)
5958
>>> values[1:3] = np.nan
60-
>>> series = series.from_values(values)
59+
>>> series = TimeSeries.from_values(values)
6160
>>> pipeline = Pipeline([MissingValuesFiller(), Scaler()])
6261
>>> series_transformed = pipeline.fit_transform(series)
63-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
64-
array([[[0. ]],
65-
[[0.25]],
66-
[[0.5 ]],
67-
[[0.75]],
68-
[[1. ]]])
69-
Coordinates:
70-
* time (time) int64 0 1 2 3 4
71-
* component (component) object '0'
72-
Dimensions without coordinates: sample
62+
>>> print(series_transformed.values())
63+
[[0. ]
64+
[0.25]
65+
[0.5 ]
66+
[0.75]
67+
[1. ]]
7368
"""
7469

7570
raise_if_not(

darts/dataprocessing/transformers/base_data_transformer.py

Lines changed: 20 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -131,55 +131,30 @@ def __init__(
131131
>>> from darts.utils.timeseries_generation import linear_timeseries
132132
>>>
133133
>>> class SimpleTransform(BaseDataTransformer):
134+
>>> def __init__(self, a):
135+
>>> self._a = a
136+
>>> super().__init__()
134137
>>>
135-
>>> def __init__(self, a):
136-
>>> self._a = a
137-
>>> super().__init__()
138-
>>>
139-
>>> @staticmethod
140-
>>> def ts_transform(series, params, **kwargs):
141-
>>> a = params['fixed']['_a']
142-
>>> b = kwargs.pop('b')
143-
>>> return a*series + b
138+
>>> @staticmethod
139+
>>> def ts_transform(series, params, **kwargs):
140+
>>> a = params['fixed']['_a']
141+
>>> b = kwargs.pop('b')
142+
>>> return a*series + b
144143
>>>
145144
>>> series = linear_timeseries(length=5)
146-
>>> print(series)
147-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
148-
array([[[0. ]],
149-
150-
[[0.25]],
151-
152-
[[0.5 ]],
153-
154-
[[0.75]],
155-
156-
[[1. ]]])
157-
Coordinates:
158-
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-05
159-
* component (component) object 'linear'
160-
Dimensions without coordinates: sample
161-
Attributes:
162-
static_covariates: None
163-
hierarchy: None
145+
>>> print(series.values())
146+
[[0. ]
147+
[0.25]
148+
[0.5 ]
149+
[0.75]
150+
[1. ]]
164151
>>> series = SimpleTransform(a=2).transform(series, b=3)
165-
>>> print(series)
166-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
167-
array([[[3. ]],
168-
169-
[[3.5]],
170-
171-
[[4. ]],
172-
173-
[[4.5]],
174-
175-
[[5. ]]])
176-
Coordinates:
177-
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-05
178-
* component (component) object 'linear'
179-
Dimensions without coordinates: sample
180-
Attributes:
181-
static_covariates: None
182-
hierarchy: None
152+
>>> print(series.values())
153+
[[3. ]
154+
[3.5]
155+
[4. ]
156+
[4.5]
157+
[5. ]]
183158
"""
184159
# Assume `super().__init__` called at *very end* of
185160
# child-most class's `__init__`, so `vars(self)` contains

darts/dataprocessing/transformers/boxcox.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,12 @@ def __init__(
8989
>>> series = AirPassengersDataset().load()
9090
>>> transformer = BoxCox(lmbda=0.2)
9191
>>> series_transformed = transformer.fit_transform(series)
92-
>>> print(series_transformed.head())
93-
<TimeSeries (DataArray) (Month: 5, component: 1, sample: 1)>
94-
array([[[7.84735157]],
95-
[[7.98214351]],
96-
[[8.2765364 ]],
97-
[[8.21563229]],
98-
[[8.04749318]]])
99-
Coordinates:
100-
* Month (Month) datetime64[ns] 1949-01-01 1949-02-01 ... 1949-05-01
101-
* component (component) object '#Passengers'
102-
Dimensions without coordinates: sample
92+
>>> print(series_transformed.values()[:5])
93+
[[7.84735157]
94+
[7.98214351]
95+
[8.2765364 ]
96+
[8.21563229]
97+
[8.04749318]]
10398
10499
References
105100
----------

darts/dataprocessing/transformers/diff.py

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -81,27 +81,20 @@ def __init__(
8181
>>> from darts.dataprocessing.transformers import Diff
8282
>>> series = AirPassengersDataset().load()
8383
>>> first_order_diff = Diff(lags=1, dropna=True).fit_transform(series)
84-
>>> print(first_order_diff.head())
85-
<TimeSeries (DataArray) (Month: 5, component: 1, sample: 1)>
86-
array([[[ 6.]],
87-
[[14.]],
88-
[[-3.]],
89-
[[-8.]],
90-
[[14.]]])
91-
Coordinates:
92-
* Month (Month) datetime64[ns] 1949-02-01 1949-03-01 ... 1949-06-01
93-
* component (component) object '#Passengers'
84+
>>> print(first_order_diff.values()[:5])
85+
[[ 6.]
86+
[14.]
87+
[-3.]
88+
[-8.]
89+
[14.]]
9490
>>> second_order_diff = Diff(lags=[1, 2], dropna=False).fit_transform(series)
95-
>>> print(second_order_diff.head())
96-
<TimeSeries (DataArray) (Month: 5, component: 1, sample: 1)>
97-
array([[[ nan]],
98-
[[ nan]],
99-
[[ nan]],
100-
[[ -9.]],
101-
[[-22.]]])
102-
Coordinates:
103-
* Month (Month) datetime64[ns] 1949-01-01 1949-02-01 ... 1949-05-01
104-
* component (component) object '#Passengers'
91+
>>> print(second_order_diff.values()[:5])
92+
[[ nan]
93+
[ nan]
94+
[ nan]
95+
[ -9.]
96+
[-22.]]
97+
10598
References
10699
----------
107100
.. [1] https://otexts.com/fpp2/stationarity.html

darts/dataprocessing/transformers/fittable_data_transformer.py

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -126,43 +126,19 @@ class should first inherit from `FittableDataTransformer` and then from `Inverti
126126
>>> return {'scale': scale, 'position': position}
127127
>>>
128128
>>> series = linear_timeseries(length=5, start_value=1, end_value=5)
129-
>>> print(series)
130-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
131-
array([[[1.]],
132-
133-
[[2.]],
134-
135-
[[3.]],
136-
137-
[[4.]],
138-
139-
[[5.]]])
140-
Coordinates:
141-
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-05
142-
* component (component) object 'linear'
143-
Dimensions without coordinates: sample
144-
Attributes:
145-
static_covariates: None
146-
hierarchy: None
129+
>>> print(series.values())
130+
[[1.]
131+
[2.]
132+
[3.]
133+
[4.]
134+
[5.]]
147135
>>> series = SimpleRangeScaler(scale=2, position=-1).fit_transform(series)
148-
>>> print(series)
149-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
150-
array([[[-1. ]],
151-
152-
[[-0.5]],
153-
154-
[[ 0. ]],
155-
156-
[[ 0.5]],
157-
158-
[[ 1. ]]])
159-
Coordinates:
160-
* time (time) int64 0 1 2 3 4
161-
* component (component) <U1 '0'
162-
Dimensions without coordinates: sample
163-
Attributes:
164-
static_covariates: None
165-
hierarchy: None
136+
>>> print(series.values())
137+
[[-1. ]
138+
[-0.5]
139+
[ 0. ]
140+
[ 0.5]
141+
[ 1. ]]
166142
"""
167143
super().__init__(
168144
name=name,

darts/dataprocessing/transformers/invertible_data_transformer.py

Lines changed: 18 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -108,63 +108,27 @@ def __init__(
108108
>>> return (series - b) / a
109109
>>>
110110
>>> series = linear_timeseries(length=5)
111-
>>> print(series)
112-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
113-
array([[[0. ]],
114-
115-
[[0.25]],
116-
117-
[[0.5 ]],
118-
119-
[[0.75]],
120-
121-
[[1. ]]])
122-
Coordinates:
123-
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-05
124-
* component (component) object 'linear'
125-
Dimensions without coordinates: sample
126-
Attributes:
127-
static_covariates: None
128-
hierarchy: None
111+
>>> print(series.values())
112+
[[0. ]
113+
[0.25]
114+
[0.5 ]
115+
[0.75]
116+
[1. ]]
129117
>>> transform = SimpleTransform(a=2)
130118
>>> series = transform.transform(series, b=3)
131-
>>> print(series)
132-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
133-
array([[[3. ]],
134-
135-
[[3.5]],
136-
137-
[[4. ]],
138-
139-
[[4.5]],
140-
141-
[[5. ]]])
142-
Coordinates:
143-
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-05
144-
* component (component) object 'linear'
145-
Dimensions without coordinates: sample
146-
Attributes:
147-
static_covariates: None
148-
hierarchy: None
119+
>>> print(series.values())
120+
[[3. ]
121+
[3.5]
122+
[4. ]
123+
[4.5]
124+
[5. ]]
149125
>>> series = transform.inverse_transform(series, b=3)
150-
>>> print(series)
151-
<TimeSeries (DataArray) (time: 5, component: 1, sample: 1)>
152-
array([[[0. ]],
153-
154-
[[0.25]],
155-
156-
[[0.5 ]],
157-
158-
[[0.75]],
159-
160-
[[1. ]]])
161-
Coordinates:
162-
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-05
163-
* component (component) object 'linear'
164-
Dimensions without coordinates: sample
165-
Attributes:
166-
static_covariates: None
167-
hierarchy: None
126+
>>> print(series.values())
127+
[[0. ]
128+
[0.25]
129+
[0.5 ]
130+
[0.75]
131+
[1. ]]
168132
"""
169133
super().__init__(
170134
name=name,

darts/dataprocessing/transformers/mappers.py

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,14 @@ def __init__(
6161
--------
6262
>>> import numpy as np
6363
>>> from darts import TimeSeries
64-
>>> from darts.dataprocessing.transformers import InvertibleMapper
65-
>>> series = TimeSeries.from_values(np.array([1e0, 1e1, 1e2, 1e3]))
66-
>>> transformer = InvertibleMapper(np.log10, lambda x: 10**x)
64+
>>> from darts.dataprocessing.transformers import Mapper
65+
>>> series = TimeSeries.from_values(np.array([1, 10, 100]))
66+
>>> transformer = Mapper(np.log10)
6767
>>> series_transformed = transformer.transform(series)
68-
>>> print(series_transformed)
69-
<TimeSeries (DataArray) (time: 4, component: 1, sample: 1)>
70-
array([[[0.]],
71-
[[1.]],
72-
[[2.]],
73-
[[3.]]])
74-
Coordinates:
75-
* time (time) int64 0 1 2 3
76-
* component (component) <U1 '0'
77-
Dimensions without coordinates: sample
68+
>>> print(series_transformed.values())
69+
[[0.]
70+
[1.]
71+
[2.]]
7872
"""
7973
# Define fixed params (i.e. attributes defined before calling `super().__init__`):
8074
self._fn = fn
@@ -128,31 +122,20 @@ def __init__(
128122
--------
129123
>>> import numpy as np
130124
>>> from darts import TimeSeries
131-
>>> from darts.dataprocessing.transformers import Mapper
132-
>>> series = TimeSeries.from_values(np.array([1e0, 1e1, 1e2, 1e3]))
133-
>>> transformer = Mapper(np.log10)
125+
>>> from darts.dataprocessing.transformers import InvertibleMapper
126+
>>> series = TimeSeries.from_values(np.array([1, 10, 100]))
127+
>>> transformer = InvertibleMapper(np.log10, lambda x: 10 ** x)
134128
>>> series_transformed = transformer.transform(series)
135-
>>> print(series_transformed)
136-
<TimeSeries (DataArray) (time: 4, component: 1, sample: 1)>
137-
array([[[0.]],
138-
[[1.]],
139-
[[2.]],
140-
[[3.]]])
141-
Coordinates:
142-
* time (time) int64 0 1 2 3
143-
* component (component) <U1 '0'
144-
Dimensions without coordinates: sample
145-
>>> series_restaured = transformer.inverse_transform(series_transformed)
146-
>>> print(series_restaured)
147-
<TimeSeries (DataArray) (time: 4, component: 1, sample: 1)>
148-
array([[[ 1.]],
149-
[[ 10.]],
150-
[[ 100.]],
151-
[[1000.]]])
152-
Coordinates:
153-
* time (time) int64 0 1 2 3
154-
* component (component) <U1 '0'
155-
Dimensions without coordinates: sample
129+
>>> print(series_transformed.values())
130+
[[0.]
131+
[1.]
132+
[2.]]
133+
[3.]]
134+
>>> series_restored = transformer.inverse_transform(series_transformed)
135+
>>> print(series_restored.values())
136+
[[ 1.]
137+
[ 10.]
138+
[100.]]
156139
"""
157140

158141
self._fn = fn

0 commit comments

Comments
 (0)