content: [build-system]
  requires = ["hatchling >= 1.26.0", "hatch-requirements-txt"]
  build-backend = "hatchling.build"
  
  [tool.hatch.version]
  path = "mstrio/__init__.py"
  
  [tool.hatch.build.targets.sdist]
  include = [
      "/code_snippets",
      "/script-templates",
      "/mstrio",
      "/workflows",
      "/NEWS.md",
      "/README.md",
      "/USAGE.md",
      "/setup.cfg",
  ]
  
  [tool.hatch.build.targets.wheel]
  packages = ["mstrio"]
  
  [project]
  name = "mstrio-py"
  description = "Python interface for the Strategy One REST API"
  authors = [{ name = "Strategy One", email = "bkaczynski@strategy.com" }]
  requires-python = ">=3.10,<3.14"
  license = "LicenseRef-Proprietary"
  license-files = ["LICENSE"]
  readme = "README.md"
  dynamic = ["version"]
  
  classifiers = [
      "Natural Language :: English",
      "Operating System :: OS Independent",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Programming Language :: Python :: 3 :: Only",
      "Intended Audience :: System Administrators",
      "Intended Audience :: End Users/Desktop",
      "Intended Audience :: Science/Research",
      "Topic :: Software Development :: Libraries",
      "Topic :: Scientific/Engineering",
      "Topic :: Software Development",
  ]
  
  # FYI: when changing this section, make sure to update `[strict]` deps below
  dependencies = [
      "packaging >= 24.2",
      # FYI: <https://github.com/pandas-dev/pandas/blob/fa5c2550e81c3e745eb7948b56adac45454853d5/pyproject.toml#L60>
      "pandas[output-formatting,pyarrow] >= 1.1.5",
      "pyhumps >= 3.8",
      "pypika >= 0.48.9",
      "requests >= 2.32.3",
      "requests-futures >= 1",
      "stringcase >= 1.2",
      "tqdm >= 4.66.4",
  ]
  
  [project.optional-dependencies]
  # if there's setup issues, install mstrio-py with `pip install mstrio-py[strict]`
  # and check if the issues are gone.
  # essentially this installs all the deps and peer deps
  # without "dependencies optimizations"
  strict = [
      "jinja2 >= 3.1.5",
      "numpy >= 2",
      "packaging >= 24.2",
      "pandas[output-formatting,pyarrow] >= 2",
      "pyarrow >= 19",
      "pyhumps >= 3.8",
      "pypika >= 0.48.9",
      "requests >= 2.32.3",
      "requests-futures >= 1",
      "stringcase >= 1.2",
      "tox >= 4.23.2",
      "tqdm >= 4.66.4",
      "urllib3 >= 2",
  ]
  
  # FYI: do not apply versioning to any dev-deps here - add them in `dev_constraints.txt`
  # subsets of deps: mainly for `tox` deps use
  config = [
      "pipdeptree",
  ]
  docs = [
      "enum-tools[sphinx]",
      "m2r2",
      "mistune",
      "recommonmark",
      "Sphinx",
  ]
  jupyter = [
      "notebook",
  ]
  lint = [
      "black",
      "flake8",
      "flake8-black",
      "yapf",
  ]
  pre-commit = [
      "codespell",
      "isort",
      "pre-commit",
  ]
  test = [
      "coverage",
      "flaky",
      "nose",
      "pytest",
      "pytest-cov",
      "python-decouple",
  ]
  
  # templates of deps: mainly for actual development
  dev = [
      "mypy",
      "python-dotenv[cli]",
      "tox",
      "mstrio-py[lint,pre-commit,test]",
  ]
  all = [
      "mstrio-py[config,docs,jupyter,lint,pre-commit,test,dev]",
  ]
  
  [project.urls]
  "Bug Tracker" = "https://github.com/MicroStrategy/mstrio-py/issues"
  "Documentation" = "https://www2.microstrategy.com/producthelp/Current/mstrio-py/"
  "Source Code" = "https://github.com/MicroStrategy/mstrio-py"
  "Quick Manual" = "https://www2.microstrategy.com/producthelp/Current/Workstation/en-us/Content/intro_scripts.htm"
  
  [tool.mypy]
  python_version = "3.10"
  warn_unused_configs = true
  strict_optional = false
  show_error_codes = true
  color_output = true
  
  [tool.isort]
  profile = "black"
  
  [tool.coverage.run]
  omit = ["mstrio/api/*"]
  relative_files = true
  
  [tool.coverage.report]
  exclude_lines = [
      "pragma: no cover",
      "def _",
      "if TYPE_CHECKING:",
      "raise NotImplementedError",
  ]
  omit = ["mstrio/api/*", "mstrio/utils/datasources.py"]
  show_missing = true
  
  [tool.black]
  target-version = ["py310"]
  skip-string-normalization = true
  extend-exclude = '''
  /(
      | __pycache__
      | code_snippets
      | script-templates
      | workflows
      | validation_scripts
      | .tox
  )/
  '''
  