# Python Packages
# Exerpt from GitHub's recommendation
# https://github.com/github/gitignore/blob/main/Python.gitignore
.Python
dist
bin
var
sdist
target
eggs/
.eggs/
sdist/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

.flattened-pom.xml

# Python utilities
__pycache__/
*.py[cod]
*$py.class

# Python environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/


# Unit test / coverage reports
.coverage
.tox
nosetests.xml

# Translations
*.mo

# Irrelevant files generated by IDEs and OSes
.metadata
.project
.pydevproject
*.iml
.idea
.settings
.DS_Store
.classpath

# API key file containing value of GOOGLE_API_KEY for integration tests
api_key

# New client generation
generation/new_client/workspace

# Monorepo repository generation
monorepo

# Terraform
**/.cloud/.terraform/
**/.cloud/plugins/
**/.cloud/providers/
**/.cloud/plugin_path
*.lock.
*.tfstate
*.tfstate.backup
*.tfstate.*.backup
*.tfstate.lock.info
