arize-phoenix 0.0.18rc1__tar.gz → 0.0.19__tar.gz

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.

Files changed (94) hide show
  1. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/PKG-INFO +1 -1
  2. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/__init__.py +1 -1
  3. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/timeseries.py +9 -3
  4. arize_phoenix-0.0.19/src/phoenix/server/api/input_types/TimeRange.py +28 -0
  5. arize_phoenix-0.0.18rc1/src/phoenix/server/api/input_types/TimeRange.py +0 -12
  6. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/.gitignore +0 -0
  7. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/IP_NOTICE +0 -0
  8. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/LICENSE +0 -0
  9. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/README.md +0 -0
  10. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/pyproject.toml +0 -0
  11. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/config.py +0 -0
  12. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/__init__.py +0 -0
  13. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/dimension.py +0 -0
  14. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/dimension_data_type.py +0 -0
  15. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/dimension_type.py +0 -0
  16. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/embedding_dimension.py +0 -0
  17. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/model.py +0 -0
  18. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/model_schema.py +0 -0
  19. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/core/model_schema_adapter.py +0 -0
  20. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/__init__.py +0 -0
  21. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/dataset.py +0 -0
  22. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/errors.py +0 -0
  23. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/event.py +0 -0
  24. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/fixtures.py +0 -0
  25. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/schema.py +0 -0
  26. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/datasets/validation.py +0 -0
  27. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/README.md +0 -0
  28. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/__init__.py +0 -0
  29. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/binning.py +0 -0
  30. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/cardinality.py +0 -0
  31. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/embeddings.py +0 -0
  32. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/median.py +0 -0
  33. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/metrics.py +0 -0
  34. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/mixins.py +0 -0
  35. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/metrics/percent_empty.py +0 -0
  36. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/pointcloud/__init__.py +0 -0
  37. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/pointcloud/clustering.py +0 -0
  38. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/pointcloud/pointcloud.py +0 -0
  39. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/pointcloud/projectors.py +0 -0
  40. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/py.typed +0 -0
  41. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/__init__.py +0 -0
  42. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/__init__.py +0 -0
  43. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/context.py +0 -0
  44. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  45. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  46. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/input_types/__init__.py +0 -0
  47. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/interceptor.py +0 -0
  48. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/schema.py +0 -0
  49. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  50. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/Dataset.py +0 -0
  51. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/DatasetRole.py +0 -0
  52. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/Dimension.py +0 -0
  53. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  54. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  55. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/DimensionType.py +0 -0
  56. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  57. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  58. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  59. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/Event.py +0 -0
  60. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  61. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/ExportEventsMutation.py +0 -0
  62. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  63. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/Model.py +0 -0
  64. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/NumericRange.py +0 -0
  65. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  66. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  67. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/Segments.py +0 -0
  68. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  69. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  70. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  71. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/__init__.py +0 -0
  72. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/node.py +0 -0
  73. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/api/types/pagination.py +0 -0
  74. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/app.py +0 -0
  75. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/main.py +0 -0
  76. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  77. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  78. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  79. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  80. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  81. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  82. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  83. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  84. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/favicon.ico +0 -0
  85. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/index.css +0 -0
  86. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/index.html +0 -0
  87. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/index.js +0 -0
  88. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/static/modernizr.js +0 -0
  89. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/server/thread_server.py +0 -0
  90. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/services.py +0 -0
  91. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/session/__init__.py +0 -0
  92. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/session/session.py +0 -0
  93. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/utils/__init__.py +0 -0
  94. {arize_phoenix-0.0.18rc1 → arize_phoenix-0.0.19}/src/phoenix/utils/utils.py +0 -0
@@ -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
@@ -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, :]
@@ -0,0 +1,28 @@
1
+ from datetime import datetime, timezone
2
+
3
+ import strawberry
4
+
5
+
6
+ @strawberry.input
7
+ class TimeRange:
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
+ )
26
+
27
+ def is_valid(self) -> bool:
28
+ return self.start < self.end
@@ -1,12 +0,0 @@
1
- from datetime import datetime
2
-
3
- import strawberry
4
-
5
-
6
- @strawberry.input
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.")
10
-
11
- def is_valid(self) -> bool:
12
- return self.start < self.end