Programmatically generate SVG (vector) images, animations, and interactive Jupyter widgets

Compare changes

Choose any two refs to compare.

Changed files
+15 -4
drawsvg
+14 -3
drawsvg/drawing.py
···
else:
self.elements.extend(iterable)
def insert(self, i, element):
+
'''Inserts a top-level element at the given array index.'''
self.elements.insert(i, element)
def remove(self, element):
+
'''Removes a top-level element (except those with a z-index).'''
self.elements.remove(element)
def clear(self):
+
'''Clears all drawing elements, with or without a z-index, but keeps
+
defs-type elements added with `append_def()`.
+
'''
self.elements.clear()
+
self.ordered_elements.clear()
def index(self, *args, **kwargs):
+
'''Finds the array-index of a top-level element (except those with a
+
z-index).
+
'''
return self.elements.index(*args, **kwargs)
def count(self, element):
+
'''Counts the number of top-level elements (except those with a z-index
+
).
+
'''
return self.elements.count(element)
def reverse(self):
+
'''Reverses the order of all elements (except those with a z-index).'''
self.elements.reverse()
def draw_def(self, obj, **kwargs):
if not hasattr(obj, 'write_svg_element'):
···
id_index += 1
return id_str
id_map = defaultdict(id_gen)
-
prev_set = set((id(defn) for defn in self.other_defs))
-
prev_list = []
+
prev_set = set()
def is_duplicate(obj):
nonlocal prev_set
dup = id(obj) in prev_set
prev_set.add(id(obj))
-
prev_list.append(obj)
return dup
for element in self.other_defs:
if hasattr(element, 'write_svg_element'):
+1 -1
setup.py
···
import logging
logger = logging.getLogger(__name__)
-
version = '2.3.0'
+
version = '2.4.0'
try:
with open('README.md', 'r') as f: