Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

bartleby

Concept explainers

Question

Please help me with my Python code Im still getting errors like missing input data and more.

 

def read_data(filename):
    try:
        with open(filename, "r") as file:
            return file.read()
    except Exception as exception:
        print("File is empty" if not str(exception) else str(exception))
        return None


def extract_data(tags, strings):
    data = []
    start_tag = f"<{tags}>"
    end_tag = f"</{tags}>"
    while start_tag in strings:
        try:
            start_index = strings.find(start_tag) + len(start_tag)
            end_index = strings.find(end_tag)
            if end_index == -1:
                break
            value = strings[start_index:end_index]
            if value:
                data.append(value)
            strings = strings[end_index + len(end_tag):]
        except Exception as exception:
            print(exception)
    return data


def get_names(string):
    names = extract_data("name", string)
    return names


def get_descriptions(string):
    descriptions = extract_data("description", string)
    return descriptions


def get_calories(string):
    calories = extract_data("calories", string)
    return calories


def get_prices(string):
    prices = extract_data("price", string)
    return prices


def display_menu(names, descriptions, calories, prices):
    for i in range(len(names)):
        print(f"{names[i]} - {descriptions[i]} - {calories[i]} - {prices[i]}")


def display_stats(calories, prices):
    total_items = len(calories)
    average_calories = sum(map(int, calories)) / total_items
    correct_price = []
    for price in prices:
        try:
            if price:
                correct_price.append(float(price[1:]))
            else:
                correct_price.append(0.0)
        except ValueError:
            print("Error: Missing or bad data")
            return
    average_price = sum(correct_price) / total_items
    print(f"{total_items} items - {average_calories:.1f} average calories - ${average_price:.2f} average price")


def main():
    filename = "simple.xml"
    string = read_data(filename)
    if string:
        names = get_names(string)
        descriptions = get_descriptions(string)
        calories = get_calories(string)
        prices = get_prices(string)
        if names and prices and descriptions and calories:
            display_menu(names, descriptions, calories, prices)
            display_stats(calories, prices)


main()

<
X Test with pytest
5 items 800.0 average calories $6.86 average price
448 E
449
450 .github/workflows/test.py: 1393: AssertionError
451
452
short test summary info
FAILED .github/workflows/test_final_project.py::test_final_project_source_code_formatting
formatting:
453 Final project.py:82:80: E501 line too long (112 > 79 characters)
454
FAILED .github/workflows/test_final_project.py::test_final_project_missing_file
incorrect. Expected 'File is missing'.
AssertionError: Final Project Final Project Python source code
455 Input:
456 Missing file
457 Output:
458 [Errno 2] No such file or directory: 'simple.xml'
459 FAILED .github/workflows/test_final_project.py::test_final_project_empty_file - AssertionError: Final Project Final Project Error message is missing or
incorrect. Expected 'File is empty'.
Input:
Empty file
464 Input:
465 No records
466 Output:
467 FAILED .github/workflows/test_final_project.py::test_final_project_missing_fields
incorrect. Expected 'Error: Missing or bad data'.
AssertionError: Final Project Final Project Error message is missing or
460
461
462 Output:
463 FAILED .github/workflows/test_final_project.py::test_final_project_no_records AssertionError: Final Project Final Project Error message is missing or
incorrect. Expected 'File is empty' or 'No data'.
-
AssertionError: Final Project Final Project Error message is missing or
468 Input:
469 Missing fields
470
Output:
471
Belgian Waffles Two of our famous Belgian Waffles with plenty of real maple syrup 650 - $5.95
472 Strawberry Belgian Waffles Light Belgian waffles covered with strawberries and whipped cream 900 - $7.95
473
Berry-Berry Belgian Waffles - Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 $8.95
Homestyle Breakfast Thick slices made from our homemade sourdough bread 600 $4.50
474
475 5 items
800.0 average calories
$6.86 average price
476
========= 5 failed, 46 passed, 35 skipped in 1.26s
477 Error: Process completed with exit code 1.
1s
expand button
Transcribed Image Text:< X Test with pytest 5 items 800.0 average calories $6.86 average price 448 E 449 450 .github/workflows/test.py: 1393: AssertionError 451 452 short test summary info FAILED .github/workflows/test_final_project.py::test_final_project_source_code_formatting formatting: 453 Final project.py:82:80: E501 line too long (112 > 79 characters) 454 FAILED .github/workflows/test_final_project.py::test_final_project_missing_file incorrect. Expected 'File is missing'. AssertionError: Final Project Final Project Python source code 455 Input: 456 Missing file 457 Output: 458 [Errno 2] No such file or directory: 'simple.xml' 459 FAILED .github/workflows/test_final_project.py::test_final_project_empty_file - AssertionError: Final Project Final Project Error message is missing or incorrect. Expected 'File is empty'. Input: Empty file 464 Input: 465 No records 466 Output: 467 FAILED .github/workflows/test_final_project.py::test_final_project_missing_fields incorrect. Expected 'Error: Missing or bad data'. AssertionError: Final Project Final Project Error message is missing or 460 461 462 Output: 463 FAILED .github/workflows/test_final_project.py::test_final_project_no_records AssertionError: Final Project Final Project Error message is missing or incorrect. Expected 'File is empty' or 'No data'. - AssertionError: Final Project Final Project Error message is missing or 468 Input: 469 Missing fields 470 Output: 471 Belgian Waffles Two of our famous Belgian Waffles with plenty of real maple syrup 650 - $5.95 472 Strawberry Belgian Waffles Light Belgian waffles covered with strawberries and whipped cream 900 - $7.95 473 Berry-Berry Belgian Waffles - Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 $8.95 Homestyle Breakfast Thick slices made from our homemade sourdough bread 600 $4.50 474 475 5 items 800.0 average calories $6.86 average price 476 ========= 5 failed, 46 passed, 35 skipped in 1.26s 477 Error: Process completed with exit code 1. 1s
Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education