diff --git a/sba.py b/sba.py new file mode 100644 index 0000000..fb82db2 --- /dev/null +++ b/sba.py @@ -0,0 +1,51 @@ +import sys + +class SBA: + slots = ('_arr', '_size', '_memsize') + + def __init__(self, size): + if not isinstance(size, int): + raise ValueError("Size should be integer!") + self._arr = 1<= self._size: + raise ValueError("Range out of boundaries!") + if (self._arr & 1< 0: + return 1 + return 0 + + def __setitem__(self, sliced, val): + if not isinstance(sliced, int): + raise ValueError("Only integers accepted as position!") + if not isinstance(val, (int, bool)): + raise ValueError("Values accepted as int or bool") + if sliced >= self._size: + raise ValueError("Range out of boundaries!") + + if isinstance(val, bool): + v = {True: 1, False: 0}[val] + else: + if 0 > val > 1: + raise ValueError("Value is out of range!") + v = val + self._arr = self._arr | v<