Clean models.py module from unused code

This commit is contained in:
Davide Brunato 2019-11-15 09:25:04 +01:00
parent fc3141283d
commit 8207284c5a
1 changed files with 6 additions and 97 deletions

View File

@ -443,17 +443,6 @@ class ModelVisitor(MutableSequence):
:param match: provides current element match.
"""
def get_choices(self, occurs):
max_group_occurs = max(1, occurs // (self.min_occurs or 1))
if self.max_occurs is None:
return [x for x in range(1, max_group_occurs + 1)]
else:
delta_occurs = self.max_occurs - self.min_occurs + 1
if occurs % max_group_occurs > delta_occurs:
return []
else:
return [x for x in range(1, max_group_occurs + 1)]
def stop_item(item):
"""
Stops element or group matching, incrementing current group counter.
@ -496,12 +485,13 @@ class ModelVisitor(MutableSequence):
if item is self.group[-1]:
if any(occurs[x] for x in self if x is not item):
group_occurs = 1
self.occurs[self.group] += 1
else:
group_occurs = max(1, item_occurs // (item.min_occurs or 1))
if self.group.is_over(group_occurs):
group_occurs = self.group.max_occurs
self.occurs[self.group] += max(1, group_occurs)
self.occurs[self.group] += max(1, group_occurs)
return item.is_missing(max(item_occurs, occurs[(item,)]))
element, occurs = self.element, self.occurs
@ -513,11 +503,10 @@ class ModelVisitor(MutableSequence):
self.match = True
if self.group.model == 'all':
self.items = (e for e in self.group.iter_elements() if not e.is_over(occurs[e]))
elif self.group.model == 'choice': # or len(self.group) == 1:
if not element.is_over(occurs[element]) or element.is_ambiguous():
return
elif not element.is_over(occurs[element]):
return
elif self.group.model == 'choice' and element.is_ambiguous():
return
obj = None
try:
@ -535,7 +524,7 @@ class ModelVisitor(MutableSequence):
self.group = obj
self.items = self.iter_group()
self.match = False
occurs[obj] = 0
occurs[obj] = occurs[(obj,)] = 0
elif obj is not None:
# XsdElement or XsdAnyElement
@ -694,83 +683,3 @@ class ModelVisitor(MutableSequence):
for name, values in unordered_content.items():
for v in values:
yield name, v
class Occurrence(object):
"""
Class for XSD particles occurrence counting and comparison.
"""
def __init__(self, occurs):
self.occurs = occurs
def add(self, occurs):
if self.occurs is None:
pass
elif occurs is None:
self.occurs = None
else:
self.occurs += occurs
def sub(self, occurs):
if self.occurs is None:
pass
elif occurs is None:
self.occurs = 0
else:
self.occurs -= occurs
def mul(self, occurs):
if occurs == 0:
self.occurs = 0
elif not self.occurs:
pass
elif occurs is None:
self.occurs = None
else:
self.occurs *= occurs
def max(self, occurs):
if self.occurs is None:
pass
elif occurs is None:
self.occurs = occurs
else:
self.occurs = max(self.occurs, occurs)
def __eq__(self, occurs):
return self.occurs == occurs
def __ne__(self, occurs):
return self.occurs != occurs
def __ge__(self, occurs):
if self.occurs is None:
return True
elif occurs is None:
return False
else:
return self.occurs >= occurs
def __gt__(self, occurs):
if self.occurs is None:
return True
elif occurs is None:
return False
else:
return self.occurs > occurs
def __le__(self, occurs):
if occurs is None:
return True
elif self.occurs is None:
return False
else:
return self.occurs <= occurs
def __lt__(self, occurs):
if occurs is None:
return True
elif self.occurs is None:
return False
else:
return self.occurs < occurs