Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
class ListOfCoordTwoDim(BaseObject):
"""Class for lists of CoordTwoDims."""
description = 'A list of 2D coordinates.'
default_value = []
SCHEMA = {
'type': 'list',
'items': CoordTwoDim.SCHEMA
}
class ListOfUnicodeString(BaseObject):
"""List class."""
description = 'A list.'
SCHEMA = {
'type': 'list',
'items': UnicodeString.SCHEMA
}
class SetOfUnicodeString(BaseObject):
"""Class for sets of UnicodeStrings."""
description = 'A set (a list with unique elements) of unicode strings.'
default_value = []
"""Validates and normalizes a raw Python object.
Args:
raw: *. A Python object to be validated against the schema,
normalizing if necessary.
Returns:
unicode. The normalized object containing string in unicode format.
"""
if '\t' in raw:
raise TypeError(
'Unexpected tab characters in code string: %s' % raw)
return schema_utils.normalize_against_schema(raw, cls.SCHEMA)
class CodeEvaluation(BaseObject):
"""Evaluation result of programming code."""
description = 'Code and its evaluation results.'
SCHEMA = {
'type': 'dict',
'properties': [{
'name': 'code',
'schema': UnicodeString.SCHEMA,
}, {
'name': 'output',
'schema': UnicodeString.SCHEMA,
}, {
'name': 'evaluation',
'schema': UnicodeString.SCHEMA,
}, {
"""Class for sets of NormalizedStrings."""
description = (
'A set (a list with unique elements) of whitespace-collapsed strings.')
default_value = []
SCHEMA = {
'type': 'list',
'items': NormalizedString.SCHEMA,
'validators': [{
'id': 'is_uniquified'
}]
}
class MathLatexString(BaseObject):
"""Math LaTeX string class."""
description = 'A LaTeX string.'
SCHEMA = UnicodeString.SCHEMA
class SanitizedUrl(BaseObject):
"""HTTP or HTTPS url string class."""
description = 'An HTTP or HTTPS url.'
SCHEMA = {
'type': 'unicode',
'validators': [{
'id': 'is_nonempty'
edge_pairs = [
(edge['src'], edge['dst']) for edge in raw['edges']]
else:
edge_pairs = (
[(edge['src'], edge['dst']) for edge in raw['edges']] +
[(edge['dst'], edge['src']) for edge in raw['edges']]
)
assert len(set(edge_pairs)) == len(edge_pairs)
except Exception:
raise TypeError('Cannot convert to graph %s' % raw)
return raw
class GraphProperty(BaseObject):
"""A string from a list of possible graph properties."""
description = 'One of the possible properties possessed by a graph.'
default_value = 'strongly_connected'
SCHEMA = {
'type': 'unicode',
'choices': [
'strongly_connected', 'weakly_connected', 'acyclic', 'regular'
]
}
class ListOfGraph(BaseObject):
"""Class for lists of Graphs."""
}
class ListOfSetsOfHtmlStrings(BaseObject):
"""List of sets of Html strings class."""
description = 'A list of sets of Html strings.'
default_value = []
SCHEMA = {
'type': 'list',
'items': SetOfHtmlString.SCHEMA,
}
class DragAndDropHtmlString(BaseObject):
"""A specific drag and drop Html string class."""
description = (
'A specific drag and drop item from collection of drag and drop items.')
default_value = ''
SCHEMA = {
'type': 'html'
}
class DragAndDropPositiveInt(BaseObject):
"""A drag and drop positive int class representing the rank(position) of a
drag and drop item.
"""
class NonnegativeInt(BaseObject):
"""Nonnegative integer class."""
description = 'A non-negative integer.'
default_value = 0
SCHEMA = {
'type': 'int',
'validators': [{
'id': 'is_at_least',
'min_value': 0
}]
}
class PositiveInt(BaseObject):
"""Nonnegative integer class."""
description = 'A positive integer.'
default_value = 1
SCHEMA = {
'type': 'int',
'validators': [{
'id': 'is_at_least',
'min_value': 1
}]
}
class CodeString(BaseObject):
"""Code string class. This is like a normal string, but it should not
'schema': {
'type': 'list',
'items': Real.SCHEMA,
'len': 2
}
}, {
'name': 'clickedRegions',
'schema': {
'type': 'list',
'items': UnicodeString.SCHEMA
}
}]
}
class ParameterName(BaseObject):
"""Parameter name class.
Validation for this class is done only in the frontend.
"""
description = 'A string representing a parameter name.'
SCHEMA = {
'type': 'unicode',
}
class SetOfHtmlString(BaseObject):
"""A Set of Html Strings."""
description = 'A list of Html strings.'
}
class DragAndDropHtmlString(BaseObject):
"""A specific drag and drop Html string class."""
description = (
'A specific drag and drop item from collection of drag and drop items.')
default_value = ''
SCHEMA = {
'type': 'html'
}
class DragAndDropPositiveInt(BaseObject):
"""A drag and drop positive int class representing the rank(position) of a
drag and drop item.
"""
description = (
'The rank(position) of a drag and drop item in the given list of sets' +
'of drag and drop items.')
default_value = 1
SCHEMA = PositiveInt.SCHEMA
return schema_utils.normalize_against_schema(raw, cls.SCHEMA)
class Real(BaseObject):
"""Real number class."""
description = 'A real number.'
default_value = 0.0
SCHEMA = {
'type': 'float'
}
class Int(BaseObject):
"""Integer class."""
description = 'An integer.'
default_value = 0
SCHEMA = {
'type': 'int'
}
class UnicodeString(BaseObject):
"""Unicode string class."""
description = 'A unicode string.'
default_value = ''
'items': {
'type': 'dict',
'properties': [{
'name': 'label',
'schema': UnicodeString.SCHEMA
}, {
'name': 'region',
'schema': ImageRegion.SCHEMA
}]
}
}
}]
}
class ClickOnImage(BaseObject):
"""A click on an image and the clicked regions."""
description = 'Position of a click and a list of regions clicked.'
SCHEMA = {
'type': 'dict',
'properties': [{
'name': 'clickPosition',
'schema': {
'type': 'list',
'items': Real.SCHEMA,
'len': 2
}
}, {
'name': 'clickedRegions',
'schema': {