content: [project]
  name = "data-factory-testing-framework"
  dynamic = ["version"]
  authors = [
      {name = "Data Factory Testing Framework", email = "dftf@microsoft.com"},
  ]
  requires-python = ">=3.9,<3.14"
  classifiers = [
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Operating System :: OS Independent",
  ]
  description = "A stand-alone test framework that allows to write unit tests for Data Factory pipelines on Microsoft Fabric, Azure Data Factory and Azure Synapse Analytics."
  readme = "README.md"
  license = "MIT"
  license-files = ["LICENSE"]
  keywords = [
      "fabric",
      "datafactory",
      "synapse analytics",
      "unit-testing",
      "functional-testing",
      "azure"
  ]
  
  dependencies = [
      "lark>=1.1.8,<2.0.0",
      "pythonnet>=3.0.3,<4.0.0"
  ]
  
  [project.urls]
  Homepage = "https://github.com/microsoft/data-factory-testing-framework"
  Documentation = "https://github.com/microsoft/data-factory-testing-framework/blob/main/README.md"
  Issues = "https://github.com/microsoft/data-factory-testing-framework/issues"
  Source = "https://github.com/microsoft/data-factory-testing-framework.git"
  
  [tool.poetry]
  package-mode = false
  
  [tool.poetry.dependencies]
  python = ">=3.9,<3.14"
  lark = "^1.1.8"
  pythonnet = "^3.0.3"
  
  [tool.poetry.group.dev.dependencies]
  mutatest = "^3.1.0"
  pytest = "^7.4.3"
  ruff = "^0.1.5"
  pre-commit = "^3.5.0"
  astor = "^0.8.1"
  docstring-parser = "^0.15"
  build = "^1.1.1"
  wheel = "^0.43.0"
  setuptools = "^70.0"
  
  [tool.ruff]
  select = [
      "A", # flake8 builtins
      "ANN", # annotations
      "B", # bugbear
      "COM", # flake8 commas
      "D", # Pydoc style docstrings
      "E", # PEP8 conventions
      "F", # pyflakes
      "N", # PEP8 naming conventions
      "I"
  ]
  ignore = [
      "ANN101", # Ignore missing type annotation for self in method
      "D100", # Ignore missing docstring in public module
      "D101",
      "D102",
      "D103",
      "D104", # Ignore missing docstring in public package
      # ruff format conflicts certain rules (see https://docs.astral.sh/ruff/formatter/#format-suppression)
      "E111",
      "E114",
      "E117",
      "COM812",
      "COM819",
      "D206",
      "D300",
      "ISC001",
      "ISC002",
      "Q000",
      "Q001",
      "Q002",
      "Q003",
      "W191",
  ]
  extend-exclude = ["azure_data_factory_testing_framework/data_factory/generated/**"]
  line-length = 120
  
  [tool.ruff.lint.pycodestyle]
  max-line-length = 160 # relax line length limit to 140 characters (wrapping happens at 120)
  
  [tool.ruff.lint.pydocstyle]
  convention = "google"
  
  [tool.pytest.ini_options]
  minversion = "7.0"
  pythonpath = ["."]
  
  [tool.setuptools.package-data]
  data_factory_testing_framework = []
  
  [build-system]
  requires = ["setuptools>=61.0", "wheel"]
  build-backend = "setuptools.build_meta"
  