From f665fad592c8a724fe92cdb83d943e78d1b11f4c Mon Sep 17 00:00:00 2001 From: antisch Date: Mon, 17 Jun 2019 14:16:45 -0700 Subject: [PATCH 1/5] Revert "Packaging update of azure-storage-blob" This reverts commit aeeb3ceb598a560183d89c93a0bbbf95853b3b6c. --- sdk/storage/azure-storage-blob/HISTORY.rst | 9 --- sdk/storage/azure-storage-blob/MANIFEST.in | 5 +- sdk/storage/azure-storage-blob/README.rst | 33 ---------- .../azure-storage-blob/azure/__init__.py | 2 +- .../azure/storage/__init__.py | 2 +- .../azure-storage-blob/sdk_packaging.toml | 8 --- sdk/storage/azure-storage-blob/setup.py | 65 ++++++++++++------- 7 files changed, 44 insertions(+), 80 deletions(-) delete mode 100644 sdk/storage/azure-storage-blob/HISTORY.rst delete mode 100644 sdk/storage/azure-storage-blob/README.rst delete mode 100644 sdk/storage/azure-storage-blob/sdk_packaging.toml diff --git a/sdk/storage/azure-storage-blob/HISTORY.rst b/sdk/storage/azure-storage-blob/HISTORY.rst deleted file mode 100644 index 8924d5d6c445..000000000000 --- a/sdk/storage/azure-storage-blob/HISTORY.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. :changelog: - -Release History -=============== - -0.1.0 (1970-01-01) -++++++++++++++++++ - -* Initial Release diff --git a/sdk/storage/azure-storage-blob/MANIFEST.in b/sdk/storage/azure-storage-blob/MANIFEST.in index e661bed6a000..9babac44ebed 100644 --- a/sdk/storage/azure-storage-blob/MANIFEST.in +++ b/sdk/storage/azure-storage-blob/MANIFEST.in @@ -1,5 +1,4 @@ -recursive-include tests *.py *.yaml -include *.rst +include *.md include azure/__init__.py include azure/storage/__init__.py - +include LICENSE.txt diff --git a/sdk/storage/azure-storage-blob/README.rst b/sdk/storage/azure-storage-blob/README.rst deleted file mode 100644 index e21b69129a05..000000000000 --- a/sdk/storage/azure-storage-blob/README.rst +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Azure SDK for Python -============================== - -This is the Microsoft Azure MyService Management Client Library. - -Azure Resource Manager (ARM) is the next generation of management APIs that -replace the old Azure Service Management (ASM). - -This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. - -For the older Azure Service Management (ASM) libraries, see -`azure-servicemanagement-legacy `__ library. - -For a more complete set of Azure libraries, see the `azure `__ bundle package. - - -Usage -===== - -For code examples, see `MyService Management -`__ -on docs.microsoft.com. - - -Provide Feedback -================ - -If you encounter any bugs or have suggestions, please file an issue in the -`Issues `__ -section of the project. - - -.. image:: https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-storage-blob%2FREADME.png diff --git a/sdk/storage/azure-storage-blob/azure/__init__.py b/sdk/storage/azure-storage-blob/azure/__init__.py index 0260537a02bb..59cb70146572 100644 --- a/sdk/storage/azure-storage-blob/azure/__init__.py +++ b/sdk/storage/azure-storage-blob/azure/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) \ No newline at end of file +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: str diff --git a/sdk/storage/azure-storage-blob/azure/storage/__init__.py b/sdk/storage/azure-storage-blob/azure/storage/__init__.py index 0260537a02bb..59cb70146572 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/__init__.py +++ b/sdk/storage/azure-storage-blob/azure/storage/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) \ No newline at end of file +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: str diff --git a/sdk/storage/azure-storage-blob/sdk_packaging.toml b/sdk/storage/azure-storage-blob/sdk_packaging.toml deleted file mode 100644 index ff4f8661cffb..000000000000 --- a/sdk/storage/azure-storage-blob/sdk_packaging.toml +++ /dev/null @@ -1,8 +0,0 @@ -[packaging] -package_name = "azure-storage-blob" -package_nspkg = "azure-storage-nspkg" -package_pprint_name = "MyService Management" -package_doc_id = "" -is_stable = false -is_arm = true -need_msrestazure = true diff --git a/sdk/storage/azure-storage-blob/setup.py b/sdk/storage/azure-storage-blob/setup.py index 0eab3124edf3..213c1b1386b2 100644 --- a/sdk/storage/azure-storage-blob/setup.py +++ b/sdk/storage/azure-storage-blob/setup.py @@ -1,29 +1,31 @@ #!/usr/bin/env python -#------------------------------------------------------------------------- +# ------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for # license information. -#-------------------------------------------------------------------------- +# -------------------------------------------------------------------------- + +import os import re -import os.path -from io import open -from setuptools import find_packages, setup + +from setuptools import setup, find_packages + # Change the PACKAGE_NAME only to change folder and different name PACKAGE_NAME = "azure-storage-blob" -PACKAGE_PPRINT_NAME = "MyService Management" +PACKAGE_PPRINT_NAME = "Azure Blob Storage" # a-b-c => a/b/c package_folder_path = PACKAGE_NAME.replace('-', '/') -# a-b-c => a.b.c -namespace_name = PACKAGE_NAME.replace('-', '.') + # azure v0.x is not compatible with this package # azure v0.x used to have a __version__ attribute (newer versions don't) try: import azure + try: ver = azure.__version__ raise Exception( @@ -35,35 +37,46 @@ except ImportError: pass +# azure-storage v0.36.0 and prior are not compatible with this package +try: + import azure.storage + + try: + ver = azure.storage.__version__ + raise Exception( + 'This package is incompatible with azure-storage=={}. '.format(ver) + + ' Uninstall it with "pip uninstall azure-storage".' + ) + except AttributeError: + pass +except ImportError: + pass + # Version extraction inspired from 'requests' -with open(os.path.join(package_folder_path, 'version.py'), 'r') as fd: - version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', +with open(os.path.join(package_folder_path, '__init__.py'), 'r') as fd: + version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1) if not version: raise RuntimeError('Cannot find version information') -with open('README.rst', encoding='utf-8') as f: - readme = f.read() -with open('HISTORY.rst', encoding='utf-8') as f: - history = f.read() - setup( name=PACKAGE_NAME, version=version, - description='Microsoft Azure {} Client Library for Python'.format(PACKAGE_PPRINT_NAME), - long_description=readme + '\n\n' + history, - long_description_content_type='text/x-rst', + description='Microsoft {} Client Library for Python'.format(PACKAGE_PPRINT_NAME), + long_description=open('README.md', 'r').read(), + long_description_content_type='text/markdown', license='MIT License', author='Microsoft Corporation', - author_email='azpysdkhelp@microsoft.com', - url='https://github.com/Azure/azure-sdk-for-python', + author_email='ascl@microsoft.com', + url='https://github.com/Azure/azure-storage-python', classifiers=[ 'Development Status :: 4 - Beta', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', @@ -72,17 +85,19 @@ ], zip_safe=False, packages=find_packages(exclude=[ - 'tests', # Exclude packages that will be covered by PEP420 or nspkg 'azure', 'azure.storage', + 'tests', + 'tests.blob', + 'tests.common' ]), install_requires=[ - 'msrest>=0.5.0', - 'msrestazure>=0.4.32,<2.0.0', + #'azure-core~=0.0.1', 'azure-common~=1.1', ], extras_require={ - ":python_version<'3.0'": ['azure-storage-nspkg'], - } + ":python_version<'3.0'": ['futures'], + ":python_version<'3.4'": ['enum34>=1.0.4'], + }, ) From 6d9e7d4f2377e81563cdadd758d78b8533e31f55 Mon Sep 17 00:00:00 2001 From: antisch Date: Mon, 17 Jun 2019 15:07:13 -0700 Subject: [PATCH 2/5] Fix Storage CI --- scripts/dev_setup.py | 7 +++ .../dev_requirements.txt | 1 + .../tests/legacy_mgmt_testcase.py | 15 ++++-- .../tests/test_legacy_mgmt_misc.py | 49 +++++++++++-------- .../azure-keyvault/dev_requirements.txt | 1 + .../azure-keyvault/tests/test_storage.py | 26 ++++++---- .../tests/blob/test_blob_access_conditions.py | 3 -- .../devtools_testutils/mgmt_settings_fake.py | 7 +++ tools/azure-sdk-tools/setup.py | 1 - 9 files changed, 72 insertions(+), 38 deletions(-) diff --git a/scripts/dev_setup.py b/scripts/dev_setup.py index eda83ccd80a8..6f2177cc11b7 100644 --- a/scripts/dev_setup.py +++ b/scripts/dev_setup.py @@ -14,6 +14,8 @@ from collections import Counter from subprocess import check_call, CalledProcessError +import pytest + root_dir = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..")) @@ -88,6 +90,11 @@ def pip_command(command, additional_dir=".", error_ok=False): content_packages.remove("azure-common") content_packages.insert(2, "azure-common") +if 'azure-core' in content_packages: + content_packages.remove('azure-core') +content_packages.insert(1, 'azure-core') + + print("Running dev setup...") print("Root directory '{}'\n".format(root_dir)) diff --git a/sdk/core/azure-servicemanagement-legacy/dev_requirements.txt b/sdk/core/azure-servicemanagement-legacy/dev_requirements.txt index 6ccb7f031ddd..3c081aa27992 100644 --- a/sdk/core/azure-servicemanagement-legacy/dev_requirements.txt +++ b/sdk/core/azure-servicemanagement-legacy/dev_requirements.txt @@ -1 +1,2 @@ -e ../../../tools/azure-sdk-tools +-e ../../storage/azure-storage-blob diff --git a/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py b/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py index 240202a1b978..dd75f8f43c46 100644 --- a/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py +++ b/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py @@ -82,13 +82,18 @@ def create_service_management(self, service_class): return service def _create_storage_service(self, service_class, settings, account_name=None, account_key=None): - account_name = account_name or settings.STORAGE_ACCOUNT_NAME - account_key = account_key or settings.STORAGE_ACCOUNT_KEY + try: + account_name_arg = account_name or settings.STORAGE_ACCOUNT_NAME + except NameError: + account_name_arg = settings.STORAGE_ACCOUNT_NAME + try: + account_key_arg = account_key or settings.STORAGE_ACCOUNT_KEY + except NameError: + account_key_arg = settings.STORAGE_ACCOUNT_KEY session = Session() service = service_class( - account_name, - account_key, - request_session=session, + "https://{}.blob.core.windows.net".format(account_name_arg), + credentials=ccount_key_arg ) self._set_service_options(service, settings) return service diff --git a/sdk/core/azure-servicemanagement-legacy/tests/test_legacy_mgmt_misc.py b/sdk/core/azure-servicemanagement-legacy/tests/test_legacy_mgmt_misc.py index 84d447494295..fe6ea11818f6 100644 --- a/sdk/core/azure-servicemanagement-legacy/tests/test_legacy_mgmt_misc.py +++ b/sdk/core/azure-servicemanagement-legacy/tests/test_legacy_mgmt_misc.py @@ -40,8 +40,12 @@ parse_response_for_async_op, get_certificate_from_publish_settings, ) -from azure.storage.blob import PageBlobService, BlockBlobService -from azure.storage.blob.models import PublicAccess +from azure.core.exceptions import HttpResponseError, ResourceExistsError +from azure.storage.blob import BlobServiceClient +from azure.storage.blob.common import ( + BlobType, + PublicAccess +) from testutils.common_recordingtestcase import ( TestMode, record, @@ -85,9 +89,7 @@ def setUp(self): super(LegacyMgmtMiscTest, self).setUp() self.sms = self.create_service_management(ServiceManagementService) - - self.bc = self._create_storage_service(PageBlobService, self.settings) - self.bbc = self._create_storage_service(BlockBlobService, self.settings) + self.bsc = self._create_storage_service(BlobServiceClient, self.settings) self.hosted_service_name = self.get_resource_name('utsvc') self.container_name = self.get_resource_name('utctnr') @@ -166,7 +168,7 @@ def tearDown(self): pass try: - self.bc.delete_container(self.container_name) + self.bsc.delete_container(self.container_name) except: pass @@ -284,14 +286,19 @@ def _make_blob_url(self, storage_account_name, container_name, blob_name): def _create_container_and_block_blob(self, container_name, blob_name, blob_data): - self.bc.create_container(container_name, None, 'container', False) - self.bbc.create_blob_from_bytes( - container_name, blob_name, blob_data) + try: + container = self.bsc.create_container(container_name, public_access='container') + except ResourceExistsError: + container = self.bsc.get_container_client(container_name) + container.upload_blob(blob_name, blob_data) def _create_container_and_page_blob(self, container_name, blob_name, content_length): - self.bc.create_container(container_name, None, 'container', False) - self.bc.create_blob_from_bytes(container_name, blob_name, b'') + try: + container = self.bsc.create_container(container_name, public_access='container') + except ResourceExistsError: + container = self.bsc.get_container_client(container_name) + container.upload_blob(blob_name, b'', blob_type=BlobType.PageBlob) def _upload_file_to_block_blob(self, file_path, blob_name): data = open(file_path, 'rb').read() @@ -303,14 +310,13 @@ def _upload_file_to_block_blob(self, file_path, blob_name): def _upload_chunks(self, file_path, blob_name, chunk_size): index = 0 + blob = self.bsc.get_blob_client(self.container_name, blob_name) with open(file_path, 'rb') as f: while True: data = f.read(chunk_size) if data: length = len(data) - self.bc.update_page( - self.container_name, blob_name, data, - index, index + length - 1) + blob.upload_page(data, index, index + length - 1) index += length else: break @@ -379,7 +385,8 @@ def _os_image_exists(self, image_name): def _blob_exists(self, container_name, blob_name): try: - props = self.bc.get_blob_properties(container_name, blob_name) + blob = self.bsc.get_blob_client(container_name, blob_name) + props = blob.get_blob_properties() return props is not None except: return False @@ -564,11 +571,13 @@ def _create_vm_image(self, image_name): def _copy_linux_os_vhd_to_container(self): blob_name = 'imagecopy.vhd' - self.bc.create_container(self.container_name, - public_access=PublicAccess.Blob) - resp = self.bc.copy_blob(self.container_name, blob_name, - self.settings.LINUX_OS_VHD) - return self.bc.make_blob_url(self.container_name, blob_name) + try: + container = self.bsc.create_container(self.container_name, public_access=PublicAccess.Blob) + except ResourceExistsError: + container = self.bsc.get_container_client(self.container_name) + blob = container.get_blob_client(blob_name) + blob.copy_blob_from_url(self.settings.LINUX_OS_VHD) + return blob.url #--Test cases for http passthroughs -------------------------------------- @record diff --git a/sdk/keyvault/azure-keyvault/dev_requirements.txt b/sdk/keyvault/azure-keyvault/dev_requirements.txt index 79c58888326b..376a5412d613 100644 --- a/sdk/keyvault/azure-keyvault/dev_requirements.txt +++ b/sdk/keyvault/azure-keyvault/dev_requirements.txt @@ -1,4 +1,5 @@ -e ../../authorization/azure-mgmt-authorization -e ../../core/azure-core +-e ../../storage/azure-storage-blob -e ../azure-mgmt-keyvault -e ../../../tools/azure-sdk-tools \ No newline at end of file diff --git a/sdk/keyvault/azure-keyvault/tests/test_storage.py b/sdk/keyvault/azure-keyvault/tests/test_storage.py index 00c8a5fc3bd9..23e661731f03 100644 --- a/sdk/keyvault/azure-keyvault/tests/test_storage.py +++ b/sdk/keyvault/azure-keyvault/tests/test_storage.py @@ -9,6 +9,7 @@ class KeyVaultSecretTest(KeyvaultTestCase): + @pytest.mark.skip(reason="Cannot use a ServicePrincipal to execute set_storage_account. See issue azure-sdk-for-python#5858.") @ResourceGroupPreparer() @StorageAccountPreparer(name_prefix='kvsa1') @KeyVaultPreparer() @@ -66,16 +67,22 @@ def create_account_sas_definition(self, storage_account_name, vault_url): """ Creates an account sas definition, to manage storage account and its entities. """ - from azure.storage.common import SharedAccessSignature, CloudStorageAccount + from azure.storage.common import SharedAccessSignature + from azure.storage.blob import BlobServiceClient from azure.keyvault.models import SasTokenType, SasDefinitionAttributes from azure.keyvault import SecretId # To create an account sas definition in the vault we must first create the template. The # template_uri for an account sas definition is the intended account sas token signed with an arbitrary key. # Use the SharedAccessSignature class from azure.storage.common to create a account sas token + storage_account_key = '00000000' + container_name='blobcontainer' + blob_name='blob1' + blob_data = u'test blob1 data' + sas = SharedAccessSignature(account_name=storage_account_name, # don't sign the template with the storage account key use key 00000000 - account_key='00000000') + account_key=storage_account_key) account_sas_template = sas.generate_account(services='bfqt', # all services blob, file, queue and table resource_types='sco', # all resources service, template, object permission='acdlpruw', @@ -104,15 +111,16 @@ def create_account_sas_definition(self, storage_account_name, vault_url): secret_version=sas_secret_id.version).value # create the cloud storage account object - cloud_storage_account = CloudStorageAccount(account_name=storage_account_name, - sas_token=acct_sas_token) + blob_conn_string = 'EndpointSuffix=blob.core.windows.net;AccountKey={key};AccountName={hostname};DefaultEndpointsProtocol=https;SharedAccessSignature={token}'.format( + token=acct_sas_token[1:], + hostname=storage_account_name, + key=storage_account_key) + # create a blob with the account sas token - blob_service = cloud_storage_account.create_block_blob_service() - blob_service.create_container('blobcontainer') - blob_service.create_blob_from_text(container_name='blobcontainer', - blob_name='blob1', - text=u'test blob1 data') + blob_service = BlobServiceClient.from_connection_string(conn_str=blob_conn_string) + container = blob_service.create_container(container_name) + container.upload_blob(blob_name, blob_data) def create_blob_sas_defintion(self, storage_account_name, vault_url): """ diff --git a/sdk/storage/azure-storage-blob/tests/blob/test_blob_access_conditions.py b/sdk/storage/azure-storage-blob/tests/blob/test_blob_access_conditions.py index 969532e435c7..000c79d33ea7 100644 --- a/sdk/storage/azure-storage-blob/tests/blob/test_blob_access_conditions.py +++ b/sdk/storage/azure-storage-blob/tests/blob/test_blob_access_conditions.py @@ -52,9 +52,6 @@ def setUp(self): self.bsc = BlobServiceClient( url, credential=self.settings.STORAGE_ACCOUNT_KEY, configuration=self.config) - #self.bs = self._create_storage_service(BlockBlobService, self.settings) - #self.pbs = self._create_storage_service(PageBlobService, self.settings) - #self.abs = self._create_storage_service(AppendBlobService, self.settings) self.container_name = self.get_resource_name('utcontainer') def tearDown(self): diff --git a/tools/azure-sdk-tools/devtools_testutils/mgmt_settings_fake.py b/tools/azure-sdk-tools/devtools_testutils/mgmt_settings_fake.py index c23de5b563c7..f6c71ae765f3 100644 --- a/tools/azure-sdk-tools/devtools_testutils/mgmt_settings_fake.py +++ b/tools/azure-sdk-tools/devtools_testutils/mgmt_settings_fake.py @@ -38,6 +38,13 @@ def get_credentials(**kwargs): # 'user@myaddomain.onmicrosoft.com', # 'Password' #) + # note that UserCredential does not work any longer. Must use a ServicePrincipal. + # for deprecated APIs I believe will still work. + # return ServicePrincipalCredentials( + # client_id = '', + # secret = '', + # tenant = '' + # ) # Needed to play recorded tests return BasicTokenAuthentication( token = { diff --git a/tools/azure-sdk-tools/setup.py b/tools/azure-sdk-tools/setup.py index ba62a16dab02..71c2c358b12a 100644 --- a/tools/azure-sdk-tools/setup.py +++ b/tools/azure-sdk-tools/setup.py @@ -17,7 +17,6 @@ 'pytest>=3.5.1', # 'azure-devtools>=0.4.1' override by packaging needs 'readme_renderer', - 'azure-storage-blob<2.0', 'azure-storage-file<2.0', 'azure-storage-common<1.4.1', 'pyopenssl', From 956b0e6ce58a795a69218ded5c767087786e67a5 Mon Sep 17 00:00:00 2001 From: antisch Date: Mon, 17 Jun 2019 15:09:18 -0700 Subject: [PATCH 3/5] Fixed imports --- scripts/dev_setup.py | 2 -- sdk/keyvault/azure-keyvault/tests/test_storage.py | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/dev_setup.py b/scripts/dev_setup.py index 6f2177cc11b7..cda35ebb9721 100644 --- a/scripts/dev_setup.py +++ b/scripts/dev_setup.py @@ -14,8 +14,6 @@ from collections import Counter from subprocess import check_call, CalledProcessError -import pytest - root_dir = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..")) diff --git a/sdk/keyvault/azure-keyvault/tests/test_storage.py b/sdk/keyvault/azure-keyvault/tests/test_storage.py index 23e661731f03..91bc3fb1ae6c 100644 --- a/sdk/keyvault/azure-keyvault/tests/test_storage.py +++ b/sdk/keyvault/azure-keyvault/tests/test_storage.py @@ -1,4 +1,7 @@ import uuid + +import pytest + from devtools_testutils import AzureMgmtTestCase, ResourceGroupPreparer, StorageAccountPreparer from keyvault_preparer import KeyVaultPreparer from keyvault_testcase import KeyvaultTestCase From acbc30fe4f8fcf80a39f8ca131af1cfd0d112645 Mon Sep 17 00:00:00 2001 From: scbedd <45376673+scbedd@users.noreply.github.com> Date: Tue, 18 Jun 2019 11:14:30 -0700 Subject: [PATCH 4/5] updating ccount_key_arg -> account_key_arg --- .../tests/legacy_mgmt_testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py b/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py index dd75f8f43c46..5e19875a041d 100644 --- a/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py +++ b/sdk/core/azure-servicemanagement-legacy/tests/legacy_mgmt_testcase.py @@ -93,7 +93,7 @@ def _create_storage_service(self, service_class, settings, account_name=None, ac session = Session() service = service_class( "https://{}.blob.core.windows.net".format(account_name_arg), - credentials=ccount_key_arg + credentials=account_key_arg ) self._set_service_options(service, settings) return service From ff2e09b3dc345aab200213e5b765cf7053d4f54d Mon Sep 17 00:00:00 2001 From: scbedd <45376673+scbedd@users.noreply.github.com> Date: Tue, 18 Jun 2019 11:36:42 -0700 Subject: [PATCH 5/5] updating ordering --- scripts/dev_setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dev_setup.py b/scripts/dev_setup.py index cda35ebb9721..759d74bdb7da 100644 --- a/scripts/dev_setup.py +++ b/scripts/dev_setup.py @@ -90,7 +90,7 @@ def pip_command(command, additional_dir=".", error_ok=False): if 'azure-core' in content_packages: content_packages.remove('azure-core') -content_packages.insert(1, 'azure-core') +content_packages.insert(3, 'azure-core') print("Running dev setup...")