schlunker
  • Communities
  • Create Post
  • Create Community
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
learnbyexample@programming.dev to Python@programming.devEnglish · 1 year ago

CLI tools hidden in the Python standard library

til.simonwillison.net

external-link
message-square
13
fedilink
  • cross-posted to:
  • python_dev@lemmy.pastwind.top
  • python@partizle.com
  • python@programming.dev
132
external-link

CLI tools hidden in the Python standard library

til.simonwillison.net

learnbyexample@programming.dev to Python@programming.devEnglish · 1 year ago
message-square
13
fedilink
  • cross-posted to:
  • python_dev@lemmy.pastwind.top
  • python@partizle.com
  • python@programming.dev
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 register to comment.
  • 𝕨𝕒𝕤𝕒𝕓𝕚@feddit.de
    link
    fedilink
    arrow-up
    19
    ·
    1 year ago

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

    • mark@mastodon.online
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago

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

  • namingthingsiseasy@programming.dev
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    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.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

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

      • namingthingsiseasy@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        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.

        • sugar_in_your_tea@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          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.

  • nickwitha_k (he/him)@lemmy.sdf.org
    link
    fedilink
    arrow-up
    8
    arrow-down
    3
    ·
    1 year ago

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

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      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)@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        1 year 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.

  • sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

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

  • moonpiedumplings@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

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

  • floppingfish@kbin.social
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    Nice work!

  • NotAtWork@startrek.website
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

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

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.

  • 1 user / day
  • 88 users / week
  • 253 users / month
  • 1.13K users / 6 months
  • 1 local subscriber
  • 7.13K subscribers
  • 573 Posts
  • 3.1K Comments
  • Modlog
  • mods:
  • Erlingur@programming.dev
  • Jason Novinger@programming.dev
  • Luis Norambuena@programming.dev
  • BE: 0.19.5
  • Modlog
  • Instances
  • Docs
  • Code
  • join-lemmy.org