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.
"""asyncdefget_rss_feed(rss_url):
asyncwith aiohttp.ClientSession() as session:
try:
retry_count = 0while retry_count < 5:
asyncwith 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}
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?
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}