canvas 0.1.10__tar.gz → 0.1.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of canvas might be problematic. Click here for more details.
- {canvas-0.1.10 → canvas-0.1.12}/PKG-INFO +1 -1
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/main.py +38 -1
- {canvas-0.1.10 → canvas-0.1.12}/pyproject.toml +1 -1
- {canvas-0.1.10 → canvas-0.1.12}/README.md +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/auth/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/auth/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/auth/utils.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/logs/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/logs/logs.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/plugin/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/plugin/plugin.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/apps/plugin/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/conftest.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/templates/plugins/default/cookiecutter.json +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/CANVAS_MANIFEST.json +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/README.md +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/protocols/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/protocols/my_protocol.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/context/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/context/context.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/context/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/print/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/print/print.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/print/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/urls/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/urls/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/urls/urls.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/validators/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/validators/manifest_schema.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/validators/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_cli/utils/validators/validators.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/base.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/assess.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/diagnose.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/goal.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/history_present_illness.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/medication_statement.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/plan.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/prescribe.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/questionnaire.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/reason_for_visit.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/stop_medication.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/commands/update_goal.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/constants.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/tests/test_utils.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/commands/tests/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/data/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/effects/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/effects/banner_alert/banner_alert.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/effects/banner_alert/constants.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/effects/base.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/events/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/protocols/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/protocols/base.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/tests/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/utils/__init__.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/utils/http.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/utils/tests.py +0 -0
- {canvas-0.1.10 → canvas-0.1.12}/canvas_sdk/views/__init__.py +0 -0
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import importlib.metadata
|
|
2
|
+
import json
|
|
3
|
+
import random
|
|
2
4
|
from pathlib import Path
|
|
3
|
-
from typing import Optional
|
|
5
|
+
from typing import Annotated, Optional
|
|
4
6
|
|
|
7
|
+
import grpc
|
|
5
8
|
import typer
|
|
6
9
|
|
|
7
10
|
from canvas_cli.apps import plugin
|
|
8
11
|
from canvas_cli.apps.logs import logs as logs_command
|
|
9
12
|
from canvas_cli.utils.context import context
|
|
13
|
+
from generated.messages.events_pb2 import Event as PluginRunnerEvent
|
|
14
|
+
from generated.messages.events_pb2 import EventType as PluginRunnerEventType
|
|
15
|
+
from generated.services.plugin_runner_pb2_grpc import PluginRunnerStub
|
|
10
16
|
|
|
11
17
|
APP_NAME = "canvas_cli"
|
|
12
18
|
|
|
@@ -51,6 +57,37 @@ def get_or_create_config_file() -> Path:
|
|
|
51
57
|
return config_path
|
|
52
58
|
|
|
53
59
|
|
|
60
|
+
@app.command()
|
|
61
|
+
def emit(
|
|
62
|
+
event_fixture: str,
|
|
63
|
+
plugin_runner_port: Annotated[
|
|
64
|
+
str, typer.Option(help="Port of your locally running plugin runner")
|
|
65
|
+
] = "50051",
|
|
66
|
+
) -> None:
|
|
67
|
+
"""
|
|
68
|
+
Grab an event from a fixture file and send it your locally running plugin-runner process.
|
|
69
|
+
Any resultant effects will be printed.
|
|
70
|
+
|
|
71
|
+
Valid fixture files are newline-delimited JSON, with each containing the keys `EventType`, `target`, and `context`. Some fixture files are included in the canvas-plugins repo.
|
|
72
|
+
"""
|
|
73
|
+
# Grab a random event from the fixture file ndjson
|
|
74
|
+
lines = Path(event_fixture).read_text().splitlines()
|
|
75
|
+
myline = random.choice(lines)
|
|
76
|
+
event_data = json.loads(myline)
|
|
77
|
+
event = PluginRunnerEvent(
|
|
78
|
+
type=PluginRunnerEventType.Value(event_data["EventType"]),
|
|
79
|
+
target=event_data["target"],
|
|
80
|
+
context=event_data["context"],
|
|
81
|
+
)
|
|
82
|
+
with grpc.insecure_channel(f"localhost:{plugin_runner_port}") as channel:
|
|
83
|
+
stub = PluginRunnerStub(channel)
|
|
84
|
+
responses = stub.HandleEvent(event)
|
|
85
|
+
|
|
86
|
+
for response in responses:
|
|
87
|
+
for effect in response.effects:
|
|
88
|
+
print(effect)
|
|
89
|
+
|
|
90
|
+
|
|
54
91
|
@app.callback()
|
|
55
92
|
def main(
|
|
56
93
|
version: Optional[bool] = typer.Option(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|