victorycode-sdk 1.0.0__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.
Files changed (121) hide show
  1. victorycode_sdk/__init__.py +260 -0
  2. victorycode_sdk/api/__init__.py +13 -0
  3. victorycode_sdk/api/authentication_api.py +285 -0
  4. victorycode_sdk/api/classification_api.py +1203 -0
  5. victorycode_sdk/api/game_recap_api.py +1395 -0
  6. victorycode_sdk/api/games_api.py +1497 -0
  7. victorycode_sdk/api/mascot_api.py +1203 -0
  8. victorycode_sdk/api/plays_events_api.py +1057 -0
  9. victorycode_sdk/api/teams_api.py +1220 -0
  10. victorycode_sdk/api/uploads_api.py +872 -0
  11. victorycode_sdk/api/venue_api.py +1203 -0
  12. victorycode_sdk/api_client.py +833 -0
  13. victorycode_sdk/api_response.py +21 -0
  14. victorycode_sdk/configuration.py +698 -0
  15. victorycode_sdk/exceptions.py +218 -0
  16. victorycode_sdk/models/__init__.py +114 -0
  17. victorycode_sdk/models/add_video_to_game_with_s3_link_dto.py +90 -0
  18. victorycode_sdk/models/address.py +96 -0
  19. victorycode_sdk/models/address_dto.py +96 -0
  20. victorycode_sdk/models/bad_request_error_response_dto.py +90 -0
  21. victorycode_sdk/models/classification.py +90 -0
  22. victorycode_sdk/models/client_create_game_with_video_url_dto.py +130 -0
  23. victorycode_sdk/models/complete_multipart_upload_dto.py +97 -0
  24. victorycode_sdk/models/complete_multipart_upload_response.py +90 -0
  25. victorycode_sdk/models/complete_multipart_upload_response_dto.py +94 -0
  26. victorycode_sdk/models/completed_part_dto.py +90 -0
  27. victorycode_sdk/models/conflict_error_response_dto.py +90 -0
  28. victorycode_sdk/models/coordinates.py +90 -0
  29. victorycode_sdk/models/coordinates_dto.py +90 -0
  30. victorycode_sdk/models/create_classification_dto.py +90 -0
  31. victorycode_sdk/models/create_mascot_dto.py +90 -0
  32. victorycode_sdk/models/create_team_dto.py +108 -0
  33. victorycode_sdk/models/create_team_response_dto.py +106 -0
  34. victorycode_sdk/models/create_venue_dto.py +102 -0
  35. victorycode_sdk/models/defense_section_dto.py +101 -0
  36. victorycode_sdk/models/defense_stats_dto.py +106 -0
  37. victorycode_sdk/models/defense_totals_dto.py +100 -0
  38. victorycode_sdk/models/delete_response_dto.py +90 -0
  39. victorycode_sdk/models/down_efficiency_dto.py +90 -0
  40. victorycode_sdk/models/fetch_team_response_dto.py +117 -0
  41. victorycode_sdk/models/fumble_section_dto.py +101 -0
  42. victorycode_sdk/models/fumble_stats_dto.py +98 -0
  43. victorycode_sdk/models/fumble_totals_dto.py +92 -0
  44. victorycode_sdk/models/game_all_play_list_item_dto.py +106 -0
  45. victorycode_sdk/models/game_box_score_meta_dto.py +104 -0
  46. victorycode_sdk/models/game_box_score_response_dto.py +98 -0
  47. victorycode_sdk/models/game_box_score_teams_dto.py +97 -0
  48. victorycode_sdk/models/game_details_response.py +108 -0
  49. victorycode_sdk/models/game_recap_scoring_summary_pro_response.py +101 -0
  50. victorycode_sdk/models/game_recap_scoring_summary_response.py +101 -0
  51. victorycode_sdk/models/game_recap_team_stats_response.py +101 -0
  52. victorycode_sdk/models/game_score_response.py +101 -0
  53. victorycode_sdk/models/game_scoring_summary_data_dto.py +104 -0
  54. victorycode_sdk/models/get_parts_presign_url_response.py +88 -0
  55. victorycode_sdk/models/get_parts_presign_url_response_dto.py +94 -0
  56. victorycode_sdk/models/initiate_multipart_upload_dto.py +92 -0
  57. victorycode_sdk/models/initiate_multipart_upload_response.py +88 -0
  58. victorycode_sdk/models/initiate_multipart_upload_response_dto.py +94 -0
  59. victorycode_sdk/models/interception_section_dto.py +101 -0
  60. victorycode_sdk/models/interception_stats_dto.py +98 -0
  61. victorycode_sdk/models/interception_totals_dto.py +92 -0
  62. victorycode_sdk/models/kicking_section_dto.py +101 -0
  63. victorycode_sdk/models/kicking_stats_dto.py +106 -0
  64. victorycode_sdk/models/kicking_totals_dto.py +100 -0
  65. victorycode_sdk/models/line_of_scrimmage_dto.py +90 -0
  66. victorycode_sdk/models/list_classification_paginated_response_dto.py +101 -0
  67. victorycode_sdk/models/list_game_all_plays_response_dto.py +103 -0
  68. victorycode_sdk/models/list_games_paginated_response_dto.py +101 -0
  69. victorycode_sdk/models/list_mascot_paginated_response_dto.py +101 -0
  70. victorycode_sdk/models/list_play_clips_response_dto.py +105 -0
  71. victorycode_sdk/models/list_team_paginated_response_dto.py +101 -0
  72. victorycode_sdk/models/list_venue_paginated_response_dto.py +101 -0
  73. victorycode_sdk/models/list_video_paginated_response_dto.py +103 -0
  74. victorycode_sdk/models/mascot.py +90 -0
  75. victorycode_sdk/models/mascot_response_dto.py +96 -0
  76. victorycode_sdk/models/not_found_error_response_dto.py +90 -0
  77. victorycode_sdk/models/offense_dto.py +92 -0
  78. victorycode_sdk/models/passing_dto.py +98 -0
  79. victorycode_sdk/models/passing_section_dto.py +101 -0
  80. victorycode_sdk/models/passing_stats_dto.py +117 -0
  81. victorycode_sdk/models/passing_totals_dto.py +111 -0
  82. victorycode_sdk/models/period_score_dto.py +94 -0
  83. victorycode_sdk/models/play_attributes_list_dto.py +106 -0
  84. victorycode_sdk/models/play_clip_list_details_dto.py +104 -0
  85. victorycode_sdk/models/play_clip_list_item_dto.py +104 -0
  86. victorycode_sdk/models/pro_scoring_play_dto.py +202 -0
  87. victorycode_sdk/models/receiving_section_dto.py +101 -0
  88. victorycode_sdk/models/receiving_stats_dto.py +104 -0
  89. victorycode_sdk/models/receiving_totals_dto.py +98 -0
  90. victorycode_sdk/models/red_zone_dto.py +90 -0
  91. victorycode_sdk/models/rushing_dto.py +92 -0
  92. victorycode_sdk/models/rushing_section_dto.py +101 -0
  93. victorycode_sdk/models/rushing_stats_dto.py +102 -0
  94. victorycode_sdk/models/rushing_totals_dto.py +96 -0
  95. victorycode_sdk/models/scoring_play_player_involved_dto.py +106 -0
  96. victorycode_sdk/models/scoring_summary_pro_team_dto.py +90 -0
  97. victorycode_sdk/models/single_classification_response_dto.py +94 -0
  98. victorycode_sdk/models/single_mascot_response_dto.py +94 -0
  99. victorycode_sdk/models/single_team_response_dto.py +94 -0
  100. victorycode_sdk/models/single_venue_response_dto.py +99 -0
  101. victorycode_sdk/models/single_video_response_dto.py +94 -0
  102. victorycode_sdk/models/team_basic_info_dto.py +96 -0
  103. victorycode_sdk/models/team_box_score_dto.py +139 -0
  104. victorycode_sdk/models/team_score_dto.py +109 -0
  105. victorycode_sdk/models/team_stats_dto.py +137 -0
  106. victorycode_sdk/models/token_response.py +92 -0
  107. victorycode_sdk/models/turnovers_dto.py +92 -0
  108. victorycode_sdk/models/unauthorized_error_response_dto.py +90 -0
  109. victorycode_sdk/models/update_classification_dto.py +90 -0
  110. victorycode_sdk/models/update_mascot_dto.py +90 -0
  111. victorycode_sdk/models/update_team_dto.py +108 -0
  112. victorycode_sdk/models/update_venue_dto.py +102 -0
  113. victorycode_sdk/models/venue.py +102 -0
  114. victorycode_sdk/models/video_list_item_dto.py +96 -0
  115. victorycode_sdk/py.typed +0 -0
  116. victorycode_sdk/rest.py +334 -0
  117. victorycode_sdk-1.0.0.dist-info/METADATA +288 -0
  118. victorycode_sdk-1.0.0.dist-info/RECORD +121 -0
  119. victorycode_sdk-1.0.0.dist-info/WHEEL +5 -0
  120. victorycode_sdk-1.0.0.dist-info/licenses/LICENSE +21 -0
  121. victorycode_sdk-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,101 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Victory Code Client API
5
+
6
+ Client APIs for Tactix partners: authenticate, upload game video, and retrieve games, plays, game recaps and team metadata.
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict
21
+ from typing import Any, ClassVar, Dict, List
22
+ from victorycode_sdk.models.passing_stats_dto import PassingStatsDto
23
+ from victorycode_sdk.models.passing_totals_dto import PassingTotalsDto
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+ from pydantic_core import to_jsonable_python
27
+
28
+ class PassingSectionDto(BaseModel):
29
+ """
30
+ PassingSectionDto
31
+ """ # noqa: E501
32
+ players: List[PassingStatsDto]
33
+ totals: PassingTotalsDto
34
+ __properties: ClassVar[List[str]] = ["players", "totals"]
35
+
36
+ model_config = ConfigDict(
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
39
+ validate_assignment=True,
40
+ protected_namespaces=(),
41
+ )
42
+
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of PassingSectionDto from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ # override the default output from pydantic by calling `to_dict()` of each item in players (list)
76
+ _items = []
77
+ if self.players:
78
+ for _item_players in self.players:
79
+ _items.append(_item_players.to_dict() if _item_players is not None else None)
80
+ _dict['players'] = _items
81
+ # override the default output from pydantic by calling `to_dict()` of totals
82
+ if self.totals:
83
+ _dict['totals'] = self.totals.to_dict()
84
+ return _dict
85
+
86
+ @classmethod
87
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
88
+ """Create an instance of PassingSectionDto from a dict"""
89
+ if obj is None:
90
+ return None
91
+
92
+ if not isinstance(obj, dict):
93
+ return cls.model_validate(obj)
94
+
95
+ _obj = cls.model_validate({
96
+ "players": [PassingStatsDto.from_dict(_item) for _item in obj["players"]] if obj.get("players") is not None else None,
97
+ "totals": PassingTotalsDto.from_dict(obj["totals"]) if obj.get("totals") is not None else None
98
+ })
99
+ return _obj
100
+
101
+
@@ -0,0 +1,117 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Victory Code Client API
5
+
6
+ Client APIs for Tactix partners: authenticate, upload game video, and retrieve games, plays, game recaps and team metadata.
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class PassingStatsDto(BaseModel):
27
+ """
28
+ PassingStatsDto
29
+ """ # noqa: E501
30
+ player_name: StrictStr = Field(alias="playerName", json_schema_extra={"examples": ["Jalen Hurts"]})
31
+ jersey_number: Union[StrictFloat, StrictInt] = Field(alias="jerseyNumber", json_schema_extra={"examples": [1]})
32
+ player_id: StrictStr = Field(alias="playerId", json_schema_extra={"examples": ["qb15"]})
33
+ completions: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [13]})
34
+ attempts: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [21]})
35
+ yards: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [131]})
36
+ avg: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [6.2]})
37
+ touchdowns: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [2]})
38
+ interceptions: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [0]})
39
+ sacks: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [2]})
40
+ sack_yards_lost: Union[StrictFloat, StrictInt] = Field(alias="sackYardsLost", json_schema_extra={"examples": [10]})
41
+ qbr: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="ESPN QBR — null when not supplied", json_schema_extra={"examples": [59.2]})
42
+ passer_rating: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="NFL passer rating", json_schema_extra={"examples": [111.4]})
43
+ __properties: ClassVar[List[str]] = ["playerName", "jerseyNumber", "playerId", "completions", "attempts", "yards", "avg", "touchdowns", "interceptions", "sacks", "sackYardsLost", "qbr", "passer_rating"]
44
+
45
+ model_config = ConfigDict(
46
+ validate_by_name=True,
47
+ validate_by_alias=True,
48
+ validate_assignment=True,
49
+ protected_namespaces=(),
50
+ )
51
+
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.model_dump(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ return json.dumps(to_jsonable_python(self.to_dict()))
60
+
61
+ @classmethod
62
+ def from_json(cls, json_str: str) -> Optional[Self]:
63
+ """Create an instance of PassingStatsDto from a JSON string"""
64
+ return cls.from_dict(json.loads(json_str))
65
+
66
+ def to_dict(self) -> Dict[str, Any]:
67
+ """Return the dictionary representation of the model using alias.
68
+
69
+ This has the following differences from calling pydantic's
70
+ `self.model_dump(by_alias=True)`:
71
+
72
+ * `None` is only added to the output dict for nullable fields that
73
+ were set at model initialization. Other fields with value `None`
74
+ are ignored.
75
+ """
76
+ excluded_fields: Set[str] = set([
77
+ ])
78
+
79
+ _dict = self.model_dump(
80
+ by_alias=True,
81
+ exclude=excluded_fields,
82
+ exclude_none=True,
83
+ )
84
+ # set to None if qbr (nullable) is None
85
+ # and model_fields_set contains the field
86
+ if self.qbr is None and "qbr" in self.model_fields_set:
87
+ _dict['qbr'] = None
88
+
89
+ return _dict
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
93
+ """Create an instance of PassingStatsDto from a dict"""
94
+ if obj is None:
95
+ return None
96
+
97
+ if not isinstance(obj, dict):
98
+ return cls.model_validate(obj)
99
+
100
+ _obj = cls.model_validate({
101
+ "playerName": obj.get("playerName"),
102
+ "jerseyNumber": obj.get("jerseyNumber"),
103
+ "playerId": obj.get("playerId"),
104
+ "completions": obj.get("completions"),
105
+ "attempts": obj.get("attempts"),
106
+ "yards": obj.get("yards"),
107
+ "avg": obj.get("avg"),
108
+ "touchdowns": obj.get("touchdowns"),
109
+ "interceptions": obj.get("interceptions"),
110
+ "sacks": obj.get("sacks"),
111
+ "sackYardsLost": obj.get("sackYardsLost"),
112
+ "qbr": obj.get("qbr"),
113
+ "passer_rating": obj.get("passer_rating")
114
+ })
115
+ return _obj
116
+
117
+
@@ -0,0 +1,111 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Victory Code Client API
5
+
6
+ Client APIs for Tactix partners: authenticate, upload game video, and retrieve games, plays, game recaps and team metadata.
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class PassingTotalsDto(BaseModel):
27
+ """
28
+ PassingTotalsDto
29
+ """ # noqa: E501
30
+ completions: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [13]})
31
+ attempts: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [21]})
32
+ yards: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [131]})
33
+ avg: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [6.2]})
34
+ touchdowns: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [2]})
35
+ interceptions: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [0]})
36
+ sacks: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [2]})
37
+ sack_yards_lost: Union[StrictFloat, StrictInt] = Field(alias="sackYardsLost", json_schema_extra={"examples": [10]})
38
+ qbr: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="ESPN QBR — null when not supplied", json_schema_extra={"examples": [59.2]})
39
+ passer_rating: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="NFL passer rating", json_schema_extra={"examples": [111.4]})
40
+ __properties: ClassVar[List[str]] = ["completions", "attempts", "yards", "avg", "touchdowns", "interceptions", "sacks", "sackYardsLost", "qbr", "passer_rating"]
41
+
42
+ model_config = ConfigDict(
43
+ validate_by_name=True,
44
+ validate_by_alias=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.model_dump(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ return json.dumps(to_jsonable_python(self.to_dict()))
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of PassingTotalsDto from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ """
73
+ excluded_fields: Set[str] = set([
74
+ ])
75
+
76
+ _dict = self.model_dump(
77
+ by_alias=True,
78
+ exclude=excluded_fields,
79
+ exclude_none=True,
80
+ )
81
+ # set to None if qbr (nullable) is None
82
+ # and model_fields_set contains the field
83
+ if self.qbr is None and "qbr" in self.model_fields_set:
84
+ _dict['qbr'] = None
85
+
86
+ return _dict
87
+
88
+ @classmethod
89
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
+ """Create an instance of PassingTotalsDto from a dict"""
91
+ if obj is None:
92
+ return None
93
+
94
+ if not isinstance(obj, dict):
95
+ return cls.model_validate(obj)
96
+
97
+ _obj = cls.model_validate({
98
+ "completions": obj.get("completions"),
99
+ "attempts": obj.get("attempts"),
100
+ "yards": obj.get("yards"),
101
+ "avg": obj.get("avg"),
102
+ "touchdowns": obj.get("touchdowns"),
103
+ "interceptions": obj.get("interceptions"),
104
+ "sacks": obj.get("sacks"),
105
+ "sackYardsLost": obj.get("sackYardsLost"),
106
+ "qbr": obj.get("qbr"),
107
+ "passer_rating": obj.get("passer_rating")
108
+ })
109
+ return _obj
110
+
111
+
@@ -0,0 +1,94 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Victory Code Client API
5
+
6
+ Client APIs for Tactix partners: authenticate, upload game video, and retrieve games, plays, game recaps and team metadata.
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class PeriodScoreDto(BaseModel):
27
+ """
28
+ PeriodScoreDto
29
+ """ # noqa: E501
30
+ period: Union[StrictFloat, StrictInt]
31
+ type: StrictStr
32
+ name: StrictStr
33
+ score: Union[StrictFloat, StrictInt]
34
+ __properties: ClassVar[List[str]] = ["period", "type", "name", "score"]
35
+
36
+ model_config = ConfigDict(
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
39
+ validate_assignment=True,
40
+ protected_namespaces=(),
41
+ )
42
+
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of PeriodScoreDto from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ return _dict
76
+
77
+ @classmethod
78
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
+ """Create an instance of PeriodScoreDto from a dict"""
80
+ if obj is None:
81
+ return None
82
+
83
+ if not isinstance(obj, dict):
84
+ return cls.model_validate(obj)
85
+
86
+ _obj = cls.model_validate({
87
+ "period": obj.get("period"),
88
+ "type": obj.get("type"),
89
+ "name": obj.get("name"),
90
+ "score": obj.get("score")
91
+ })
92
+ return _obj
93
+
94
+
@@ -0,0 +1,106 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Victory Code Client API
5
+
6
+ Client APIs for Tactix partners: authenticate, upload game video, and retrieve games, plays, game recaps and team metadata.
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Union
22
+ from victorycode_sdk.models.line_of_scrimmage_dto import LineOfScrimmageDto
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
26
+
27
+ class PlayAttributesListDto(BaseModel):
28
+ """
29
+ PlayAttributesListDto
30
+ """ # noqa: E501
31
+ type: StrictStr = Field(json_schema_extra={"examples": ["Pass"]})
32
+ period: StrictStr = Field(json_schema_extra={"examples": ["1"]})
33
+ possession_team_id: StrictStr = Field(alias="possessionTeamId", json_schema_extra={"examples": ["team-id"]})
34
+ down: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [1]})
35
+ distance: Union[StrictFloat, StrictInt] = Field(json_schema_extra={"examples": [10]})
36
+ line_of_scrimmage: LineOfScrimmageDto = Field(alias="lineOfScrimmage")
37
+ offensive_personnel: StrictStr = Field(alias="offensivePersonnel", json_schema_extra={"examples": ["12"]})
38
+ defensive_personnel: StrictStr = Field(alias="defensivePersonnel", json_schema_extra={"examples": ["4-2-5"]})
39
+ __properties: ClassVar[List[str]] = ["type", "period", "possessionTeamId", "down", "distance", "lineOfScrimmage", "offensivePersonnel", "defensivePersonnel"]
40
+
41
+ model_config = ConfigDict(
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ return json.dumps(to_jsonable_python(self.to_dict()))
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of PlayAttributesListDto from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
+ """
72
+ excluded_fields: Set[str] = set([
73
+ ])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ # override the default output from pydantic by calling `to_dict()` of line_of_scrimmage
81
+ if self.line_of_scrimmage:
82
+ _dict['lineOfScrimmage'] = self.line_of_scrimmage.to_dict()
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of PlayAttributesListDto from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "type": obj.get("type"),
96
+ "period": obj.get("period"),
97
+ "possessionTeamId": obj.get("possessionTeamId"),
98
+ "down": obj.get("down"),
99
+ "distance": obj.get("distance"),
100
+ "lineOfScrimmage": LineOfScrimmageDto.from_dict(obj["lineOfScrimmage"]) if obj.get("lineOfScrimmage") is not None else None,
101
+ "offensivePersonnel": obj.get("offensivePersonnel"),
102
+ "defensivePersonnel": obj.get("defensivePersonnel")
103
+ })
104
+ return _obj
105
+
106
+
@@ -0,0 +1,104 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Victory Code Client API
5
+
6
+ Client APIs for Tactix partners: authenticate, upload game video, and retrieve games, plays, game recaps and team metadata.
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class PlayClipListDetailsDto(BaseModel):
27
+ """
28
+ PlayClipListDetailsDto
29
+ """ # noqa: E501
30
+ start_time: StrictStr = Field(alias="startTime", json_schema_extra={"examples": ["00:01:23"]})
31
+ end_time: StrictStr = Field(alias="endTime", json_schema_extra={"examples": ["00:01:33"]})
32
+ duration: StrictStr = Field(json_schema_extra={"examples": ["00:00:10"]})
33
+ url_original: StrictStr = Field(alias="urlOriginal", json_schema_extra={"examples": ["https://example.com/original.mp4"]})
34
+ url_analyzed: StrictStr = Field(alias="urlAnalyzed", json_schema_extra={"examples": ["https://example.com/analyzed.mp4"]})
35
+ url_thumbnail: StrictStr = Field(alias="urlThumbnail", json_schema_extra={"examples": ["https://example.com/thumbnail.jpg"]})
36
+ analyzed_video_original_json: StrictStr = Field(alias="analyzedVideoOriginalJson", json_schema_extra={"examples": ["https://example.com/original.json"]})
37
+ analyzed_video_raw_json: StrictStr = Field(alias="analyzedVideoRawJson", json_schema_extra={"examples": ["https://example.com/raw.json"]})
38
+ analyzed_video_summary: StrictStr = Field(alias="analyzedVideoSummary", json_schema_extra={"examples": ["https://example.com/summary.url"]})
39
+ __properties: ClassVar[List[str]] = ["startTime", "endTime", "duration", "urlOriginal", "urlAnalyzed", "urlThumbnail", "analyzedVideoOriginalJson", "analyzedVideoRawJson", "analyzedVideoSummary"]
40
+
41
+ model_config = ConfigDict(
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ return json.dumps(to_jsonable_python(self.to_dict()))
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of PlayClipListDetailsDto from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
+ """
72
+ excluded_fields: Set[str] = set([
73
+ ])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of PlayClipListDetailsDto from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
90
+
91
+ _obj = cls.model_validate({
92
+ "startTime": obj.get("startTime"),
93
+ "endTime": obj.get("endTime"),
94
+ "duration": obj.get("duration"),
95
+ "urlOriginal": obj.get("urlOriginal"),
96
+ "urlAnalyzed": obj.get("urlAnalyzed"),
97
+ "urlThumbnail": obj.get("urlThumbnail"),
98
+ "analyzedVideoOriginalJson": obj.get("analyzedVideoOriginalJson"),
99
+ "analyzedVideoRawJson": obj.get("analyzedVideoRawJson"),
100
+ "analyzedVideoSummary": obj.get("analyzedVideoSummary")
101
+ })
102
+ return _obj
103
+
104
+