Version History
This page contains notable changes that affect the API with more details than provided by the changelogs.
v0.8.2
Added methods to extract related elements without clearing their subtrees:
While these methods will return the extracted element as an orphan which allows it to be reparented, they still do not allow the element to be moved to another document.
Added
experimental_quantitiesoption toCompiler.evaluateandCompiler.evaluate_feature.Added
pydevdplugin for custom debugger visualizers which greatly improves debugging experience by eagerly evaluatingLazyIteratorand hiding internal methods. More visualizers to come in future releases.Added automatic crash upload which is enabled by default. While this will allow us to receive and act upon crashes faster, it can be disabled with
debug.set_crash_report_upload(False).Labs Added
json.loadsoverload for project loading that will attempt to resolve references similarly toload_model.
v0.8.1
Added missing
environmentarguments topreview.open_modelandpreview.open_model_unlocked. This allows existing models to be used as dependencies.
v0.8.0
Version v0.8.0 updates SysML support including changes from:
Most notable changes:
Removed implicit
SubjectMembershipsandObjectiveMembershipsfromrequirementsandcases.Feature.is_constantreplacesFeature.is_read_only.Added
Feature.is_variable.Added
ConstructorExpressionswhich replaceInvocationExpressionsthat invoke non-Step, non-Behaviortypes. While the syntax is similar with former needing anewkeyword prefix, parse trees are different:attribute x = Type(2);
Namespace [0, 0] - [1, 0] children: OwningMembership [0, 0] - [0, 22] target: AttributeUsage [0, 0] - [0, 22] attribute [0, 0] - [0, 9] declared_name: NAME [0, 10] - [0, 11] value: FeatureValue [0, 12] - [0, 21] = [0, 12] - [0, 13] target: InvocationExpression [0, 14] - [0, 21] children: Membership [0, 14] - [0, 18] target: TypeReference [0, 14] - [0, 18] parts: NAME [0, 14] - [0, 18] ( [0, 18] - [0, 19] children: ParameterMembership [0, 19] - [0, 20] target: Feature [0, 19] - [0, 20] value: FeatureValue [0, 19] - [0, 20] target: LiteralInteger [0, 19] - [0, 20] literal: DECIMAL_VALUE [0, 19] - [0, 20] ) [0, 20] - [0, 21] ; [0, 21] - [0, 22]attribute x = new Type(2);
Namespace [0, 0] - [1, 0] children: OwningMembership [0, 0] - [0, 26] target: AttributeUsage [0, 0] - [0, 26] attribute [0, 0] - [0, 9] declaredName: NAME [0, 10] - [0, 11] value: FeatureValue [0, 12] - [0, 25] = [0, 12] - [0, 13] target: ConstructorExpression [0, 14] - [0, 25] new [0, 14] - [0, 17] children: Membership [0, 18] - [0, 22] target: TypeReference [0, 18] - [0, 22] parts: NAME [0, 18] - [0, 22] children: ReturnParameterMembership [0, 22] - [0, 25] target: Feature [0, 22] - [0, 25] ( [0, 22] - [0, 23] children: ParameterMembership [0, 23] - [0, 24] target: Feature [0, 23] - [0, 24] value: FeatureValue [0, 23] - [0, 24] target: LiteralInteger [0, 23] - [0, 24] literal: DECIMAL_VALUE [0, 23] - [0, 24] ) [0, 24] - [0, 25] ; [0, 25] - [0, 26]Note that the type constructed by
ConstructorExpressionis now amemberinNamespace.children, and arguments are parsed into areturnFeature.Renamed some classes, and related
snaked_casedattribute names:ItemFeaturerenamed toPayloadFeature,item_featuretopayload_feature.ItemFlowrenamed toFlow,item_flowtoflow.FlowConnectionUsageandFlowConnectionDefinitionrenamed toFlowUsageandFlowDefinitionrespectively,flow_connectiontoflow.
Removed
FeaturingandLifeClasstypes - these were not representable in textual syntax anyway, butFeatureMembershipandTypeFeaturinglost inherited members fromFeaturing.MetadataAccessExpression.set_referenced_elementwas fixed in the specification to be referenced throughMembership, available throughMetadataAccessExpression.referenced_element.Added
Element.path, and extended deterministic element ID generation to user models. However, also note:Element.pathdoes not yet work for elements withoutqualified_namedue to performance concerns. This should be fixed in a future release.User element ID generation may be changed in a future version if we can improve performance.
Added previously missed standard attributes:
Element.alias_ids(currently a view into an empty container only)
Other non-model changes include:
Increased default
PrinterConfig.line_widthto 100 from 80 to matchrustfmtand produce fewer line breaks, this works better with modern monitors.Improved deserialization to defer unresolved references without
@uriinstead of emitting an error. Unresolved owned elements still emit errors.
v0.7.2
Added:
v0.6.4
Added
print_referencesoption to print references withsexp
v0.6.3
Added constructor methods
from_...toDocumentSegment
v0.6.0
Initial public release.