# Compiled python modules.
buildstream/**/*.pyc
tests/**/*.pyc

# Setuptools distribution folder.
/dist/

# Python egg metadata, regenerated from source files by setuptools.
/*.egg-info
.eggs

# Some testing related things
integration-cache/
tmp
.coverage
.coverage.*
.cache
.pytest_cache/
*.bst/

# Pycache, in case buildstream is ran directly from within the source
# tree
__pycache__/

# Generated version file
buildstream/__version__.py

# Autogenerated doc
doc/source/badges/
doc/source/sessions/
doc/source/elements/
doc/source/sources/
doc/source/modules.rst
doc/source/buildstream.rst
doc/source/buildstream.*.rst
doc/build/
versioneer.pyc
