File tree Expand file tree Collapse file tree 7 files changed +86
-15
lines changed Expand file tree Collapse file tree 7 files changed +86
-15
lines changed Original file line number Diff line number Diff line change
1
+ name : website
2
+
3
+ # build the documentation whenever there are new commits on main
4
+ on :
5
+ push :
6
+ branches :
7
+ - main
8
+ # Alternative: only build for tags.
9
+ # tags:
10
+ # - '*'
11
+
12
+ # security: restrict permissions for CI jobs.
13
+ permissions :
14
+ contents : read
15
+
16
+ jobs :
17
+ # Build the documentation and upload the static HTML files as an artifact.
18
+ build :
19
+ runs-on : ubuntu-latest
20
+ steps :
21
+ - uses : actions/checkout@v4
22
+ - uses : actions/setup-python@v5
23
+ with :
24
+ python-version : ' 3.13'
25
+
26
+ # ADJUST THIS: install all dependencies (including pdoc)
27
+ - run : pip install -e .
28
+ - run : pip install pdoc
29
+ # ADJUST THIS: build your documentation into docs/.
30
+ # We use a custom build script for pdoc itself, ideally you just run `pdoc -o docs/ ...` here.
31
+ - run : pdoc pyrdfrules -o docs/
32
+
33
+ - uses : actions/upload-pages-artifact@v3
34
+ with :
35
+ path : docs/
36
+
37
+ # Deploy the artifact to GitHub pages.
38
+ # This is a separate job so that only actions/deploy-pages has the necessary permissions.
39
+ deploy :
40
+ needs : build
41
+ runs-on : ubuntu-latest
42
+ permissions :
43
+ pages : write
44
+ id-token : write
45
+ environment :
46
+ name : github-pages
47
+ url : ${{ steps.deployment.outputs.page_url }}
48
+ steps :
49
+ - id : deployment
50
+ uses : actions/deploy-pages@v4
Original file line number Diff line number Diff line change 1
1
2
2
from pyrdfrules .common .rule .resultrule import ResultRule
3
- from pyrdfrules .common .rule .rule .body import RuleBody
4
- from pyrdfrules .common .rule .rule .head import RuleHead
5
3
from pyrdfrules .common .rule .ruleset import Ruleset
6
4
7
5
@@ -27,14 +25,14 @@ def _parse_data(self):
27
25
match item :
28
26
case {'body' : _, 'head' : __ , 'measures' : ___ }:
29
27
# Item is a rule
30
-
31
- rule = ResultRule .model_construct (item )
32
-
33
- print (rule )
34
-
28
+ rule = ResultRule .model_validate (item )
29
+ rules .append (rule )
35
30
pass
36
31
case _:
32
+ print ("Unknown item" )
37
33
pass
34
+
35
+ self .ruleset = Ruleset (rules = rules )
38
36
39
37
def get_ruleset (self ) -> Ruleset :
40
- pass
38
+ return self . ruleset
Original file line number Diff line number Diff line change 1
1
from typing import List
2
2
from pydantic import BaseModel
3
3
4
+ from pyrdfrules .common .rule .rule .object import Object
5
+ from pyrdfrules .common .rule .rule .predicate import Predicate
6
+ from pyrdfrules .common .rule .rule .subject import Subject
7
+
4
8
class RuleBody (BaseModel ):
5
- graphs : str
9
+ graphs : List [str ]
10
+
11
+ object : Object
6
12
7
- object : str
13
+ predicate : Predicate
8
14
9
- items : List [ dict ]
15
+ subject : Subject
Original file line number Diff line number Diff line change @@ -11,6 +11,6 @@ class RuleHead(BaseModel):
11
11
12
12
object : Object
13
13
14
- predicate : Predicate
14
+ predicate : str
15
15
16
16
subject : Subject
Original file line number Diff line number Diff line change @@ -34,8 +34,7 @@ class Ruleset(BaseModel):
34
34
__iterator_index : int = 0
35
35
36
36
def get_rules (self ) -> List [ResultRule ]:
37
- # return all rules
38
- pass
37
+ return self .rules
39
38
40
39
def as_json (self ) -> str :
41
40
return ''
Original file line number Diff line number Diff line change 1
1
import datetime
2
2
3
3
from pyrdfrules .common .event .event_dispatcher import EventDispatcher
4
+ from pyrdfrules .common .result .result import Result
4
5
from pyrdfrules .common .task .event .task_finished_message import TaskFinishedMessage
5
6
from pyrdfrules .common .task .event .task_log_message import TaskLogMessage
6
7
@@ -82,6 +83,18 @@ def update_from_dict(self, data: dict) -> None:
82
83
83
84
self .last_updated = datetime .datetime .now ()
84
85
86
+ def get_result (self ) -> Result :
87
+ """Returns formatted result of the task.
88
+
89
+ Returns:
90
+ Result: Result of the task.
91
+ """
92
+
93
+ if not self .is_finished ():
94
+ raise Exception ("Task is not finished yet." )
95
+
96
+ return Result (self .result )
97
+
85
98
def _stop (self ) -> None :
86
99
"""Stops the task.
87
100
"""
Original file line number Diff line number Diff line change @@ -21,7 +21,12 @@ def test_rule_parsing(self):
21
21
22
22
result = Result (rules )
23
23
24
- print (rules )
24
+ for rule in result .get_ruleset ().get_rules ():
25
+ self .assertEqual (rule .head .predicate , "<created>" )
26
+ self .assertEqual (rule .head .subject .value , "?a" )
27
+ self .assertEqual (rule .head .object .value , "?b" )
28
+ self .assertEqual (rule .head .graphs , ["<yago>" ])
29
+ self .assertEqual (rule .body [0 ].subject .value , "?c" )
25
30
26
31
27
32
if __name__ == '__main__' :
You can’t perform that action at this time.
0 commit comments