mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-05-19 04:33:27 +02:00
8e75980ebd
* Cleanup dashboard JS * Add vscode * Save start_mark/end_mark * Updates * Updates * Remove need for cv.nameable It's a bit hacky but removes so much bloat from integrations * Add enum helper * Document APIs, and Improvements * Fixes * Fixes * Update PULL_REQUEST_TEMPLATE.md * Updates * Updates * Updates
28 lines
774 B
Python
28 lines
774 B
Python
from __future__ import print_function
|
|
|
|
import codecs
|
|
import json
|
|
|
|
from esphome.core import CORE, EsphomeError
|
|
from esphome.py_compat import safe_input
|
|
|
|
|
|
def read_config_file(path):
|
|
# type: (basestring) -> unicode
|
|
if CORE.vscode:
|
|
print(json.dumps({
|
|
'type': 'read_file',
|
|
'path': path,
|
|
}))
|
|
data = json.loads(safe_input())
|
|
assert data['type'] == 'file_response'
|
|
return data['content']
|
|
|
|
try:
|
|
with codecs.open(path, encoding='utf-8') as handle:
|
|
return handle.read()
|
|
except IOError as exc:
|
|
raise EsphomeError(u"Error accessing file {}: {}".format(path, exc))
|
|
except UnicodeDecodeError as exc:
|
|
raise EsphomeError(u"Unable to read file {}: {}".format(path, exc))
|