diff options
| author | whitespace <nobody@nobody> | 2020-10-07 17:22:26 -0400 | 
|---|---|---|
| committer | Quentin Young <qlyoung@nvidia.com> | 2020-10-07 17:22:26 -0400 | 
| commit | 701a01920eee5431d2052aad92aefbdf50ac2139 (patch) | |
| tree | 2bf2339327241f59593b9583b060ebb347db1cea /yang/embedmodel.py | |
| parent | bd407b54d26981f30a95bc316ea2ed965d070c53 (diff) | |
*: reformat python files
We are now using black.
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
Diffstat (limited to 'yang/embedmodel.py')
| -rw-r--r-- | yang/embedmodel.py | 75 | 
1 files changed, 42 insertions, 33 deletions
diff --git a/yang/embedmodel.py b/yang/embedmodel.py index 0a25c93da7..39bf2bb922 100644 --- a/yang/embedmodel.py +++ b/yang/embedmodel.py @@ -19,13 +19,13 @@ if not os.path.isdir(outdir):  # or python-yang.  Cross-compiling FRR is already somewhat involved, no need  # to make it even harder. -re_name = re.compile(r'\bmodule\s+([^\s]+)\s+\{') -re_subname = re.compile(r'\bsubmodule\s+([^\s]+)\s+\{') -re_mainname = re.compile(r'\bbelongs-to\s+([^\s]+)\s+\{') -re_rev = re.compile(r'\brevision\s+([\d-]+)\s+\{') +re_name = re.compile(r"\bmodule\s+([^\s]+)\s+\{") +re_subname = re.compile(r"\bsubmodule\s+([^\s]+)\s+\{") +re_mainname = re.compile(r"\bbelongs-to\s+([^\s]+)\s+\{") +re_rev = re.compile(r"\brevision\s+([\d-]+)\s+\{") -template = '''/* autogenerated by embedmodel.py.  DO NOT EDIT */ +template = """/* autogenerated by embedmodel.py.  DO NOT EDIT */  #include <zebra.h>  #include "yang.h" @@ -47,23 +47,28 @@ static void embed_register(void)  {  \tyang_module_embed(&embed);  } -''' +""" + +passchars = set(string.printable) - set("\\'\"%\r\n\t\x0b\x0c") + -passchars = set(string.printable) - set('\\\'"%\r\n\t\x0b\x0c')  def escapech(char):      if char in passchars:          return char -    if char == '\n': -        return '\\n' -    if char == '\t': -        return '\\t' -    if char in '"\\\'': -        return '\\' + char -    return '\\x%02x' % (ord(char)) +    if char == "\n": +        return "\\n" +    if char == "\t": +        return "\\t" +    if char in "\"\\'": +        return "\\" + char +    return "\\x%02x" % (ord(char)) + +  def escape(line): -    return ''.join([escapech(i) for i in line]) +    return "".join([escapech(i) for i in line]) + -with open(inname, 'r') as fd: +with open(inname, "r") as fd:      data = fd.read()  sub_name = "" @@ -72,29 +77,33 @@ sub_rev = ""  # XML support isn't actively used currently, but it's here in case the need  # arises.  It does avoid the regex'ing. -if '<?xml' in data: +if "<?xml" in data:      from xml.etree import ElementTree +      xml = ElementTree.fromstring(data) -    name = xml.get('name') -    rev = xml.find('{urn:ietf:params:xml:ns:yang:yin:1}revision').get('date') -    fmt = 'LYS_YIN' +    name = xml.get("name") +    rev = xml.find("{urn:ietf:params:xml:ns:yang:yin:1}revision").get("date") +    fmt = "LYS_YIN"  else:      search_name = re_name.search(data) -    if search_name : -       name = search_name.group(1) -       rev = re_rev.search(data).group(1) -    else : -       search_name = re_subname.search(data) -       sub_name = search_name.group(1) -       name = re_mainname.search(data).group(1) -       sub_rev = re_rev.search(data).group(1) -    fmt = 'LYS_YANG' +    if search_name: +        name = search_name.group(1) +        rev = re_rev.search(data).group(1) +    else: +        search_name = re_subname.search(data) +        sub_name = search_name.group(1) +        name = re_mainname.search(data).group(1) +        sub_rev = re_rev.search(data).group(1) +    fmt = "LYS_YANG"  if name is None or rev is None: -    raise ValueError('cannot determine YANG module name and revision') +    raise ValueError("cannot determine YANG module name and revision") -lines = [escape(row) for row in data.split('\n')] +lines = [escape(row) for row in data.split("\n")]  text = '\\n"\n\t"'.join(lines) -with open(outname, 'w') as fd: -    fd.write(template % (text, escape(name), escape(rev), escape(sub_name), escape(sub_rev), fmt)) +with open(outname, "w") as fd: +    fd.write( +        template +        % (text, escape(name), escape(rev), escape(sub_name), escape(sub_rev), fmt) +    )  | 
