MCPcopy Index your code
hub / github.com/python/cpython / Tbuffer

Class Tbuffer

Lib/turtle.py:908–942  ·  view source on GitHub ↗

Ring buffer used as undobuffer for RawTurtle objects.

Source from the content-addressed store, hash-verified

906
907
908class Tbuffer(object):
909 """Ring buffer used as undobuffer for RawTurtle objects."""
910 def __init__(self, bufsize=10):
911 self.bufsize = bufsize
912 self.buffer = [[None]] * bufsize
913 self.ptr = -1
914 self.cumulate = False
915 def reset(self, bufsize=None):
916 if bufsize is None:
917 for i in range(self.bufsize):
918 self.buffer[i] = [None]
919 else:
920 self.bufsize = bufsize
921 self.buffer = [[None]] * bufsize
922 self.ptr = -1
923 def push(self, item):
924 if self.bufsize > 0:
925 if not self.cumulate:
926 self.ptr = (self.ptr + 1) % self.bufsize
927 self.buffer[self.ptr] = item
928 else:
929 self.buffer[self.ptr].append(item)
930 def pop(self):
931 if self.bufsize > 0:
932 item = self.buffer[self.ptr]
933 if item is None:
934 return None
935 else:
936 self.buffer[self.ptr] = [None]
937 self.ptr = (self.ptr - 1) % self.bufsize
938 return (item)
939 def nr_of_items(self):
940 return self.bufsize - self.buffer.count([None])
941 def __repr__(self):
942 return str(self.buffer) + " " + str(self.ptr)
943
944
945

Callers 2

__init__Method · 0.85
setundobufferMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…