typer
fd
Our great sponsors
typer | fd | |
---|---|---|
87 | 172 | |
14,347 | 31,581 | |
- | - | |
8.7 | 8.8 | |
5 days ago | 15 days ago | |
Python | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
typer
- Typer: Python library for building CLI applications
- Copilot for your GitHub stars
-
Things I've learned about building CLI tools in Python
I have been using Typer on every one of my CLI projects which uses Click under the hood. The documentation is fantastic, the CLI app it produces looks great and lets you create things quickly. I high recommend it.
https://typer.tiangolo.com/
-
Things to do with standalone script
Adding CLI capabilities. My preferred library here is typer.
-
Where to start for managing a Python code base for public distribution
I just heard about this but it seems to be pretty much the type of thing you want and want fast.
-
Help on Docstrings
Docstrings are for documenting how a function/ class/ method/ module works. Often you don't need to add a docstring to your main function because no one will be importing it to use elsewhere. And if you want it to run as a CLI, then there are better ways to document the available options. For example, typer does most of it for you, or in click you add the help text to the decorator.
-
Which best practices do you follow to build robust & extensible ETL jobs?
Most computing tasks in airflow DAGs are KubernetesPodOperator containing a CLI (Python Typer). It allows us to pass arguments easily to run DAG manually if needed (the new UI to pass arguments to DAG in airflow 2.6 is really nice). Arguments allow us to replay DAG easily (change start / end dates for instance).
-
Devs on teams that deploy anytime you want, what does your SDLC workflow look like?
So it's basically the main .gitlab-ci.yml file plus a separate Python CI app using Typer for the AWS instrumentation.
-
The different uses of Python type hints
Similarly for Typer, which is literally "the FastAPI of CLIs"[1]. Handy to type your `main` parameters and have CLI argument parsing. For more complicated cases, it's a wrapper around Click.
[1] https://typer.tiangolo.com/
-
Command line parser library, which one do you like the most, regardless of language?
interesting that you hate python, but love Click. Did you try Typer which uses Click underneath?
fd
-
Level Up Your Dev Workflow: Conquer Web Development with a Blazing Fast Neovim Setup (Part 1)
ripgrep: A super-fast file searcher. You can install it using your system's package manager (e.g., brew install ripgrep on macOS). fd: Another blazing-fast file finder. Installation instructions can be found here: https://github.com/sharkdp/fd
-
Hyperfine: A command-line benchmarking tool
hyperfine is such a great tool that it's one of the first I reach for when doing any sort of benchmarking.
I encourage anyone who's tried hyperfine and enjoyed it to also look at sharkdp's other utilities, they're all amazing in their own right with fd[1] being the one that perhaps get the most daily use for me and has totally replaced my use of find(1).
[1]: https://github.com/sharkdp/fd
-
Z – Jump Around
You call it with `n` and get an interactive fuzzy search for your directories. If you do `n ` instead, it’ll start the find with `` already filled in (and if there’s only one match, jump to it directly). The `ls` is optional but I find that I like having the contents visible as soon as I change a directory.
I’m also including iCloud Drive but excluding the Library directory as that is too noisy. I have a separate `nl` function which searches just inside `~/Library` for when I need it, as well as other specialised `n` functions that search inside specific places that I need a lot.
¹ https://github.com/sharkdp/fd
² https://github.com/junegunn/fzf
-
Unix as IDE: Introduction (2012)
Many (most?) of them have been overhauled with success. For find there is fd[1]. There's batcat, exa (ls), ripgrep, fzf, atuin (history), delta (diff) and many more.
Most are both backwards compatible and fresh and friendly. Your hardwon muscle memory still of good use. But there's sane flags and defaults too. It's faster, more colorful (if you wish), better integration with another (e.g. exa/eza or aware of git modifications). And, in my case, often features I never knew I needed (atuin sync!, ripgrep using gitignore).
1 https://github.com/sharkdp/fd
- Tell HN: My Favorite Tools
-
Potencializando Sua Experiência no Linux: Conheça as Ferramentas em Rust para um Desenvolvimento Eficiente
Descubra mais sobre o fd em: https://github.com/sharkdp/fd
-
Making Hard Things Easy
AFAIK there is a find replacement with sane defaults: https://github.com/sharkdp/fd , a lot of people I know love it.
However, I already have this in my muscle memory:
-
🐚🦀Comandos shell reescritos em Rust
fd
-
Oils 0.17.0 – YSH Is Becoming Real
> without zsh globs I have to remember find syntax
My "solution" to this is using https://github.com/sharkdp/fd (even when in zsh and having glob support). I'm not sure if using a tool that's not present by default would be suitable for your use cases, but if you're considering alternate shells, I suspect you might be
-
Bfs 3.0: The Fastest Find Yet
Nice to see other alternatives to find. I personally use fd (https://github.com/sharkdp/fd) a lot, as I find the UX much better. There is one thing that I think could be better, around the difference between "wanting to list all files that follow a certain pattern" and "wanting to find one or a few specific files". Technically, those are the same, but an issue I'll often run into is wanting to search something in dotfiles (for example the Go tools), use the unrestricted mode, and it'll find the few files I'm looking for, alongside hundreds of files coming from some cache/backup directory somewhere. This happens even more with rg, as it'll look through the files contents.
I'm not sure if this is me not using the tool how I should, me not using Linux how I should, me using the wrong tool for this job, something missing from the tool or something else entirely. I wonder if other people have this similar "double usage issue", and I'm interested in ways to avoid it.
What are some alternatives?
click - Python composable command line interface toolkit
telescope.nvim - Find, Filter, Preview, Pick. All lua, all the time.
Python Fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
ripgrep - ripgrep recursively searches directories for a regex pattern while respecting your gitignore
Gooey - Turn (almost) any Python command line program into a full GUI application with one line
fzf - :cherry_blossom: A command-line fuzzy finder
rich - Rich is a Python library for rich text and beautiful formatting in the terminal.
exa - A modern replacement for ‘ls’.
python-prompt-toolkit - Library for building powerful interactive command line applications in Python
skim - Fuzzy Finder in rust!
cement - Application Framework for Python
vim-grepper - :space_invader: Helps you win at grep.