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:
- Parents:
CodeExecutable
- Children: none
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 | ||
🔷 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:
- JSON-LD
- JSON Schema
- Python class
CodeExpression
- Rust struct
CodeExpression
- TypeScript class
CodeExpression
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
.