MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / Tbuffer

Class Tbuffer

tools/python-3.11.9-amd64/Lib/turtle.py:918–952  ·  view source on GitHub ↗

Ring buffer used as undobuffer for RawTurtle objects.

Source from the content-addressed store, hash-verified

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

Callers 2

__init__Method · 0.85
setundobufferMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected