Пример #1
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "count" == name:
         return IntegerValue(len(self))
     elif "totalCount" == name:
         return IntegerValue(self.totalLength())
     else:
         raise InvalidValueError("No such member:" + name)
Пример #2
0
 def getMemberValue(self, context, name, autoCreate=False):
     from prompto.value.IntegerValue import IntegerValue
     if "year" == name:
         return IntegerValue(self.value.year)
     elif "month" == name:
         return IntegerValue(self.value.month)
     elif "dayOfMonth" == name:
         return IntegerValue(self.value.day)
     elif "dayOfYear" == name:
         day = 1 + self.value.toordinal() - date(self.value.year, 1, 1).toordinal()
         return IntegerValue(day)
     elif "hour" == name:
         return IntegerValue(self.value.hour)
     elif "minute" == name:
         return IntegerValue(self.value.minute)
     elif "second" == name:
         return IntegerValue(self.value.second)
     elif "millisecond" == name:
         return IntegerValue(self.value.microsecond // 1000)
     elif "tzOffset" == name:
         return IntegerValue(0)  # self.value.getZone().toTimeZone().getRawOffset() / 1000)
     elif "tzName" == name:
         from prompto.value.TextValue import TextValue
         return TextValue("Z")  # self.value.getZone().toTimeZone().getDisplayName())
     elif "date" == name:
         from prompto.value.DateValue import DateValue
         return DateValue(years=self.value.year, months=self.value.month, days=self.value.day)
     elif "time" == name:
         from prompto.value.TimeValue import TimeValue
         return TimeValue(hours=self.value.hour, minutes=self.value.minute, seconds=self.value.second, millis=self.value.microsecond // 1000)
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #3
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "major" == name:
         return IntegerValue(self.major)
     elif "minor" == name:
         return IntegerValue(self.minor)
     elif "fix" == name:
         return IntegerValue(self.fix)
     elif "qualifier" == name:
         return TextValue(self.qualifierString())
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #4
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "hour" == name:
         return IntegerValue(self.value.hour)
     elif "minute" == name:
         return IntegerValue(self.value.minute)
     elif "second" == name:
         return IntegerValue(self.value.second)
     elif "millisecond" == name:
         return IntegerValue(self.value.microsecond // 1000)
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #5
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "year"==name:
         return IntegerValue(self.value.year)
     elif "month"==name:
         return IntegerValue(self.value.month)
     elif "dayOfMonth"==name:
         return IntegerValue(self.value.day)
     elif "dayOfYear"==name:
         day = 1 + self.value.toordinal() - date(self.value.year,1,1).toordinal()
         return IntegerValue(day)
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #6
0
 def interpret(self, context):
     from prompto.value.IntegerValue import IntegerValue
     value = self.getValue(context).value
     toFind = context.getValue("value").value
     fromIndex = context.getValue("fromIndex").value
     index = value.index(toFind, fromIndex - 1)
     return IntegerValue(index + 1)
Пример #7
0
 def interpret(self, context):
     val = self.expression.interpret(context)
     if isinstance(val, IntegerValue):
         return IntegerValue(-val.IntegerValue())
     elif isinstance(val, DecimalValue):
         return DecimalValue(-val.DecimalValue())
     elif isinstance(val, PeriodValue):
         return val.inverse()
     else:
         raise SyntaxError("Illegal: - " + type(val).__name__)
Пример #8
0
 def IntDivide(self, context, value):
     from prompto.value.IntegerValue import IntegerValue
     if isinstance(value, IntegerValue):
         if value.IntegerValue() == 0.:
             raise DivideByZeroError()
         else:
             return IntegerValue(
                 int(self.IntegerValue() // value.IntegerValue()))
     else:
         raise SyntaxError("Illegal: Decimal / " + type(value).__name__)
Пример #9
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "count" == name:
         return IntegerValue(self.size())
     elif "keys" == name:
         res = set([TextValue(k) for k in self.value.keys()])
         return SetValue(TextType.instance, items=res)
     elif "values" == name:
         return ListValue(self.itype.itemType, items=self.value.values())
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #10
0
 def interpret(self, context):
     value = self.expression.interpret(context)
     if not isinstance(value, TupleValue):
         raise SyntaxError("Expecting a tuple expression, got " +
                           type(value).__name__)
     i = 1
     for name in self.names:
         item = value.getItem(context, IntegerValue(i))
         i += 1
         if context.getRegisteredValue(INamedInstance, name) is None:
             context.registerValue(Variable(name, item.itype))
         context.setValue(name, item)
     return None
Пример #11
0
 def interpret(self, context):
     value = self.expression.interpret(context)
     if value is not None:
         target = getTargetType(context, self.itype, self.mutable)
         if isinstance(value,
                       IntegerValue) and target == DecimalType.instance:
             value = DecimalValue(value.DecimalValue())
         elif isinstance(value,
                         DecimalValue) and target == IntegerType.instance:
             return IntegerValue(value.IntegerValue())
         elif target.isMoreSpecificThan(context, value.itype):
             value.itype = self.itype
     return value
Пример #12
0
 def interpret(self, context):
     value = self.expression.interpret(context)
     if value is not None and value != NullValue.instance:
         target = getTargetType(context, self.itype, self.mutable)
         if target != value.itype:
             if isinstance(value, IntegerValue) and target == DecimalType.instance:
                 value = DecimalValue(value.DecimalValue())
             elif isinstance(value, DecimalValue) and target == IntegerType.instance:
                 return IntegerValue(value.IntegerValue())
             elif value.itype.isAssignableFrom(context, target):
                 value.itype = self.itype
             elif not target.isAssignableFrom(context, value.itype):
                 raise SyntaxError("Cannot cast " + str(value.itype) + " to " + str(self.itype))
     return value
Пример #13
0
 def parseHexa(text):
     value = 0
     for c in text[2:]:
         value <<= 4
         if c >= '0' and c <= '9':
             value += (ord(c) - ord('0'))
         elif c >= 'a' and c <= 'f':
             value += (ord(c) - ord('a'))
         elif c >= 'A' and c <= 'F':
             value += 10 + (ord(c) - ord('A'))
         else:
             from prompto.error.InvalidValueError import InvalidValueError
             raise InvalidValueError(text + " is not a valid hexadecimal number")
     return IntegerValue(value)
Пример #14
0
 def interpretItemIteratorWithIndex(self, elemType, context):
     src = self.source.interpret(context)
     iterable = self.getIterable(context, src)
     i = 0
     for item in iterable:
         child = context.newChildContext()
         child.registerValue(TransientVariable(self.v2, elemType))
         child.setValue(self.v2, item)
         child.registerValue(
             TransientVariable(self.v1, IntegerType.instance))
         i += 1
         child.setValue(self.v1, IntegerValue(i))
         value = self.statements.interpret(child)
         if value is BreakResult.instance:
             break
         if value is not None:
             return value
     return None
Пример #15
0
 def getMemberValue(self, context, name, autoCreate=False):
     from prompto.value.IntegerValue import IntegerValue
     if "years" == name:
         return IntegerValue(self.years)
     elif "months" == name:
         return IntegerValue(self.months)
     elif "weeks" == name:
         return IntegerValue(self.weeks)
     elif "days" == name:
         return IntegerValue(self.days)
     elif "hours" == name:
         return IntegerValue(self.hours)
     elif "minutes" == name:
         return IntegerValue(self.minutes)
     elif "seconds" == name:
         return IntegerValue(self.seconds)
     elif "milliseconds" == name:
         return IntegerValue(self.millis)
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #16
0
 def readJSONField(self, context, node, parts):
     if node is None:
         return NullValue.instance
     elif isinstance(node, bool):
         return BooleanValue.ValueOf(node)
     elif isinstance(node, int):
         return IntegerValue(node)
     elif isinstance(node, float):
         return DecimalValue(node)
     elif isinstance(node, str):
         return TextValue(node)
     elif isinstance(node, list):
         raise Exception("list")
     elif isinstance(node, dict):
         raise Exception("dict")
     elif isinstance(node, object):
         raise Exception("object")
     else:
         raise Exception(str(type(node)))
Пример #17
0
def convert(obj):
    if obj is None:
        return NullValue.instance
    elif inspect.isgenerator(obj):
        return convert(list(obj))
    elif isinstance(obj, list):
        return convertList(obj)
    elif isinstance(obj, dict):
        return convertDocument(obj)
    elif isinstance(obj, int):
        return IntegerValue(obj)
    elif isinstance(obj, float):
        return DecimalValue(obj)
    elif isinstance(obj, bool):
        return BooleanValue(obj)
    elif isinstance(obj, str):
        return TextValue(obj)
    else:
        raise ReadWriteError("Cannot convert: " + type(obj).__name__)
Пример #18
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "count" == name:
         return IntegerValue(self.size())
     elif "keys" == name:
         res = set([TextValue(k) for k in self.values.keys()])
         return SetValue(TextType.instance, items=res)
     elif "values" == name:
         return ListValue(AnyType.instance, items=self.values.values())
     else:
         result = self.values.get(name, None)
         if result is not None:
             return result
         elif "text" == name:
             return TextValue(str(self))
         elif autoCreate:
             result = DocumentValue()
             self.values[name] = result
             return result
         else:
             return NullValue.instance
Пример #19
0
 def indexOfValue(self, value):
     idx = self.items.index(value)
     return NullValue.instance if idx < 0 else IntegerValue(idx + 1)
Пример #20
0
 def __init__(self):
     super(MaxIntegerLiteral, self).__init__("MAX_INTEGER", IntegerValue(pow(2, 63)))
Пример #21
0
 def __init__(self):
     super(MinIntegerLiteral, self).__init__("MIN_INTEGER", IntegerValue(-pow(2, 63) - 1))
Пример #22
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "count" == name:
         return IntegerValue(len(self.items))
     else:
         return super(BaseValueList, self).getMemberValue(context, name)
Пример #23
0
 def __init__(self, text, value = None):
     value = IntegerValue(int(text)) if value is None else value
     super(IntegerLiteral, self).__init__(text, value)
Пример #24
0
def toInteger(node):
    return IntegerValue(node)
Пример #25
0
 def convertPythonValueToPromptoValue(self, context, value, returnType):
     if isinstance(value, Number):
         from prompto.value.IntegerValue import IntegerValue
         return IntegerValue(long(value))
     else:
         return value  # TODO for now
Пример #26
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "count" == name:
         return IntegerValue(len(self.value))
     else:
         return super().getMemberValue(context, name, autoCreate)
Пример #27
0
 def computeItem(self, index):
     result = self.low.IntegerValue() + index - 1
     if result > self.high.IntegerValue():
         raise IndexOutOfRangeError()
     return IntegerValue(result)
Пример #28
0
 def getMemberValue(self, context, name, autoCreate=False):
     if name == "count":
         return IntegerValue(self.size())
     else:
         return super(RangeValue,
                      self).getMemberValue(context, name, autoCreate)
Пример #29
0
 def getMemberValue(self, context, name, autoCreate=False):
     if "codePoint" == name:
         return IntegerValue(ord(self.value))
     else:
         return super(CharacterValue,
                      self).getMemberValue(context, name, autoCreate)
Пример #30
0
 def getIterator(self, context):
     size = self.size()
     index = 1
     while index <= size:
         yield self.getItem(context, IntegerValue(index))
         index += 1