DotProxyList usage examples

In [1]: red = RedBaron("a.b(c).d[e]")

Please refer to python list documentation if you want to know the exact behavior or those methods (or send a patch to improve this documentation).

append

In [2]: red
Out[2]: 0   a.b(c).d[e]

In [3]: red[0].value.append("(stuff)")

In [4]: red
Out[4]: 0   a.b(c).d[e](stuff)

In [5]: red[0].value
Out[5]: 
0   a
1   b
2   (c)
3   d
4   [e]
5   (stuff)

insert

In [6]: red
Out[6]: 0   a.b(c).d[e](stuff)

In [7]: red[0].value.insert(1, "[foobar]")

In [8]: red
Out[8]: 0   a[foobar].b(c).d[e](stuff)

In [9]: red[0].value
Out[9]: 
0   a
1   [foobar]
2   b
3   (c)
4   d
5   [e]
6   (stuff)

extend

In [10]: red
Out[10]: 0   a[foobar].b(c).d[e](stuff)

In [11]: red[0].value.extend(["a", "(hop)", "()"])

In [12]: red
Out[12]: 0   a[foobar].b(c).d[e](stuff).a(hop)()

In [13]: red[0].value
Out[13]: 
0   a
1   [foobar]
2   b
3   (c)
4   d
5   [e]
6   (stuff)
7   a
8   (hop)
9   ()

pop

In [14]: red
Out[14]: 0   a[foobar].b(c).d[e](stuff).a(hop)()

In [15]: red[0].value.pop()

In [16]: red
Out[16]: 0   a[foobar].b(c).d[e](stuff).a(hop)

In [17]: red[0].value
Out[17]: 
0   a
1   [foobar]
2   b
3   (c)
4   d
5   [e]
6   (stuff)
7   a
8   (hop)

In [18]: red[0].value.pop(3)

In [19]: red
Out[19]: 0   a[foobar].b.d[e](stuff).a(hop)

In [20]: red[0].value
Out[20]: 
0   a
1   [foobar]
2   b
3   d
4   [e]
5   (stuff)
6   a
7   (hop)

__getitem__

In [21]: red
Out[21]: 0   a[foobar].b.d[e](stuff).a(hop)

In [22]: red[0].value
Out[22]: 
0   a
1   [foobar]
2   b
3   d
4   [e]
5   (stuff)
6   a
7   (hop)

In [23]: red[0].value[2]
Out[23]: b

__setitem__

In [24]: red
Out[24]: 0   a[foobar].b.d[e](stuff).a(hop)

In [25]: red[0].value[2] = "[1:2]"

In [26]: red
Out[26]: 0   a[foobar][1:2].d[e](stuff).a(hop)

In [27]: red[0].value
Out[27]: 
0   a
1   [foobar]
2   [1:2]
3   d
4   [e]
5   (stuff)
6   a
7   (hop)

remove

In [28]: red
Out[28]: 0   a[foobar][1:2].d[e](stuff).a(hop)

In [29]: red[0].value.remove(red[0].value[2])

In [30]: red
Out[30]: 0   a[foobar].d[e](stuff).a(hop)

In [31]: red[0].value
Out[31]: 
0   a
1   [foobar]
2   d
3   [e]
4   (stuff)
5   a
6   (hop)

index

In [32]: red
Out[32]: 0   a[foobar].d[e](stuff).a(hop)

In [33]: red[0].value
Out[33]: 
0   a
1   [foobar]
2   d
3   [e]
4   (stuff)
5   a
6   (hop)

In [34]: red[0].value.index(red[0].value[2])
Out[34]: 2

count

In [35]: red
Out[35]: 0   a[foobar].d[e](stuff).a(hop)

In [36]: red[0].value
Out[36]: 
0   a
1   [foobar]
2   d
3   [e]
4   (stuff)
5   a
6   (hop)

In [37]: red[0].value.count(red[0].value[2])
Out[37]: 1

len

In [38]: red
Out[38]: 0   a[foobar].d[e](stuff).a(hop)

In [39]: red[0].value
Out[39]: 
0   a
1   [foobar]
2   d
3   [e]
4   (stuff)
5   a
6   (hop)

In [40]: len(red[0].value)
Out[40]: 7

__delitem__

In [41]: red
Out[41]: 0   a[foobar].d[e](stuff).a(hop)

In [42]: del red[0].value[2]

In [43]: red
Out[43]: 0   a[foobar][e](stuff).a(hop)

In [44]: red[0].value
Out[44]: 
0   a
1   [foobar]
2   [e]
3   (stuff)
4   a
5   (hop)

in

In [45]: red
Out[45]: 0   a[foobar][e](stuff).a(hop)

In [46]: red[0].value[2] in red[0].value
Out[46]: False

__iter__

In [47]: red
Out[47]: 0   a[foobar][e](stuff).a(hop)

In [48]: for i in red[0].value:
   ....:     print(i.dumps())
   ....: 
a
[foobar]
[e]
(stuff)
a
(hop)

__getslice__

In [49]: red
Out[49]: 0   a[foobar][e](stuff).a(hop)

In [50]: red[0].value
Out[50]: 
0   a
1   [foobar]
2   [e]
3   (stuff)
4   a
5   (hop)

In [51]: red[0].value[2:4]
Out[51]: 
0   [e]
1   (stuff)

__setslice__

In [52]: red
Out[52]: 0   a[foobar][e](stuff).a(hop)

In [53]: red[0].value[2:4] = ["(foo)", "a", "b", "c"]

In [54]: red
Out[54]: 0   a[foobar](foo).a.b.c.a(hop)

In [55]: red[0].value
Out[55]: 
0   a
1   [foobar]
2   (foo)
3   a
4   b
5   c
6   a
7   (hop)

__delslice__

In [56]: red
Out[56]: 0   a[foobar](foo).a.b.c.a(hop)

In [57]: red[0].value[2:5]
Out[57]: 
0   (foo)
1   a
2   b

In [58]: del red[0].value[2:5]

In [59]: red
Out[59]: 0   a[foobar].c.a(hop)

In [60]: red[0].value
Out[60]: 
0   a
1   [foobar]
2   c
3   a
4   (hop)