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

    I once wrote a bot in python tdownloaded a ical file, looked for chances and informed me if found. The space indentation made it hell to follow the code in my opinion.

    • naught@sh.itjust.works
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      4 months ago

      Just curious, what about spaces made it hard? What language would have been easier? In curly brace languages, 99% of the time, a curly brace is followed by a line break and an indent. Python is similar except it’s typically a colon, line break, then indent.

      What I have learned is: If the code is indented too deeply, it’s a code problem, not the language.

      Torvalds infamously wrote:

      “… if you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program.”

      • uranibaba@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        4 months ago

        Too much nested code was likely part of the problem, but not being able to easily tell where a block of coded ended without seeing the top of the block made it difficult to work with.

        • naught@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          4 months ago

          That’s fair! Takes time to get used to. Modern editors make this easier by highlighting the current indent level, or can even make the top X lines of the current closure “stick” to the top of the editor for those really long blocks.

          • uranibaba@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            4 months ago

            Having those features would really have made it easier. I have only ever written my python code in Sublime Text. While it is a sublime text editor, at is not ideal (compared to how it is to write Java in IntelliJ) for Python. (Maybe with addons but I never delved into that more than a few.)

    • Jeena@piefed.jeena.netOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 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
        ·
        4 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}