input: Write a python function to manage an item catalogue with add, update, delete, and search functionality.
  assert catalogue.add("item1", {"price": 10, "stock": 100}) == None
  assert catalogue.search("item1") == {"price": 10, "stock": 100}
  assert catalogue.update("item1", {"price": 12, "stock": 90}) == None
  assert catalogue.search("item1") == {"price": 12, "stock": 90}
  assert catalogue.delete("item1") == None
  assert catalogue.search("item1") == None
output: class Catalogue:
      def __init__(self):
          self.items = {}
  
      def add(self, item_name, item_info):
          self.items[item_name] = item_info
  
      def update(self, item_name, item_info):
          if item_name in self.items:
              self.items[item_name] = item_info
  
      def delete(self, item_name):
          if item_name in self.items:
              del self.items[item_name]
  
      def search(self, item_name):
          return self.items.get(item_name, None)
  
  catalogue = Catalogue()