Skip to content

Commit e9a398e

Browse files
committed
Convert identityset.py from CRLF to LF
1 parent d38eea2 commit e9a398e

1 file changed

Lines changed: 55 additions & 55 deletions

File tree

identityset.py

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,55 @@
1-
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
3-
# vim:ts=4:et:
4-
5-
import collections
6-
7-
8-
class IdentitySet(object):
9-
""" This set implementation only adds items
10-
if they are not exactly the same (same reference)
11-
preserving its order (OrderedDict). Allows deleting by ith-index.
12-
"""
13-
def __init__(self, l=None):
14-
self.elems = []
15-
self._elems = set()
16-
if l is not None:
17-
self.add(l)
18-
19-
def add(self, l):
20-
if not isinstance(l, collections.Iterable):
21-
l = [l]
22-
self.elems.extend(x for x in l if x not in self._elems)
23-
self._elems.update(x for x in l)
24-
25-
def remove(self, l):
26-
if not isinstance(l, collections.Iterable):
27-
l = [l]
28-
29-
self._elems.difference_update(l)
30-
self.elems = [x for x in self.elems if x not in self._elems]
31-
32-
def __len__(self):
33-
return len(self.elems)
34-
35-
def __getitem__(self, key):
36-
return self.elems[key]
37-
38-
def __str__(self):
39-
return str(self.elems)
40-
41-
def __contains__(self, elem):
42-
return elem in self._elems
43-
44-
def __delitem__(self, key):
45-
self.pop(self.elems.index(key))
46-
47-
def intersection(self, other):
48-
return IdentitySet([x for x in self.elems if x in self._elems.intersection(other)])
49-
50-
def union(self, other):
51-
return IdentitySet(self.elems + [x for x in other])
52-
53-
def pop(self, i):
54-
tmp = self.elems.pop(i)
55-
self._elems.remove(tmp)
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
# vim:ts=4:et:
4+
5+
import collections
6+
7+
8+
class IdentitySet(object):
9+
""" This set implementation only adds items
10+
if they are not exactly the same (same reference)
11+
preserving its order (OrderedDict). Allows deleting by ith-index.
12+
"""
13+
def __init__(self, l=None):
14+
self.elems = []
15+
self._elems = set()
16+
if l is not None:
17+
self.add(l)
18+
19+
def add(self, l):
20+
if not isinstance(l, collections.Iterable):
21+
l = [l]
22+
self.elems.extend(x for x in l if x not in self._elems)
23+
self._elems.update(x for x in l)
24+
25+
def remove(self, l):
26+
if not isinstance(l, collections.Iterable):
27+
l = [l]
28+
29+
self._elems.difference_update(l)
30+
self.elems = [x for x in self.elems if x not in self._elems]
31+
32+
def __len__(self):
33+
return len(self.elems)
34+
35+
def __getitem__(self, key):
36+
return self.elems[key]
37+
38+
def __str__(self):
39+
return str(self.elems)
40+
41+
def __contains__(self, elem):
42+
return elem in self._elems
43+
44+
def __delitem__(self, key):
45+
self.pop(self.elems.index(key))
46+
47+
def intersection(self, other):
48+
return IdentitySet([x for x in self.elems if x in self._elems.intersection(other)])
49+
50+
def union(self, other):
51+
return IdentitySet(self.elems + [x for x in other])
52+
53+
def pop(self, i):
54+
tmp = self.elems.pop(i)
55+
self._elems.remove(tmp)

0 commit comments

Comments
 (0)