python -m http.server
came in handy so many times!
Python
Welcome to the Python community on the programming.dev Lemmy instance!
π Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django π¬)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
π Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
π Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
β¨ Python Ecosystem:
π Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- PythΓΆrhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
Easier than grepping, you can just look at the standard library docs: https://docs.python.org/3/library/
How is that easier? It doesn't look like it provides a list of which modules have a __name__ == "__main__"
block.
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.
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.
Could probably do the same with :! jq .
It's a bit shorter.
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.
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.
Pro tip: you can ignore filenames with ripgrep using -g "!test/"
. That should speed things up a bit.
CLITools can be hard to find, but when you do it's worth the effort.
python -m http.server
has been a very useful tool to me, to test if a server is accessible.
Nice work!