1from __future__ import absolute_import, print_function, division
2
3
4# complement()
5##############
6
7import petl as etl
8a = [['foo', 'bar', 'baz'],
9     ['A', 1, True],
10     ['C', 7, False],
11     ['B', 2, False],
12     ['C', 9, True]]
13b = [['x', 'y', 'z'],
14     ['B', 2, False],
15     ['A', 9, False],
16     ['B', 3, True],
17     ['C', 9, True]]
18aminusb = etl.complement(a, b)
19aminusb
20bminusa = etl.complement(b, a)
21bminusa
22
23
24# recordcomplement()
25####################
26
27import petl as etl
28a = [['foo', 'bar', 'baz'],
29     ['A', 1, True],
30     ['C', 7, False],
31     ['B', 2, False],
32     ['C', 9, True]]
33b = [['bar', 'foo', 'baz'],
34     [2, 'B', False],
35     [9, 'A', False],
36     [3, 'B', True],
37     [9, 'C', True]]
38aminusb = etl.recordcomplement(a, b)
39aminusb
40bminusa = etl.recordcomplement(b, a)
41bminusa
42
43
44# diff()
45########
46
47import petl as etl
48a = [['foo', 'bar', 'baz'],
49     ['A', 1, True],
50     ['C', 7, False],
51     ['B', 2, False],
52     ['C', 9, True]]
53b = [['x', 'y', 'z'],
54     ['B', 2, False],
55     ['A', 9, False],
56     ['B', 3, True],
57     ['C', 9, True]]
58added, subtracted = etl.diff(a, b)
59# rows in b not in a
60added
61# rows in a not in b
62subtracted
63
64
65# recorddiff()
66##############
67
68import petl as etl
69a = [['foo', 'bar', 'baz'],
70     ['A', 1, True],
71     ['C', 7, False],
72     ['B', 2, False],
73     ['C', 9, True]]
74b = [['bar', 'foo', 'baz'],
75     [2, 'B', False],
76     [9, 'A', False],
77     [3, 'B', True],
78     [9, 'C', True]]
79added, subtracted = etl.recorddiff(a, b)
80added
81subtracted
82
83
84# intersection()
85################
86
87import petl as etl
88table1 = [['foo', 'bar', 'baz'],
89          ['A', 1, True],
90          ['C', 7, False],
91          ['B', 2, False],
92          ['C', 9, True]]
93table2 = [['x', 'y', 'z'],
94          ['B', 2, False],
95          ['A', 9, False],
96          ['B', 3, True],
97          ['C', 9, True]]
98table3 = etl.intersection(table1, table2)
99table3
100
101
102