# Byte-compiled / optimized / DLL files
__pycache__/
*.py[codz]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
#   For a library or package, you might want to ignore these files since the code is
#   intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# UV
#   Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
#   This is especially recommended for binary packages to ensure reproducibility, and is more
#   commonly ignored for libraries.
#uv.lock

# poetry
#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
#   This is especially recommended for binary packages to ensure reproducibility, and is more
#   commonly ignored for libraries.
#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
#poetry.toml

# pdm
#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#   pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
#   https://pdm-project.org/en/latest/usage/project/#working-with-version-control
#pdm.lock
#pdm.toml
.pdm-python
.pdm-build/

# pixi
#   Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
#pixi.lock
#   Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
#   in the .venv directory. It is recommended not to include this directory in version control.
.pixi

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#  and can be added to the global gitignore or merged into this file.  For a more nuclear
#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# Abstra
# Abstra is an AI-powered process automation framework.
# Ignore directories containing user credentials, local state, and settings.
# Learn more at https://abstra.io/docs
.abstra/

# Visual Studio Code
#  Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore 
#  that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
#  and can be added to the global gitignore or merged into this file. However, if you prefer, 
#  you could uncomment the following to ignore the entire vscode folder
# .vscode/

# Ruff stuff:
.ruff_cache/

# PyPI configuration file
.pypirc

# Cursor
#  Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
#  exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
#  refer to https://docs.cursor.com/context/ignore-files
.cursorignore
.cursorindexingignore

# Marimo
marimo/_static/
marimo/_lsp/
__marimo__/

##
## Framework, Platform, and Language Specific
##

# ignore the .vscode directory
.vscode/
# ignore the .idea directory
.idea/
# ignore the .node_modules directory
.node_modules/
# ignore the .DS_Store file
.DS_Store
# ignore the .pytest_cache directory
.pytest_cache/
# ignore .sqlite3 database file
*.sqlite3

# =========================================================
# Repo: mcp-perf-suite
# Ignore the following files and directories
# =========================================================

# ignore environment variables & uv.lock files
.env
blazemeter-mcp/.env
blazemeter-mcp/uv.lock
datadog-mcp/.env
datadog-mcp/uv.lock
perfanalysis-mcp/.env
perfanalysis-mcp/uv.lock
perfmemory-mcp/.env
perfmemory-mcp/taxonomy.yaml
perfmemory-mcp/tools/logs/*.log
confluence-mcp/.env
msgraph-mcp/.env
docker/.env
streamlit-ui/.env

# Ignore docker data and local YAML files for Docker Compose, which may contain sensitive information or be specific to individual environments
docker/data/*
docker/docker-compose.yaml
docker/Dockerfile.pgvector-age
docker/ca-bundle.pem

# ignore performance test results and logs
artifacts/*
!artifacts/.gitkeep
!artifacts/README.md

# ignore config.yaml files for Windows or Mac systems (NOTE: These files are specific to OS, but can be re-enabled by commenting out the following lines)
**/config.mac.yaml
**/config.windows.yaml

# ignore temp documentation files, but include the main documentation markdown files
docs/*
!docs/apache_age_installation_guide.md
!docs/apache_age_viewer_guide.md
!docs/report_template_guidelines.md
!docs/datadog_query_guide.md
!docs/jmeter_mcp_configuration_guide.md
!docs/metrics_calculations_and_display.md
!docs/sla_configuration_guide.md
!docs/har_adapter_guide.md
!docs/har_jmx_comparison_guide.md
!docs/artifacts_guide.md
!docs/jmeter_hitl_user_guide.md
!docs/large_file_handling.md
!docs/correlation_analysis_guide.md
!docs/perfanalysis_techniques_guide.md
!docs/perfmemory_user_guide.md
!docs/pgvector_installation_guide.md
!docs/playwright_mcp_configuration_guide.md
!docs/troubleshooting/
!docs/troubleshooting/age-viewer-fix-on-macbook.md
!docs/troubleshooting/pgvector-fix-on-macbook.md
!docs/troubleshooting/rancher-desktop-fix.md
!docs/README.md

# Re-include the changelogs directory itself
!docs/changelogs/

# Re-include everything inside changelogs
!docs/changelogs/**

# Ignore local JMeter configuration files and all custom JMeter MCP test-spec files
jmeter-mcp/jmeter_config.yaml
jmeter-mcp/correlation_config.yaml
jmeter-mcp/test-specs/*
jmeter-mcp/test-specs/azure-devops/*.txt
jmeter-mcp/test-specs/jira/*.txt
!jmeter-mcp/test-specs/README.md
!jmeter-mcp/test-specs/web-flows/blazedemo_product_purchase.md
!jmeter-mcp/test-specs/azure-devops/
!jmeter-mcp/test-specs/azure-devops/README.md
!jmeter-mcp/test-specs/jira/
!jmeter-mcp/test-specs/jira/README.md

# Ignore local Datadog environments and custom queries files
datadog-mcp/environments.json
datadog-mcp/custom_queries.json

# Ignore local config YAML files for perfanalysis-mcp
perfanalysis-mcp/slas.yaml

# Ignore all files in perfreport-mcp/templates except the default templates
perfreport-mcp/templates/*
!perfreport-mcp/templates/default_*.md
# Ignore local config YAML files for perfreport-mcp
perfreport-mcp/config.yaml
perfreport-mcp/report_config.yaml
perfreport-mcp/chart_schema.yaml
perfreport-mcp/chart_colors.yaml

# Ignore all test files in perfanalysis-mcp and perfreport-mcp
perfanalysis-mcp/test/**
perfanalysis-mcp/tests/**
perfreport-mcp/test/**
perfreport-mcp/tests/**

# Ignore the following Streamlit files and directories
streamlit-ui/config.yaml

# Ignore the following Microsoft Teams local configuration files
msteams-mcp/config.yaml
msteams-mcp/templates/*
!msteams-mcp/templates/default-notification-*.md

# Ignore the following Microsoft SharePoint local configuration files
sharepoint-mcp/config.yaml

# Ignore all Playwright output files
.playwright-mcp/*

# Ignore all custom Cursor Rules files, except the below
.cursor/rules/*.mdc
!.cursor/rules/prerequisites.mdc
!.cursor/rules/browser-automation-guardrails.mdc
!.cursor/rules/jmeter-script-guardrails.mdc
!.cursor/rules/mcp-error-handling.mdc
!.cursor/rules/skill-execution-rules.mdc

# Ignore all custom Cursor Skills files, except the below
.cursor/skills/*
!.cursor/skills/ado-test-case-conversion/
!.cursor/skills/ado-test-case-conversion/SKILL.md
!.cursor/skills/comparison-report-workflow/
!.cursor/skills/comparison-report-workflow/SKILL.md
!.cursor/skills/jmeter-correlation-naming/
!.cursor/skills/jmeter-correlation-naming/SKILL.md
!.cursor/skills/jmeter-correlation-naming/naming-conventions.md
!.cursor/skills/jmeter-debugging/
!.cursor/skills/jmeter-debugging/SKILL.md
!.cursor/skills/jmeter-entraid-debugging/
!.cursor/skills/jmeter-entraid-debugging/SKILL.md
!.cursor/skills/jmeter-har-conversion/
!.cursor/skills/jmeter-har-conversion/SKILL.md
!.cursor/skills/jmeter-hitl-editing/
!.cursor/skills/jmeter-hitl-editing/SKILL.md
!.cursor/skills/jmeter-script-validator/
!.cursor/skills/jmeter-script-validator/SKILL.md
!.cursor/skills/jmeter-swagger-conversion/
!.cursor/skills/jmeter-swagger-conversion/SKILL.md
!.cursor/skills/msteams-notification/
!.cursor/skills/msteams-notification/SKILL.md
!.cursor/skills/perfmemory/
!.cursor/skills/perfmemory/SKILL.md
!.cursor/skills/performance-testing-workflow/
!.cursor/skills/performance-testing-workflow/SKILL.md
!.cursor/skills/playwright-browser-automation/
!.cursor/skills/playwright-browser-automation/SKILL.md
!.cursor/skills/report-revision-workflow/
!.cursor/skills/report-revision-workflow/SKILL.md
!.cursor/skills/sharepoint-upload/
!.cursor/skills/sharepoint-upload/SKILL.md
!.cursor/skills/subagent-orchestrator/
!.cursor/skills/subagent-orchestrator/SKILL.md

# Ignore all custom Cursor Agents files, except the below
.cursor/agents/*
!.cursor/agents/blazemeter-extractor.md
!.cursor/agents/datadog-extractor.md
!.cursor/agents/jmeter-script-validator.md

# Ignore all custom Cursor Plans files, except the below
.cursor/plans/*

# Temp test files
scripts/*
test_datadog.py
test_blazemeter.py
test_perfanalysis.py
simple_test.py
jmeter-mcp/test_correlation_analyzer.py