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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arize-phoenix
3
- Version: 0.0.18rc1
3
+ Version: 0.0.19
4
4
  Summary: ML Observability in your notebook
5
5
  Project-URL: Documentation, https://docs.arize.com/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -1,4 +1,4 @@
1
- phoenix/__init__.py,sha256=lq7jUqia25zHlxg-WkgoniqAFp9CHlqTrlkIw2CrHSg,1000
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=bMshh7OJCD95VGelPz1MMj6KMePjKYkAuRsk4xtMu_A,6609
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=8GhSVyFC3byuvpcOG2lhC5ZKXgXW0g_UtaVdDPAfxwk,334
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.18rc1.dist-info/METADATA,sha256=8HODB7f8GLiovOxKdix7h2lYzf4dY-sA0Lv-fJfIUqg,10762
89
- arize_phoenix-0.0.18rc1.dist-info/WHEEL,sha256=Fd6mP6ydyRguakwUJ05oBE7fh2IPxgtDN9IwHJ9OqJQ,87
90
- arize_phoenix-0.0.18rc1.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
91
- arize_phoenix-0.0.18rc1.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
92
- arize_phoenix-0.0.18rc1.dist-info/RECORD,,
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
@@ -7,7 +7,7 @@ from .datasets import (
7
7
  )
8
8
  from .session import Session, active_session, close_app, launch_app
9
9
 
10
- __version__ = "0.0.18rc1"
10
+ __version__ = "0.0.19"
11
11
 
12
12
  # module level doc-string
13
13
  __doc__ = """
@@ -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
- yield filtered.groupby(
198
+ res = filtered.groupby(
199
199
  group,
200
200
  group_keys=True,
201
201
  ).apply(
202
202
  calculate_metrics,
203
- ).loc[result_slice, :]
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(description="The start of the time range")
9
- end: datetime = strawberry.field(description="The end of the time range. Right exclusive.")
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