text: import csv
  import os
  
  def menu(username="@prof-rossetti", products_count=100):
      # this is a multi-line string, also using preceding `f` for string interpolation
      menu = f"""
      -----------------------------------
      INVENTORY MANAGEMENT APPLICATION
      -----------------------------------
      Welcome {username}!
      There are {products_count} products in the database.
          operation | description
          --------- | ------------------
          'List'    | Display a list of product identifiers and names.
          'Show'    | Show information about a product.
          'Create'  | Add a new product.
          'Update'  | Edit an existing product.
          'Destroy' | Delete an existing product.
      Please select an operation: """ # end of multi- line string. also using string interpolation
      return menu
  
  def read_products_from_file(filename="products.csv"):
      filepath = os.path.join(os.path.dirname(__file__), "db", filename)
      print(f"READING PRODUCTS FROM FILE: '{filepath}'")
      products = []
      #TODO: open the file and populate the products list with product dictionaries
      return products
  
  def write_products_to_file(filename="products.csv", products=[]):
      filepath = os.path.join(os.path.dirname(__file__), "db", filename)
      print(f"OVERWRITING CONTENTS OF FILE: '{filepath}' \n ... WITH {len(products)} PRODUCTS")
      #TODO: open the file and write a list of dictionaries. each dict should represent a product.
  
  def reset_products_file(filename="products.csv", from_filename="products_default.csv"):
      print("RESETTING DEFAULTS")
      products = read_products_from_file(from_filename)
      write_products_to_file(filename, products)
  
  def run():
      # First, read products from file...
      products = read_products_from_file()
  
      # Then, prompt the user to select an operation...
      print(menu(username="@some-user")) #TODO instead of printing, capture user input
  
      # Then, handle selected operation: "List", "Show", "Create", "Update", "Destroy" or "Reset"...
      #TODO: handle selected operation
  
      # Finally, save products to file so they persist after script is done...
      write_products_to_file(products=products)
  
  # only prompt the user for input if this script is run from the command-line
  # this allows us to import and test this application's component functions
  if __name__ == "__main__":
  run()