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

# Build output directory
build

# 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-reports/
.coverage.*
.cache
.pytest_cache/
*.bst/
.tox/

# 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
