Skip to content

Commit 78326dd

Browse files
committed
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-python into models_to_submodels
* 'master' of https://github.com/Azure/azure-sdk-for-python: Increment package version after release of azure_ai_textanalytics (Azure#11664) DefaultAzureCredential can configure InteractiveBrowserCredential's tenant (Azure#11662) use CIMultiDict when pickling (Azure#11661) [text analytics] update version to b6 (Azure#11660)
2 parents 84d361e + 661b54c commit 78326dd

File tree

333 files changed

+1387
-1344
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

333 files changed

+1387
-1344
lines changed

sdk/core/azure-core/azure/core/pipeline/transport/_aiohttp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,6 @@ def __getstate__(self):
307307
state = self.__dict__.copy()
308308
# Remove the unpicklable entries.
309309
state['internal_response'] = None # aiohttp response are not pickable (see headers comments)
310-
from multidict import MultiDict # I know it's importable since aiohttp is loaded
311-
state['headers'] = MultiDict(self.headers) # MultiDictProxy is not pickable
310+
from multidict import CIMultiDict # I know it's importable since aiohttp is loaded
311+
state['headers'] = CIMultiDict(self.headers) # MultiDictProxy is not pickable
312312
return state

sdk/identity/azure-identity/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Release History
22

33
## 1.4.0b4 (Unreleased)
4+
- When constructing `DefaultAzureCredential`, you can now configure a tenant ID
5+
for `InteractiveBrowserCredential`. When none is specified, the credential
6+
authenticates users in their home tenants. To specify a different tenant, use
7+
the keyword argument `interactive_browser_tenant_id`, or set the environment
8+
variable `AZURE_TENANT_ID`.
9+
([#11548](https://github.com/Azure/azure-sdk-for-python/issues/11548))
410
- The user authentication API added to `DeviceCodeCredential` and
511
`InteractiveBrowserCredential` in 1.4.0b3 is available on
612
`UsernamePasswordCredential` as well.

sdk/identity/azure-identity/azure/identity/_credentials/default.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ class DefaultAzureCredential(ChainedTokenCredential):
5959
**False**.
6060
:keyword bool exclude_interactive_browser_credential: Whether to exclude interactive browser authentication (see
6161
:class:`~azure.identity.InteractiveBrowserCredential`). Defaults to **True**.
62+
:keyword str interactive_browser_tenant_id: Tenant ID to use when authenticating a user through
63+
:class:`~azure.identity.InteractiveBrowserCredential`. Defaults to the value of environment variable
64+
AZURE_TENANT_ID, if any. If unspecified, users will authenticate in their home tenants.
6265
:keyword str shared_cache_username: Preferred username for :class:`~azure.identity.SharedTokenCacheCredential`.
6366
Defaults to the value of environment variable AZURE_USERNAME, if any.
6467
:keyword str shared_cache_tenant_id: Preferred tenant for :class:`~azure.identity.SharedTokenCacheCredential`.
@@ -69,6 +72,10 @@ def __init__(self, **kwargs):
6972
authority = kwargs.pop("authority", None)
7073
authority = normalize_authority(authority) if authority else get_default_authority()
7174

75+
interactive_browser_tenant_id = kwargs.pop(
76+
"interactive_browser_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID)
77+
)
78+
7279
shared_cache_username = kwargs.pop("shared_cache_username", os.environ.get(EnvironmentVariables.AZURE_USERNAME))
7380
shared_cache_tenant_id = kwargs.pop(
7481
"shared_cache_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID)
@@ -101,7 +108,7 @@ def __init__(self, **kwargs):
101108
if not exclude_cli_credential:
102109
credentials.append(AzureCliCredential())
103110
if not exclude_interactive_browser_credential:
104-
credentials.append(InteractiveBrowserCredential())
111+
credentials.append(InteractiveBrowserCredential(tenant_id=interactive_browser_tenant_id))
105112

106113
super(DefaultAzureCredential, self).__init__(*credentials)
107114

sdk/identity/azure-identity/tests/test_default.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,3 +255,30 @@ def get_credential_for_shared_cache_test(expected_refresh_token, expected_access
255255
# this credential uses a mock shared cache, so it works on all platforms
256256
with patch.object(SharedTokenCacheCredential, "supported"):
257257
return DefaultAzureCredential(_cache=cache, transport=transport, **options)
258+
259+
260+
def test_interactive_browser_tenant_id():
261+
"""the credential should allow configuring a tenant ID for InteractiveBrowserCredential by kwarg or environment"""
262+
263+
tenant_id = "tenant-id"
264+
265+
def validate_tenant_id(credential):
266+
assert len(credential.call_args_list) == 1, "InteractiveBrowserCredential should be instantiated once"
267+
_, kwargs = credential.call_args
268+
assert kwargs == {'tenant_id': tenant_id}
269+
270+
with patch(DefaultAzureCredential.__module__ + ".InteractiveBrowserCredential") as mock_credential:
271+
DefaultAzureCredential(exclude_interactive_browser_credential=False, interactive_browser_tenant_id=tenant_id)
272+
validate_tenant_id(mock_credential)
273+
274+
# tenant id can also be specified in $AZURE_TENANT_ID
275+
with patch.dict(os.environ, {EnvironmentVariables.AZURE_TENANT_ID: tenant_id}, clear=True):
276+
with patch(DefaultAzureCredential.__module__ + ".InteractiveBrowserCredential") as mock_credential:
277+
DefaultAzureCredential(exclude_interactive_browser_credential=False)
278+
validate_tenant_id(mock_credential)
279+
280+
# keyword argument should override environment variable
281+
with patch.dict(os.environ, {EnvironmentVariables.AZURE_TENANT_ID: "not-" + tenant_id}, clear=True):
282+
with patch(DefaultAzureCredential.__module__ + ".InteractiveBrowserCredential") as mock_credential:
283+
DefaultAzureCredential(exclude_interactive_browser_credential=False, interactive_browser_tenant_id=tenant_id)
284+
validate_tenant_id(mock_credential)

sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Change Log azure-ai-textanalytics
22

3+
## 1.0.0b7 (Unreleased)
4+
5+
36
## 1.0.0b6 (2020-05-27)
47

58
**New features**

sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
# Licensed under the MIT License.
55
# ------------------------------------
66

7-
VERSION = "1.0.0b5"
7+
VERSION = "1.0.0b7"

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_dict.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interactions:
1717
Content-Type:
1818
- application/json
1919
User-Agent:
20-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
20+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
2121
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
2222
method: POST
2323
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=true
@@ -31,21 +31,21 @@ interactions:
3131
recommend you try it."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}'
3232
headers:
3333
apim-request-id:
34-
- 023e77c5-d3bc-4767-a6d0-dece5cdfd77a
34+
- ee7dfa62-6db4-458c-9402-a924260a3424
3535
content-type:
3636
- application/json; charset=utf-8
3737
csp-billing-usage:
3838
- CognitiveServices.TextAnalytics.BatchScoring=3
3939
date:
40-
- Tue, 26 May 2020 17:34:27 GMT
40+
- Wed, 27 May 2020 16:04:02 GMT
4141
strict-transport-security:
4242
- max-age=31536000; includeSubDomains; preload
4343
transfer-encoding:
4444
- chunked
4545
x-content-type-options:
4646
- nosniff
4747
x-envoy-upstream-service-time:
48-
- '103'
48+
- '77'
4949
status:
5050
code: 200
5151
message: OK

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_all_successful_passing_text_document_input.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interactions:
1717
Content-Type:
1818
- application/json
1919
User-Agent:
20-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
20+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
2121
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
2222
method: POST
2323
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -31,21 +31,21 @@ interactions:
3131
recommend you try it."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}'
3232
headers:
3333
apim-request-id:
34-
- a54b49b4-a667-412a-9dac-e1c33621658b
34+
- 829ad6e0-1c65-4dbe-95e4-2ea55bfd0a7f
3535
content-type:
3636
- application/json; charset=utf-8
3737
csp-billing-usage:
3838
- CognitiveServices.TextAnalytics.BatchScoring=3
3939
date:
40-
- Tue, 26 May 2020 17:34:25 GMT
40+
- Wed, 27 May 2020 16:04:02 GMT
4141
strict-transport-security:
4242
- max-age=31536000; includeSubDomains; preload
4343
transfer-encoding:
4444
- chunked
4545
x-content-type-options:
4646
- nosniff
4747
x-envoy-upstream-service-time:
48-
- '102'
48+
- '103'
4949
status:
5050
code: 200
5151
message: OK

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_credentials.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ interactions:
1414
Content-Type:
1515
- application/json
1616
User-Agent:
17-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
17+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
1818
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
1919
method: POST
2020
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -27,7 +27,7 @@ interactions:
2727
content-length:
2828
- '224'
2929
date:
30-
- Tue, 26 May 2020 17:34:25 GMT
30+
- Wed, 27 May 2020 16:04:01 GMT
3131
status:
3232
code: 401
3333
message: PermissionDenied

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_bad_model_version_error.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ interactions:
1414
Content-Type:
1515
- application/json
1616
User-Agent:
17-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
17+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
1818
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
1919
method: POST
2020
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?model-version=bad&showStats=false
@@ -24,11 +24,11 @@ interactions:
2424
model version. Possible values are: latest,2019-10-01,2020-04-01"}}}'
2525
headers:
2626
apim-request-id:
27-
- d2bf330c-3613-42de-bc50-68bcff6028c4
27+
- 80c5f909-4975-4725-a87b-6de201a7f701
2828
content-type:
2929
- application/json; charset=utf-8
3030
date:
31-
- Tue, 26 May 2020 17:34:24 GMT
31+
- Wed, 27 May 2020 16:04:01 GMT
3232
strict-transport-security:
3333
- max-age=31536000; includeSubDomains; preload
3434
transfer-encoding:

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ interactions:
758758
Content-Type:
759759
- application/json
760760
User-Agent:
761-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
761+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
762762
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
763763
method: POST
764764
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -768,11 +768,11 @@ interactions:
768768
request contains too many records. Max 1000 records are permitted."}}}'
769769
headers:
770770
apim-request-id:
771-
- 328aebf1-a48e-4d68-90a6-ab310d6d16b8
771+
- 3c8df611-834f-4fdb-b8e8-2429e2d30e26
772772
content-type:
773773
- application/json; charset=utf-8
774774
date:
775-
- Tue, 26 May 2020 17:34:24 GMT
775+
- Wed, 27 May 2020 16:04:02 GMT
776776
strict-transport-security:
777777
- max-age=31536000; includeSubDomains; preload
778778
transfer-encoding:

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_batch_size_over_limit_error.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ interactions:
723723
Content-Type:
724724
- application/json
725725
User-Agent:
726-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
726+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
727727
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
728728
method: POST
729729
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -733,19 +733,19 @@ interactions:
733733
request contains too many records. Max 1000 records are permitted."}}}'
734734
headers:
735735
apim-request-id:
736-
- bb497baf-60ee-4756-93f1-115c5cc87e65
736+
- fea64d87-821c-4f65-8c01-2439fbef4a89
737737
content-type:
738738
- application/json; charset=utf-8
739739
date:
740-
- Tue, 26 May 2020 17:34:26 GMT
740+
- Wed, 27 May 2020 16:04:02 GMT
741741
strict-transport-security:
742742
- max-age=31536000; includeSubDomains; preload
743743
transfer-encoding:
744744
- chunked
745745
x-content-type-options:
746746
- nosniff
747747
x-envoy-upstream-service-time:
748-
- '11'
748+
- '12'
749749
status:
750750
code: 400
751751
message: Bad Request

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_client_passed_default_language_hint.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ interactions:
1616
Content-Type:
1717
- application/json
1818
User-Agent:
19-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
19+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
2020
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
2121
method: POST
2222
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -28,21 +28,21 @@ interactions:
2828
restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}'
2929
headers:
3030
apim-request-id:
31-
- a7da095c-db1b-463d-af2c-1ce9b66f65ba
31+
- 29a54d72-954e-4405-93fd-8c503159d42c
3232
content-type:
3333
- application/json; charset=utf-8
3434
csp-billing-usage:
3535
- CognitiveServices.TextAnalytics.BatchScoring=3
3636
date:
37-
- Tue, 26 May 2020 17:34:27 GMT
37+
- Wed, 27 May 2020 16:04:02 GMT
3838
strict-transport-security:
3939
- max-age=31536000; includeSubDomains; preload
4040
transfer-encoding:
4141
- chunked
4242
x-content-type-options:
4343
- nosniff
4444
x-envoy-upstream-service-time:
45-
- '100'
45+
- '376'
4646
status:
4747
code: 200
4848
message: OK
@@ -63,7 +63,7 @@ interactions:
6363
Content-Type:
6464
- application/json
6565
User-Agent:
66-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
66+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
6767
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
6868
method: POST
6969
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -75,21 +75,21 @@ interactions:
7575
restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}'
7676
headers:
7777
apim-request-id:
78-
- f08531c8-e40a-498c-9bd3-f6e5b2f6d4ba
78+
- ad3384c2-89d8-4dc2-b634-519a8a687898
7979
content-type:
8080
- application/json; charset=utf-8
8181
csp-billing-usage:
8282
- CognitiveServices.TextAnalytics.BatchScoring=3
8383
date:
84-
- Tue, 26 May 2020 17:34:27 GMT
84+
- Wed, 27 May 2020 16:04:02 GMT
8585
strict-transport-security:
8686
- max-age=31536000; includeSubDomains; preload
8787
transfer-encoding:
8888
- chunked
8989
x-content-type-options:
9090
- nosniff
9191
x-envoy-upstream-service-time:
92-
- '87'
92+
- '103'
9393
status:
9494
code: 200
9595
message: OK
@@ -110,7 +110,7 @@ interactions:
110110
Content-Type:
111111
- application/json
112112
User-Agent:
113-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
113+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
114114
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
115115
method: POST
116116
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -122,21 +122,21 @@ interactions:
122122
restaurant had really good food."}],"warnings":[]}],"errors":[],"modelVersion":"2020-04-01"}'
123123
headers:
124124
apim-request-id:
125-
- c7b17e8f-1367-442b-92d5-199e3665a318
125+
- 896f3fe4-b6d1-4918-aad2-0f35ad243bab
126126
content-type:
127127
- application/json; charset=utf-8
128128
csp-billing-usage:
129129
- CognitiveServices.TextAnalytics.BatchScoring=3
130130
date:
131-
- Tue, 26 May 2020 17:34:27 GMT
131+
- Wed, 27 May 2020 16:04:02 GMT
132132
strict-transport-security:
133133
- max-age=31536000; includeSubDomains; preload
134134
transfer-encoding:
135135
- chunked
136136
x-content-type-options:
137137
- nosniff
138138
x-envoy-upstream-service-time:
139-
- '105'
139+
- '121'
140140
status:
141141
code: 200
142142
message: OK

sdk/textanalytics/azure-ai-textanalytics/tests/recordings/test_analyze_sentiment.test_document_attribute_error_no_result_attribute.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interactions:
1313
Content-Type:
1414
- application/json
1515
User-Agent:
16-
- azsdk-python-ai-textanalytics/1.0.0b5 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
16+
- azsdk-python-ai-textanalytics/1.0.0b6 Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
1717
Python/3.7.7 (Darwin-17.7.0-x86_64-i386-64bit)
1818
method: POST
1919
uri: https://westus2.api.cognitive.microsoft.com/text/analytics/v3.0/sentiment?showStats=false
@@ -24,11 +24,11 @@ interactions:
2424
text is empty."}}}],"modelVersion":"2020-04-01"}'
2525
headers:
2626
apim-request-id:
27-
- 2533f646-691a-4a18-8593-65b3b6b71546
27+
- 544887f7-4d24-4d86-b6a4-e7f41f6f3d6e
2828
content-type:
2929
- application/json; charset=utf-8
3030
date:
31-
- Tue, 26 May 2020 17:34:24 GMT
31+
- Wed, 27 May 2020 16:04:01 GMT
3232
strict-transport-security:
3333
- max-age=31536000; includeSubDomains; preload
3434
transfer-encoding:

0 commit comments

Comments
 (0)