Skip to content

Commit ff43e35

Browse files
author
Lewi Lie Uberg
committed
chore: update generated python client code to v3.0.0
1 parent 063c851 commit ff43e35

29 files changed

+1550
-3
lines changed

.github/workflows/build.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Build and test
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
11+
strategy:
12+
matrix:
13+
python-version: ["3.13"]
14+
fail-fast: false
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@v5
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
24+
- name: Install dependencies
25+
run: uv sync
26+
27+
- name: Lint (ruff)
28+
run: uv run ruff check tests/
29+
30+
- name: Type check (mypy)
31+
run: uv run mypy tests/
32+
33+
- name: Test (pytest)
34+
run: uv run pytest --cov=src --cov-report=term-missing

.github/workflows/publish.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
publish:
9+
runs-on: ubuntu-latest
10+
11+
permissions:
12+
id-token: write # required for OIDC trusted publisher
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Install uv
18+
uses: astral-sh/setup-uv@v5
19+
with:
20+
python-version: "3.13"
21+
22+
- name: Install dependencies
23+
run: uv sync
24+
25+
- name: Build wheel and sdist
26+
run: uv build
27+
28+
- name: Publish to PyPI
29+
uses: pypa/gh-action-pypi-publish@release/v1

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ abstract: "Python client for Puzzel SMS Gateway."
55
authors:
66
- family-names: "Lie Uberg"
77
given-names: Lewi
8-
version: 2.0.4
9-
date-released: 2024-03-06
8+
version: 3.0.0
9+
date-released: 2026-04-13
1010
repository-code: "https://github.com/PuzzelSolutions/smsgw-client-python"
1111
license: MIT
1212
keywords:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "puzzel-sms-gateway-client"
3-
version = "2.0.4"
3+
version = "3.0.0"
44
description = "Puzzel SMS Gateway Python Client (Kiota-generated)"
55
requires-python = ">=3.13"
66
license = {text = "MIT"}

src/gw/gw_request_builder.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from __future__ import annotations
2+
from collections.abc import Callable
3+
from kiota_abstractions.base_request_builder import BaseRequestBuilder
4+
from kiota_abstractions.get_path_parameters import get_path_parameters
5+
from kiota_abstractions.request_adapter import RequestAdapter
6+
from typing import Any, Optional, TYPE_CHECKING, Union
7+
8+
if TYPE_CHECKING:
9+
from .rs.rs_request_builder import RsRequestBuilder
10+
11+
class GwRequestBuilder(BaseRequestBuilder):
12+
"""
13+
Builds and executes requests for operations under /gw
14+
"""
15+
def __init__(self,request_adapter: RequestAdapter, path_parameters: Union[str, dict[str, Any]]) -> None:
16+
"""
17+
Instantiates a new GwRequestBuilder and sets the default values.
18+
param path_parameters: The raw url or the url-template parameters for the request.
19+
param request_adapter: The request adapter to use to execute the requests.
20+
Returns: None
21+
"""
22+
super().__init__(request_adapter, "{+baseurl}/gw", path_parameters)
23+
24+
@property
25+
def rs(self) -> RsRequestBuilder:
26+
"""
27+
The rs property
28+
"""
29+
from .rs.rs_request_builder import RsRequestBuilder
30+
31+
return RsRequestBuilder(self.request_adapter, self.path_parameters)
32+
33+

src/gw/rs/rs_request_builder.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from __future__ import annotations
2+
from collections.abc import Callable
3+
from kiota_abstractions.base_request_builder import BaseRequestBuilder
4+
from kiota_abstractions.get_path_parameters import get_path_parameters
5+
from kiota_abstractions.request_adapter import RequestAdapter
6+
from typing import Any, Optional, TYPE_CHECKING, Union
7+
8+
if TYPE_CHECKING:
9+
from .send_messages.send_messages_request_builder import SendMessagesRequestBuilder
10+
11+
class RsRequestBuilder(BaseRequestBuilder):
12+
"""
13+
Builds and executes requests for operations under /gw/rs
14+
"""
15+
def __init__(self,request_adapter: RequestAdapter, path_parameters: Union[str, dict[str, Any]]) -> None:
16+
"""
17+
Instantiates a new RsRequestBuilder and sets the default values.
18+
param path_parameters: The raw url or the url-template parameters for the request.
19+
param request_adapter: The request adapter to use to execute the requests.
20+
Returns: None
21+
"""
22+
super().__init__(request_adapter, "{+baseurl}/gw/rs", path_parameters)
23+
24+
@property
25+
def send_messages(self) -> SendMessagesRequestBuilder:
26+
"""
27+
The sendMessages property
28+
"""
29+
from .send_messages.send_messages_request_builder import SendMessagesRequestBuilder
30+
31+
return SendMessagesRequestBuilder(self.request_adapter, self.path_parameters)
32+
33+
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
from __future__ import annotations
2+
from collections.abc import Callable
3+
from dataclasses import dataclass, field
4+
from kiota_abstractions.base_request_builder import BaseRequestBuilder
5+
from kiota_abstractions.base_request_configuration import RequestConfiguration
6+
from kiota_abstractions.default_query_parameters import QueryParameters
7+
from kiota_abstractions.get_path_parameters import get_path_parameters
8+
from kiota_abstractions.method import Method
9+
from kiota_abstractions.request_adapter import RequestAdapter
10+
from kiota_abstractions.request_information import RequestInformation
11+
from kiota_abstractions.request_option import RequestOption
12+
from kiota_abstractions.serialization import Parsable, ParsableFactory
13+
from typing import Any, Optional, TYPE_CHECKING, Union
14+
from warnings import warn
15+
16+
if TYPE_CHECKING:
17+
from ....models.gateway_request import GatewayRequest
18+
from ....models.gateway_response import GatewayResponse
19+
from ....models.problem_details import ProblemDetails
20+
21+
class SendMessagesRequestBuilder(BaseRequestBuilder):
22+
"""
23+
Builds and executes requests for operations under /gw/rs/sendMessages
24+
"""
25+
def __init__(self,request_adapter: RequestAdapter, path_parameters: Union[str, dict[str, Any]]) -> None:
26+
"""
27+
Instantiates a new SendMessagesRequestBuilder and sets the default values.
28+
param path_parameters: The raw url or the url-template parameters for the request.
29+
param request_adapter: The request adapter to use to execute the requests.
30+
Returns: None
31+
"""
32+
super().__init__(request_adapter, "{+baseurl}/gw/rs/sendMessages?Message={Message}&Password={Password}&Username={Username}{&BatchReference*,ServiceId*}", path_parameters)
33+
34+
async def get(self,request_configuration: Optional[RequestConfiguration[SendMessagesRequestBuilderGetQueryParameters]] = None) -> Optional[bytes]:
35+
"""
36+
param request_configuration: Configuration for the request such as headers, query parameters, and middleware options.
37+
Returns: bytes
38+
"""
39+
request_info = self.to_get_request_information(
40+
request_configuration
41+
)
42+
if not self.request_adapter:
43+
raise Exception("Http core is null")
44+
return await self.request_adapter.send_primitive_async(request_info, "bytes", None)
45+
46+
async def post(self,body: GatewayRequest, request_configuration: Optional[RequestConfiguration[QueryParameters]] = None) -> Optional[GatewayResponse]:
47+
"""
48+
param body: The request body
49+
param request_configuration: Configuration for the request such as headers, query parameters, and middleware options.
50+
Returns: Optional[GatewayResponse]
51+
"""
52+
if body is None:
53+
raise TypeError("body cannot be null.")
54+
request_info = self.to_post_request_information(
55+
body, request_configuration
56+
)
57+
from ....models.problem_details import ProblemDetails
58+
59+
error_mapping: dict[str, type[ParsableFactory]] = {
60+
"401": ProblemDetails,
61+
}
62+
if not self.request_adapter:
63+
raise Exception("Http core is null")
64+
from ....models.gateway_response import GatewayResponse
65+
66+
return await self.request_adapter.send_async(request_info, GatewayResponse, error_mapping)
67+
68+
def to_get_request_information(self,request_configuration: Optional[RequestConfiguration[SendMessagesRequestBuilderGetQueryParameters]] = None) -> RequestInformation:
69+
"""
70+
param request_configuration: Configuration for the request such as headers, query parameters, and middleware options.
71+
Returns: RequestInformation
72+
"""
73+
request_info = RequestInformation(Method.GET, self.url_template, self.path_parameters)
74+
request_info.configure(request_configuration)
75+
return request_info
76+
77+
def to_post_request_information(self,body: GatewayRequest, request_configuration: Optional[RequestConfiguration[QueryParameters]] = None) -> RequestInformation:
78+
"""
79+
param body: The request body
80+
param request_configuration: Configuration for the request such as headers, query parameters, and middleware options.
81+
Returns: RequestInformation
82+
"""
83+
if body is None:
84+
raise TypeError("body cannot be null.")
85+
request_info = RequestInformation(Method.POST, '{+baseurl}/gw/rs/sendMessages', self.path_parameters)
86+
request_info.configure(request_configuration)
87+
request_info.headers.try_add("Accept", "application/json")
88+
request_info.set_content_from_parsable(self.request_adapter, "application/json", body)
89+
return request_info
90+
91+
def with_url(self,raw_url: str) -> SendMessagesRequestBuilder:
92+
"""
93+
Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
94+
param raw_url: The raw URL to use for the request builder.
95+
Returns: SendMessagesRequestBuilder
96+
"""
97+
if raw_url is None:
98+
raise TypeError("raw_url cannot be null.")
99+
return SendMessagesRequestBuilder(self.request_adapter, raw_url)
100+
101+
@dataclass
102+
class SendMessagesRequestBuilderGetQueryParameters():
103+
def get_query_parameter(self,original_name: str) -> str:
104+
"""
105+
Maps the query parameters names to their encoded names for the URI template parsing.
106+
param original_name: The original query parameter name in the class.
107+
Returns: str
108+
"""
109+
if original_name is None:
110+
raise TypeError("original_name cannot be null.")
111+
if original_name == "batch_reference":
112+
return "BatchReference"
113+
if original_name == "message":
114+
return "Message"
115+
if original_name == "password":
116+
return "Password"
117+
if original_name == "service_id":
118+
return "ServiceId"
119+
if original_name == "username":
120+
return "Username"
121+
return original_name
122+
123+
batch_reference: Optional[str] = None
124+
125+
message: Optional[list[str]] = None
126+
127+
password: Optional[str] = None
128+
129+
service_id: Optional[int] = None
130+
131+
username: Optional[str] = None
132+
133+
134+
@dataclass
135+
class SendMessagesRequestBuilderGetRequestConfiguration(RequestConfiguration[SendMessagesRequestBuilderGetQueryParameters]):
136+
"""
137+
Configuration for the request such as headers, query parameters, and middleware options.
138+
"""
139+
warn("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.", DeprecationWarning)
140+
141+
@dataclass
142+
class SendMessagesRequestBuilderPostRequestConfiguration(RequestConfiguration[QueryParameters]):
143+
"""
144+
Configuration for the request such as headers, query parameters, and middleware options.
145+
"""
146+
warn("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.", DeprecationWarning)
147+
148+

src/kiota-lock.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"descriptionHash": "5269EB413FDAB685C5F9A1648ECEDC5DE1ECA2E7A96AD20E95A0228BD8A43C50637B565F8218237F045B6EFBC307B8ECB1D11194478A84638417F7B1DB0B3414",
3+
"descriptionLocation": "../../../source-generator/swagger.json",
4+
"lockFileVersion": "1.0.0",
5+
"kiotaVersion": "1.31.0",
6+
"clientClassName": "MtHttpClient",
7+
"typeAccessModifier": "Public",
8+
"clientNamespaceName": "Puzzel.SmsGateway.Clients.MtHttp",
9+
"language": "Python",
10+
"usesBackingStore": false,
11+
"excludeBackwardCompatible": false,
12+
"includeAdditionalData": true,
13+
"disableSSLValidation": false,
14+
"serializers": [
15+
"Microsoft.Kiota.Serialization.Json.JsonSerializationWriterFactory",
16+
"Microsoft.Kiota.Serialization.Text.TextSerializationWriterFactory",
17+
"Microsoft.Kiota.Serialization.Form.FormSerializationWriterFactory",
18+
"Microsoft.Kiota.Serialization.Multipart.MultipartSerializationWriterFactory"
19+
],
20+
"deserializers": [
21+
"Microsoft.Kiota.Serialization.Json.JsonParseNodeFactory",
22+
"Microsoft.Kiota.Serialization.Text.TextParseNodeFactory",
23+
"Microsoft.Kiota.Serialization.Form.FormParseNodeFactory"
24+
],
25+
"structuredMimeTypes": [
26+
"application/json",
27+
"text/plain;q=0.9",
28+
"application/x-www-form-urlencoded;q=0.2",
29+
"multipart/form-data;q=0.1"
30+
],
31+
"includePatterns": [],
32+
"excludePatterns": [
33+
"/v4/**",
34+
"/mgmt/**",
35+
"/chimera/**",
36+
"/smsgw/**"
37+
],
38+
"disabledValidationRules": []
39+
}

0 commit comments

Comments
 (0)