Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
ProB 2 Jupyter Kernel
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
general
stups
ProB 2 Jupyter Kernel
Commits
731b8867
Commit
731b8867
authored
May 24, 2018
by
dgelessus
Browse files
Options
Downloads
Patches
Plain Diff
Move displayDataForEvalResult into CommandUtils
parent
6ff3e0df
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/main/java/de/prob2/jupyter/commands/CommandUtils.java
+62
-0
62 additions, 0 deletions
src/main/java/de/prob2/jupyter/commands/CommandUtils.java
src/main/java/de/prob2/jupyter/commands/EvalCommand.java
+1
-61
1 addition, 61 deletions
src/main/java/de/prob2/jupyter/commands/EvalCommand.java
with
63 additions
and
61 deletions
src/main/java/de/prob2/jupyter/commands/CommandUtils.java
+
62
−
0
View file @
731b8867
...
@@ -6,11 +6,25 @@ import java.util.HashMap;
...
@@ -6,11 +6,25 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
de.prob.animator.domainobjects.AbstractEvalResult
;
import
de.prob.animator.domainobjects.ComputationNotCompletedResult
;
import
de.prob.animator.domainobjects.EnumerationWarning
;
import
de.prob.animator.domainobjects.EvalResult
;
import
de.prob.animator.domainobjects.EvaluationErrorResult
;
import
de.prob.unicode.UnicodeTranslator
;
import
de.prob2.jupyter.UserErrorException
;
import
de.prob2.jupyter.UserErrorException
;
import
io.github.spencerpark.jupyter.messages.DisplayData
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
final
class
CommandUtils
{
public
final
class
CommandUtils
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
CommandUtils
.
class
);
public
static
@NotNull
List
<
@NotNull
String
>
splitArgs
(
final
@NotNull
String
args
)
{
public
static
@NotNull
List
<
@NotNull
String
>
splitArgs
(
final
@NotNull
String
args
)
{
final
String
[]
split
=
args
.
split
(
"\\h+"
);
final
String
[]
split
=
args
.
split
(
"\\h+"
);
if
(
split
.
length
==
1
&&
split
[
0
].
isEmpty
())
{
if
(
split
.
length
==
1
&&
split
[
0
].
isEmpty
())
{
...
@@ -31,4 +45,52 @@ public final class CommandUtils {
...
@@ -31,4 +45,52 @@ public final class CommandUtils {
}
}
return
preferences
;
return
preferences
;
}
}
public
static
@NotNull
DisplayData
displayDataForEvalResult
(
final
@NotNull
AbstractEvalResult
aer
)
{
final
StringBuilder
sb
=
new
StringBuilder
();
final
boolean
error
;
if
(
aer
instanceof
EvalResult
)
{
final
EvalResult
result
=
(
EvalResult
)
aer
;
sb
.
append
(
UnicodeTranslator
.
toUnicode
(
result
.
getValue
()));
if
(!
result
.
getSolutions
().
isEmpty
())
{
sb
.
append
(
"\n\nSolution:"
);
result
.
getSolutions
().
forEach
((
k
,
v
)
->
{
sb
.
append
(
"\n\t"
);
sb
.
append
(
UnicodeTranslator
.
toUnicode
(
k
));
sb
.
append
(
" = "
);
sb
.
append
(
UnicodeTranslator
.
toUnicode
(
v
));
});
}
error
=
false
;
}
else
if
(
aer
instanceof
ComputationNotCompletedResult
)
{
final
ComputationNotCompletedResult
result
=
(
ComputationNotCompletedResult
)
aer
;
sb
.
append
(
"Computation not completed: "
);
sb
.
append
(
result
.
getReason
());
error
=
true
;
}
else
if
(
aer
instanceof
EnumerationWarning
)
{
sb
.
append
(
"UNKNOWN (FALSE with enumeration warning)"
);
error
=
true
;
}
else
if
(
aer
instanceof
EvaluationErrorResult
)
{
final
EvaluationErrorResult
result
=
(
EvaluationErrorResult
)
aer
;
sb
.
append
(
result
.
getResult
());
if
(!
result
.
getErrors
().
isEmpty
())
{
sb
.
append
(
": "
);
result
.
getErrors
().
forEach
(
s
->
{
sb
.
append
(
'\n'
);
sb
.
append
(
s
);
});
}
error
=
true
;
}
else
{
LOGGER
.
info
(
"Unhandled eval result type, falling back to toString(): {}"
,
aer
.
getClass
());
sb
.
append
(
aer
);
error
=
false
;
}
if
(
error
)
{
throw
new
UserErrorException
(
sb
.
toString
());
}
else
{
return
new
DisplayData
(
sb
.
toString
());
}
}
}
}
This diff is collapsed.
Click to expand it.
src/main/java/de/prob2/jupyter/commands/EvalCommand.java
+
1
−
61
View file @
731b8867
...
@@ -2,28 +2,16 @@ package de.prob2.jupyter.commands;
...
@@ -2,28 +2,16 @@ package de.prob2.jupyter.commands;
import
com.google.inject.Inject
;
import
com.google.inject.Inject
;
import
de.prob.animator.domainobjects.AbstractEvalResult
;
import
de.prob.animator.domainobjects.ComputationNotCompletedResult
;
import
de.prob.animator.domainobjects.EnumerationWarning
;
import
de.prob.animator.domainobjects.EvalResult
;
import
de.prob.animator.domainobjects.EvaluationErrorResult
;
import
de.prob.animator.domainobjects.FormulaExpand
;
import
de.prob.animator.domainobjects.FormulaExpand
;
import
de.prob.statespace.AnimationSelector
;
import
de.prob.statespace.AnimationSelector
;
import
de.prob.unicode.UnicodeTranslator
;
import
de.prob2.jupyter.ProBKernel
;
import
de.prob2.jupyter.ProBKernel
;
import
de.prob2.jupyter.UserErrorException
;
import
io.github.spencerpark.jupyter.messages.DisplayData
;
import
io.github.spencerpark.jupyter.messages.DisplayData
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
final
class
EvalCommand
implements
LineCommand
{
public
final
class
EvalCommand
implements
LineCommand
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
EvalCommand
.
class
);
private
final
@NotNull
AnimationSelector
animationSelector
;
private
final
@NotNull
AnimationSelector
animationSelector
;
@Inject
@Inject
...
@@ -43,56 +31,8 @@ public final class EvalCommand implements LineCommand {
...
@@ -43,56 +31,8 @@ public final class EvalCommand implements LineCommand {
return
"Evaluate an expression."
;
return
"Evaluate an expression."
;
}
}
private
static
@NotNull
DisplayData
displayDataForEvalResult
(
final
@NotNull
AbstractEvalResult
aer
)
{
final
StringBuilder
sb
=
new
StringBuilder
();
final
boolean
error
;
if
(
aer
instanceof
EvalResult
)
{
final
EvalResult
result
=
(
EvalResult
)
aer
;
sb
.
append
(
UnicodeTranslator
.
toUnicode
(
result
.
getValue
()));
if
(!
result
.
getSolutions
().
isEmpty
())
{
sb
.
append
(
"\n\nSolution:"
);
result
.
getSolutions
().
forEach
((
k
,
v
)
->
{
sb
.
append
(
"\n\t"
);
sb
.
append
(
UnicodeTranslator
.
toUnicode
(
k
));
sb
.
append
(
" = "
);
sb
.
append
(
UnicodeTranslator
.
toUnicode
(
v
));
});
}
error
=
false
;
}
else
if
(
aer
instanceof
ComputationNotCompletedResult
)
{
final
ComputationNotCompletedResult
result
=
(
ComputationNotCompletedResult
)
aer
;
sb
.
append
(
"Computation not completed: "
);
sb
.
append
(
result
.
getReason
());
error
=
true
;
}
else
if
(
aer
instanceof
EnumerationWarning
)
{
sb
.
append
(
"UNKNOWN (FALSE with enumeration warning)"
);
error
=
true
;
}
else
if
(
aer
instanceof
EvaluationErrorResult
)
{
final
EvaluationErrorResult
result
=
(
EvaluationErrorResult
)
aer
;
sb
.
append
(
result
.
getResult
());
if
(!
result
.
getErrors
().
isEmpty
())
{
sb
.
append
(
": "
);
result
.
getErrors
().
forEach
(
s
->
{
sb
.
append
(
'\n'
);
sb
.
append
(
s
);
});
}
error
=
true
;
}
else
{
LOGGER
.
info
(
"Unhandled eval result type, falling back to toString(): {}"
,
aer
.
getClass
());
sb
.
append
(
aer
);
error
=
false
;
}
if
(
error
)
{
throw
new
UserErrorException
(
sb
.
toString
());
}
else
{
return
new
DisplayData
(
sb
.
toString
());
}
}
@Override
@Override
public
@NotNull
DisplayData
run
(
final
@NotNull
ProBKernel
kernel
,
final
@NotNull
String
argString
)
{
public
@NotNull
DisplayData
run
(
final
@NotNull
ProBKernel
kernel
,
final
@NotNull
String
argString
)
{
return
Eval
Command
.
displayDataForEvalResult
(
this
.
animationSelector
.
getCurrentTrace
().
evalCurrent
(
argString
,
FormulaExpand
.
EXPAND
));
return
Command
Utils
.
displayDataForEvalResult
(
this
.
animationSelector
.
getCurrentTrace
().
evalCurrent
(
argString
,
FormulaExpand
.
EXPAND
));
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment