Михаил Капелько 6 months ago
parent
commit
681de2ce75
4 changed files with 186 additions and 173 deletions
  1. +104
    -98
      v4/cli.py
  2. +73
    -72
      v4/cli_test.py
  3. +3
    -3
      v4/main.py
  4. +6
    -0
      v4/memory_Context.py

+ 104
- 98
v4/cli.py View File

@@ -1,99 +1,48 @@
from cli_Context import *
from memory_Context import *
from llm import * from llm import *
from memory import *


# Greet the user # Greet the user
@llm_by_value @llm_by_value
def cli_greetUser( def cli_greetUser(
c: cli_Context
) -> cli_Context:
c.outputGreeting = "OGS Memory Command Line Interface"
c.recentField = "outputGreeting"
return c
#}

# Select item
#
# Conditions:
# 1. Id is digit, in bounds and not hidden
@llm_by_value
def cli_selectItem(
c: cli_Context
) -> cli_Context:
if (
c.input.isdigit()
):
# User ids start with 1 while memory module has ids starting with 0
# Convert cli item id to memory item id
c.cMemory.selectedId = int(c.input) - 1
c.cMemory = memory_selectItem(c.cMemory)
c.recentField = "cMemory"
return c
#}
c.recentField = "none"
return c
#}

# Ask user to select another item to have a pair of selected items
@llm_by_value
def cli_shouldPromptSelection(
c: cli_Context
) -> cli_Context:
if (
c.recentField == "cMemory" and
c.cMemory.recentField == "selectedItems" and
len(c.cMemory.selectedItems) == 1
):
c.outputPromptSelection = "Select the second item now:"
c.recentField = "outputPromptSelection"
return c
#}
c.recentField = "none"
return c
#}

# Report matched items
@llm_by_value
def cli_shouldReportMatchedItems(
c: cli_Context
) -> cli_Context:
c: memory_Context
) -> memory_Context:
if ( if (
c.recentField == "cMemory" and
c.cMemory.recentField == "hiddenItems"
c.recentField == "launched" and
c.launched == True
): ):
c.outputMatchedItems = "Items matched! Go on:"
c.recentField = "outputMatchedItems"
c.outputGreeting = "OGS Memory Command Line Interface"
c.recentField = "outputGreeting"
return c return c
#} #}
c.recentField = "none" c.recentField = "none"
return c return c
#} #}


# Report mismatched items
@llm_by_value
def cli_shouldReportMismatchedItems(
c: cli_Context
) -> cli_Context:
if (
c.recentField == "cMemory" and
c.cMemory.recentField == "mismatchedItems"
):
c.outputMatchedItems = "Wrong! Try again:"
c.recentField = "outputMismatchedItems"
return c
#}
c.recentField = "none"
return c
#}

# Report selection of invalid item ids
## Select item
##
## Conditions:
## 1. Id is digit, in bounds and not hidden
#@llm_by_value
#def cli_selectItem(
# c: cli_Context
#) -> cli_Context:
# if (
# c.input.isdigit()
# ):
# # User ids start with 1 while memory module has ids starting with 0
# # Convert cli item id to memory item id
# c.cMemory.selectedId = int(c.input) - 1
# c.cMemory = memory_selectItem(c.cMemory)
# c.recentField = "cMemory"
# return c
# #}
# c.recentField = "none"
# return c
##}
# #
# Conditions:
# 1. Index out of bounds: less than minimum
# 2. Index out of bounds: greater than maximum
# 3. Item is already hidden
## Ask user to select another item to have a pair of selected items
#@llm_by_value #@llm_by_value
#def cli_shouldReportInvalidItemSelection(
#def cli_shouldPromptSelection(
# c: cli_Context # c: cli_Context
#) -> cli_Context: #) -> cli_Context:
# if ( # if (
@@ -108,20 +57,77 @@ def cli_shouldReportMismatchedItems(
# c.recentField = "none" # c.recentField = "none"
# return c # return c
##} ##}

# Show help (aka commands)
@llm_by_value
def cli_showHelp(
c: cli_Context
) -> cli_Context:
if (
c.input == "h" or
c.input == "help"
):
c.outputHelp = "Commands:\n\te, exit, q, quit\n\t\tExit\n\th, help\n\t\tList commands\n\t1, 2, 3, ...\n\t\tSelect item\nEnter your choice:"
c.recentField = "outputHelp"
return c
#}
c.recentField = "none"
return c
#}
#
## Report matched items
#@llm_by_value
#def cli_shouldReportMatchedItems(
# c: cli_Context
#) -> cli_Context:
# if (
# c.recentField == "cMemory" and
# c.cMemory.recentField == "hiddenItems"
# ):
# c.outputMatchedItems = "Items matched! Go on:"
# c.recentField = "outputMatchedItems"
# return c
# #}
# c.recentField = "none"
# return c
##}
#
## Report mismatched items
#@llm_by_value
#def cli_shouldReportMismatchedItems(
# c: cli_Context
#) -> cli_Context:
# if (
# c.recentField == "cMemory" and
# c.cMemory.recentField == "mismatchedItems"
# ):
# c.outputMatchedItems = "Wrong! Try again:"
# c.recentField = "outputMismatchedItems"
# return c
# #}
# c.recentField = "none"
# return c
##}
#
## Report selection of invalid item ids
##
## Conditions:
## 1. Index out of bounds: less than minimum
## 2. Index out of bounds: greater than maximum
## 3. Item is already hidden
##@llm_by_value
##def cli_shouldReportInvalidItemSelection(
## c: cli_Context
##) -> cli_Context:
## if (
## c.recentField == "cMemory" and
## c.cMemory.recentField == "selectedItems" and
## len(c.cMemory.selectedItems) == 1
## ):
## c.outputPromptSelection = "Select the second item now:"
## c.recentField = "outputPromptSelection"
## return c
## #}
## c.recentField = "none"
## return c
###}
#
## Show help (aka commands)
#@llm_by_value
#def cli_showHelp(
# c: cli_Context
#) -> cli_Context:
# if (
# c.input == "h" or
# c.input == "help"
# ):
# c.outputHelp = "Commands:\n\te, exit, q, quit\n\t\tExit\n\th, help\n\t\tList commands\n\t1, 2, 3, ...\n\t\tSelect item\nEnter your choice:"
# c.recentField = "outputHelp"
# return c
# #}
# c.recentField = "none"
# return c
##}

+ 73
- 72
v4/cli_test.py View File

@@ -1,11 +1,12 @@
from cli import * from cli import *
from cli_Context import *
from memory import * from memory import *
from memory_Context import * from memory_Context import *


def cli_test_greetUser( def cli_test_greetUser(
) -> str: ) -> str:
c = cli_createContext()
c = memory_createContext()
c.launched = True
c.recentField = "launched"
c = cli_greetUser(c) c = cli_greetUser(c)
if ( if (
c.recentField == "outputGreeting" c.recentField == "outputGreeting"
@@ -15,73 +16,73 @@ def cli_test_greetUser(
return "ERR: cli_greetUser" return "ERR: cli_greetUser"
#} #}


def cli_test_selectItem(
) -> str:
c = cli_createContext()
c.cMemory = memory_createContext()
c.input = "1"
c = cli_selectItem(c)
if (
c.recentField == "cMemory" and
c.cMemory.recentField == "selectedItems"
):
return "OK: cli_selectItem"
#}
return "ERR: cli_selectItem"
#}
def cli_test_shouldPromptSelection(
) -> str:
c = cli_createContext()
c.cMemory = memory_createContext()
c.input = "1"
c = cli_selectItem(c)
c = cli_shouldPromptSelection(c)
if (
c.recentField == "outputPromptSelection"
):
return "OK: cli_shouldPromptSelection"
#}
return "ERR: cli_shouldPromptSelection"
#}
def cli_test_shouldReportIvalidItemSelection_outOfBoundsMin(
) -> str:
c = cli_createContext()
c.cMemory = memory_createContext()
c.input = "0"
c = cli_selectItem(c)
c = cli_shouldReportInvalidItemSelection(c)
if (
c.recentField == "outputInvalidItemSelection"
):
return "OK: cli_shouldReportInvalidItemSelection"
#}
return "ERR: cli_shouldReportInvalidItemSelection"
#}
def cli_test_showHelp_h(
) -> str:
c = cli_createContext()
c.input = "h"
c = cli_showHelp(c)
if (
c.recentField == "outputHelp"
):
return "OK: cli_showHelp_h"
#}
return "ERR: cli_showHelp_h"
#}
def cli_test_showHelp_help(
) -> str:
c = cli_createContext()
c.input = "help"
c = cli_showHelp(c)
if (
c.recentField == "outputHelp"
):
return "OK: cli_showHelp_help"
#}
return "ERR: cli_showHelp_help"
#}
#def cli_test_selectItem(
#) -> str:
# c = cli_createContext()
# c.cMemory = memory_createContext()
# c.input = "1"
# c = cli_selectItem(c)
# if (
# c.recentField == "cMemory" and
# c.cMemory.recentField == "selectedItems"
# ):
# return "OK: cli_selectItem"
# #}
# return "ERR: cli_selectItem"
##}
#
#def cli_test_shouldPromptSelection(
#) -> str:
# c = cli_createContext()
# c.cMemory = memory_createContext()
# c.input = "1"
# c = cli_selectItem(c)
# c = cli_shouldPromptSelection(c)
# if (
# c.recentField == "outputPromptSelection"
# ):
# return "OK: cli_shouldPromptSelection"
# #}
# return "ERR: cli_shouldPromptSelection"
##}
#
#def cli_test_shouldReportIvalidItemSelection_outOfBoundsMin(
#) -> str:
# c = cli_createContext()
# c.cMemory = memory_createContext()
# c.input = "0"
# c = cli_selectItem(c)
# c = cli_shouldReportInvalidItemSelection(c)
# if (
# c.recentField == "outputInvalidItemSelection"
# ):
# return "OK: cli_shouldReportInvalidItemSelection"
# #}
# return "ERR: cli_shouldReportInvalidItemSelection"
##}
#
#def cli_test_showHelp_h(
#) -> str:
# c = cli_createContext()
# c.input = "h"
# c = cli_showHelp(c)
# if (
# c.recentField == "outputHelp"
# ):
# return "OK: cli_showHelp_h"
# #}
# return "ERR: cli_showHelp_h"
##}
#
#def cli_test_showHelp_help(
#) -> str:
# c = cli_createContext()
# c.input = "help"
# c = cli_showHelp(c)
# if (
# c.recentField == "outputHelp"
# ):
# return "OK: cli_showHelp_help"
# #}
# return "ERR: cli_showHelp_help"
##}

+ 3
- 3
v4/main.py View File

@@ -1,5 +1,5 @@
#from cli import *
#from cli_test import *
from cli import *
from cli_test import *
from memory_test import * from memory_test import *
#from shell import * #from shell import *
#import sys #import sys
@@ -13,7 +13,7 @@ print(memory_test_selectItem_1x())
print(memory_test_selectItem_2x()) print(memory_test_selectItem_2x())
print(memory_test_selectItem_3x()) print(memory_test_selectItem_3x())


#print(cli_test_greetUser())
print(cli_test_greetUser())
#print(cli_test_selectItem()) #print(cli_test_selectItem())
#print(cli_test_shouldPromptSelection()) #print(cli_test_shouldPromptSelection())
##print(cli_test_shouldReportIvalidItemSelection_outOfBoundsMin()) ##print(cli_test_shouldReportIvalidItemSelection_outOfBoundsMin())


+ 6
- 0
v4/memory_Context.py View File

@@ -1,7 +1,12 @@
class memory_Context: class memory_Context:
def __init__(self): def __init__(self):
self.hiddenItems = [] self.hiddenItems = []
self.input = ""
self.mismatchedItems = [] self.mismatchedItems = []
self.outputGreeting = ""
self.outputHelp = ""
self.outputMatchedItems = ""
self.outputMismatchedItems = ""
self.playfieldItems = {} self.playfieldItems = {}
self.playfieldSize = 0 self.playfieldSize = 0
self.recentField = "none" self.recentField = "none"
@@ -9,6 +14,7 @@ class memory_Context:
self.selectedItems = [] self.selectedItems = []
self.victory = False self.victory = False



def __repr__(self): def __repr__(self):
return self.__str__() return self.__str__()




Loading…
Cancel
Save