Skip to content

Commit b9aed6d

Browse files
authored
Merge pull request #7 from itk-dev-rpa/develop
Release V2
2 parents a2980a0 + c1b65c9 commit b9aed6d

14 files changed

+367
-119
lines changed

.github/workflows/pylint.yml renamed to .github/workflows/Linting.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ jobs:
88
strategy:
99
matrix:
1010
python-version: ["3.11"]
11+
fail-fast: false
1112
steps:
1213
- uses: actions/checkout@v3
1314
- name: Set up Python ${{ matrix.python-version }}

README.md

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,61 @@
1-
# Robot-Framework V1
1+
# Robot-Framework V2
22

33
This repo is meant to be used as a template for robots made for [OpenOrchestrator](https://github.com/itk-dev-rpa/OpenOrchestrator).
44

55
## Quick start
66

7-
1. To use the template simply use the repo as a template as shown [here](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template).
7+
1. To use this template simply use this repo as a template (see [Creating a repository from a template](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)).
8+
__Don't__ include all branches.
89

9-
2. Fill out the dependencies in the pyproject.toml file with all packages needed by the robot.
10+
2. Go to `robot_framework/__main__.py` and choose between the linear framework or queue based framework.
1011

1112
3. Implement all functions in the files:
12-
* src/initialize.py
13-
* src/get_constants.py
14-
* src/reset.py
15-
* src/process.py
16-
* Feel free to add more files as needed.
13+
* `robot_framework/initialize.py`
14+
* `robot_framework/reset.py`
15+
* `robot_framework/process.py`
1716

18-
4. Change config.py to your needs.
17+
4. Change `config.py` to your needs.
1918

20-
When the robot is run from OpenOrchestrator the main.py file is run.
21-
main.py does a few things:
22-
1. A virtual environment is automatically setup with the required packages.
23-
2. The framework is called passing on all arguments needed by [OpenOrchestrator](https://github.com/itk-dev-rpa/OpenOrchestrator).
19+
5. Fill out the dependencies in the `pyproject.toml` file with all packages needed by the robot.
20+
21+
6. Feel free to add more files as needed. Remember that any additional python files must
22+
be located in the folder `robot_framework` or a subfolder of it.
23+
24+
When the robot is run from OpenOrchestrator the `main.py` file is run which results
25+
in the following:
26+
1. The working directory is changed to where `main.py` is located.
27+
2. A virtual environment is automatically setup with the required packages.
28+
3. The framework is called passing on all arguments needed by [OpenOrchestrator](https://github.com/itk-dev-rpa/OpenOrchestrator).
2429

2530
## Requirements
2631
Minimum python version 3.10
2732

2833
## Flow
2934

30-
The flow of the framework is sketched up in the following illustration:
35+
This framework contains two different flows: A linear and a queue based.
36+
You should only ever use one at a time. You choose which one by going into `robot_framework/__main__.py`
37+
and uncommenting the framework you want. They are both disabled by default and an error will be
38+
raised to remind you if you don't choose.
39+
40+
### Linear Flow
41+
42+
The linear framework is used when a robot is just going from A to Z without fetching jobs from an
43+
OpenOrchestrator queue.
44+
The flow of the linear framework is sketched up in the following illustration:
45+
46+
![Linear Flow diagram](Robot-Framework.svg)
47+
48+
### Queue Flow
49+
50+
The queue framework is used when the robot is doing multiple bite-sized tasks defined in an
51+
OpenOrchestrator queue.
52+
The flow of the queue framework is sketched up in the following illustration:
53+
54+
![Queue Flow diagram](Robot-Queue-Framework.svg)
55+
56+
## Linting and Github Actions
57+
58+
This template is also setup with flake8 and pylint linting in Github Actions.
59+
This workflow will trigger whenever you push your code to Github.
60+
The workflow is defined under `.github/workflows/Linting.yml`.
3161

32-
![Flow diagram](Robot-Framework.svg)

Robot-Framework.drawio

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
1-
<mxfile host="app.diagrams.net" modified="2023-10-20T10:44:11.874Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46" etag="q6nEyfmFAyTBywsSzKSv" version="22.0.0" type="device">
1+
<mxfile host="app.diagrams.net" modified="2023-12-13T13:28:20.168Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0" etag="HZD2ftew2F1GWnaM90zt" version="22.1.8" type="device">
22
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
3-
<mxGraphModel dx="2026" dy="1119" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
3+
<mxGraphModel dx="1386" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
44
<root>
55
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
66
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
77
<mxCell id="SDpecss4k2ysWKTHnSYy-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-1" target="SDpecss4k2ysWKTHnSYy-2" edge="1">
88
<mxGeometry relative="1" as="geometry" />
99
</mxCell>
1010
<mxCell id="SDpecss4k2ysWKTHnSYy-1" value="Start" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
11-
<mxGeometry x="481" y="20" width="100" height="60" as="geometry" />
12-
</mxCell>
13-
<mxCell id="SDpecss4k2ysWKTHnSYy-5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-2" target="SDpecss4k2ysWKTHnSYy-4" edge="1">
14-
<mxGeometry relative="1" as="geometry" />
11+
<mxGeometry x="481" y="105" width="100" height="60" as="geometry" />
1512
</mxCell>
1613
<mxCell id="SDpecss4k2ysWKTHnSYy-2" value="Initialize" style="rounded=1;whiteSpace=wrap;html=1;absoluteArcSize=1;arcSize=14;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
17-
<mxGeometry x="471" y="100" width="120" height="60" as="geometry" />
18-
</mxCell>
19-
<mxCell id="SDpecss4k2ysWKTHnSYy-7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-4" target="SDpecss4k2ysWKTHnSYy-6" edge="1">
20-
<mxGeometry relative="1" as="geometry" />
21-
</mxCell>
22-
<mxCell id="SDpecss4k2ysWKTHnSYy-4" value="Get Constants" style="rounded=1;whiteSpace=wrap;html=1;absoluteArcSize=1;arcSize=14;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
2314
<mxGeometry x="471" y="185" width="120" height="60" as="geometry" />
2415
</mxCell>
16+
<mxCell id="SDpecss4k2ysWKTHnSYy-7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-2" target="SDpecss4k2ysWKTHnSYy-6" edge="1">
17+
<mxGeometry relative="1" as="geometry">
18+
<mxPoint x="531" y="245" as="sourcePoint" />
19+
</mxGeometry>
20+
</mxCell>
2521
<mxCell id="SDpecss4k2ysWKTHnSYy-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-6" target="SDpecss4k2ysWKTHnSYy-8" edge="1">
2622
<mxGeometry relative="1" as="geometry" />
2723
</mxCell>

Robot-Framework.svg

Lines changed: 1 addition & 2 deletions
Loading

Robot-Queue-Framework.drawio

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<mxfile host="app.diagrams.net" modified="2023-12-13T13:32:00.684Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0" etag="O6MlEoE8bShL-xROY0kk" version="22.1.8" type="device">
2+
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
3+
<mxGraphModel dx="1386" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
4+
<root>
5+
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
6+
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
7+
<mxCell id="SDpecss4k2ysWKTHnSYy-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-1" target="SDpecss4k2ysWKTHnSYy-2" edge="1">
8+
<mxGeometry relative="1" as="geometry" />
9+
</mxCell>
10+
<mxCell id="SDpecss4k2ysWKTHnSYy-1" value="Start" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
11+
<mxGeometry x="481" y="99" width="100" height="60" as="geometry" />
12+
</mxCell>
13+
<mxCell id="SDpecss4k2ysWKTHnSYy-2" value="Initialize" style="rounded=1;whiteSpace=wrap;html=1;absoluteArcSize=1;arcSize=14;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
14+
<mxGeometry x="471" y="179" width="120" height="60" as="geometry" />
15+
</mxCell>
16+
<mxCell id="SDpecss4k2ysWKTHnSYy-7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-2" target="SDpecss4k2ysWKTHnSYy-6" edge="1">
17+
<mxGeometry relative="1" as="geometry">
18+
<mxPoint x="531" y="245" as="sourcePoint" />
19+
</mxGeometry>
20+
</mxCell>
21+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-6" target="v_Jm0VLPgmFqjwZNiaEY-0" edge="1">
22+
<mxGeometry relative="1" as="geometry" />
23+
</mxCell>
24+
<mxCell id="SDpecss4k2ysWKTHnSYy-6" value="Reset" style="whiteSpace=wrap;html=1;rounded=1;arcSize=14;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
25+
<mxGeometry x="471" y="265" width="120" height="60" as="geometry" />
26+
</mxCell>
27+
<mxCell id="SDpecss4k2ysWKTHnSYy-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-8" target="SDpecss4k2ysWKTHnSYy-10" edge="1">
28+
<mxGeometry relative="1" as="geometry" />
29+
</mxCell>
30+
<mxCell id="SDpecss4k2ysWKTHnSYy-8" value="Process" style="whiteSpace=wrap;html=1;rounded=1;arcSize=14;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
31+
<mxGeometry x="471" y="588" width="120" height="64" as="geometry" />
32+
</mxCell>
33+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-19" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-10" target="v_Jm0VLPgmFqjwZNiaEY-0" edge="1">
34+
<mxGeometry x="-0.8996" relative="1" as="geometry">
35+
<mxPoint x="585.5" y="749" as="sourcePoint" />
36+
<mxPoint x="595.5" y="380" as="targetPoint" />
37+
<Array as="points">
38+
<mxPoint x="650" y="731" />
39+
<mxPoint x="650" y="380" />
40+
</Array>
41+
<mxPoint x="1" as="offset" />
42+
</mxGeometry>
43+
</mxCell>
44+
<mxCell id="SDpecss4k2ysWKTHnSYy-10" value="Error?" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
45+
<mxGeometry x="481" y="679" width="100" height="104" as="geometry" />
46+
</mxCell>
47+
<mxCell id="SDpecss4k2ysWKTHnSYy-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-17" target="SDpecss4k2ysWKTHnSYy-19" edge="1">
48+
<mxGeometry relative="1" as="geometry" />
49+
</mxCell>
50+
<mxCell id="SDpecss4k2ysWKTHnSYy-17" value="Clean up" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
51+
<mxGeometry x="310" y="717" width="120" height="64" as="geometry" />
52+
</mxCell>
53+
<mxCell id="SDpecss4k2ysWKTHnSYy-19" value="End" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
54+
<mxGeometry x="160" y="717" width="100" height="64" as="geometry" />
55+
</mxCell>
56+
<mxCell id="SDpecss4k2ysWKTHnSYy-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-23" target="SDpecss4k2ysWKTHnSYy-17" edge="1">
57+
<mxGeometry relative="1" as="geometry" />
58+
</mxCell>
59+
<mxCell id="SDpecss4k2ysWKTHnSYy-44" value="Yes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="SDpecss4k2ysWKTHnSYy-43" vertex="1" connectable="0">
60+
<mxGeometry x="-0.6944" y="-1" relative="1" as="geometry">
61+
<mxPoint as="offset" />
62+
</mxGeometry>
63+
</mxCell>
64+
<mxCell id="SDpecss4k2ysWKTHnSYy-45" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-23" target="SDpecss4k2ysWKTHnSYy-6" edge="1">
65+
<mxGeometry x="-0.9131" relative="1" as="geometry">
66+
<Array as="points">
67+
<mxPoint x="690" y="1122" />
68+
<mxPoint x="690" y="295" />
69+
</Array>
70+
<mxPoint as="offset" />
71+
</mxGeometry>
72+
</mxCell>
73+
<mxCell id="SDpecss4k2ysWKTHnSYy-23" value="Too many &lt;br&gt;errors?" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
74+
<mxGeometry x="480.5" y="1070" width="100" height="104" as="geometry" />
75+
</mxCell>
76+
<mxCell id="SDpecss4k2ysWKTHnSYy-36" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-33" target="SDpecss4k2ysWKTHnSYy-23" edge="1">
77+
<mxGeometry relative="1" as="geometry">
78+
<mxPoint x="531" y="1092" as="targetPoint" />
79+
</mxGeometry>
80+
</mxCell>
81+
<mxCell id="SDpecss4k2ysWKTHnSYy-33" value="Send error screenshot" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
82+
<mxGeometry x="471" y="981" width="120" height="64" as="geometry" />
83+
</mxCell>
84+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="v_Jm0VLPgmFqjwZNiaEY-0" target="v_Jm0VLPgmFqjwZNiaEY-14" edge="1">
85+
<mxGeometry relative="1" as="geometry" />
86+
</mxCell>
87+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-0" value="&lt;div&gt;Get new task&lt;/div&gt;" style="whiteSpace=wrap;html=1;rounded=1;arcSize=14;strokeWidth=2;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
88+
<mxGeometry x="471" y="350" width="120" height="60" as="geometry" />
89+
</mxCell>
90+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-16" value="&lt;div&gt;Yes&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="v_Jm0VLPgmFqjwZNiaEY-14" target="SDpecss4k2ysWKTHnSYy-17" edge="1">
91+
<mxGeometry x="-0.8251" relative="1" as="geometry">
92+
<mxPoint x="1" as="offset" />
93+
</mxGeometry>
94+
</mxCell>
95+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-17" value="No" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="v_Jm0VLPgmFqjwZNiaEY-14" target="SDpecss4k2ysWKTHnSYy-8" edge="1">
96+
<mxGeometry relative="1" as="geometry" />
97+
</mxCell>
98+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-14" value="&lt;div&gt;Queue empty?&lt;/div&gt;" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
99+
<mxGeometry x="476.5" y="440" width="109" height="110" as="geometry" />
100+
</mxCell>
101+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-22" value="&lt;div&gt;BusinessError&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;endArrow=none;endFill=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="v_Jm0VLPgmFqjwZNiaEY-20" edge="1">
102+
<mxGeometry x="0.1071" y="10" relative="1" as="geometry">
103+
<mxPoint x="650" y="730" as="targetPoint" />
104+
<mxPoint as="offset" />
105+
</mxGeometry>
106+
</mxCell>
107+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-23" value="Other" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="v_Jm0VLPgmFqjwZNiaEY-20" target="SDpecss4k2ysWKTHnSYy-33" edge="1">
108+
<mxGeometry relative="1" as="geometry" />
109+
</mxCell>
110+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-20" value="Error Type" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
111+
<mxGeometry x="481" y="830" width="100" height="104" as="geometry" />
112+
</mxCell>
113+
<mxCell id="v_Jm0VLPgmFqjwZNiaEY-21" value="Yes" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SDpecss4k2ysWKTHnSYy-10" target="v_Jm0VLPgmFqjwZNiaEY-20" edge="1">
114+
<mxGeometry relative="1" as="geometry" />
115+
</mxCell>
116+
</root>
117+
</mxGraphModel>
118+
</diagram>
119+
</mxfile>

Robot-Queue-Framework.svg

Lines changed: 3 additions & 0 deletions
Loading

pyproject.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ dependencies = [
1919
"OpenOrchestrator == 1.*",
2020
"Pillow == 9.5.0",
2121
]
22+
23+
[project.optional-dependencies]
24+
dev = [
25+
"pylint",
26+
"flake8"
27+
]

robot_framework/__main__.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
"""The entry point of the process."""
22

3-
from robot_framework.framework import main
4-
main()
3+
# Remember to delete this error
4+
raise NotImplementedError("Remember to choose a framework to use.")
5+
6+
# from robot_framework import linear_framework
7+
# linear_framework.main()
8+
9+
# from robot_framework import queue_framework
10+
# queue_framework.main()

robot_framework/config.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,25 @@
33
# The number of times the robot retries on an error before terminating.
44
MAX_RETRY_COUNT = 3
55

6+
# Whether the robot should be marked as failed if MAX_RETRY_COUNT is reached.
7+
FAIL_ROBOT_ON_TOO_MANY_ERRORS = True
8+
69
# Error screenshot config
710
SMTP_SERVER = "smtp.aarhuskommune.local"
811
SMTP_PORT = 25
912
SCREENSHOT_SENDER = "[email protected]"
13+
14+
# Constant/Credential names
15+
ERROR_EMAIL = "Error Email"
16+
17+
18+
# Queue specific configs
19+
# ----------------------
20+
21+
# The name of the job queue (if any)
22+
QUEUE_NAME = None
23+
24+
# The limit on how many queue elements to process
25+
MAX_TASK_COUNT = 100
26+
27+
# ----------------------

0 commit comments

Comments
 (0)