Check out pip-tools [1] by jazzband [2]. It’s a well-crafted project with great potential.
A set of tools to keep your pinned Python dependencies fresh.
References:
[1]: https://github.com/jazzband/pip-tools
[2]: https://github.com/jazzband
Published
All published posts
2493 posts
latest post 2026-05-11
Publishing rhythm
So many terminal applications bind q to exit, even the python debugger, its
muscle memory for me. But to exit ipython I have to type out exit<ENTER>.
This is fine, but since q is muscle memory for me I get this error a few times
per day.
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ <ipython-input-1-2b66fd261ee5>:1 in <module> │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
NameError: name 'q' is not defined
After digging way too deep into how IPython implements its ExitAutoCall I
realized there was a very simple solution here. IPython automatically
imports all the scripts you put in your profile directory, all I needed was to
create ~/.ipython/profile_default/startup/q.py with the following.
q = exit
It was that simple. This is not a game changer by any means, but I will now
see one less error in my workflow. I just press q<Enter> and I am out,
without error.
It’s no secret that I love automation, and lately my templating framework of
choice has been copier. One hiccup I recently ran into was having spaces in my
templated directory names. This makes it harder to run commands against as you
need to escape them, and if they end up in a url you end up with ugly %20 all
over.
Cookiecutter has the solution # [1]
Yes the solution comes from a competing templating framework.
I install copier with pipx, so I need to inject cookiecutter in to my copier
environment to use the slugify filter.
pipx inject copier cookiecutter
If you are using a normal virtual environment [2] you can just pip install it.
pip install copier cookiecutter
add the extension to your template # [3]
copier.yml
Now to enable the extension you need to declare it in your copier.yml file in
your template.
_jinja_extensions:
- cookiecutter.extensions.SlugifyExtension
Use it | slugify # [4]
use-it
Now to use it, anywhere that you want to slugify a variable, you just pipe it
into slugify.
❯ tree .
.
├── copier.yml
├── README.md
└── {{ site_name|slugify }}
└── markata.toml.jinja
1 directory, 3 files
Here is a slimmed down version of what the copier.yml looks like.
...
I came across box-cli-maker [1] from box-cli-maker [2], and it’s packed with great features and ideas.
Render highly customizable boxes in the terminal
References:
[1]: https://github.com/box-cli-maker/box-cli-maker
[2]: https://github.com/box-cli-maker
box-cli-maker [1] by Delta456 [2] is a game-changer in its space. Excited to see how it evolves.
Make Highly Customized Boxes for CLI
References:
[1]: https://github.com/Delta456/box-cli-maker
[2]: https://github.com/Delta456
Textual has devtools in the upcoming css branch, and its pretty awesome!
It’s still early # [1]
Textual is still very early and not really ready for prime time, but it’s quite
amazing how easy some things such as creating keybindings is. The docs are
coming, but missing right now so if you want to use textual be ready for
reading source code and examples.
On to the devtools # [2]
As @willmcgugan [3] shows in this tweet it’s
pretty easy to setup, it requires having two terminals open, or using tmux, and
currently you have to use the css branch.
https://twitter.com/willmcgugan/status/1531294412696956930
Why does textual need its own devtools # [4]
Textual is a tui application framework. Unlike when you are building cli
applications, when the tui takes over the terminal in full screen there is no
where to print statement debug, and breakpoints don’t work.
getting the css branch # [5]
In the future it will likely be in main and not need this, but for now you need
to get the css branch to get devtools.
git clone https://github.com/Textualize/textual
git fetch --alll
git checkout css
install in a virtual environment [6] # [7]
Now you can create a virtual environment, feel f...
I’m really excited about minesweeper [1], an amazing project by NotUnlikeTheWaves [2]. It’s worth exploring!
A minesweeper in the terminal written in Golang with Bubbletea
References:
[1]: https://github.com/NotUnlikeTheWaves/minesweeper
[2]: https://github.com/NotUnlikeTheWaves
The work on gh-eco [1] by jrnxf [2].
🦎 gh cli extension to explore the ecosystem
References:
[1]: https://github.com/jrnxf/gh-eco
[2]: https://github.com/jrnxf
Using Different versions of python with pipx | pyenv
[1]
I love using pipx for automatic virtual environment [2] management of my globally
installed python cli applications, but sometimes the application is not
compatible with your globally installed pipx
Which version of python is pipx using?? # [3]
This one took me a minute to figure out at first, please let me know if there
is a better way. I am pretty certain that this is not the ideal way, but it
works.
My first technique was to make a package that printed out sys.version.
# what version of python does the global pipx use?
pipx run --spec git+https://github.com/waylonwalker/pyvers pyvers
# what version of python does the local pipx use?
python -m pipx run --spec git+https://github.com/waylonwalker/pyvers pyvers
Let’s setup some other versions of python with pyenv # [4]
If you don’t already have pyenv [5] installed,
you can follow their install
instructions [6] to get it.
pyenv install 3.8.13
pyenv install 3.10.5
I usually require a virtual environment # [7]
I set the PIP...
Check out Cveinnt [1] and their project LiveTerm [2].
💻 Build terminal styled websites in minutes!
References:
[1]: https://github.com/Cveinnt
[2]: https://github.com/Cveinnt/LiveTerm
curl [1] has done a fantastic job with curl [2]. Highly recommend taking a look.
A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
References:
[1]: https://github.com/curl
[2]: https://github.com/curl/curl
LIVE-REPLAY - Python dev | Markata todoui | 4/6/2022
https://youtu.be/-42A5210HYo
Super fun steam Broadcasted live on Twitch – Watch live at https://www.twitch.tv/waylonwalker
We worked on markata todoui, a command tui trello board written in python using only markdown files to store the data. I love markdown and I want to make this my workflow.
During this stream we get RAIDED by TEEJ_DV! and chat about tmux a bit before calling the changes to markata-tui good and signing off.
- dotfiles: https://github.com/WaylonWalker/devtainer
- today’s project: https://github.com/WaylonWalker/markata-todoui
- website: https://waylonwalker.com/
The work on fish-lf-icons [1] by joshmedeski [2].
Fish plugin to add Nerd Font icon support to the lf terminal file manager
References:
[1]: https://github.com/joshmedeski/fish-lf-icons
[2]: https://github.com/joshmedeski
If you’re into interesting projects, don’t miss out on wish-lists [1], created by pypeaday [2].
amazon wish lists replacement
References:
[1]: https://github.com/pypeaday/wish-lists
[2]: https://github.com/pypeaday
I’m really excited about typeshed [1], an amazing project by python [2]. It’s worth exploring!
Collection of library stubs for Python, with static types
References:
[1]: https://github.com/python/typeshed
[2]: https://github.com/python
If you’re into interesting projects, don’t miss out on mypy [1], created by python [2].
Optional static typing for Python
References:
[1]: https://github.com/python/mypy
[2]: https://github.com/python
I’m impressed by devshell [1] from numtide [2].
Per project developer environments
References:
[1]: https://github.com/numtide/devshell
[2]: https://github.com/numtide
The work on pyscript [1] by pyscript [2].
PyScript is an open source platform for Python in the browser. Try PyScript: https://pyscript.com Examples: https://tinyurl.com/pyscript-examples Community: https://discord.gg/HxvBtukrg2
References:
[1]: https://github.com/pyscript/pyscript
[2]: https://github.com/pyscript
Check out pypeaday [1] and their project tdarr [2].
tdarr setup
References:
[1]: https://github.com/pypeaday
[2]: https://github.com/pypeaday/tdarr
If you’re into interesting projects, don’t miss out on skedulord [1], created by koaning [2].
captures logs and makes cron more fun
References:
[1]: https://github.com/koaning/skedulord
[2]: https://github.com/koaning