# Python
.env
*.pyc
**/.ipynb_checkpoints/
.pytype/
**/__pycache__/**

# Visual Studio files
.vs/
.vscode/
*.sdf
*.opensdf
*.VC.opendb
*.suo
*.user
*.code-workspace

# macOS files
.DS_Store

# CMake artifacts
build/
build-*/
Testing/
# Include iree.build package
!compiler/bindings/python/iree/compiler/build/

# Bazel artifacts
**/bazel-*

# Executables
*.exe
*.out

# Local-only config options
configured.bazelrc
user.bazelrc
version_info.json
CMakeUserPresets.json

# Dear ImGui Ini files
imgui.ini

# Emacs autosaves
*~
\#*\#

# Vim swap files
[._]*.sw[a-p]

# Source indexing files
compile_commands.json
.cache/clangd

# Language server configuration files
.clangd

# Pyenv files
.python-version
*.venv
.venv

# Python deployment artifacts
*.whl
*.egg-info

# Android Studio / Gradle files
.cxx
.gradle
gradlew
gradlew.bat
gradle/
local.properties

# Generated documentation files
mkdocs/site/
docs/website/site/

# Temporary files
iree/builtins/**/bin/*.ll
artifacts/

# Archive files
*.tar
*.tar.*

# VS Code DevContainer
.devcontainer/docker-compose.yml

# Local cache files
llvm-external-projects/iree-dialects/.cache

# pkgci artifacts
artifacts/

# Side effects of local patching/merging
*.orig
*.rej
