Modify get_input() to accumulate input lines between { and } and return the concatenated lines with '\n'.

# Context:
USER: modify get_input(). if the user inputs a line with just { then keep accumulating input lines until you receive a line with just }. in this case, discard the {} lines and return the rest of the lines concatenated with '\n'
ASSISTANT: To modify the `get_input()` function to accumulate input lines between `{` and `}`, we will change the function to handle this case.

Here's the updated code for the `get_input()` function:

```python
coder.py
<<<<<<< ORIGINAL
    def get_input(self):
        if self.pretty:
            self.console.rule()
        else:
            print()

        inp = ""
        if self.pretty:
            print(Fore.GREEN, end="\r")
        else:
            print()

        while not inp.strip():
            try:
                inp = input("> ")
            except EOFError:
                return

        ###
        if self.pretty:
            print(Style.RESET_ALL)
        else:
            print()

        readline.write_history_file(history_file)
        return inp
=======
    def get_input(self):
        if self.pretty:
            self.console.rule()
        else:
            print()

        inp = ""
        multiline_input = False
        if self.pretty:
            print(Fore.GREEN, end="\r")
        else:
            print()

        while True:
            try:
                line = input("> ")
            except EOFError:
                return

            if line.strip() == "{" and not multiline_input:
                multiline_input = True
                continue
            elif line.strip() == "}" and multiline_input:
                break
            elif multiline_input:
                inp += line + "\n"
            else:
                inp = line
                break

        if self.pretty:
            print(Style.RESET_ALL)
        else:
            print()

        readline.write_history_file(history_file)
        return inp
>>>>>>> UPDATED
```

This change will allow the `get_input()` function to accumulate input lines between `{` and `}` and return the concatenated lines with '\n'.
This commit is contained in:
Paul Gauthier 2023-05-08 22:43:39 -07:00
parent 551cc011aa
commit 42598e2329

View file

@ -141,18 +141,29 @@ class Coder:
print()
inp = ""
multiline_input = False
if self.pretty:
print(Fore.GREEN, end="\r")
else:
print()
while not inp.strip():
while True:
try:
inp = input("> ")
line = input("> ")
except EOFError:
return
###
if line.strip() == "{" and not multiline_input:
multiline_input = True
continue
elif line.strip() == "}" and multiline_input:
break
elif multiline_input:
inp += line + "\n"
else:
inp = line
break
if self.pretty:
print(Style.RESET_ALL)
else:
@ -160,7 +171,6 @@ class Coder:
readline.write_history_file(history_file)
return inp
def check_for_local_edits(self, init=False):
last_modified = max(Path(fname).stat().st_mtime for fname in self.fnames)
since = last_modified - self.last_modified
@ -609,4 +619,4 @@ def main():
if __name__ == "__main__":
status = main()
sys.exit(status)
sys.exit(status)