Skip to content

Commit 514a52e

Browse files
authored
Merge pull request #95 from GetStream/more-metrics
More call metrics
2 parents 7e44d93 + 58eaea2 commit 514a52e

File tree

3 files changed

+45
-46
lines changed

3 files changed

+45
-46
lines changed

getstream/models/__init__.py

Lines changed: 38 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,12 @@ class ActionSequence(DataClassJsonMixin):
223223
warning_text: str = dc_field(metadata=dc_config(field_name="warning_text"))
224224

225225

226+
@dataclass
227+
class ActiveCallsBitrateStats(DataClassJsonMixin):
228+
p10: float = dc_field(metadata=dc_config(field_name="p10"))
229+
p50: float = dc_field(metadata=dc_config(field_name="p50"))
230+
231+
226232
@dataclass
227233
class ActiveCallsFPSStats(DataClassJsonMixin):
228234
p05: float = dc_field(metadata=dc_config(field_name="p05"))
@@ -1879,8 +1885,8 @@ class CallParticipant(DataClassJsonMixin):
18791885
)
18801886
)
18811887
online: bool = dc_field(metadata=dc_config(field_name="online"))
1882-
role: str = dc_field(metadata=dc_config(field_name="role"))
18831888
role: str = dc_field(metadata=dc_config(field_name="Role"))
1889+
role: str = dc_field(metadata=dc_config(field_name="role"))
18841890
user_session_id: str = dc_field(metadata=dc_config(field_name="UserSessionID"))
18851891
custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom"))
18861892
teams_role: "Dict[str, str]" = dc_field(metadata=dc_config(field_name="teams_role"))
@@ -6281,9 +6287,8 @@ class Flag(DataClassJsonMixin):
62816287
mm_field=fields.DateTime(format="iso"),
62826288
)
62836289
)
6284-
created_by_automod: bool = dc_field(
6285-
metadata=dc_config(field_name="created_by_automod")
6286-
)
6290+
entity_id: str = dc_field(metadata=dc_config(field_name="entity_id"))
6291+
entity_type: str = dc_field(metadata=dc_config(field_name="entity_type"))
62876292
updated_at: datetime = dc_field(
62886293
metadata=dc_config(
62896294
field_name="updated_at",
@@ -6292,53 +6297,36 @@ class Flag(DataClassJsonMixin):
62926297
mm_field=fields.DateTime(format="iso"),
62936298
)
62946299
)
6295-
approved_at: Optional[datetime] = dc_field(
6296-
default=None,
6297-
metadata=dc_config(
6298-
field_name="approved_at",
6299-
encoder=encode_datetime,
6300-
decoder=datetime_from_unix_ns,
6301-
mm_field=fields.DateTime(format="iso"),
6302-
),
6300+
result: "List[Dict[str, object]]" = dc_field(
6301+
metadata=dc_config(field_name="result")
63036302
)
6304-
reason: Optional[str] = dc_field(
6305-
default=None, metadata=dc_config(field_name="reason")
6303+
entity_creator_id: Optional[str] = dc_field(
6304+
default=None, metadata=dc_config(field_name="entity_creator_id")
63066305
)
6307-
rejected_at: Optional[datetime] = dc_field(
6308-
default=None,
6309-
metadata=dc_config(
6310-
field_name="rejected_at",
6311-
encoder=encode_datetime,
6312-
decoder=datetime_from_unix_ns,
6313-
mm_field=fields.DateTime(format="iso"),
6314-
),
6306+
is_streamed_content: Optional[bool] = dc_field(
6307+
default=None, metadata=dc_config(field_name="is_streamed_content")
63156308
)
6316-
reviewed_at: Optional[datetime] = dc_field(
6317-
default=None,
6318-
metadata=dc_config(
6319-
field_name="reviewed_at",
6320-
encoder=encode_datetime,
6321-
decoder=datetime_from_unix_ns,
6322-
mm_field=fields.DateTime(format="iso"),
6323-
),
6309+
moderation_payload_hash: Optional[str] = dc_field(
6310+
default=None, metadata=dc_config(field_name="moderation_payload_hash")
63246311
)
6325-
reviewed_by: Optional[str] = dc_field(
6326-
default=None, metadata=dc_config(field_name="reviewed_by")
6312+
reason: Optional[str] = dc_field(
6313+
default=None, metadata=dc_config(field_name="reason")
6314+
)
6315+
review_queue_item_id: Optional[str] = dc_field(
6316+
default=None, metadata=dc_config(field_name="review_queue_item_id")
63276317
)
6328-
target_message_id: Optional[str] = dc_field(
6329-
default=None, metadata=dc_config(field_name="target_message_id")
6318+
type: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="type"))
6319+
labels: Optional[List[str]] = dc_field(
6320+
default=None, metadata=dc_config(field_name="labels")
63306321
)
63316322
custom: Optional[Dict[str, object]] = dc_field(
63326323
default=None, metadata=dc_config(field_name="custom")
63336324
)
6334-
details: "Optional[FlagDetails]" = dc_field(
6335-
default=None, metadata=dc_config(field_name="details")
6336-
)
6337-
target_message: "Optional[Message]" = dc_field(
6338-
default=None, metadata=dc_config(field_name="target_message")
6325+
moderation_payload: "Optional[ModerationPayload]" = dc_field(
6326+
default=None, metadata=dc_config(field_name="moderation_payload")
63396327
)
6340-
target_user: "Optional[User]" = dc_field(
6341-
default=None, metadata=dc_config(field_name="target_user")
6328+
review_queue_item: "Optional[ReviewQueueItem]" = dc_field(
6329+
default=None, metadata=dc_config(field_name="review_queue_item")
63426330
)
63436331
user: "Optional[User]" = dc_field(
63446332
default=None, metadata=dc_config(field_name="user")
@@ -8885,6 +8873,9 @@ class ModerationFlagResponse(DataClassJsonMixin):
88858873
type: str = dc_field(metadata=dc_config(field_name="type"))
88868874
updated_at: str = dc_field(metadata=dc_config(field_name="updated_at"))
88878875
user_id: str = dc_field(metadata=dc_config(field_name="user_id"))
8876+
result: "List[Dict[str, object]]" = dc_field(
8877+
metadata=dc_config(field_name="result")
8878+
)
88888879
entity_creator_id: Optional[str] = dc_field(
88898880
default=None, metadata=dc_config(field_name="entity_creator_id")
88908881
)
@@ -8897,9 +8888,6 @@ class ModerationFlagResponse(DataClassJsonMixin):
88978888
labels: Optional[List[str]] = dc_field(
88988889
default=None, metadata=dc_config(field_name="labels")
88998890
)
8900-
result: "Optional[List[Dict[str, object]]]" = dc_field(
8901-
default=None, metadata=dc_config(field_name="result")
8902-
)
89038891
custom: Optional[Dict[str, object]] = dc_field(
89048892
default=None, metadata=dc_config(field_name="custom")
89058893
)
@@ -9960,6 +9948,9 @@ class PublisherStatsResponse(DataClassJsonMixin):
99609948

99619949
@dataclass
99629950
class PublisherVideoMetrics(DataClassJsonMixin):
9951+
bitrate: "Optional[ActiveCallsBitrateStats]" = dc_field(
9952+
default=None, metadata=dc_config(field_name="bitrate")
9953+
)
99639954
fps_30: "Optional[ActiveCallsFPSStats]" = dc_field(
99649955
default=None, metadata=dc_config(field_name="fps_30")
99659956
)
@@ -14919,7 +14910,6 @@ class UserMessagesDeletedEvent(DataClassJsonMixin):
1491914910
mm_field=fields.DateTime(format="iso"),
1492014911
)
1492114912
)
14922-
hard_delete: bool = dc_field(metadata=dc_config(field_name="hard_delete"))
1492314913
soft_delete: bool = dc_field(metadata=dc_config(field_name="soft_delete"))
1492414914
custom: Dict[str, object] = dc_field(metadata=dc_config(field_name="custom"))
1492514915
user: "UserResponseCommonFields" = dc_field(metadata=dc_config(field_name="user"))
@@ -14936,6 +14926,9 @@ class UserMessagesDeletedEvent(DataClassJsonMixin):
1493614926
default=None, metadata=dc_config(field_name="channel_type")
1493714927
)
1493814928
cid: Optional[str] = dc_field(default=None, metadata=dc_config(field_name="cid"))
14929+
hard_delete: Optional[bool] = dc_field(
14930+
default=None, metadata=dc_config(field_name="hard_delete")
14931+
)
1493914932
received_at: Optional[datetime] = dc_field(
1494014933
default=None,
1494114934
metadata=dc_config(

tests/test_video_examples.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,12 @@ def test_create_call_with_custom_frame_recording_settings(client: Stream):
379379
assert response.data.call.settings.frame_recording.quality == "1080p"
380380

381381

382+
def test_fps(client: Stream):
383+
response = client.video.get_active_calls_status()
384+
resolution = response.data.metrics.publishers.all.video.resolution
385+
print(resolution.p10)
386+
387+
382388
@pytest.mark.skip_in_ci
383389
def test_create_call_type_with_custom_frame_recording_settings(client: Stream):
384390
# create a call type with frame recording settings

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)