Introduce the 'Value' type, which is returned as the result of an expression's computation. This change follows from https://github.com/vaticle/typeql/pull/260, which outlines the capabilities of the new expression syntax.
Values (representing any of Long, Double, Boolean, String, or DateTime) are returned as part of ConceptMap answers and are subtypes of Concept for the time being. Their main API is made of the .get_value() method and .get_value_vype() method, along with all the standard safe downcasting methods to convert a Concept into a Value, using Concept.is_value() and Concept.as_value().
We also move the import location of ValueType from attribute_type.py to concept.py.
What are the changes implemented in this PR?
Introduces the Value concept and the required ValueImpl that implements it
Refactor ValueType to no longer live within AttributeType - now it exists in Concept.ValueType
Updates the test framework for tests involving values, including the new ExpressionTest behaviour scenarios, which we also add to CI
What is the goal of this PR?
Introduce the 'Value' type, which is returned as the result of an expression's computation. This change follows from https://github.com/vaticle/typeql/pull/260, which outlines the capabilities of the new expression syntax.
Values (representing any of Long, Double, Boolean, String, or DateTime) are returned as part of
ConceptMap
answers and are subtypes ofConcept
for the time being. Their main API is made of the.get_value()
method and.get_value_vype()
method, along with all the standard safe downcasting methods to convert aConcept
into aValue
, usingConcept.is_value()
andConcept.as_value()
.We also move the import location of
ValueType
fromattribute_type.py
toconcept.py
.What are the changes implemented in this PR?
Value
concept and the requiredValueImpl
that implements itValueType
to no longer live withinAttributeType
- now it exists inConcept.ValueType
ExpressionTest
behaviour scenarios, which we also add to CI