all 13 comments

sorted by: hot top controversial new old
[–] 19 points 2 years ago (1 child)

python -m http.server came in handy so many times!

  • source
  • hideshow 2 child comments
  • [–] 6 points 2 years ago (1 child)

    I use json.tool a lot to format JSON directly in vim. Simply highlight the text you want to format and run :!python3 -m json.tool. There are probably plugins to do this too, but doing it this way is probably the simplest, unless vim has a built-in for it.

  • source
  • hideshow 2 child comments
  • [–] 3 points 2 years ago (1 child)

    Could probably do the same with :! jq . It's a bit shorter.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 2 years ago (1 child)

    Yeah, I knew someone was going to say that. Usually it's more likely that Python is installed than jq - especially on servers. But yes, that would definitely work too.

  • source
  • parent
  • hideshow 2 child comments
  • Sure, I'm just not sure when I'd ever run into that. Either I'm doing it a lot and installing jq is reasonable, or I'm not allowed on the server anyway and need to copy/paste from logs.

    I used to use python -m json.tool a lot, but I haven't needed to in many years.

  • source
  • parent
  • [–] 6 points 2 years ago (1 child)

    Easier than grepping, you can just look at the standard library docs: https://docs.python.org/3/library/

  • source
  • hideshow 2 child comments
  • [–] 2 points 2 years ago (1 child)

    How is that easier? It doesn't look like it provides a list of which modules have a __name__ == "__main__" block.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago

    No. But, it does provide a list of all stdlib libraries and those, like gzip, that are intended to be compatible with the CLI tend to have explicit documentation showing usage (ex. https://docs.python.org/3/library/gzip.html) and provides any other contextual info related to using the library.

    Don't get me wrong, grepping through the code is a great way of building skills needed as a professional. Really, I have to do this kind of thing multiple times every week at work. It is, however, also worth noting that Python only uses an "honor system" for public/private functions, methods, and classes so modules having an "if name == 'main'" block doesn't necessarily mean that they are appropriate to use as CLI tools. They might be but, without documentation to back it up, it's an "at your own risk" situation.

  • source
  • parent
  • Pro tip: you can ignore filenames with ripgrep using -g "!test/". That should speed things up a bit.

  • source
  • [–] 2 points 2 years ago
    [–] 2 points 2 years ago* (last edited 2 years ago)

    CLITools can be hard to find, but when you do it's worth the effort.

  • source
  • python -m http.server has been a very useful tool to me, to test if a server is accessible.

  • source