Azure / partnercenter-cli-extension

Partner Center Azure CLI Extension
MIT License
12 stars 11 forks source link

[Bug Report]: new version of pydantic introduces a breaking change #209

Closed andresbono closed 1 year ago

andresbono commented 1 year ago

cli command

az partnercenter marketplace offer list

Extension version

0.2.3

Describe the bug

It seems a new version of https://pypi.org/project/pydantic/2.0/ was released and it breaks the extension. We have work-arounded the issue by installing the previous major:

pip install 'pydantic<2'

To reproduce

Run az partnercenter marketplace offer list (or any other command)

Code snippet

No response

Relevant log output

The command failed with an unexpected error. Here is the traceback:
cannot import name 'TypeAliasType' from 'typing_extensions' (/usr/local/lib/python3.10/site-packages/typing_extensions.py)
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 663, in execute
    raise ex
  File "/usr/local/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/usr/local/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 697, in _run_job
    result = cmd_copy(params)
  File "/usr/local/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 333, in __call__
    return self.handler(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 112, in handler
    client = self.client_factory(self.cli_ctx, command_args) if self.client_factory else None
  File "/root/.azure/cliextensions/partnercenter/azext_partnercenter/_client_factory.py", line 8, in cf_offers
    from azext_partnercenter.clients import OfferClient
  File "/root/.azure/cliextensions/partnercenter/azext_partnercenter/clients/__init__.py", line 9, in <module>
    from .plan_technicalconfiguration_client import PlanTechnicalConfigurationClient
  File "/root/.azure/cliextensions/partnercenter/azext_partnercenter/clients/plan_technicalconfiguration_client.py", line 12, in <module>
    from azext_partnercenter.vendored_sdks.production_ingestion.models import (ContainerCnabPlanTechnicalConfigurationProperties)
  File "/root/.azure/cliextensions/partnercenter/azext_partnercenter/vendored_sdks/production_ingestion/models/__init__.py", line 7, in <module>
    from ._models import *
  File "/root/.azure/cliextensions/partnercenter/azext_partnercenter/vendored_sdks/production_ingestion/models/_models.py", line 14, in <module>
    from pydantic import BaseModel, Extra, Field, constr
  File "/root/.azure/cliextensions/partnercenter/pydantic/__init__.py", line 13, in <module>
    from . import dataclasses
  File "/root/.azure/cliextensions/partnercenter/pydantic/dataclasses.py", line 11, in <module>
    from ._internal import _config, _decorators, _typing_extra
  File "/root/.azure/cliextensions/partnercenter/pydantic/_internal/_decorators.py", line 15, in <module>
    from ..fields import ComputedFieldInfo
  File "/root/.azure/cliextensions/partnercenter/pydantic/fields.py", line 18, in <module>
    from . import types
  File "/root/.azure/cliextensions/partnercenter/pydantic/types.py", line 32, in <module>
    from ._internal import (
  File "/root/.azure/cliextensions/partnercenter/pydantic/_internal/_fields.py", line 11, in <module>
    from . import _typing_extra
  File "/root/.azure/cliextensions/partnercenter/pydantic/_internal/_typing_extra.py", line 13, in <module>
    from typing_extensions import Annotated, Final, Literal, TypeAliasType, TypeGuard, get_args, get_origin
ImportError: cannot import name 'TypeAliasType' from 'typing_extensions' (/usr/local/lib/python3.10/site-packages/typing_extensions.py)
kairu-ms commented 1 year ago

@kevinhillinger We also detect this issue, and it blocked azure-cli and azure-cli-extension doc pipeline. You should ping the dependence versions in setup.py file. We will temporary exclude partnercenter extension. Please contact cli team when it's fixed.