Hexadecimal errors when hitting back-space while using inquirer module

In summary, the conversation discusses the use of a user-defined module for a coding project, specifically 'Text' from the 'inquirer' module. The user is experiencing errors when inputting or validating input, particularly when using the back-space key on their keyboard. They are considering using the 'raw_input' built-in function instead but are unsure how to identify the source of the problem. The conversation then shares a code sample that illustrates the issue and discusses a potential solution involving handling backspaces in the string.
  • #1
Eclair_de_XII
1,083
91
TL;DR Summary
Basically, the inquirer module is like a module for advanced forms of user-input, like having the user select from a list, multiple choice, text, etc. Documentation is here.

https://python-inquirer.readthedocs.io/en/latest/
I'm using this user-defined module for an amateur coding project, and I am using 'Text' from the 'inquirer' module. When I am either inputting things, or whenever I am validating things, I always get some sort of error. These errors mainly result whenever I hit the back-space key on my keyyboard. I am reconsidering doing this using the 'raw_input' built-in function to do so, but it would be nice to know how to figure out the source of my problem.

This is a sample of code that I wrote that illustrates one of the two dilemmas I am having.

Sample code that produces erroneous input:
from inquirer import errors, prompt, Text

def check_even(ans,cur):
    if int(cur)%2!=0:
        raise errors.ValidationError('',reason='The inputted integer is not even!')
    return True

def is_this_even(hex10_error=True):
    if hex10_error:
        val=True
    else:
        val=check_even
    question=[Text(
        name='',
        message='Please input some integer...',
        validate=val
    )]
    return int(prompt(question)['']) % 2 == 0

if __name__=='__main__':
    error=True
    even=is_this_even(error)
    print(even)

This error passes the error (back-space and all) and then gets an error when the function attempts to convert the string number to integer. My main objective here is to get rid of all these \x08 from the backspaces.

Error 1: Hexadecimal str recorded, not literal string:
[?] Please input some integer...: 4564
Traceback (most recent call last):
  File "C:/Users/Eclair/Documents/3 Projects/Project Aenir/test.py", line 17, in <module>
    even=is_this_even()
  File "C:/Users/Eclair/Documents/3 Projects/Project Aenir/test.py", line 14, in is_this_even
    return int(prompt(question)['']) % 2 == 0
ValueError: invalid literal for int() with base 10: '4564\x08\x08\x08\x08\x08'

The second error results when I back-space after initially giving bad input. After giving bad input and back-spacing, the program gives the error message in line 12, instead of the expected one in line 13.

Error 2: Back-spacing after giving bad input.:
[?] Please input some integer...: 4545

>> "454" is not a valid .
>> The inputted integer is not even!

I honestly do not know enough about coding to know why this happens, so please forgive the lack of effort on my part.
 
Technology news on Phys.org
  • #2
The problem appears to be that the user-defined module you are using doesn't handle backspacing. Basically it returning a string to you with the bad digits and the backspacing to remove them.

You will need to write some code to walk the string and handle the backspacing unless there is an option with the user-defined Inquirer module to do that. It doesn't seem so as I looked at it docs briefly online.

The code below handles removing the backspaces but you'll have to replace the '#' with the backspace character.

https://www.geeksforgeeks.org/string-after-processing-backspace-characters/
 
  • Like
Likes Eclair_de_XII and Ibix

1. What is a hexadecimal error?

A hexadecimal error is an error code that is represented in the hexadecimal number system. It is commonly used in computing to represent errors or addresses in memory.

2. Why does hitting back-space cause a hexadecimal error while using the inquirer module?

The inquirer module is a command line user interface tool that allows users to interact with a program. When hitting back-space, it may cause unexpected changes in the input data, which can result in a hexadecimal error if the input is not in the correct format.

3. How can I prevent hexadecimal errors when using the inquirer module?

To prevent hexadecimal errors, ensure that the input data is in the correct format before using the back-space key. It is also helpful to thoroughly test the program to identify and fix any potential issues before using it in a production environment.

4. Are hexadecimal errors common when using the inquirer module?

Hexadecimal errors can occur when using any program, including the inquirer module, especially if the input data is not properly validated. However, they can be easily avoided by following proper coding practices and testing the program thoroughly.

5. How can I troubleshoot a hexadecimal error when using the inquirer module?

To troubleshoot a hexadecimal error, it is important to identify the root cause of the error. This can be done by examining the code and input data, as well as checking for any potential bugs or conflicts with other modules. If necessary, consulting online resources or seeking help from other developers can also be helpful in resolving the issue.

Similar threads

  • Programming and Computer Science
Replies
2
Views
919
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
17
Views
2K
  • Programming and Computer Science
Replies
3
Views
1K
  • Programming and Computer Science
Replies
6
Views
3K
  • Programming and Computer Science
Replies
22
Views
5K
  • Programming and Computer Science
Replies
1
Views
2K
  • Programming and Computer Science
3
Replies
75
Views
4K
Replies
56
Views
699
  • Programming and Computer Science
Replies
1
Views
2K
Back
Top