removed ... ModuleItem::Calculator since why does it even exist

selene 2025-12-31 02:17:19 +01:00
parent 65da24b558
commit d130863a46
Signed by: sel
SSH key fingerprint: SHA256:33R/4Rx5Lu4o81LyJyXdMrmP5CJ6j7j1Soo0Dn7mKc0
2 changed files with 4 additions and 20 deletions

@ -16,14 +16,6 @@ validators take one [object instance](object.md#instances), and output a `Result
for referencing validators, the following syntax is used: `{object_type}:func:validator` for referencing validators, the following syntax is used: `{object_type}:func:validator`
## `... ModuleItem::Calculator`
calculators take one [object instance](object.md#instances), and output one object instance, which *should* be of the same `object_type`.
calculators are used by wgu to modify an object instance, most often by populating properties under `local` and `remote`.
for referencing calculators, the following syntax is used: `{object_type}:func:{name}`
## `... ModuleItem::Function` ## `... ModuleItem::Function`
functions take hashmaps of named object instances as inputs (and parameters), and output another hashmap of named object instances. functions take hashmaps of named object instances as inputs (and parameters), and output another hashmap of named object instances.

@ -6,9 +6,7 @@ core object data is categorized into three categories, `input`, `local`, and `re
the keys in object instances are generally referred to as **properties**. the keys in object instances are generally referred to as **properties**.
> a **big** pitfall early on is confusing the properties `variant` with `input.variant` > **a big pitfall early on is confusing the properties `variant` with `input.variant`.** `variant` is for differentiating between multiple object instances with the same `input_sha256`, while `input.variant` is most often used for defining multiple structures inside one object, when it can represent multiple things (the best example of that is `meta/connection`)
>
> `variant` is for differentiating between multiple object instances with the same `input_sha256`, while `input.variant` is most often used for defining multiple structures inside one object, when it can represent multiple things (the best example of that is `meta/connection`)
for referencing object instances, the properties `input_sha256` and `variant` are used, separated by a `+` (plus) symbol. to refer to a property within an object: for referencing object instances, the properties `input_sha256` and `variant` are used, separated by a `+` (plus) symbol. to refer to a property within an object:
@ -45,8 +43,6 @@ below are the columns of the table `objects` in wgu's sqlite database. these cat
### timestamps ### timestamps
> **under construction**
>
> **this section needs more expansion!** you can contribute by documenting how this feature or module operates in the latest available version (also check for pull requests that would change that) > **this section needs more expansion!** you can contribute by documenting how this feature or module operates in the latest available version (also check for pull requests that would change that)
| property | transforms | subobjects | conditions | duplicates | value | | property | transforms | subobjects | conditions | duplicates | value |
@ -72,8 +68,6 @@ below are the columns of the table `objects` in wgu's sqlite database. these cat
### logs ### logs
> **under construction**
>
> **this section needs more expansion!** you can contribute by documenting how this feature or module operates in the latest available version (also check for pull requests that would change that) > **this section needs more expansion!** you can contribute by documenting how this feature or module operates in the latest available version (also check for pull requests that would change that)
| property | transforms | subobjects | conditions | duplicates | value | | property | transforms | subobjects | conditions | duplicates | value |
@ -105,8 +99,6 @@ objects can have parent-child relationships with other objects as defined in the
- `social/discord.message` is a subobject of `social/discord.channel` and `social/discord.thread` - `social/discord.message` is a subobject of `social/discord.channel` and `social/discord.thread`
- `web/github.repository` is a subobject of `web/github.user` and `web/github.organization` - `web/github.repository` is a subobject of `web/github.user` and `web/github.organization`
subobjects are not object instances nested within each other! it's simply a parent-child relationship between two first-class sovereign objects
similarly to [transforms](#transforms), subobjects are defined in the [template of the parent object](#subobjects-1), along with the shared property (most commonly an identifier). this shared property must have the same [outgoing transforms](#transforms-1) in both the child and parent object. similarly to [transforms](#transforms), subobjects are defined in the [template of the parent object](#subobjects-1), along with the shared property (most commonly an identifier). this shared property must have the same [outgoing transforms](#transforms-1) in both the child and parent object.
## templates ## templates
@ -139,13 +131,13 @@ which then looks like this in the documentation:
> see also: [transforms](#transforms) in general > see also: [transforms](#transforms) in general
array of template types and their properties under `input` that this property transforms to, separated by a `:` (colon) symbol array of object types and their properties under `input` that this property transforms to, separated by a `:` (colon) symbol
### `subobjects` ### `subobjects`
> see also: [subobjects](#subobjects) in general > see also: [subobjects](#subobjects) in general
array of templates and their properties under `input` that this property matches the [outgoing transforms](#transforms-1) of array of objects and their properties under `input` that this property matches the [outgoing transforms](#transforms-1) of, separated by a `:` (colon) symbol
### `conditions` ### `conditions`
@ -175,4 +167,4 @@ conditions = [
boolean indicating if this property can be duplicated. boolean indicating if this property can be duplicated.
if `true`, it will use an array when represented in json. it can only contain properties specified in `transforms`. when used as transform destinations, duplicable properties add the source property's value to the first (0th) position, and the remaining positions can be filled later by [calculators](modularity.md#calculator). if `true`, the property will be an array when represented in json. this array can contain properties specified in `transforms`. when used as transform destinations, duplicable properties add the source property's value to the first (0th) position, and the remaining positions can be filled later by [calculators](modularity.md#calculator).