# IDE files
.idea
*.iml
.buildpath
.project
.pydevproject
.settings/**

# compiled output files
__pycache__

# configuration files generated by setup.py
site/api/lib/config.lua
site/js/config.js
tools/ponymail.cfg
site/api/lib/config.lua.tmp
tools/ponymail.cfg.tmp

# site-local AAA module
site/api/lib/aaa_site.lua


# Note:
# Add local overrides to one of the following files:
# git config --get core.excludesfile - applies to all local git repos
# $GIT_DIR/info/exclude - applies to the local git repo (not replicated)
