master > master: code go - requirements + colours
Requirements angepasst, damit auf Windows läuft, colour-mode jetzt per default aus
This commit is contained in:
parent
1a387ac308
commit
be6fc48c0b
@ -4,14 +4,10 @@ go 1.17
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/akamensky/argparse v1.3.1
|
github.com/akamensky/argparse v1.3.1
|
||||||
github.com/buger/goterm v1.0.3
|
github.com/davecgh/go-spew v1.1.0
|
||||||
github.com/davecgh/go-spew v1.1.1
|
|
||||||
github.com/lithammer/dedent v1.1.0
|
github.com/lithammer/dedent v1.1.0
|
||||||
github.com/pmezard/go-difflib v1.0.0
|
github.com/pmezard/go-difflib v1.0.0
|
||||||
github.com/slongfield/pyfmt v0.0.0-20180124071345-020a7cb18bca
|
|
||||||
github.com/stretchr/objx v0.1.0
|
github.com/stretchr/objx v0.1.0
|
||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e
|
|
||||||
golang.org/x/tools v0.1.7
|
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
||||||
)
|
)
|
||||||
|
@ -10,8 +10,6 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/buger/goterm"
|
|
||||||
|
|
||||||
"ads/internal/core/utils"
|
"ads/internal/core/utils"
|
||||||
"ads/pkg/re"
|
"ads/pkg/re"
|
||||||
)
|
)
|
||||||
@ -22,7 +20,7 @@ import (
|
|||||||
|
|
||||||
var quietmode bool = false
|
var quietmode bool = false
|
||||||
var debugmode bool = false
|
var debugmode bool = false
|
||||||
var ansimode bool = true
|
var ansimode bool = false
|
||||||
var loggingPrefix string = ""
|
var loggingPrefix string = ""
|
||||||
var force bool = false
|
var force bool = false
|
||||||
var tagAll bool = false
|
var tagAll bool = false
|
||||||
@ -76,11 +74,7 @@ func logGeneric(pipe *os.File, tag string, lines ...interface{}) {
|
|||||||
tag = tag + " "
|
tag = tag + " "
|
||||||
}
|
}
|
||||||
for _, line := range lines {
|
for _, line := range lines {
|
||||||
_line := fmt.Sprintf("%[1]s%[2]s%[3]v", loggingPrefix, tag, line)
|
fmt.Fprintln(pipe, StripAnsiIfNecessary(fmt.Sprintf("%[1]s%[2]s%[3]v", loggingPrefix, tag, line)))
|
||||||
if !ansimode {
|
|
||||||
_line = utils.StripAnsi(_line)
|
|
||||||
}
|
|
||||||
fmt.Fprintln(pipe, _line)
|
|
||||||
if !tagAll {
|
if !tagAll {
|
||||||
tag = ""
|
tag = ""
|
||||||
}
|
}
|
||||||
@ -121,6 +115,17 @@ func LogFatal(lines ...interface{}) {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- *
|
||||||
|
* AUXILIARY METHODS
|
||||||
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
func StripAnsiIfNecessary(line string) string {
|
||||||
|
if !ansimode {
|
||||||
|
line = utils.StripAnsi(line)
|
||||||
|
}
|
||||||
|
return line
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
/* ---------------------------------------------------------------- *
|
||||||
* METHOD prompt
|
* METHOD prompt
|
||||||
* ---------------------------------------------------------------- */
|
* ---------------------------------------------------------------- */
|
||||||
@ -145,7 +150,7 @@ func Prompt(lines ...interface{}) (string, bool, error) {
|
|||||||
|
|
||||||
func PromptAnyKeyToContinue() bool {
|
func PromptAnyKeyToContinue() bool {
|
||||||
pipe := os.Stdout
|
pipe := os.Stdout
|
||||||
fmt.Fprint(pipe, "\033[2;3mEingabetaste (Enter) zum Fortsetzen drücken:\033[0m ")
|
fmt.Fprint(pipe, StripAnsiIfNecessary("\033[2;3mEingabetaste (Enter) zum Fortsetzen drücken:\033[0m "))
|
||||||
_, exit, _ := Prompt()
|
_, exit, _ := Prompt()
|
||||||
return exit
|
return exit
|
||||||
}
|
}
|
||||||
@ -155,6 +160,5 @@ func PromptAnyKeyToContinue() bool {
|
|||||||
* ---------------------------------------------------------------- */
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
func ClearScreen() {
|
func ClearScreen() {
|
||||||
goterm.Clear()
|
fmt.Print("\033[2J")
|
||||||
goterm.Flush()
|
|
||||||
}
|
}
|
||||||
|
@ -7,48 +7,14 @@ package utils
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"reflect"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/lithammer/dedent"
|
"github.com/lithammer/dedent"
|
||||||
"github.com/slongfield/pyfmt"
|
|
||||||
|
|
||||||
"ads/pkg/re"
|
"ads/pkg/re"
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* METHOD format strings with dictionary substitution
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
func FormatPythonString(text string, arguments map[string]interface{}) string {
|
|
||||||
var (
|
|
||||||
err error
|
|
||||||
key string
|
|
||||||
value interface{}
|
|
||||||
kind reflect.Kind
|
|
||||||
refValue reflect.Value
|
|
||||||
)
|
|
||||||
// force compatibility of expressions with python
|
|
||||||
for key, value = range arguments {
|
|
||||||
kind = reflect.TypeOf(value).Kind()
|
|
||||||
switch kind {
|
|
||||||
case reflect.Ptr:
|
|
||||||
refValue = reflect.ValueOf(value)
|
|
||||||
if refValue.IsNil() {
|
|
||||||
arguments[key] = "None"
|
|
||||||
}
|
|
||||||
case reflect.Bool:
|
|
||||||
arguments[key] = strings.Title(fmt.Sprintf(`%v`, value))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
text, err = pyfmt.Fmt(text, arguments)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
return text
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
/* ---------------------------------------------------------------- *
|
||||||
* METHOD dedent textblock and expand escaped symbols
|
* METHOD dedent textblock and expand escaped symbols
|
||||||
* ---------------------------------------------------------------- */
|
* ---------------------------------------------------------------- */
|
||||||
|
@ -85,7 +85,7 @@ var menuColourMode = menus.Menu{
|
|||||||
{Label: "aus", Action: actionColourModeOff},
|
{Label: "aus", Action: actionColourModeOff},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Default: 0,
|
Default: 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
var menuDebugMode = menus.Menu{
|
var menuDebugMode = menus.Menu{
|
||||||
@ -241,7 +241,10 @@ func actionAlgorithmSearchBinary() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_binary.FancyBinarySearch(input_L, input_x)
|
_, err = algorithm_search_binary.FancyBinarySearch(input_L, input_x)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -259,7 +262,10 @@ func actionAlgorithmSearchInterpolation() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_interpol.FancyInterpolationSearch(input_L, input_x, 0, len(input_L)-1)
|
_, err = algorithm_search_interpol.FancyInterpolationSearch(input_L, input_x, 0, len(input_L)-1)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -276,7 +282,10 @@ func actionAlgorithmSearchIthElement() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_ith_element.FancyFindIthSmallest(input_L, input_i)
|
_, err = algorithm_search_ith_element.FancyFindIthSmallest(input_L, input_i)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -293,7 +302,10 @@ func actionAlgorithmSearchIthElementDc() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_ith_element.FancyFindIthSmallestDC(input_L, input_i)
|
_, err = algorithm_search_ith_element.FancyFindIthSmallestDC(input_L, input_i)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -318,7 +330,10 @@ func actionAlgorithmSearchJump() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_jump.FancyJumpSearchLinear(input_L, input_x, input_m)
|
_, err = algorithm_search_jump.FancyJumpSearchLinear(input_L, input_x, input_m)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -337,7 +352,10 @@ func actionAlgorithmSearchJumpExp() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_jump.FancyJumpSearchExponentiell(input_L, input_x)
|
_, err = algorithm_search_jump.FancyJumpSearchExponentiell(input_L, input_x)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -350,7 +368,10 @@ func actionAlgorithmSearchPoison() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_poison.FancyFindPoison(input_L)
|
_, err = algorithm_search_poison.FancyFindPoison(input_L)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -363,7 +384,10 @@ func actionAlgorithmSearchPoisonFast() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_poison.FancyFindPoisonFast(input_L)
|
_, err = algorithm_search_poison.FancyFindPoisonFast(input_L)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -378,7 +402,10 @@ func actionAlgorithmSearchSequential() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_search_sequential.FancySequentialSearch(input_L, input_x)
|
_, err = algorithm_search_sequential.FancySequentialSearch(input_L, input_x)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -389,7 +416,10 @@ func actionAlgorithmSumMaxsub() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_sum_maxsubsum.FancyMaxSubSum(input_L)
|
_, _, _, err = algorithm_sum_maxsubsum.FancyMaxSubSum(input_L)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
@ -400,7 +430,10 @@ func actionAlgorithmSumMaxsubDc() (bool, error) {
|
|||||||
return cancel, err
|
return cancel, err
|
||||||
}
|
}
|
||||||
setup.DisplayStartOfCaseBlank()
|
setup.DisplayStartOfCaseBlank()
|
||||||
algorithm_sum_maxsubsum.FancyMaxSubSumDC(input_L)
|
_, _, _, err = algorithm_sum_maxsubsum.FancyMaxSubSumDC(input_L)
|
||||||
|
if err != nil {
|
||||||
|
logging.LogError(err)
|
||||||
|
}
|
||||||
setup.DisplayEndOfCase()
|
setup.DisplayEndOfCase()
|
||||||
return cancel, nil
|
return cancel, nil
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ var optionsColour = argparse.Options{
|
|||||||
Help: "Ob Logging färblich angezeigt wird.",
|
Help: "Ob Logging färblich angezeigt wird.",
|
||||||
Required: false,
|
Required: false,
|
||||||
// NOTE: no `Boolean` option available!
|
// NOTE: no `Boolean` option available!
|
||||||
Default: "true",
|
Default: "false",
|
||||||
}
|
}
|
||||||
|
|
||||||
var optionsConfigFile = argparse.Options{
|
var optionsConfigFile = argparse.Options{
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
github.com/akamensky/argparse@v1.3.1
|
github.com/akamensky/argparse@v1.3.1
|
||||||
github.com/buger/goterm
|
|
||||||
github.com/lithammer/dedent@v1.1.0
|
github.com/lithammer/dedent@v1.1.0
|
||||||
github.com/slongfield/pyfmt@v0.0.0-20180124071345-020a7cb18bca
|
|
||||||
github.com/stretchr/testify@v1.7.0
|
github.com/stretchr/testify@v1.7.0
|
||||||
golang.org/x/tools
|
|
||||||
gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307b
|
gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307b
|
||||||
|
Loading…
x
Reference in New Issue
Block a user