arize-phoenix 0.0.18rc1__py3-none-any.whl → 0.0.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-0.0.18rc1.dist-info → arize_phoenix-0.0.19.dist-info}/METADATA +1 -1
- {arize_phoenix-0.0.18rc1.dist-info → arize_phoenix-0.0.19.dist-info}/RECORD +8 -8
- phoenix/__init__.py +1 -1
- phoenix/metrics/timeseries.py +9 -3
- phoenix/server/api/input_types/TimeRange.py +19 -3
- {arize_phoenix-0.0.18rc1.dist-info → arize_phoenix-0.0.19.dist-info}/WHEEL +0 -0
- {arize_phoenix-0.0.18rc1.dist-info → arize_phoenix-0.0.19.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-0.0.18rc1.dist-info → arize_phoenix-0.0.19.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
phoenix/__init__.py,sha256=
|
|
1
|
+
phoenix/__init__.py,sha256=MS-mFdJlXRrlUlXo7KWlnmNRpais546_SbhjGXBcCDU,997
|
|
2
2
|
phoenix/config.py,sha256=tjNn9oqDxQmeO85sCchLlTsDiRJ6AoK0CTt_Uc_hrKM,1442
|
|
3
3
|
phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
4
4
|
phoenix/services.py,sha256=pamdcZ9hp9BqgRV0ZIcMsjBYp8HCpIQPdxaXQfQLxYU,3711
|
|
@@ -26,7 +26,7 @@ phoenix/metrics/median.py,sha256=M-d00yh-JVodi7QC-smA6jbAgjbWajYHlOEBKAWk0IY,119
|
|
|
26
26
|
phoenix/metrics/metrics.py,sha256=3ggWwiVR5dmNqsEDuJvJiLgttkHlnHK3uB7IBqjLwwk,7292
|
|
27
27
|
phoenix/metrics/mixins.py,sha256=zk-6Il1asTbMP_hwvfXABPu_8jYynQyEudDIcWRhU0c,5727
|
|
28
28
|
phoenix/metrics/percent_empty.py,sha256=0pRA-_nFqGgYfTnxe_uIZX9RQV-O1ADzh6KQZIbsXnk,465
|
|
29
|
-
phoenix/metrics/timeseries.py,sha256=
|
|
29
|
+
phoenix/metrics/timeseries.py,sha256=20WA1DN79NDc2iB7xm71XAK4Sn4pwXANEo1skr9pz_I,6864
|
|
30
30
|
phoenix/pointcloud/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
31
31
|
phoenix/pointcloud/clustering.py,sha256=IzcG67kJ2hPP7pcqVmKPSL_6gKRonKdOT3bCtbTOqnk,820
|
|
32
32
|
phoenix/pointcloud/pointcloud.py,sha256=als0aitTA__4PrSqBk6qPPKe8fIG-ZSnlVRVkfMorBU,2290
|
|
@@ -41,7 +41,7 @@ phoenix/server/api/interceptor.py,sha256=pivESQdLQAWrMjToK7b8rl52NobiatqrWnK8Qe0
|
|
|
41
41
|
phoenix/server/api/schema.py,sha256=QYONWcS3xNvqD6t2hp63WkoZIQVrW9kH59MkVFXf3_I,1143
|
|
42
42
|
phoenix/server/api/input_types/DimensionInput.py,sha256=Vfx5FmiMKey4-EHDQsQRPzSAMRJMN5oVMLDUl4NKAa8,164
|
|
43
43
|
phoenix/server/api/input_types/Granularity.py,sha256=6SVfZ5yTZYq1PI6vdpjfkBUc4YilLSkF-k6okuSNbbQ,2301
|
|
44
|
-
phoenix/server/api/input_types/TimeRange.py,sha256=
|
|
44
|
+
phoenix/server/api/input_types/TimeRange.py,sha256=cKXGQCuKtc-MwnaC_HBhfVnrM-f6i98JIiJPdQ2Gb64,638
|
|
45
45
|
phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
phoenix/server/api/types/DataQualityMetric.py,sha256=eq2W8TutOdoeWcRWRUSTNBKR9eP0lfZUb1tlqYJ6flw,243
|
|
47
47
|
phoenix/server/api/types/Dataset.py,sha256=YIiy6sU6CnH8iiBZXJmMDjKVlSlupOysmFoLOnvzGYE,2928
|
|
@@ -85,8 +85,8 @@ phoenix/session/__init__.py,sha256=qFZaChQ3SwNAOR-LD4hzQQthe32haw1vU1JeBvgMnRQ,1
|
|
|
85
85
|
phoenix/session/session.py,sha256=qVg8q6DG-YotNVWXIywdR2q0VgRYsV7GiDMyvE8rje4,8650
|
|
86
86
|
phoenix/utils/__init__.py,sha256=alIDGBnxWH4JvP-UW-7N99seBBi0r1GV1h8f1ERFBec,21
|
|
87
87
|
phoenix/utils/utils.py,sha256=hZK3a_nLFYiQb1O6EcMF3mVmhTjnfuJ5WMcjhvOu7zk,427
|
|
88
|
-
arize_phoenix-0.0.
|
|
89
|
-
arize_phoenix-0.0.
|
|
90
|
-
arize_phoenix-0.0.
|
|
91
|
-
arize_phoenix-0.0.
|
|
92
|
-
arize_phoenix-0.0.
|
|
88
|
+
arize_phoenix-0.0.19.dist-info/METADATA,sha256=cj9jXkDT7cR0BX4SehkMuhTbWgYNDeJJaeVuXQpxyng,10759
|
|
89
|
+
arize_phoenix-0.0.19.dist-info/WHEEL,sha256=Fd6mP6ydyRguakwUJ05oBE7fh2IPxgtDN9IwHJ9OqJQ,87
|
|
90
|
+
arize_phoenix-0.0.19.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
91
|
+
arize_phoenix-0.0.19.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
92
|
+
arize_phoenix-0.0.19.dist-info/RECORD,,
|
phoenix/__init__.py
CHANGED
phoenix/metrics/timeseries.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from datetime import datetime, timedelta
|
|
1
|
+
from datetime import datetime, timedelta, timezone
|
|
2
2
|
from functools import partial
|
|
3
3
|
from itertools import accumulate, repeat
|
|
4
4
|
from typing import Any, Callable, Iterable, Iterator, Tuple, cast
|
|
@@ -195,9 +195,15 @@ def _results(
|
|
|
195
195
|
# pandas row indexing is stop-exclusive
|
|
196
196
|
row_slice = slice(row_start, row_stop)
|
|
197
197
|
filtered = dataframe.iloc[row_slice, :]
|
|
198
|
-
|
|
198
|
+
res = filtered.groupby(
|
|
199
199
|
group,
|
|
200
200
|
group_keys=True,
|
|
201
201
|
).apply(
|
|
202
202
|
calculate_metrics,
|
|
203
|
-
)
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
# NB: on ubuntu, we lose the timezone information when there is no data
|
|
206
|
+
if res.index.tzinfo is None: # type: ignore
|
|
207
|
+
res = res.set_axis(res.index.tz_localize(timezone.utc), axis=0) # type: ignore
|
|
208
|
+
|
|
209
|
+
yield res.loc[result_slice, :]
|
|
@@ -1,12 +1,28 @@
|
|
|
1
|
-
from datetime import datetime
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
2
|
|
|
3
3
|
import strawberry
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@strawberry.input
|
|
7
7
|
class TimeRange:
|
|
8
|
-
start: datetime = strawberry.field(
|
|
9
|
-
|
|
8
|
+
start: datetime = strawberry.field(
|
|
9
|
+
description="The start of the time range",
|
|
10
|
+
)
|
|
11
|
+
end: datetime = strawberry.field(
|
|
12
|
+
description="The end of the time range. Right exclusive.",
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def __post_init__(self) -> None:
|
|
16
|
+
setattr(
|
|
17
|
+
self,
|
|
18
|
+
"start",
|
|
19
|
+
self.start.astimezone(timezone.utc),
|
|
20
|
+
)
|
|
21
|
+
setattr(
|
|
22
|
+
self,
|
|
23
|
+
"end",
|
|
24
|
+
self.end.astimezone(timezone.utc),
|
|
25
|
+
)
|
|
10
26
|
|
|
11
27
|
def is_valid(self) -> bool:
|
|
12
28
|
return self.start < self.end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|