Skip to content

Commit c67221e

Browse files
Automatically update Python SDK
1 parent 81a8d96 commit c67221e

14 files changed

Lines changed: 178 additions & 109 deletions

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "trophy"
7-
version = "1.0.5"
7+
version = "1.0.6"
88
description = "A Python library for the Trophy API"
99
license = {text = "MIT"}
1010
readme = "README.md"

trophy/__init__.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@
22

33
from .types import (
44
AchievementCompletionResponse,
5+
AchievementResponse,
6+
ApiAchievementResponse,
7+
BaseAchievementResponse,
58
BaseStreakResponse,
69
ErrorBody,
710
EventResponse,
811
EventResponseMetricsItem,
12+
EventResponseMetricsItemCompletedItem,
913
IncrementMetricStreakResponse,
14+
MetricAchievementResponse,
1015
MetricResponse,
1116
MetricStatus,
12-
MultiStageAchievementResponse,
13-
OneOffAchievementResponse,
17+
StreakAchievementResponse,
1418
StreakFrequency,
1519
StreakResponse,
1620
StreakResponseStreakHistoryItem,
@@ -30,18 +34,22 @@
3034

3135
__all__ = [
3236
"AchievementCompletionResponse",
37+
"AchievementResponse",
38+
"ApiAchievementResponse",
3339
"AsyncTrophyApi",
3440
"BadRequestError",
41+
"BaseAchievementResponse",
3542
"BaseStreakResponse",
3643
"ErrorBody",
3744
"EventResponse",
3845
"EventResponseMetricsItem",
46+
"EventResponseMetricsItemCompletedItem",
3947
"IncrementMetricStreakResponse",
48+
"MetricAchievementResponse",
4049
"MetricResponse",
4150
"MetricStatus",
42-
"MultiStageAchievementResponse",
4351
"NotFoundError",
44-
"OneOffAchievementResponse",
52+
"StreakAchievementResponse",
4553
"StreakFrequency",
4654
"StreakResponse",
4755
"StreakResponseStreakHistoryItem",

trophy/types/__init__.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
# This file was auto-generated by Fern from our API Definition.
22

33
from .achievement_completion_response import AchievementCompletionResponse
4+
from .achievement_response import AchievementResponse
5+
from .api_achievement_response import ApiAchievementResponse
6+
from .base_achievement_response import BaseAchievementResponse
47
from .base_streak_response import BaseStreakResponse
58
from .error_body import ErrorBody
69
from .event_response import EventResponse
710
from .event_response_metrics_item import EventResponseMetricsItem
11+
from .event_response_metrics_item_completed_item import (
12+
EventResponseMetricsItemCompletedItem,
13+
)
814
from .increment_metric_streak_response import IncrementMetricStreakResponse
15+
from .metric_achievement_response import MetricAchievementResponse
916
from .metric_response import MetricResponse
1017
from .metric_status import MetricStatus
11-
from .multi_stage_achievement_response import MultiStageAchievementResponse
12-
from .one_off_achievement_response import OneOffAchievementResponse
18+
from .streak_achievement_response import StreakAchievementResponse
1319
from .streak_frequency import StreakFrequency
1420
from .streak_response import StreakResponse
1521
from .streak_response_streak_history_item import StreakResponseStreakHistoryItem
@@ -19,15 +25,19 @@
1925

2026
__all__ = [
2127
"AchievementCompletionResponse",
28+
"AchievementResponse",
29+
"ApiAchievementResponse",
30+
"BaseAchievementResponse",
2231
"BaseStreakResponse",
2332
"ErrorBody",
2433
"EventResponse",
2534
"EventResponseMetricsItem",
35+
"EventResponseMetricsItemCompletedItem",
2636
"IncrementMetricStreakResponse",
37+
"MetricAchievementResponse",
2738
"MetricResponse",
2839
"MetricStatus",
29-
"MultiStageAchievementResponse",
30-
"OneOffAchievementResponse",
40+
"StreakAchievementResponse",
3141
"StreakFrequency",
3242
"StreakResponse",
3343
"StreakResponseStreakHistoryItem",

trophy/types/achievement_completion_response.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import typing_extensions
55
from ..core.serialization import FieldMetadata
66
import pydantic
7-
from .one_off_achievement_response import OneOffAchievementResponse
7+
from .api_achievement_response import ApiAchievementResponse
88
from ..core.pydantic_utilities import IS_PYDANTIC_V2
99
import typing
1010

@@ -17,7 +17,7 @@ class AchievementCompletionResponse(UniversalBaseModel):
1717
The unique ID of the completion.
1818
"""
1919

20-
achievement: OneOffAchievementResponse
20+
achievement: ApiAchievementResponse
2121

2222
if IS_PYDANTIC_V2:
2323
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This file was auto-generated by Fern from our API Definition.
2+
3+
import typing
4+
from .metric_achievement_response import MetricAchievementResponse
5+
from .streak_achievement_response import StreakAchievementResponse
6+
from .api_achievement_response import ApiAchievementResponse
7+
8+
AchievementResponse = typing.Union[
9+
MetricAchievementResponse, StreakAchievementResponse, ApiAchievementResponse
10+
]
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# This file was auto-generated by Fern from our API Definition.
2+
3+
from .base_achievement_response import BaseAchievementResponse
4+
import pydantic
5+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
6+
import typing
7+
8+
9+
class ApiAchievementResponse(BaseAchievementResponse):
10+
trigger: str = pydantic.Field()
11+
"""
12+
The trigger of the achievement, in this case always 'api'.
13+
"""
14+
15+
if IS_PYDANTIC_V2:
16+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17+
extra="allow", frozen=True
18+
) # type: ignore # Pydantic v2
19+
else:
20+
21+
class Config:
22+
frozen = True
23+
smart_union = True
24+
extra = pydantic.Extra.allow

trophy/types/one_off_achievement_response.py renamed to trophy/types/base_achievement_response.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22

33
from ..core.pydantic_utilities import UniversalBaseModel
44
import pydantic
5-
import typing
65
import typing_extensions
6+
import typing
77
from ..core.serialization import FieldMetadata
88
import datetime as dt
99
from ..core.pydantic_utilities import IS_PYDANTIC_V2
1010

1111

12-
class OneOffAchievementResponse(UniversalBaseModel):
12+
class BaseAchievementResponse(UniversalBaseModel):
1313
id: str = pydantic.Field()
1414
"""
1515
The unique ID of the achievement.
1616
"""
1717

18-
name: typing.Optional[str] = pydantic.Field(default=None)
18+
name: str = pydantic.Field()
1919
"""
2020
The name of this achievement.
2121
"""

trophy/types/event_response_metrics_item.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
# This file was auto-generated by Fern from our API Definition.
22

33
from ..core.pydantic_utilities import UniversalBaseModel
4-
import typing_extensions
54
import typing
6-
from ..core.serialization import FieldMetadata
75
import pydantic
8-
from .multi_stage_achievement_response import MultiStageAchievementResponse
6+
import typing_extensions
7+
from ..core.serialization import FieldMetadata
8+
from .event_response_metrics_item_completed_item import (
9+
EventResponseMetricsItemCompletedItem,
10+
)
911
from ..core.pydantic_utilities import IS_PYDANTIC_V2
1012

1113

1214
class EventResponseMetricsItem(UniversalBaseModel):
15+
trigger: typing.Optional[str] = pydantic.Field(default=None)
16+
"""
17+
The trigger of the achievement, in this case either 'metric' or 'streak'.
18+
"""
19+
1320
metric_id: typing_extensions.Annotated[
1421
typing.Optional[str], FieldMetadata(alias="metricId")
1522
] = pydantic.Field(default=None)
1623
"""
17-
The ID of the metric.
24+
The ID of the metric that these achievements are associated with, if any.
1825
"""
1926

20-
completed: typing.Optional[typing.List[MultiStageAchievementResponse]] = (
21-
pydantic.Field(default=None)
22-
)
27+
completed: typing.List[EventResponseMetricsItemCompletedItem] = pydantic.Field()
2328
"""
2429
A list of any new achievements that the user has now completed as a result of this event being submitted.
2530
"""
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# This file was auto-generated by Fern from our API Definition.
2+
3+
import typing
4+
from .metric_achievement_response import MetricAchievementResponse
5+
from .streak_achievement_response import StreakAchievementResponse
6+
7+
EventResponseMetricsItemCompletedItem = typing.Union[
8+
MetricAchievementResponse, StreakAchievementResponse
9+
]
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# This file was auto-generated by Fern from our API Definition.
2+
3+
from .base_achievement_response import BaseAchievementResponse
4+
import pydantic
5+
import typing_extensions
6+
from ..core.serialization import FieldMetadata
7+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
8+
import typing
9+
10+
11+
class MetricAchievementResponse(BaseAchievementResponse):
12+
trigger: str = pydantic.Field()
13+
"""
14+
The trigger of the achievement, in this case always 'metric'.
15+
"""
16+
17+
metric_id: typing_extensions.Annotated[str, FieldMetadata(alias="metricId")] = (
18+
pydantic.Field()
19+
)
20+
"""
21+
The ID of the metric associated with this achievement, if any.
22+
"""
23+
24+
metric_value: typing_extensions.Annotated[
25+
float, FieldMetadata(alias="metricValue")
26+
] = pydantic.Field()
27+
"""
28+
The value of the metric required to complete the achievement, if this achievement is associated with a metric.
29+
"""
30+
31+
metric_name: typing_extensions.Annotated[str, FieldMetadata(alias="metricName")] = (
32+
pydantic.Field()
33+
)
34+
"""
35+
The name of the metric associated with this achievement, if any.
36+
"""
37+
38+
if IS_PYDANTIC_V2:
39+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
40+
extra="allow", frozen=True
41+
) # type: ignore # Pydantic v2
42+
else:
43+
44+
class Config:
45+
frozen = True
46+
smart_union = True
47+
extra = pydantic.Extra.allow

0 commit comments

Comments
 (0)