mirror of
https://github.com/esphome/esphome.git
synced 2024-12-01 19:24:14 +01:00
a1a7448868
* Dashboard editor validation * Improve range detection * Lint
29 lines
889 B
Python
29 lines
889 B
Python
from __future__ import print_function
|
|
|
|
import codecs
|
|
import json
|
|
import os
|
|
|
|
from esphome.core import CORE, EsphomeError
|
|
from esphome.py_compat import safe_input
|
|
|
|
|
|
def read_config_file(path):
|
|
# type: (basestring) -> unicode
|
|
if CORE.vscode and (not CORE.ace or
|
|
os.path.abspath(path) == os.path.abspath(CORE.config_path)):
|
|
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))
|