Beehaw
  • Communities
  • Create Post
  • search
    Search
  • Login
  • Sign Up
learnbyexample ( learnbyexample@programming.dev )  to Python@programming.devEnglish · 3 年前

CLI tools hidden in the Python standard library

til.simonwillison.net

external-link
message-square
9
link
fedilink
  • cross-posted to:
  • python@programming.dev
  • technews@radiation.party
75
external-link

CLI tools hidden in the Python standard library

til.simonwillison.net

learnbyexample ( learnbyexample@programming.dev )  to Python@programming.devEnglish · 3 年前
message-square
9
link
fedilink
  • cross-posted to:
  • python@programming.dev
  • technews@radiation.party
Seth Michael Larson pointed out that the Python gzip module can be used as a CLI tool like this:
alert-triangle
You must log in or # to comment.
  • 𝕨𝕒𝕤𝕒𝕓𝕚 ( wasabi@feddit.de ) 
    link
    fedilink
    arrow-up
    13
    ·
    3 年前

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

    • mark ( ATLeagle@mastodon.online ) 
      link
      fedilink
      arrow-up
      5
      ·
      3 年前

      @wasabi @learnbyexample one of my favorite super lazy ways to share a file

  • namingthingsiseasy ( namingthingsiseasy@programming.dev ) 
    link
    fedilink
    arrow-up
    4
    ·
    3 年前

    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.

  • nickwitha_k (he/him) ( nickwitha_k@lemmy.sdf.org ) 
    link
    fedilink
    arrow-up
    3
    ·
    3 年前

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

    • BatmanAoD ( BatmanAoD@programming.dev ) 
      link
      fedilink
      arrow-up
      1
      ·
      3 年前

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

      • nickwitha_k (he/him) ( nickwitha_k@lemmy.sdf.org ) 
        link
        fedilink
        arrow-up
        1
        ·
        3 年前

        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.

  • floppingfish ( floppingfish@kbin.social ) 
    link
    fedilink
    arrow-up
    2
    ·
    3 年前

    Nice work!

  • NotAtWork ( NotAtWork@startrek.website ) 
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    3 年前

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

  • moonpiedumplings ( moonpiedumplings@programming.dev ) 
    link
    fedilink
    arrow-up
    1
    ·
    3 年前

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

Python@programming.dev

python@programming.dev

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !python@programming.dev

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:
  • pyvideo
  • Awesome Python
  • PyCon US 2023 and videos!
🌌 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
  • Active c/Python posts
  • New c/Python posts
Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 4 users / day
  • 33 users / week
  • 112 users / month
  • 289 users / 6 months
  • 104 local subscribers
  • 8.07K subscribers
  • 634 Posts
  • 1.97K Comments
  • Modlog
  • mods:
  • Erlingur ( erlingur@programming.dev ) 
  • Jason Novinger ( jnovinger@programming.dev ) 
  • Luis Norambuena ( norambna@programming.dev ) 
  • BE: 0.19.15
  • Modlog
  • Legal
  • Instances
  • Docs
  • Code