Nokome Bentley3 min read

Code Expression

An executable code expression.

Note that CodeExpression nodes lack the executionPure property that CodeChunk nodes have because they should be side-effect free.

Properties

The CodeExpression type has these properties:

Name Description Type Inherited from JSON-LD @id Aliases
id The identifier for this item. String Entity schema:id -
executionMode Under which circumstances the code should be executed. ExecutionMode - stencila:executionMode execution-mode, execution_mode
compilationDigest A digest of the content, semantics and dependencies of the node. CompilationDigest Executable stencila:compilationDigest compilation-digest, compilation_digest
compilationMessages Messages generated while compiling the code. CompilationMessage* Executable stencila:compilationMessages compilation-messages, compilation_messages, compilationMessage, compilation-message, compilation_message
executionDigest The compilationDigest of the node when it was last executed. CompilationDigest Executable stencila:executionDigest execution-digest, execution_digest
executionDependencies The upstream dependencies of this node. ExecutionDependency* Executable stencila:executionDependencies execution-dependencies, execution_dependencies, executionDependency, execution-dependency, execution_dependency
executionDependants The downstream dependants of this node. ExecutionDependant* Executable stencila:executionDependants execution-dependants, execution_dependants, executionDependant, execution-dependant, execution_dependant
executionTags Tags in the code which affect its execution. ExecutionTag* Executable stencila:executionTags execution-tags, execution_tags, executionTag, execution-tag, execution_tag
executionCount A count of the number of times that the node has been executed. Integer Executable stencila:executionCount execution-count, execution_count
executionRequired Whether, and why, the code requires execution or re-execution. ExecutionRequired Executable stencila:executionRequired execution-required, execution_required
executionStatus Status of the most recent, including any current, execution. ExecutionStatus Executable stencila:executionStatus execution-status, execution_status
executionInstance The id of the kernel instance that performed the last execution. String Executable stencila:executionInstance execution-instance, execution_instance
executionEnded The timestamp when the last execution ended. Timestamp Executable stencila:executionEnded execution-ended, execution_ended
executionDuration Duration of the last execution. Duration Executable stencila:executionDuration execution-duration, execution_duration
executionMessages Messages emitted while executing the node. ExecutionMessage* Executable stencila:executionMessages execution-messages, execution_messages, executionMessage, execution-message, execution_message
code The code. Cord CodeExecutable stencila:code -
programmingLanguage The programming language of the code. String - schema:programmingLanguage programming-language, programming_language
executionBounds The environment in which code should be executed. ExecutionBounds CodeExecutable stencila:executionBounds execution-bounds, execution_bounds
executionBounded The execution bounds, if any, on the last execution. ExecutionBounds CodeExecutable stencila:executionBounded execution-bounded, execution_bounded
authors The authors of the executable code. Author* CodeExecutable schema:author author
provenance A summary of the provenance of the code. ProvenanceCount* CodeExecutable stencila:provenance -
output The value of the expression when it was last evaluated. Node - stencila:output -

Related

The CodeExpression type is related to these types:

Formats

The CodeExpression type can be encoded (serialized) to, and/or decoded (deserialized) from, these formats:

Format Encoding Decoding Support Notes
DOM HTML 🟢 No loss
HTML 🔷 Low loss
JATS 🔷 Low loss 🔷 Low loss Encoded as <code>
Markdown 🔷 Low loss 🔷 Low loss Encoded using implemented function
Stencila Markdown 🔷 Low loss 🔷 Low loss
Quarto Markdown 🔷 Low loss 🔷 Low loss
MyST Markdown 🔷 Low loss 🔷 Low loss
LLM Markdown 🔷 Low loss 🔷 Low loss
LaTeX 🔷 Low loss 🔷 Low loss
PDF 🔷 Low loss
Plain text ⚠️ High loss
IPYNB 🔷 Low loss 🔷 Low loss
Microsoft Word DOCX 🔷 Low loss 🔷 Low loss
OpenDocument ODT 🔷 Low loss 🔷 Low loss
TeX 🔷 Low loss 🔷 Low loss
JSON 🟢 No loss 🟢 No loss
JSON+Zip 🟢 No loss 🟢 No loss
JSON5 🟢 No loss 🟢 No loss
JSON-LD 🟢 No loss 🟢 No loss
CBOR 🟢 No loss 🟢 No loss
CBOR+Zstandard 🟢 No loss 🟢 No loss
YAML 🟢 No loss 🟢 No loss
Lexical JSON 🔷 Low loss 🔷 Low loss
Koenig JSON 🔷 Low loss 🔷 Low loss
Pandoc AST 🔷 Low loss 🔷 Low loss
Directory
Stencila Web Bundle
Debug 🔷 Low loss

Bindings

The CodeExpression type is represented in:

Testing

During property-based (a.k.a generative) testing, the properties of the CodeExpression type are generated using the following strategies for each complexity level. Any optional properties that are not in this table are set to None.

Property Complexity Description Strategy
code Min+ Generate a simple fixed string of code. Cord::from("code")
Low+ Generate a random string of up to 10 alphanumeric characters (excludes whitespace whichcan be problematic in Markdown). r"[a-zA-Z0-9]{1,10}".prop_map(Cord::from)
High+ Generate a random string of up to 100 characters (excluding control characters). r"[^\p{C}]{1,100}".prop_map(Cord::from)
Max Generate an arbitrary string. String::arbitrary().prop_map(Cord::from)

Source

This documentation was generated from CodeExpression.yaml by docs_types.rs.