Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More documentation fixes #560

Merged
132 commits merged into from
Dec 19, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
0409bbf
removed the $ symbol from all bash commands
bsuryadevara Oct 11, 2022
a608298
Remove exclamation, and morpheus owns the docs
dagardner-nv Dec 2, 2022
74648f9
Include readme's from examples in the source
dagardner-nv Dec 2, 2022
fcb6e9c
Non-owning
dagardner-nv Dec 2, 2022
296e5cd
Replace usage of words like 'see' and 'look' in documentation
dagardner-nv Dec 6, 2022
254126b
Remove explcit calls to pipeline.build, this is no longer needed
dagardner-nv Dec 6, 2022
6fbeda7
Replace unseen with previously undetected
dagardner-nv Dec 6, 2022
9dedfb8
The logs are anonymized
dagardner-nv Dec 6, 2022
530b40e
Merge branch 'branch-23.01' into david-23.01-docs
dagardner-nv Dec 6, 2022
94da28d
Update the github url for Morpheus
dagardner-nv Dec 6, 2022
20b8651
Use main branch
dagardner-nv Dec 6, 2022
5b4080b
Add a toc link to the code of conduct
dagardner-nv Dec 7, 2022
12f2008
Shorten the title
dagardner-nv Dec 7, 2022
2363ee0
Merge branch 'branch-23.01' into david-23.01-docs-reorg
dagardner-nv Dec 7, 2022
8619f53
Merge branch 'branch-23.01' into david-23.01-docs
dagardner-nv Dec 7, 2022
9b40ad2
Move most of the contents of README to a new file under docs/source
dagardner-nv Dec 7, 2022
1c9cc13
Add getting_started & contributing guides
dagardner-nv Dec 7, 2022
c76a083
Link to developer guides from readme, guides doc converted from rst t…
dagardner-nv Dec 7, 2022
73507f6
Merge branch 'branch-23.01' into david-23.01-docs
dagardner-nv Dec 7, 2022
e4f7ddc
Merge branch 'david-23.01-docs' of github.com:dagardner-nv/Morpheus i…
dagardner-nv Dec 7, 2022
9781e58
Merge branch 'david-23.01-docs' into david-23.01-docs-reorg
dagardner-nv Dec 7, 2022
56502e7
Replace NGC intro with a list of getting started docs
dagardner-nv Dec 7, 2022
d5b9310
wip
dagardner-nv Dec 7, 2022
f37ee41
Move the contributing symlink
dagardner-nv Dec 7, 2022
9b0a9d9
wip
dagardner-nv Dec 7, 2022
4cd561d
wip
dagardner-nv Dec 7, 2022
e1602a7
Replace smart quotes
dagardner-nv Dec 7, 2022
c96429a
Sphinx wants the section to be named 'Examples' and it wants the inte…
dagardner-nv Dec 8, 2022
dac60f7
The myst parser doesn't like 'yml' as an alias for 'yaml'
dagardner-nv Dec 8, 2022
e653d64
Fix links
dagardner-nv Dec 8, 2022
c5ac203
TODO was causing a parse error in sphinx
dagardner-nv Dec 8, 2022
764e01f
Fix formatting for docstrings
dagardner-nv Dec 8, 2022
2d66cd5
Fix what appears to be a cut-off docstring
dagardner-nv Dec 8, 2022
3266860
Merge branch 'branch-23.01' into david-23.01-docs-reorg
dagardner-nv Dec 8, 2022
0f52edf
Misc docstring fixes
dagardner-nv Dec 8, 2022
19b2ef0
Restructure symlinks for examples, preventing name conflicts and addi…
dagardner-nv Dec 8, 2022
62ecd75
Removed usage of buffer
bsuryadevara Dec 8, 2022
4df69fe
Merge branch 'branch-23.01' into 524-doc-remove-usage-of-buffer-stage…
bsuryadevara Dec 8, 2022
aa8d452
Removed usage of buffer
bsuryadevara Dec 8, 2022
8a48e62
Removed usage of buffer
bsuryadevara Dec 8, 2022
3f1e456
Update link to options reference
dagardner-nv Dec 8, 2022
38b56b6
Update docs list
dagardner-nv Dec 8, 2022
a1189ab
updated monitor throughput image
bsuryadevara Dec 8, 2022
b147b77
Morpheus is the name of the project, and Morpheus is an SDK so "Morph…
dagardner-nv Dec 8, 2022
fe3b3f8
Morpheus is just Morpheus, removing SDK and SDK client
dagardner-nv Dec 8, 2022
33ac925
Update our elevator pitch paragraph to the version in the README.md file
dagardner-nv Dec 9, 2022
6af4992
Add license to md files
dagardner-nv Dec 9, 2022
8a63ca6
wip
dagardner-nv Dec 9, 2022
6a46175
wip
dagardner-nv Dec 9, 2022
298dd0b
Markdown doesn't support a table-of-contents that is usable in the na…
dagardner-nv Dec 9, 2022
46e14c5
wip
dagardner-nv Dec 9, 2022
87d950c
Remove usage of 'see'
dagardner-nv Dec 9, 2022
39a7984
Merge branch 'branch-23.01' into david-docs-23.01-getting-started
dagardner-nv Dec 9, 2022
2e6a785
replace referneces to the quickstart guide
dagardner-nv Dec 9, 2022
9b744b1
resolved conflicts
bsuryadevara Dec 9, 2022
7040acb
wip
dagardner-nv Dec 9, 2022
14245ed
resolved conflicts
bsuryadevara Dec 9, 2022
cb4b7f6
Merge branch '524-doc-remove-usage-of-buffer-stage-from-examplesrst' …
dagardner-nv Dec 9, 2022
3572442
Move the basics/examples.rst under the main examples to avoid having …
dagardner-nv Dec 10, 2022
978d2a2
symlink to include basic usage
dagardner-nv Dec 10, 2022
a2bdcc4
Add link to images
dagardner-nv Dec 10, 2022
4ba6c27
Merge branch 'branch-23.01' into david-docs-23.01-getting-started
dagardner-nv Dec 10, 2022
43c6737
Moving to lfs
dagardner-nv Dec 10, 2022
9031598
Update path to basic usage lfs images
dagardner-nv Dec 10, 2022
870dd4c
Moving to lfs
dagardner-nv Dec 10, 2022
437d50f
A few more tweaks
dagardner-nv Dec 10, 2022
14a8e55
Move links to the examples, feature them as one of the top-level links
dagardner-nv Dec 10, 2022
2265f3d
Move the banner image into docs, and add it to the sphynx docs
dagardner-nv Dec 12, 2022
07493f7
Moving to lfs
dagardner-nv Dec 12, 2022
5ebc7c0
Restructure the table of contents and the main documentation table
dagardner-nv Dec 12, 2022
c2fe75b
Add a tidbit about our versioning
dagardner-nv Dec 12, 2022
f2e7a6b
Add a tidbit about how we assume the user can execute docker commands…
dagardner-nv Dec 12, 2022
82a9215
Move contributing to docs/source
dagardner-nv Dec 12, 2022
0d698f9
CONTRIBUTING.md is now a stub file referring to ./docs/source/develop…
dagardner-nv Dec 12, 2022
4f0849f
Fix rst links, remove colons, remove 'the best way...' sentence
dagardner-nv Dec 12, 2022
421ea77
Fetch lfs files for examples
dagardner-nv Dec 13, 2022
110769c
Replace html img tags with markdown tages, fixes sphinx rendering
dagardner-nv Dec 13, 2022
4b61869
Fix dependencies as we no longer support branchind deps
dagardner-nv Dec 13, 2022
a9d9393
Merge branch 'branch-23.01' into david-23.01-docs-reorg
dagardner-nv Dec 13, 2022
7af783e
Merge branch 'david-23.01-docs-reorg' into david-23.01-docs-sdk
dagardner-nv Dec 13, 2022
14d97b6
Merge branch 'david-23.01-docs-sdk' into david-docs-23.01-getting-sta…
dagardner-nv Dec 13, 2022
e84b324
Merge branch 'david-docs-23.01-getting-started' into david-docs-23.01…
dagardner-nv Dec 13, 2022
34932e2
Document StreamPair
dagardner-nv Dec 13, 2022
5f34604
Update docstring to relfect refactor of configs
dagardner-nv Dec 13, 2022
76854c3
Merge branch 'branch-23.01' into david-docs-23.01-restructure
dagardner-nv Dec 13, 2022
cb11e1e
Merge branch 'david-docs-23.01-restructure' into david-docs-23.01-checks
dagardner-nv Dec 13, 2022
15be05e
NVIDIA not Nvidia
dagardner-nv Dec 13, 2022
b3bca30
Fix casing, and add punctuation
dagardner-nv Dec 13, 2022
5e7f6c1
Fix linebreak
dagardner-nv Dec 13, 2022
d2b1b94
Feedback per Z setup when a verb is 'set up'
dagardner-nv Dec 13, 2022
480fdcb
Restructure sentence
dagardner-nv Dec 13, 2022
b32a9fe
Fix casing
dagardner-nv Dec 13, 2022
83f419d
Update docs/source/developer_guide/guides/2_real_world_phishing.md
dagardner-nv Dec 13, 2022
58e564b
Fix merge error
dagardner-nv Dec 13, 2022
e0a41e8
Merge branch 'david-docs-23.01-restructure' into david-docs-23.01-checks
dagardner-nv Dec 14, 2022
321765c
Add docstrings
dagardner-nv Dec 14, 2022
b9cef71
Replace absolute value with a relative percentage value fixes #543
dagardner-nv Dec 14, 2022
dc8a029
Fix type-o
dagardner-nv Dec 14, 2022
cdfe7ef
Fix type-o
dagardner-nv Dec 14, 2022
a77a2d9
Fix type-o
dagardner-nv Dec 14, 2022
b870242
wip
dagardner-nv Dec 14, 2022
44c7a45
NGC no longer contains the authoritative instructions on running morp…
dagardner-nv Dec 14, 2022
4d80a52
Fix type-o where 'DOCKER_IMAGE_TAG' was specified twice and make it c…
dagardner-nv Dec 14, 2022
91cfe6c
Move starting morpheus container to under the pre-built section since…
dagardner-nv Dec 14, 2022
a7a1b52
Update CLI output, namely the default kafka group_id is not longer cu…
dagardner-nv Dec 14, 2022
9055cb3
Add --runtime=nvidia flag, fixes the issue where a user has the Nvidi…
dagardner-nv Dec 14, 2022
d00f2be
Mount the socket file
dagardner-nv Dec 14, 2022
ea9dec4
Fix doxstring from apshield source
dagardner-nv Dec 14, 2022
8158c87
Merge branch 'branch-23.01' into david-docs-23.01-checks
dagardner-nv Dec 15, 2022
16b2526
Merge branch 'branch-23.01' into david-docs-23.01-checks
dagardner-nv Dec 15, 2022
de5bd0a
Fix merge error
dagardner-nv Dec 15, 2022
ae0b71a
MRC not SRF
dagardner-nv Dec 15, 2022
ad45ef4
MRC not SRF
dagardner-nv Dec 15, 2022
c99abb3
Update link to morpheus issues to use the /choose page, misc grammar …
dagardner-nv Dec 16, 2022
73876fa
Merge branch 'branch-23.01' into david-docs-23.01-checks-p2
dagardner-nv Dec 16, 2022
84cf3bf
When used as a verb 'set up' is two words. Third-party should be hyph…
dagardner-nv Dec 16, 2022
e143480
its not it's
dagardner-nv Dec 16, 2022
ee36f29
Grammar fix resulting from the SRF->MRC rename
dagardner-nv Dec 16, 2022
8dbc6a9
Misc cleanups
dagardner-nv Dec 16, 2022
b87da2b
wip
dagardner-nv Dec 16, 2022
59ea415
misc cleanups
dagardner-nv Dec 16, 2022
1732f61
misc cleanups
dagardner-nv Dec 16, 2022
e5a3dce
misc cleanups
dagardner-nv Dec 16, 2022
db7e9ff
wip
dagardner-nv Dec 16, 2022
3517744
wip
dagardner-nv Dec 16, 2022
67b17c4
Remove usage of boost since Morpheus pipelines now only use threads
dagardner-nv Dec 16, 2022
b389a53
Fix paths
dagardner-nv Dec 16, 2022
4ba6dfc
Formatting fixes
dagardner-nv Dec 16, 2022
4eb866d
Update docs to reflect that Morpheus stages no longer execute in fibers
dagardner-nv Dec 16, 2022
8bf46af
Make clear the working dir
dagardner-nv Dec 17, 2022
e1c7316
Stage singular, thanks Chris
dagardner-nv Dec 19, 2022
88f50a4
Update docs/source/developer_guide/guides/5_digital_fingerprinting.md
dagardner-nv Dec 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/source/cloud_deployment_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ kubectl -n $NAMESPACE exec -it deploy/mlflow -- bash
`Important`: When (mlflow) is present, commands are directly within the container.

First let's examine the syntax of the commands we will be using to communicate with the MLflow Triton plugin before we start deploying models.
Publish models to MLflow server looks like:
Publish models to MLflow server is in the form of:

```bash
(mlflow) root@mlflow-6d98:/mlflow# python publish_model_to_mlflow.py \
Expand Down Expand Up @@ -415,7 +415,7 @@ Refer to the [Using Morpheus to Run Pipelines](#using-morpheus-to-run-pipelines)
- Replace **<YOUR_RELEASE_NAME>** with the name you want.


For reference, the Morpheus SDK Client install pipeline command template is provided. Let's take a closer look at this when running [example workflows](#example-workflows), but for now, let's proceed to the next step.
For reference, the Morpheus SDK Client install pipeline command template is provided. We will examine this further in the [example workflows](#example-workflows) section, but for now, let's proceed to the next step.

```bash
helm install --set ngc.apiKey="$API_KEY" \
Expand Down Expand Up @@ -788,7 +788,7 @@ For more information on how to use the Morpheus CLI to customize and run your ow


## Troubleshooting
This section lists solutions to problems you might encounter with Morpheus or from it's supporting components.
This section lists solutions to problems you might encounter with Morpheus or from its supporting components.

### Common Problems

Expand Down
22 changes: 11 additions & 11 deletions docs/source/developer_guide/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Contributions to Morpheus fall into the following three categories.
2. To propose and implement a new Feature, please file a new feature request
[issue](https://github.com/nv-morpheus/Morpheus/issues/new/choose). Describe the
intended feature and discuss the design and implementation with the team and
community. Once the team agrees that the plan looks good, go ahead and
community. Once the team agrees that the plan is good, go ahead and
implement it, using the [code contributions](#code-contributions) guide below.
3. To implement a feature or bug-fix for an existing outstanding issue, please
follow the [code contributions](#code-contributions) guide below. If you
Expand All @@ -42,7 +42,7 @@ More information can be found at: [Contributor Code of Conduct](CODE_OF_CONDUCT.

### Your first issue

1. Find an issue to work on. The best way is to look for issues with the [good first issue](https://github.com/nv-morpheus/Morpheus/issues) label.
1. Find an issue to work on. The best way is to search for issues with the [good first issue](https://github.com/nv-morpheus/Morpheus/issues) label.
2. Comment on the issue stating that you are going to work on it.
3. Code! Make sure to update unit tests! Ensure the [license headers are set properly](#Licensing).
4. When done, [create your pull request](https://github.com/nv-morpheus/Morpheus/compare).
Expand All @@ -53,15 +53,15 @@ Remember, if you are unsure about anything, don't hesitate to comment on issues

### Seasoned developers

Once you have gotten your feet wet and are more comfortable with the code, you can look at the prioritized issues for our next release in our [project boards](https://github.com/nv-morpheus/Morpheus/projects).
Once you have gotten your feet wet and are more comfortable with the code, you can review the prioritized issues for our next release in our [project boards](https://github.com/nv-morpheus/Morpheus/projects).

> **Pro Tip:** Always look at the release board with the highest number for issues to work on. This is where Morpheus developers also focus their efforts.
> **Pro Tip:** Always review the release board with the highest number for issues to work on. This is where Morpheus developers also focus their efforts.

Look at the unassigned issues, and find an issue to which you are comfortable contributing. Start with _Step 2_ above, commenting on the issue to let others know you are working on it. If you have any questions related to the implementation of the issue, ask them in the issue instead of the PR.
Review the unassigned issues, and find an issue to which you are comfortable contributing. Start with _Step 2_ above, commenting on the issue to let others know you are working on it. If you have any questions related to the implementation of the issue, ask them in the issue instead of the PR.

## Building from Source

The following instructions are for developers who are getting started with the Morpheus repository. The Morpheus development environment is flexible (Docker, Conda and bare metal workflows) but has a high number of dependencies that can be difficult to setup. These instructions outline the steps for setting up a development environment inside a Docker container or on a host machine with Conda.
The following instructions are for developers who are getting started with the Morpheus repository. The Morpheus development environment is flexible (Docker, Conda and bare metal workflows) but has a high number of dependencies that can be difficult to set up. These instructions outline the steps for setting up a development environment inside a Docker container or on a host machine with Conda.

All of the following instructions assume several variables have been set:
- `MORPHEUS_ROOT`: The Morpheus repository has been checked out at a location specified by this variable. Any non-absolute paths are relative to `MORPHEUS_ROOT`.
Expand Down Expand Up @@ -106,7 +106,7 @@ This workflow utilizes a Docker container to set up most dependencies ensuring a
```
1. Note: When debugging Python code, you just need to add `ci/conda/recipes/python-dbg/source` to your debugger's
source path.
1. Once created, you will be able to introspect Python objects from within GDB. For example, if we were to break within a generator setup call and examine its PyFrame_Object `f`, it might look like this:
1. Once created, you will be able to introspect Python objects from within GDB. For example, if we were to break within a generator setup call and examine its PyFrame_Object `f`, it might be similar to:
```shell
#4 0x000056498ce685f4 in gen_send_ex (gen=0x7f3ecc07ad40, arg=<optimized out>, exc=<optimized out>, closing=<optimized out>) at Objects/genobject.c:222
(gdb) pyo f
Expand Down Expand Up @@ -178,7 +178,7 @@ Note: These instructions assume the user is using `mamba` instead of `conda` sin

- **Note:** `mamba` should only be installed once in the base environment

1. Setup env variables and clone the repo:
1. Set up env variables and clone the repo:
```bash
export PYTHON_VER=3.8
export RAPIDS_VER=22.08
Expand Down Expand Up @@ -255,7 +255,7 @@ Launching a full production Kafka cluster is outside the scope of this project.
- "0.0.0.0::9092"
```
This will prevent the containers from attempting to map IPv6 ports.
1. Change the value of `KAFKA_ADVERTISED_HOST_NAME` to match the value of the `KAFKA_ADVERTISED_HOST_NAME` environment variable from the previous step. For example, the line should look like:
1. Change the value of `KAFKA_ADVERTISED_HOST_NAME` to match the value of the `KAFKA_ADVERTISED_HOST_NAME` environment variable from the previous step. For example, the line should be similar to:

```yaml
environment:
Expand Down Expand Up @@ -383,8 +383,8 @@ Morpheus is licensed under the Apache v2.0 license. All new source files includi
*/
```

### Thirdparty code
Thirdparty code included in the source tree (that is not pulled in as an external dependency) must be compatible with the Apache v2.0 license and should retain the original license along with a url to the source. If this code is modified, it should contain both the Apache v2.0 license followed by the original license of the code and the url to the original code.
### Third-party code
Third-party code included in the source tree (that is not pulled in as an external dependency) must be compatible with the Apache v2.0 license and should retain the original license along with a url to the source. If this code is modified, it should contain both the Apache v2.0 license followed by the original license of the code and the url to the original code.

Ex:
```
Expand Down
12 changes: 6 additions & 6 deletions docs/source/developer_guide/guides/1_simple_python_stage.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ limitations under the License.

## Background

Morpheus makes use of the MRC graph-execution framework. Morpheus pipelines are built on top of MRC pipelines. Pipelines in MRC are made up of segments; however, in many common cases, a MRC pipeline will consist of only a single segment. Our Morpheus stages will interact with the MRC segment to build nodes and add them to the MRC graph. In the common case, a Morpheus stage will add a single node to the graph, but in some cases it will add multiple nodes to the graph.
Morpheus makes use of the MRC graph-execution framework. Morpheus pipelines are built on top of MRC pipelines, which are comprised of collections of nodes and edges, called segments (think sub-graphs), which can in turn be connected by ingress/egress ports. In many common cases, an MRC pipeline will consist of only a single segment. Our Morpheus stages interact with the MRC segment to define, build, and add nodes to the MRC graph; the stages themselves can be thought of as packaged units of work to be applied to data flowing through the pipeline. These work units comprising an individual Morpheus stage may consist of a single MRC node, a small collection of nodes, or an entire MRC subgraph.

## The Pass Through Stage

Expand Down Expand Up @@ -54,7 +54,7 @@ There are four methods that need to be defined in our new subclass to implement
return "pass-thru"
```

The `accepted_types` method returns a tuple of message classes that this stage accepts as valid inputs. Morpheus uses this to validate that the parent of this stage emits a message that this stage can accept. Since our stage is a pass through, we will declare that we can accept any incoming message type. Note that production stages will often declare only a single Morpheus message class such as `MessageMeta` or `MultiMessage` (refer to the message classes defined in `morpheus.pipeline.messages` for a complete list).
The `accepted_types` method returns a tuple of message classes that this stage is able to accept as input. Morpheus uses this to validate that the parent of this stage emits a message that this stage can accept. Since our stage is a pass through, we will declare that we can accept any incoming message type. Note that production stages will often declare only a single Morpheus message class such as `MessageMeta` or `MultiMessage` (refer to the message classes defined in `morpheus.pipeline.messages` for a complete list).
```python
def accepted_types(self) -> typing.Tuple:
return (typing.Any,)
Expand All @@ -66,14 +66,14 @@ The `supports_cpp_node` method returns a boolean indicating if the stage has a C
return False
```

Our `on_data` method accepts the incoming message and returns a message. The returned message can be the same message instance that we received as our input or it could be a new message instance. The method is named `on_data` by convention; however, it is not part of the API. In the next section, we will register it as a callback in Morpheus.
Our `on_data` method accepts an incoming message and returns a message. The returned message can be the same message instance that we received as our input or it could be a new message instance. The method is named `on_data` by convention; however, it is not part of the API. In the next section, we will register it as a callback in Morpheus.
```python
def on_data(self, message: typing.Any):
# Return the message for the next stage
return message
```

Finally, the `_build_single` method will be used at build time to wire our stage into the pipeline. `_build_single` receives an instance of the MRC pipeline segment along with a `StreamPair` instance. We will be using the segment instance to build a node from our stage and add it to the pipeline segment. The `StreamPair` argument is a tuple; the first element is our parent node, and the second is our parent node's output type. The return type of this method is also a `StreamPair`. Typically, we will be returning our newly constructed node along with our output type.
Finally, the `_build_single` method will be used at stage build time to construct our node and wire it into the pipeline. `_build_single` receives an instance of an MRC segment builder (`mrc.Builder`) along with a `StreamPair` instance, which is a tuple consisting of our parent node and its output type. We will be using the builder instance to construct a node from our stage and connecting it to the Morpheus pipeline. The return type of `_build_single` is also a `StreamPair` which will be comprised of our node along with its data type.
```python
def _build_single(self, builder: mrc.Builder, input_stream: StreamPair) -> StreamPair:
node = builder.make_node(self.unique_name, self.on_data)
Expand All @@ -82,7 +82,7 @@ Finally, the `_build_single` method will be used at build time to wire our stage
return node, input_stream[1]
```

In most cases, a Morpheus stage will define and build a single MRC node. In some advanced cases, a stage can construct more than one node. For our purposes, a Morpheus _stage_ defines information about the type of node(s) it builds, while the _node_ is the instance of the stage that is wired into the MRC pipeline. To build the node, we will call the `make_node` method of the segment instance, passing to it our name and our `on_data` method. We used the `unique_name` property, which will take the name property which we already defined and append a unique id to it.
For our purposes, a Morpheus _stage_ defines the input data type the stage will accept, the unit of work to be performed on that data, and the output data type. In contrast each individual node or nodes comprising a _stage_'s unit of work are wired into the underlying MRC execution graph. To build the node, we will call the `make_node` method of the builder instance, passing it our `unique_name` and `on_data` methods. We used the `unique_name` property, which will take the `name` property which we already defined and append a unique id to it.
```python
node = builder.make_node(self.unique_name, self.on_data)
```
Expand Down Expand Up @@ -137,7 +137,7 @@ class PassThruStage(SinglePortStage):

## Testing our new Stage
To start testing our new pass through stage, we are going to construct a simple pipeline and add our new stage to it. This pipeline will do the minimum work necessary to verify our pass through stage. Data will flow through our simple pipeline as follows:
1. A source stage will produce data and inject it into the pipeline.
1. A source stage will produce data and emit it into the pipeline.
1. This data will be read and processed by our pass through stage, in this case simply forwarding on the data.
1. A monitoring stage will record the messages from our pass through stage and terminate the pipeline.

Expand Down
Loading