Skip to content

Commit 09c6ca6

Browse files
sofiar-msftCopilot
andauthored
Fix mypy errors (#42192)
* Remove `mypy=false` and `type_check_samples=false` * Enhance PhoneNumbersClient with type casting and improve error handling * Enhance SipRoutingClient with additional type annotations and improve error handling for trunk retrieval * Refactor environment variable access to use os.environ for consistency across samples * Fix pylint errors * Update sdk/communication/azure-communication-phonenumbers/samples/browse_and_reserve_phone_numbers_sample_async.py Remove redundant initialization Co-authored-by: Copilot <[email protected]> * Update sdk/communication/azure-communication-phonenumbers/samples/browse_and_reserve_phone_numbers_sample.py Co-authored-by: Copilot <[email protected]> * Update sdk/communication/azure-communication-phonenumbers/samples/browse_and_reserve_numbers_bulk_sample_async.py Co-authored-by: Copilot <[email protected]> * Update sdk/communication/azure-communication-phonenumbers/samples/browse_and_reserve_numbers_bulk_sample.py Co-authored-by: Copilot <[email protected]> * Update config trunks error message --------- Co-authored-by: Copilot <[email protected]>
1 parent 55caf99 commit 09c6ca6

38 files changed

+252
-149
lines changed

sdk/communication/azure-communication-phonenumbers/azure/communication/phonenumbers/_phone_numbers_client.py

Lines changed: 48 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# --------------------------------------------------------------------------
66

77
# pylint: disable=docstring-keyword-should-match-keyword-only
8-
from typing import List, Optional, Union, Any
8+
from typing import List, Optional, Union, Any, cast, Dict
99
import uuid
1010

1111
from azure.core.credentials import TokenCredential, AzureKeyCredential
@@ -96,7 +96,7 @@ def from_connection_string(cls, conn_str: str, **kwargs: Any) -> "PhoneNumbersCl
9696
"""
9797
endpoint, access_key = parse_connection_str(conn_str)
9898

99-
return cls(endpoint, access_key, **kwargs)
99+
return cls(endpoint, AzureKeyCredential(access_key), **kwargs)
100100

101101
@distributed_trace
102102
def begin_purchase_phone_numbers(
@@ -240,7 +240,9 @@ def begin_update_phone_number_capabilities(
240240
)
241241

242242
result_properties = poller.result().additional_properties
243-
if "status" in result_properties and result_properties["status"].lower() == "failed":
243+
if (result_properties is not None and
244+
"status" in result_properties and
245+
result_properties["status"].lower() == "failed"):
244246
raise HttpResponseError(
245247
message=result_properties["error"]["message"])
246248

@@ -271,7 +273,8 @@ def list_purchased_phone_numbers(self, **kwargs: Any) -> ItemPaged[PurchasedPhon
271273
:returns: An iterator of purchased phone numbers.
272274
:rtype: ~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PurchasedPhoneNumber]
273275
"""
274-
return self._phone_number_client.phone_numbers.list_phone_numbers(**kwargs)
276+
return cast(ItemPaged[PurchasedPhoneNumber],
277+
self._phone_number_client.phone_numbers.list_phone_numbers(**kwargs))
275278

276279
@distributed_trace
277280
def list_available_countries(self, **kwargs: Any) -> ItemPaged[PhoneNumberCountry]:
@@ -287,9 +290,10 @@ def list_available_countries(self, **kwargs: Any) -> ItemPaged[PhoneNumberCountr
287290
~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberCountry]
288291
:raises ~azure.core.exceptions.HttpResponseError:
289292
"""
290-
return self._phone_number_client.phone_numbers.list_available_countries(
291-
accept_language=self._accepted_language, **kwargs
292-
)
293+
return cast(ItemPaged[PhoneNumberCountry],
294+
self._phone_number_client.phone_numbers.list_available_countries(
295+
accept_language=self._accepted_language, **kwargs
296+
))
293297

294298
@distributed_trace
295299
def list_available_localities(self, country_code: str, **kwargs: Any) -> ItemPaged[PhoneNumberLocality]:
@@ -310,13 +314,14 @@ def list_available_localities(self, country_code: str, **kwargs: Any) -> ItemPag
310314
~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberLocality]
311315
:raises ~azure.core.exceptions.HttpResponseError:
312316
"""
313-
return self._phone_number_client.phone_numbers.list_available_localities(
314-
country_code,
315-
administrative_division=kwargs.pop(
316-
"administrative_division", None),
317-
accept_language=self._accepted_language,
318-
**kwargs
319-
)
317+
return cast(ItemPaged[PhoneNumberLocality],
318+
self._phone_number_client.phone_numbers.list_available_localities(
319+
country_code,
320+
administrative_division=kwargs.pop(
321+
"administrative_division", None),
322+
accept_language=self._accepted_language,
323+
**kwargs
324+
))
320325

321326
@distributed_trace
322327
def list_available_offerings(self, country_code: str, **kwargs: Any) -> ItemPaged[PhoneNumberOffering]:
@@ -340,12 +345,13 @@ def list_available_offerings(self, country_code: str, **kwargs: Any) -> ItemPage
340345
~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberOffering]
341346
:raises ~azure.core.exceptions.HttpResponseError:
342347
"""
343-
return self._phone_number_client.phone_numbers.list_offerings(
344-
country_code,
345-
phone_number_type=kwargs.pop("phone_number_type", None),
346-
assignment_type=kwargs.pop("assignment_type", None),
347-
**kwargs
348-
)
348+
return cast(ItemPaged[PhoneNumberOffering],
349+
self._phone_number_client.phone_numbers.list_offerings(
350+
country_code,
351+
phone_number_type=kwargs.pop("phone_number_type", None),
352+
assignment_type=kwargs.pop("assignment_type", None),
353+
**kwargs
354+
))
349355

350356
@distributed_trace
351357
def list_available_area_codes(
@@ -374,15 +380,16 @@ def list_available_area_codes(
374380
:rtype: ~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberAreaCode]
375381
:raises ~azure.core.exceptions.HttpResponseError:
376382
"""
377-
return self._phone_number_client.phone_numbers.list_area_codes(
378-
country_code,
379-
phone_number_type=phone_number_type,
380-
assignment_type=kwargs.pop("assignment_type", None),
381-
locality=kwargs.pop("locality", None),
382-
administrative_division=kwargs.pop(
383-
"administrative_division", None),
384-
**kwargs
385-
)
383+
return cast(ItemPaged[PhoneNumberAreaCode],
384+
self._phone_number_client.phone_numbers.list_area_codes(
385+
country_code,
386+
phone_number_type=phone_number_type,
387+
assignment_type=kwargs.pop("assignment_type", None),
388+
locality=kwargs.pop("locality", None),
389+
administrative_division=kwargs.pop(
390+
"administrative_division", None),
391+
**kwargs
392+
))
386393

387394
@distributed_trace
388395
def search_operator_information(
@@ -443,9 +450,10 @@ def list_reservations(
443450
# This allows mapping the generated model to the public model.
444451
# Internally, the generated client will create an instance of this iterator with each fetched page.
445452

446-
return self._phone_number_client.phone_numbers.list_reservations(
447-
max_page_size=max_page_size,
448-
**kwargs)
453+
return cast(ItemPaged[PhoneNumbersReservation],
454+
self._phone_number_client.phone_numbers.list_reservations(
455+
max_page_size=max_page_size,
456+
**kwargs))
449457

450458
@distributed_trace
451459
def create_or_update_reservation(
@@ -481,15 +489,18 @@ def create_or_update_reservation(
481489
except ValueError as exc:
482490
raise ValueError("reservation_id must be in valid UUID format") from exc
483491

484-
phone_numbers = {}
492+
phone_numbers: Dict[str, Optional[AvailablePhoneNumber]] = {}
485493
if numbers_to_add:
486494
for number in numbers_to_add:
487-
phone_numbers[number.id] = number
495+
if number.id is not None:
496+
phone_numbers[number.id] = number
488497
if numbers_to_remove:
489-
for number in numbers_to_remove:
490-
phone_numbers[number] = None
498+
for number_id in numbers_to_remove:
499+
phone_numbers[number_id] = None
491500

492-
reservation = PhoneNumbersReservation(phone_numbers=phone_numbers)
501+
# Cast to satisfy type checker - merge-patch operations allow None values
502+
reservation = PhoneNumbersReservation(
503+
phone_numbers=cast(Optional[Dict[str, AvailablePhoneNumber]], phone_numbers))
493504

494505
return self._phone_number_client.phone_numbers.create_or_update_reservation(
495506
reservation_id, reservation, **kwargs)

sdk/communication/azure-communication-phonenumbers/azure/communication/phonenumbers/aio/_phone_numbers_client_async.py

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# --------------------------------------------------------------------------
66

77
# pylint: disable=docstring-keyword-should-match-keyword-only
8-
from typing import List, Optional, Union, Any
8+
from typing import List, Optional, Union, Any, cast, Dict
99
import uuid
1010

1111
from azure.core.credentials_async import AsyncTokenCredential
@@ -99,7 +99,7 @@ def from_connection_string(cls, conn_str: str, **kwargs: Any) -> "PhoneNumbersCl
9999
"""
100100
endpoint, access_key = parse_connection_str(conn_str)
101101

102-
return cls(endpoint, access_key, **kwargs)
102+
return cls(endpoint, AzureKeyCredential(access_key), **kwargs)
103103

104104
@distributed_trace_async
105105
async def begin_purchase_phone_numbers(
@@ -268,7 +268,10 @@ def list_purchased_phone_numbers(self, **kwargs: Any) -> AsyncItemPaged[Purchase
268268
~azure.core.async_paging.AsyncItemPaged[~azure.communication.phonenumbers.PurchasedPhoneNumber]
269269
:raises ~azure.core.exceptions.HttpResponseError:
270270
"""
271-
return self._phone_number_client.phone_numbers.list_phone_numbers(**kwargs)
271+
return cast(
272+
AsyncItemPaged[PurchasedPhoneNumber],
273+
self._phone_number_client.phone_numbers.list_phone_numbers(**kwargs)
274+
)
272275

273276
@distributed_trace
274277
def list_available_countries(self, **kwargs: Any) -> AsyncItemPaged[PhoneNumberCountry]:
@@ -284,8 +287,11 @@ def list_available_countries(self, **kwargs: Any) -> AsyncItemPaged[PhoneNumberC
284287
~azure.core.async_paging.AsyncItemPaged[~azure.communication.phonenumbers.PhoneNumberCountry]
285288
:raises ~azure.core.exceptions.HttpResponseError:
286289
"""
287-
return self._phone_number_client.phone_numbers.list_available_countries(
288-
accept_language=self._accepted_language, **kwargs
290+
return cast(
291+
AsyncItemPaged[PhoneNumberCountry],
292+
self._phone_number_client.phone_numbers.list_available_countries(
293+
accept_language=self._accepted_language, **kwargs
294+
)
289295
)
290296

291297
@distributed_trace
@@ -307,12 +313,15 @@ def list_available_localities(self, country_code: str, **kwargs: Any) -> AsyncIt
307313
~azure.core.async_paging.AsyncItemPaged[~azure.communication.phonenumbers.PhoneNumberLocality]
308314
:raises ~azure.core.exceptions.HttpResponseError:
309315
"""
310-
return self._phone_number_client.phone_numbers.list_available_localities(
311-
country_code,
312-
administrative_division=kwargs.pop(
313-
"administrative_division", None),
314-
accept_language=self._accepted_language,
315-
**kwargs
316+
return cast(
317+
AsyncItemPaged[PhoneNumberLocality],
318+
self._phone_number_client.phone_numbers.list_available_localities(
319+
country_code,
320+
administrative_division=kwargs.pop(
321+
"administrative_division", None),
322+
accept_language=self._accepted_language,
323+
**kwargs
324+
)
316325
)
317326

318327
@distributed_trace
@@ -337,12 +346,12 @@ def list_available_offerings(self, country_code: str, **kwargs: Any) -> AsyncIte
337346
~azure.core.async_paging.AsyncItemPaged[~azure.communication.phonenumbers.PhoneNumberOffering]
338347
:raises ~azure.core.exceptions.HttpResponseError:
339348
"""
340-
return self._phone_number_client.phone_numbers.list_offerings(
349+
return cast(AsyncItemPaged[PhoneNumberOffering], self._phone_number_client.phone_numbers.list_offerings(
341350
country_code,
342351
phone_number_type=kwargs.pop("phone_number_type", None),
343352
assignment_type=kwargs.pop("assignment_type", None),
344353
**kwargs
345-
)
354+
))
346355

347356
@distributed_trace
348357
def list_available_area_codes(
@@ -371,15 +380,15 @@ def list_available_area_codes(
371380
:rtype: ~azure.core.paging.ItemPaged[~azure.communication.phonenumbers.PhoneNumberAreaCode]
372381
:raises ~azure.core.exceptions.HttpResponseError:
373382
"""
374-
return self._phone_number_client.phone_numbers.list_area_codes(
383+
return cast(AsyncItemPaged[PhoneNumberAreaCode], self._phone_number_client.phone_numbers.list_area_codes(
375384
country_code,
376385
phone_number_type=phone_number_type,
377386
assignment_type=kwargs.pop("assignment_type", None),
378387
locality=kwargs.pop("locality", None),
379388
administrative_division=kwargs.pop(
380389
"administrative_division", None),
381390
**kwargs
382-
)
391+
))
383392

384393
@distributed_trace_async
385394
async def search_operator_information(
@@ -451,9 +460,9 @@ def list_reservations(
451460
~azure.core.async_paging.AsyncItemPaged[~azure.communication.phonenumbers.PhoneNumbersReservation]
452461
"""
453462

454-
return self._phone_number_client.phone_numbers.list_reservations(
463+
return cast(AsyncItemPaged[PhoneNumbersReservation], self._phone_number_client.phone_numbers.list_reservations(
455464
max_page_size=max_page_size,
456-
**kwargs)
465+
**kwargs))
457466

458467
@distributed_trace_async
459468
async def create_or_update_reservation(
@@ -489,15 +498,18 @@ async def create_or_update_reservation(
489498
except ValueError as exc:
490499
raise ValueError("reservation_id must be in valid UUID format") from exc
491500

492-
phone_numbers = {}
501+
phone_numbers: Dict[str, Optional[AvailablePhoneNumber]] = {}
493502
if numbers_to_add:
494503
for number in numbers_to_add:
495-
phone_numbers[number.id] = number
504+
if number.id is not None:
505+
phone_numbers[number.id] = number
496506
if numbers_to_remove:
497-
for number in numbers_to_remove:
498-
phone_numbers[number] = None
507+
for number_id in numbers_to_remove:
508+
phone_numbers[number_id] = None
499509

500-
reservation = PhoneNumbersReservation(phone_numbers=phone_numbers)
510+
# Cast to satisfy type checker - merge-patch operations allow None values
511+
reservation = PhoneNumbersReservation(
512+
phone_numbers=cast(Optional[Dict[str, AvailablePhoneNumber]], phone_numbers))
501513

502514
return await self._phone_number_client.phone_numbers.create_or_update_reservation(
503515
reservation_id, reservation, **kwargs

sdk/communication/azure-communication-phonenumbers/azure/communication/phonenumbers/siprouting/_generated/_patch.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,8 @@
2828

2929
# This file is used for handwritten extensions to the generated code. Example:
3030
# https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md
31+
32+
__all__: list[str] = []
33+
3134
def patch_sdk():
3235
pass

sdk/communication/azure-communication-phonenumbers/azure/communication/phonenumbers/siprouting/_generated/aio/_patch.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
# --------------------------------------------------------------------------
2727

2828

29+
__all__: list[str] = []
30+
31+
2932
# This file is used for handwritten extensions to the generated code. Example:
3033
# https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md
3134
def patch_sdk():

0 commit comments

Comments
 (0)