# PyCharm
.idea
exportToHTML

# Python
*.pyc

# Emacs
*~
.#*

# Vagrant
.vagrant
*.box

# venv
.venv

# Ansible
ansible/*.retry

# Any vi swap files
*.swp

# Virtualenv
venv
venv-darwin
venv-linux
adapters/venv
adapters/venv-linux
adapters/venv-darwin

# Protobuf output files
python/**/*_pb2.py
python/**/*_pb2_grpc.py
python/**/*.desc
protos/**/*.pb.go
protos/**/*.desc
protos/voltha.pb

# Editors
*.bak
*.project
*.pydevproject

# Docker
.docker-base-built

# Mac stuff
.DS_Store
**/.DS_Store

# Generated docs
**/*.pdf

# Vagrant logfile
*.log

# Files copied over during make
python/protos/*.proto

# voltha cli history
python/cli/.voltha_cli_history

# Development versions of locally built libraries
python/local_imports

