• Jeena@piefed.jeena.netOP
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    I don’t get it because my phyton code is indented exactly the same as all my other code. Each block of code one tab in/out, how else would you do it?

    • uranibaba@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      It’s because there is no clear indication of where a block ends.

      Here is some sample code. I find it difficult to tell how many indentations I have or where I need to write if I want to continue at a certain level.

      import time
      import aiohttp
      
      """
      Retreives the data from RSS URL and return the status codes as well as the data. Return -1 if something went wrong.
      """
      async def get_rss_feed(rss_url):
          async with aiohttp.ClientSession() as session:
              try:
                  retry_count = 0
                  while retry_count < 5:
                      async with session.get(rss_url) as resp:
                          if resp.status == 200:
                              return {'status': resp.status, 'data': await resp.text()}
                          else:
                              retry_count += 1
                              time.sleep(60)
                  if retry_count == 5:
                      raise ValueError('To many failed connection attempts', retry_count)
              except aiohttp.InvalidURL as error:
                  return {'status': -1, 'data': f"Error: {rss_url} is not a valid URL.", 'error': error}
              except aiohttp.ClientConnectorError as error:
                  return {'status': -1, 'data': f"Error: Could not connect to {rss_url}.", 'error': error}
              except ValueError as error:
                  return {'status': -1, 'data': f"Error: Could not connect to {rss_url} after {retry_count} attempts.", 'error': error}