ReForma 0.28__tar.gz → 0.30__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.
- {reforma-0.28 → reforma-0.30}/PKG-INFO +1 -1
- {reforma-0.28 → reforma-0.30}/ReForma.egg-info/PKG-INFO +1 -1
- {reforma-0.28 → reforma-0.30}/pyproject.toml +1 -1
- {reforma-0.28 → reforma-0.30}/reforma/bin/RePATool.jar +0 -0
- {reforma-0.28 → reforma-0.30}/reforma/client.py +6 -4
- {reforma-0.28 → reforma-0.30}/reforma/jar_bridge.py +6 -3
- {reforma-0.28 → reforma-0.30}/MANIFEST.in +0 -0
- {reforma-0.28 → reforma-0.30}/README.md +0 -0
- {reforma-0.28 → reforma-0.30}/ReForma.egg-info/SOURCES.txt +0 -0
- {reforma-0.28 → reforma-0.30}/ReForma.egg-info/dependency_links.txt +0 -0
- {reforma-0.28 → reforma-0.30}/ReForma.egg-info/requires.txt +0 -0
- {reforma-0.28 → reforma-0.30}/ReForma.egg-info/top_level.txt +0 -0
- {reforma-0.28 → reforma-0.30}/reforma/__init__.py +0 -0
- {reforma-0.28 → reforma-0.30}/reforma/bin/js/cytoscape-dagre.js +0 -0
- {reforma-0.28 → reforma-0.30}/reforma/bin/js/cytoscape.min.js +0 -0
- {reforma-0.28 → reforma-0.30}/reforma/bin/js/dagre.js +0 -0
- {reforma-0.28 → reforma-0.30}/reforma/model.py +0 -0
- {reforma-0.28 → reforma-0.30}/setup.cfg +0 -0
- {reforma-0.28 → reforma-0.30}/tests/test_reforma.py +0 -0
|
Binary file
|
|
@@ -360,8 +360,10 @@ class ReForma:
|
|
|
360
360
|
raw = self._bridge.list_transitions(self._model.source, self._history)
|
|
361
361
|
next_state = self._parse_simulation(raw)
|
|
362
362
|
|
|
363
|
+
resolved_states = next_state.current_states if next_state.current_states else self._state.current_states
|
|
364
|
+
|
|
363
365
|
self._state = SimulationState(
|
|
364
|
-
current_states=
|
|
366
|
+
current_states=resolved_states,
|
|
365
367
|
enabled=next_state.enabled,
|
|
366
368
|
variables=next_state.variables,
|
|
367
369
|
can_undo=len(self._history) > 0,
|
|
@@ -872,11 +874,11 @@ class ReForma:
|
|
|
872
874
|
import re
|
|
873
875
|
|
|
874
876
|
for line in lines:
|
|
875
|
-
if line.startswith("Estado Atual:"):
|
|
877
|
+
if line.startswith("Estado Atual:") or line.startswith("Current State:"):
|
|
876
878
|
st_parts = line.split(":", 1)[1].strip()
|
|
877
879
|
current_states = [s.strip() for s in st_parts.split(",")]
|
|
878
880
|
|
|
879
|
-
elif line.startswith("Variaveis:"):
|
|
881
|
+
elif line.startswith("Variaveis:") or line.startswith("Variables:"):
|
|
880
882
|
var_parts = line.split(":", 1)[1].strip()
|
|
881
883
|
matches = re.finditer(r"([a-zA-Z0-9_]+)\s*=\s*(?:VInt\(\s*([^,)]+)|VFloat\(\s*([^,)]+)|VBool\(\s*([^,)]+)|([^,]+))", var_parts)
|
|
882
884
|
|
|
@@ -894,7 +896,7 @@ class ReForma:
|
|
|
894
896
|
variables[k] = val_str
|
|
895
897
|
|
|
896
898
|
m = re.match(
|
|
897
|
-
r"\s*-\s*\[(.+?)\]\s+de\s+(\S+)\s+para\s+(\S+)\s+\(P=([\d.,]+)\)",
|
|
899
|
+
r"\s*-\s*\[(.+?)\]\s+(?:de|from)\s+(\S+)\s+(?:para|to)\s+(\S+)\s+\(P=([\d.,]+)\)",
|
|
898
900
|
line,
|
|
899
901
|
)
|
|
900
902
|
if m:
|
|
@@ -99,13 +99,15 @@ class JarBridge:
|
|
|
99
99
|
Run: java -jar <jar> <args...>
|
|
100
100
|
Returns stdout. Raises JarError on non-zero exit.
|
|
101
101
|
"""
|
|
102
|
-
|
|
102
|
+
# Forçamos o Java a usar UTF-8 no Windows
|
|
103
|
+
cmd = [self.java_bin, "-Dfile.encoding=UTF-8", "-jar", self.jar_path, *args]
|
|
103
104
|
result = subprocess.run(
|
|
104
105
|
cmd,
|
|
105
106
|
input=stdin_data,
|
|
106
107
|
capture_output=True,
|
|
107
108
|
text=True,
|
|
108
109
|
encoding="utf-8",
|
|
110
|
+
errors="replace"
|
|
109
111
|
)
|
|
110
112
|
if result.returncode != 0:
|
|
111
113
|
raise JarError(
|
|
@@ -179,12 +181,13 @@ class JarBridge:
|
|
|
179
181
|
Reads and returns the content of this output file.
|
|
180
182
|
JAR progress/logs go to stderr — ignored here.
|
|
181
183
|
"""
|
|
182
|
-
cmd = [self.java_bin, "-jar", self.jar_path, *args]
|
|
184
|
+
cmd = [self.java_bin, "-Dfile.encoding=UTF-8", "-jar", self.jar_path, *args]
|
|
183
185
|
result = subprocess.run(
|
|
184
186
|
cmd,
|
|
185
187
|
capture_output=True,
|
|
186
188
|
text=True,
|
|
187
189
|
encoding="utf-8",
|
|
190
|
+
errors="replace"
|
|
188
191
|
)
|
|
189
192
|
if result.returncode != 0:
|
|
190
193
|
raise JarError(
|
|
@@ -196,7 +199,7 @@ class JarBridge:
|
|
|
196
199
|
f"JAR did not generate the expected output file: {out_path}\n"
|
|
197
200
|
f"stderr: {result.stderr.strip()}"
|
|
198
201
|
)
|
|
199
|
-
with open(out_path, "r", encoding="utf-8") as f:
|
|
202
|
+
with open(out_path, "r", encoding="utf-8", errors="replace") as f:
|
|
200
203
|
return f.read()
|
|
201
204
|
|
|
202
205
|
def merge_models(self, sourceA: str, sourceB: str, op_type: str, agg: str) -> str:
|
|
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
|