content: [tool.poetry]
  name = "promptflow-azure"
  version = "1.18.0"
  description = "Prompt flow azure"
  include = [
    "promptflow/azure/resources/*"
  ]
  
  license = "MIT"
  
  authors = [
    "Microsoft Corporation <aml-pt-eng@microsoft.com>"
  ]
  
  repository = "https://github.com/microsoft/promptflow"
  homepage = "https://microsoft.github.io/promptflow/"
  
  readme = ["README.md"]
  keywords = ["azure"]
  
  classifiers = [
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
  ]
  
  packages = [
    { include = "promptflow" }
  ]
  
  [tool.poetry.urls]
  "Bug Reports" = "https://github.com/microsoft/promptflow/issues"
  
  [tool.poetry.dependencies]
  python = ">=3.9,<3.9.7 || >3.9.7,<3.14"
  azure-core = ">=1.26.4,<2.0.0"
  azure-storage-blob = {extras = ["aio"], version = ">=12.17.0,<13.0.0"}  # add [aio] for async run download feature
  azure-identity = ">=1.12.0,<2.0.0"
  azure-ai-ml = ">=1.14.0,<2.0.0"
  azure-cosmos = ">=4.5.1,<5.0.0"  # used to upload trace to cloud
  pyjwt = ">=2.4.0,<3.0.0"  # requirement of control plane SDK
  promptflow-devkit = "<2.0.0"
  
  [tool.poetry.group.dev.dependencies]
  pre-commit = "*"
  import-linter = "*"
  promptflow-core = {path = "../promptflow-core", extras = ["azureml-serving"], develop = true}
  promptflow-devkit = {path = "../promptflow-devkit", develop = true}
  promptflow-tracing = {path = "../promptflow-tracing", develop = true}
  promptflow = {path = "../promptflow"}
  promptflow-tools = {path = "../promptflow-tools"}
  promptflow-recording =  {path = "../promptflow-recording", develop = true}
  
  [tool.poetry.group.ci.dependencies]
  azure-ai-ml = ">=1.14.0,<2.0.0"  # 1.19.0 will break azure replay test however stick with newer ver for marshmallow bug
  import-linter = "*"
  promptflow-core = {path = "../promptflow-core", extras = ["azureml-serving"]}
  promptflow-devkit = {path = "../promptflow-devkit"}
  promptflow-tracing = {path = "../promptflow-tracing"}
  promptflow = {path = "../promptflow"}
  promptflow-tools = {path = "../promptflow-tools"}
  promptflow-recording =  {path = "../promptflow-recording"}
  numpy = "<2.0.0"  # avoid pandas incompatibility
  
  [tool.poetry.group.test.dependencies]
  pytest = "*"
  pytest-cov = "*"
  pytest-xdist = "*"
  pytest-mock = "*"
  pytest-asyncio = "*"
  mock = "*"
  keyrings-alt = "*"
  bs4 = "*"
  
  [build-system]
  requires = ["poetry-core>=1.5.0"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.poetry.scripts]
  pfazure = "promptflow.azure._cli.entry:main"
  
  [tool.pytest.ini_options]
  markers = [
    "unittest",
    "e2etest"
  ]
  # junit - analyse and publish test results (https://github.com/EnricoMi/publish-unit-test-result-action)
  # durations - list the slowest test durations
  addopts = """
  --junit-xml=test-results.xml \
  --dist loadfile \
  --log-level=info \
  --log-format="%(asctime)s %(levelname)s %(message)s" \
  --log-date-format="[%Y-%m-%d %H:%M:%S]" \
  --durations=5 \
  -ra \
  -vv
  """
  testpaths = ["tests"]
  
  [tool.coverage.run]
  source = [
    "*/promptflow/azure/*"
  ]
  omit = [
    "*/__init__.py",
    "*/promptflow/azure/_restclient/*",
    "*/promptflow/azure/_models/*",
    "*/promptflow/azure/_cli/*",
    "*/promptflow/recording/*",
    "*/promptflow/tracing/*",
    "*/promptflow/tools/*",
    "*/promptflow/executor/*",
    "*/promptflow/core/*",
    "*/promptflow/_sdk/_service/*",
    "*/promptflow/_orchestrator/*",
    "*/promptflow/_cli/*",
  ]
  
  [tool.black]
  line-length = 120
  
  [tool.importlinter]
  root_package = "promptflow"
  include_external_packages = "True"
  
  [[tool.importlinter.contracts]]
  name = "Contract forbidden modules"
  type = "forbidden"
  source_modules = ["promptflow.azure"]
  forbidden_modules = []
  