ripple-down-rules 0.6.15__tar.gz → 0.6.16__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.
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/PKG-INFO +1 -1
- ripple_down_rules-0.6.16/scripts/live_dot_server.py +78 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/__init__.py +1 -1
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/PKG-INFO +1 -1
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/SOURCES.txt +1 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.github/workflows/build_and_deploy_doc.yml +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.github/workflows/ci.yml +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.github/workflows/publish-to-test-pypi.yml +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.gitignore +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.idea/shelf/Uncommitted_changes_before_Checkout_at_2_4_25,_6_32_PM_[Changes]/shelved.patch +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.idea/shelf/Uncommitted_changes_before_Checkout_at_2_4_25,_6_32_PM_[Changes]1/shelved.patch +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/LICENSE +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/README.md +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/doc/_config.yml +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/doc/_toc.yml +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/doc/bibliography.md +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/doc/intro.md +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/doc/references.bib +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/doc/requirements.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/animal_species.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/rdr_metadata/part_containment_rdr.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/robot_contained_objects_mcrdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/robot_contained_objects_mcrdr_defs.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/robot_rdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/relational_example.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/images/scrdr.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/images/scrdr.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/images/thinking_pr2.jpg +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/pyproject.toml +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/pytest.ini +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/requirements-dev-ci.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/requirements-dev.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/requirements-gui.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/requirements-viz.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/requirements.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_extra.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_extra.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_stop_only.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_stop_only.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_stop_plus_rule.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_stop_plus_rule.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_scrdr.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_scrdr.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_scrdr_2.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_scrdr_2.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_scrdr_3.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_scrdr_3.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/grdr_Habitat.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/grdr_Habitat.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/grdr_Species.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/grdr_Species.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_extra.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_extra.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_extra_classify.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_extra_classify.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_stop_plus_rule_combined.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_stop_plus_rule_combined.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/partial_mcrdr_extra.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/partial_mcrdr_extra.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/relational_scrdr_classify.dot +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/relational_scrdr_classify.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/setup.cfg +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/callable_expression.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/case.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/dataclasses.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/enums.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/experts.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/helpers.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/rdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/rdr_decorators.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/rules.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/start-code-server.sh +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/gui.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/ipython_custom_shell.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/object_diagram.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/prompt.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/template_file_creator.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/utils.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/dependency_links.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/requires.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/top_level.txt +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/conf/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/conf/world/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/conf/world/base_config.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/conf/world/handles_and_containers.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/conftest.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/datasets.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/factories/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/factories/world/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/factories/world/handles_and_containers.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/correct_drawer_rdr_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/drawer_cabinet_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/grdr_expert_answers_classify.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/grdr_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/grdr_expert_answers_fit_extra.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/grdr_expert_answers_fit_no_targets.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_expert_answers_classify.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_expert_answers_fit_no_targets.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_expert_answers_stop_only_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_extra_expert_answers_classify.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_extra_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_multi_line_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_stop_only_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_stop_plus_rule_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_stop_plus_rule_combined_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mcrdr_stop_plus_rule_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/mutagenic_expert_answers.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/relational_scrdr_expert_answers_classify.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/scrdr_expert_answers_classify.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/scrdr_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/scrdr_expert_answers_fit_no_targets.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/scrdr_multi_line_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_expert_answers/scrdr_world_expert_answers_fit.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_generated_rdrs/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_helpers/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_helpers/helpers.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_helpers/object_diagram_case_query.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_helpers/object_diagram_person.png +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_json_serialization.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_object_diagram.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_on_mutagenic.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr_alchemy.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr_decorators.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr_helpers_rdrs.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr_world/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr_world/conftest.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_rdr_world/test_rdr_world.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_relational_rdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_relational_rdr_alchemy.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_is_a_robot/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_is_a_robot/physical_object_is_a_robot_output__scrdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_is_a_robot/physical_object_is_a_robot_output__scrdr_defs.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_is_a_robot/physical_object_is_a_robot_rdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_is_a_robot/rdr_metadata/datasets_physical_object_is_a_robot.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_select_objects_that_are_parts_of_robot/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_select_objects_that_are_parts_of_robot/physical_object_select_objects_that_are_parts_of_robot_output__mcrdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_select_objects_that_are_parts_of_robot/physical_object_select_objects_that_are_parts_of_robot_output__mcrdr_defs.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_select_objects_that_are_parts_of_robot/physical_object_select_objects_that_are_parts_of_robot_rdr.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_results/datasets_physical_object_select_objects_that_are_parts_of_robot/rdr_metadata/datasets_physical_object_select_objects_that_are_parts_of_robot.json +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_sql_model.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_template_file_creator.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/__init__.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_ipython.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_ipython_copilot.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_prompt.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_qt_gui_inline.py +0 -0
- {ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ripple_down_rules
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.16
|
4
4
|
Summary: Implements the various versions of Ripple Down Rules (RDR) for knowledge representation and reasoning.
|
5
5
|
Author-email: Abdelrhman Bassiouny <abassiou@uni-bremen.de>
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
@@ -0,0 +1,78 @@
|
|
1
|
+
import http.server
|
2
|
+
import socketserver
|
3
|
+
import threading
|
4
|
+
import time
|
5
|
+
import os
|
6
|
+
import sys
|
7
|
+
|
8
|
+
dot_path = None
|
9
|
+
last_modified = None
|
10
|
+
|
11
|
+
def get_dot_content():
|
12
|
+
with open(dot_path, "r", encoding="utf-8") as f:
|
13
|
+
return f.read().replace("`", "\\`")
|
14
|
+
|
15
|
+
def generate_html(dot_output="graph.html"):
|
16
|
+
html_template = f"""<!DOCTYPE html>
|
17
|
+
<html>
|
18
|
+
<head>
|
19
|
+
<meta charset="UTF-8">
|
20
|
+
<title>Live DOT Graph</title>
|
21
|
+
<script src="https://unpkg.com/viz.js@2.1.2/viz.js"></script>
|
22
|
+
<script src="https://unpkg.com/viz.js@2.1.2/full.render.js"></script>
|
23
|
+
</head>
|
24
|
+
<body>
|
25
|
+
<h2>Live DOT Graph</h2>
|
26
|
+
<div id="graph">Loading...</div>
|
27
|
+
<script>
|
28
|
+
const viz = new Viz();
|
29
|
+
|
30
|
+
async function fetchAndRender() {{
|
31
|
+
try {{
|
32
|
+
const res = await fetch('/graph.dot?' + Date.now());
|
33
|
+
const dot = await res.text();
|
34
|
+
const svg = await viz.renderSVGElement(dot);
|
35
|
+
const container = document.getElementById('graph');
|
36
|
+
container.innerHTML = '';
|
37
|
+
container.appendChild(svg);
|
38
|
+
}} catch (err) {{
|
39
|
+
document.getElementById('graph').innerHTML = '<pre>' + err + '</pre>';
|
40
|
+
}}
|
41
|
+
}}
|
42
|
+
|
43
|
+
fetchAndRender();
|
44
|
+
setInterval(fetchAndRender, 2000); // Refresh every 2 seconds
|
45
|
+
</script>
|
46
|
+
</body>
|
47
|
+
</html>"""
|
48
|
+
with open(dot_output, "w", encoding="utf-8") as f:
|
49
|
+
f.write(html_template)
|
50
|
+
|
51
|
+
class CustomHandler(http.server.SimpleHTTPRequestHandler):
|
52
|
+
def do_GET(self):
|
53
|
+
if self.path.startswith("/graph.dot"):
|
54
|
+
self.send_response(200)
|
55
|
+
self.send_header("Content-type", "text/plain")
|
56
|
+
self.end_headers()
|
57
|
+
self.wfile.write(get_dot_content().encode("utf-8"))
|
58
|
+
else:
|
59
|
+
super().do_GET()
|
60
|
+
|
61
|
+
def serve_dot(dot_file, port=8000):
|
62
|
+
global dot_path
|
63
|
+
dot_path = dot_file
|
64
|
+
generate_html("graph.html")
|
65
|
+
|
66
|
+
handler = CustomHandler
|
67
|
+
with socketserver.TCPServer(("", port), handler) as httpd:
|
68
|
+
print(f"Serving at http://localhost:{port}/graph.html")
|
69
|
+
try:
|
70
|
+
httpd.serve_forever()
|
71
|
+
except KeyboardInterrupt:
|
72
|
+
print("\nServer stopped.")
|
73
|
+
|
74
|
+
if __name__ == "__main__":
|
75
|
+
if len(sys.argv) < 2:
|
76
|
+
print("Usage: python live_dot_server.py path/to/graph.dot")
|
77
|
+
else:
|
78
|
+
serve_dot(sys.argv[1])
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ripple_down_rules
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.16
|
4
4
|
Summary: Implements the various versions of Ripple Down Rules (RDR) for knowledge representation and reasoning.
|
5
5
|
Author-email: Abdelrhman Bassiouny <abassiou@uni-bremen.de>
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/SOURCES.txt
RENAMED
@@ -56,6 +56,7 @@ results/partial_mcrdr_extra.dot
|
|
56
56
|
results/partial_mcrdr_extra.png
|
57
57
|
results/relational_scrdr_classify.dot
|
58
58
|
results/relational_scrdr_classify.png
|
59
|
+
scripts/live_dot_server.py
|
59
60
|
src/ripple_down_rules/__init__.py
|
60
61
|
src/ripple_down_rules/experts.py
|
61
62
|
src/ripple_down_rules/helpers.py
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.github/workflows/build_and_deploy_doc.yml
RENAMED
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/.github/workflows/publish-to-test-pypi.yml
RENAMED
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
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/examples/part_containment_rdr/robot_rdr.py
RENAMED
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
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_stop_plus_rule.dot
RENAMED
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/complete_mcrdr_stop_plus_rule.png
RENAMED
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
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_stop_plus_rule_combined.dot
RENAMED
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/results/mcrdr_stop_plus_rule_combined.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/case.py
RENAMED
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/datastructures/enums.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/rdr_decorators.py
RENAMED
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/start-code-server.sh
RENAMED
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/gui.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules/user_interface/prompt.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/requires.txt
RENAMED
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/src/ripple_down_rules.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/conf/world/handles_and_containers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/factories/world/handles_and_containers.py
RENAMED
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
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_helpers/object_diagram_person.png
RENAMED
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
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_ipython.py
RENAMED
File without changes
|
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_prompt.py
RENAMED
File without changes
|
{ripple_down_rules-0.6.15 → ripple_down_rules-0.6.16}/test/test_user_interface/test_qt_gui_inline.py
RENAMED
File without changes
|
File without changes
|