root/trunk/twisted/conch/ssh/sexpy.py

Revision 30752, 0.9 KB (checked in by exarkun, 15 months ago)

Rewrite the copyright headers to exclude date information.

Author: exarkun
Reviewer: glyph
Fixes: #4857

To avoid the need to perpetually update copyright dates in each file in Twisted,
remove the dates from most files and just leave them in the LICENSE file.

As a side effect, some files also have had a trailing newline added where it was
missing before.

Line 
1# Copyright (c) Twisted Matrix Laboratories.
2# See LICENSE for details.
3
4#
5
6def parse(s):
7    s = s.strip()
8    expr = []
9    while s:
10        if s[0] == '(':
11            newSexp = []
12            if expr:
13                expr[-1].append(newSexp)
14            expr.append(newSexp)
15            s = s[1:]
16            continue
17        if s[0] == ')':
18            aList = expr.pop()
19            s=s[1:]
20            if not expr:
21                assert not s
22                return aList
23            continue
24        i = 0
25        while s[i].isdigit(): i+=1
26        assert i
27        length = int(s[:i])
28        data = s[i+1:i+1+length]
29        expr[-1].append(data)
30        s=s[i+1+length:]
31    assert 0, "this should not happen"
32
33def pack(sexp):
34    s = ""
35    for o in sexp:
36        if type(o) in (type(()), type([])):
37            s+='('
38            s+=pack(o)
39            s+=')'
40        else:
41            s+='%i:%s' % (len(o), o)
42    return s
Note: See TracBrowser for help on using the browser.