home-assistant: support requirements that are commented out

wip/yesman
Robert Schütz 6 years ago committed by Robert Schütz
parent 749d280c2c
commit f198ca19d9
  1. 13
      pkgs/servers/home-assistant/parse-requirements.py

@ -22,7 +22,8 @@ import json
import re
from pkg_resources import Requirement, RequirementParseError
PREFIX = '# homeassistant.components.'
GENERAL_PREFIX = '# homeassistant.'
COMPONENT_PREFIX = GENERAL_PREFIX + 'components.'
PKG_SET = 'python3Packages'
def get_version():
@ -37,12 +38,16 @@ def fetch_reqs(version='master'):
for line in response.read().decode().splitlines():
if line == '':
components = []
elif line[:len(PREFIX)] == PREFIX:
component = line[len(PREFIX):]
elif line[:len(COMPONENT_PREFIX)] == COMPONENT_PREFIX:
component = line[len(COMPONENT_PREFIX):]
components.append(component)
if component not in requirements:
requirements[component] = []
elif line[0] != '#':
elif line[:len(GENERAL_PREFIX)] != GENERAL_PREFIX: # skip lines like "# homeassistant.scripts.xyz"
# Some dependencies are commented out because they don't build on all platforms
# Since they are still required for running the component, don't skip them
if line[:2] == '# ':
line = line[2:]
# Some requirements are specified by url, e.g. https://example.org/foobar#xyz==1.0.0
# Therefore, if there's a "#" in the line, only take the part after it
line = line[line.find('#') + 1:]

Loading…
Cancel
Save