def discard_xlist(self, appid: str, name: str) -> None: """ Deletes list `name` from XDATA `appid`. Ignores silently if XDATA `appid` or list `name` not exist. Args: appid: APPID name: list name """ try: xdata = self.get(appid) except DXFValueError: pass else: try: tags = remove_named_list_from_xdata(name, xdata) except NotFoundException: pass else: self.add(appid, tags)
def replace_xlist(self, appid: str, name: str, tags: Iterable) -> None: """ Replaces list `name` of existing XDATA `appid` by `tags`. Appends new list if list `name` do not exist, but raises `DXFValueError` if XDATA `appid` do not exist. Low level interface, if not sure use `set_xdata_list()` instead. Args: appid: APPID name: list name tags: list content as DXFTags or (code, value) tuples, list name and curly braces '{' '}' tags will be added Raises: DXFValueError: XDATA `appid` do not exist """ xdata = self.get(appid) try: data = remove_named_list_from_xdata(name, xdata) except NotFoundException: data = xdata xlist = xdata_list(name, tags) data.extend(xlist) self.add(appid, data)