input: Write a python function to fetch and parse HTML from a given URL to extract the title and description.
  assert fetch_and_parse_html('https://example.com') == {'title': 'Example Domain', 'description': 'This domain is for use in illustrative examples in documents.'}
  assert fetch_and_parse_html('https://www.python.org') == {'title': 'Welcome to Python.org', 'description': 'The official home of the Python Programming Language'}
  assert fetch_and_parse_html('https://www.wikipedia.org') == {'title': 'Wikipedia', 'description': 'Wikipedia is a free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation.'}
output: def fetch_and_parse_html(url):
      import requests
      from bs4 import BeautifulSoup
  
      response = requests.get(url)
      soup = BeautifulSoup(response.content, 'html.parser')
  
      title = soup.title.string if soup.title else 'No title found'
      description = ''
      if soup.find('meta', attrs={'name': 'description'}):
          description = soup.find('meta', attrs={'name': 'description'})['content']
      elif soup.find('meta', attrs={'property': 'og:description'}):
          description = soup.find('meta', attrs={'property': 'og:description'})['content']
      else:
          description = 'No description found'
  
      return {'title': title, 'description': description}