schmonz.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
Practical Python for Production under Pressure: Managing the insanity that is developing pipelines alongside a production at full speed https://leanpub.com/practical_python by Alex Telford is the featured book on the Leanpub homepage! https://leanpub.com #Python #SoftwareEngineering #GameDevelopment #books #ebooks
Find it on Leanpub!
“Fun” learning YAML properly?
Okay. So. I have to learn ANSI-Bell for $ork. Meh. But okay.
Playbooks are written in YAML. I hate YAML and have always used yaml2jsn to convert it to JSON (if possible) when I had to touch it in the past, as somehow a subset¹² of JSON is a valid subset of YAML accepted² by YAML parsers.
① you’ll have to make sure you don’t emit some codepoints literally, and to format numbers in scientific notation a specific way, but that’s generally a good advice for JSON emitters
② except JSON strings have codepoints outside the Basic Multilingual Plane encoded as two UTF-16 surrogates in \u####
notation whereas YAML parsers require it to be unescaped four-octet UTF-8, which breaks many JSON parsers; I ran into that just this week, in fact, for my RSS to Fediverse gateways…
I personally find YAML unwritable, due to things like GitHub Actions’ example of…
on:
push:
branches:
- main
… does not convert to…
{
"on": {
"push": {
"branches": [
"main"
]
}
}
}
… but to:
{
"1": {
"push": {
"branches": [
"main"
]
}
}
}
(GitHub accepts both syntacēs in workflow files in JSON.)
But let’s go back to the “self-explaining, obvious” YAML:
on:
push:
branches:
- main
So, we’ve already established that “on” is 1 and that something like country: no
isn’t Norway but 0 (and real existing people have fallen into this, yet there are strong recommendations to not quote strings in YAML documents like ANSI-Bell playbooks, and somehow nobody even documents how strings are to be escaped and when they need to be escaped).
But, riddle me this:
push:
<2 spaces>branches:
But:
branches:
<2 spaces><hyphen-minus and space>main
But:
options:
<no space><hyphen-minus and space>Ubuntu
<no space><hyphen-minus and space>macOS
(All examples from here.)
I find this totally obvious and self-explanatory and consistent, and I totally know when to use two spaces, or dash-plus-space, or both.</sarcasm>
One of the books I’ve been provided (actual published training material with an ISBN each) just hand-waves it away, the other says:
The target section looks like the following code snippet:
- hosts: webservers user: root
[…] As per the YAML syntax, the line must start with a dash. […]
So, basically, the hosts:
line must start with a dashhyphen-minus? I think not.
The “Hands-on interactive lab and helpful resources” in the Red Hat “YAML essentials for Ansible” “learning path” is similarly deficient in even fundamentally basic explanation. 0/10, won’t recommend.
The hand-waving book links to http://www.yaml.org/start.html
, so let’s read…
a getting started guide for YAML
… in my favourite webbrowser lynx
:
Page not found · GitHub Pages
File not found
The site configured at this address does not contain the requested
file.
If this is your site, make sure that the filename case matches the URL
as well as any file permissions.
For root URLs (like http://example.com/) you must provide an index.html
file.
[1]Read the full documentation for more information about using GitHub
Pages.
[2]GitHub Status — [3]@githubstatus
Edit this document's URL: https://yaml.org/start.html
… oooookay?
But surely yaml.org
has more material? *looks* … well, it has links to the specs and implementations. All very useful, but not right now for a hopefully structured introduction that explains the hows and ideally also the whys.
Let’s follow the *New*
link in which they announce the 1.2.2 spec… a blogpost. Okay. It has a title bar (brown background in Firefox) with a promising link:
Y
*
* [2]Blog
* [3]Docs
Let’s follow #3 to “Docs”!
←←← Twitter
[1]Skip to main content
Y
*
* [2]Blog
* [3]Docs
*
*
[4]YAML Glossary
[5]YAML Cheat Sheet
(BUTTON) Menu
YAML Documentation
__________________________________________________________________
YAML documentation is on the way!
#content
This 80×24 screenshot is literally the entirety of the official #YAML documentation.
Well, colour me impressed.
Wait, no.
Fuck that shit.
Wait. This is for $dayjob. $customer also edits playbooks. I’m sure they’ll be delighted if I run things through yaml2jsn and commit the result as #JSON.
Also, see footnote 2 above.
Fuuuuck I’m SOL.
So. Do I honestly have to wade through the spec to learn this?
(Not that this is new. When I first learnt Python in 2008, I had to look at the C-language source code of the #Python interpreter to figure out things missing from the documentation. Which brings us back full circle to #ansible, the culprit of bringing this entire shitshow to my attention. I’m a programmer, not a DevCloudOp or something.)
A Leanpub Frontmatter Podcast Interview with Alex Telford, Author of Practical Python for Production Under Pressure: Managing the insanity that is developing pipelines alongside a production at full speed | Watch here: https://youtu.be/uDziREzkpdY #books #Python #VFX #SoftwareEngineering #PythonTips
Leanpub book LAUNCH 🚀 Practical Python for Production Under Pressure: Managing the insanity that is developing pipelines alongside a production at full speed by Alex Telford https://youtu.be/nPvgqZZWJ5Y #books #booklaunch #Python #VFX #SoftwareEngineering #PythonTips
Just released: em 4.4.0, the CLI emoji keyboard 🚀⌨️✨
✨ Upgraded to emojilib 4.0.0: "The keywords include most if not all the :shortcode: from different platforms"
✨ Dropped support for oh-so-very-nearly-EOL Python 3.8.
Just released: termcolor 2.5.0: ANSI colour formatting for terminal output
🚀🖥️🎨
🖥️ Added `strike` attribute
🖥️ Now generates and uploads #PEP740 attestations to PyPI
🖥️ Dropped support for oh-so-very-nearly-EOL Python 3.8
Just released: Tablib 3.7.0 🚀
🦛 Add sparkly new Python 3.13
🦛 Drop EOL Python 3.8
🦛 Add styling to datetime, date and time values for ODS
🦛 Add styling for date/time types for XLS
🦛 Fix time and datetime export in ODS format
🦛 Avoid normalizing input twice in import_set/book
Just released: #cherry_picker 2.3.0 🚀
This tool creates backports for CPython when the Miss Islington bot can't, usually due to a merge conflict.
🍒 Add support for #Python 3.13, drop EOL 3.8
🍒 Resolve usernames when remote ends with a trailing slash
🍒 Optimize validate_sha() with --max-count=1
🍒 Remove multiple commit prefixes
🍒 Handle whitespace when calculating usernames
🍒 Publish to PyPI using #TrustedPublishers
🍒 Generate #PEP740 attestations
🍒 And more!
Big day for releases! I accidentally scheduled my very first ever CPython release for the same day as my turn to do the @pillow quarterly release. It'll be fine! Might release everything* else today as well for good measure.
The Pillow release has begun, you can follow along the wheel build+PyPI publish CI here, it'll be done in a couple of hours or so:
https://github.com/python-pillow/Pillow/actions/runs/11340141751
Just released: @pillow 11.0.0 🚀
🎨 Add support for Python 3.13, including experimental freethreaded wheels!
🖌️ Drop support for EOL Python 3.8
🎨 Remove a whole load of deprecations
🖌️ Add, change and fix a whole lot more stuff
🎨 Add some more deprecations, to be removed in Pillow 12 next October
🖌️ More info at https://pillow.readthedocs.io/en/stable/releasenotes/11.0.0.html
🎨 And even more at https://github.com/python-pillow/Pillow/releases/tag/11.0.0
Just released: pypistats 1.7.0 🚀
📈 Generate digital attestations for PyPI (PEP 740)
📉 Drop support for EOL Python 3.8
📈 Generate __version__ at build to avoid slow importlib.metadata
Just released: Python 3.14.0a1 🚀
https://discuss.python.org/t/python-3-14-0-alpha-1/68039
🐍 PEP 649: deferred evaluation of annotations
🐍 Improved error messages
🐍 And more!
Just released: pepotron 1.3.0 🚀
🔩 Generate digital attestations for PyPI (PEP 740)
🔩 Drop support for Python 3.8
🔩 Generate __version__ at build to avoid slow importlib.metadata
🔩 Test on CI with uv
https://pypi.org/project/pepotron/1.3.0/
Pepotron is a CLI for opening PEPs in your browser. For example, try:
$ pep 8
$ pep 3.14
$ pep dead batteries
$ pep calendar
Just released: norwegianblue 0.19.0 🚀
🦜 Drop support for Python 3.8
🦜 Generate digital attestations for PyPI (PEP 740)
🦜 Test with tox-uv
🦜 Lint with pre-commit-uv
https://pypi.org/project/norwegianblue/0.19.0/
norwegianblue is a CLI to show EOLs from https://endoflife.date
Just released: blurb 1.3.0 🚀
blurb is the CLI we use for managing CPython's news/changelog entries.
🗞️ Add support for Python 3.13
🗞️ Drop support for Python 3.8
🗞️ Generate digital attestations for PyPI (PEP 740)
🗞️ Allow running blurb test from blurb-* directories by
🗞️ Add version subcommand
🗞️ Generate __version__ at build to avoid slow importlib.metadata
https://pypi.org/project/blurb/1.3.0/
#Python #CPython #blurb #release #CLI #changelog #news #PEP740 #Python313 #Python38
Just released: flake8-implicit-str-concat 🚀
🎱 Add support for #Python 3.12-3.13, drop 3.7-3.8
🎱 Switch from Flit to Hatchling + hatch-vcs for dynamic versioning
🎱 Release to PyPI with Trusted Publishing
https://pypi.org/project/flake8-implicit-str-concat/0.5.0/
This #Flake8 plugin helps tidy up after Black:
$ cat 1.py
s = ('111'
'222')
$ black 1.py
reformatted 1.py
All done! ✨ 🍰 ✨
1 file reformatted.
$ cat 1.py
s = "111" "222"
$ flake8 1.py
1.py:1:10: ISC001 implicitly concatenated string literals on one line
Just released! stravavis 0.5.0 🚀
Create artistic visualisations with your exercise data.
https://pypi.org/project/stravavis/0.5.0/
🚴 Drop support for EOL Python 3.8
🏃 Skip segments in GPX tracks with empty trkseg
🛶 Fix pandas warnings
Just released! Python Docs Sphinx Theme 2024.10 🚀
https://pypi.org/project/python-docs-theme/2024.10/
📚 Add support for Python 3.13
📚 Drop support for Python 3.8
📚 Add script for handling translations
📚 Generate digital attestations for PyPI (PEP 740)
This is the theme used by docs sites such https://docs.python.org and https://typing.readthedocs.io
#Python #docs #Sphinx #PythonDocsTheme #PythonDocsSphinxTheme #PEP740
Just released! PrettyTable 3.12 🚀
https://pypi.org/project/prettytable/3.12.0/
🪑 Add new themes to ColorTable
🪑 Drop support for Python 3.8
🪑 Deprecate hrule and tableStyle constants
🪑 Use SPDX license identifier
🪑 Add lots of type annotations
🪑 Generate __version__ at build to avoid slow importlib.metadata
🪑 Release to PyPI using Trusted Publishing and PEP 703 digital attestations
🪑 Fix drawing headerless coloured tables with title
🪑 And more!
Just released: Python 3.14.0a2 🚀
https://discuss.python.org/t/python-3-14-0-alpha-2/71711
🐍 PEP 649: Deferred evaluation of annotations
🐍 PEP 741: Python configuration C API
🐍 PEP 761: Deprecating PGP signatures for CPython artifacts
🐍 Improved error messages
🐍 And more!
https://docs.python.org/3.14/whatsnew/3.14.html
#Python #CPython #Python314 #release #PEP649 #PEP741 #PEP761
Just released: Python 3.14.0a3 🚀
https://discuss.python.org/t/python-3-14-0-alpha-3/74542
https://docs.python.org/3.14/whatsnew/
This release brought to you by tea and homemade mince pies.
Oh, and taking inspiration from #pytest, I added colour to #unittest output in this one 🎨
Just released: Python 3.14.0a4 🚀
https://discuss.python.org/t/python-3-14-0-alpha-4/77112
https://docs.python.org/3.14/whatsnew/3.14.html
Here's one amazing reason to try it out! 🗓️🎨
Just released: Python 3.14.0a5 🚀
https://discuss.python.org/t/python-3-14-0-alpha-5/80364
https://docs.python.org/3.14/whatsnew/3.14.html
Also recently released!
blurb 2.0.0
cherry-picker 3.5.0
pypistats 1.8.0
PrettyTable 3.13.0 & 3.14.0
tox-dev/action-pre-commit-uv 1.0.2
em-keyboard 5.0.0
Especially for π day and #FediDonutFriday!
Just released: Python 3.14.0a6 🚀
https://discuss.python.org/t/python-3-14-0-alpha-6/84513
https://docs.python.org/3.14/whatsnew/3.14.html
This release brought to you by a Karelian pie (Karjalanpiirakka), a strawberry and gooseberry pie (mansikka-karviais piirakka) and a slice of blueberry pie (mustikkapiirakka).
#Python #CPython #Python314 #release #food #PiDay #PiiPäivä #pie #FediDonutFriday
Just released: pypistats 1.9.0 🚀
pypistats is CLI to show download stats from PyPI
https://pypi.org/project/pypistats/1.9.0/
* Replace deprecated classifier with licence expression (PEP 639)
* Remove GitHub attestation, uses PyPI attestations instead (PEP 740)
* Add input validation for total and fix --monthly with no mirror
* Update docs for recent command
Just released: humanize 4.12.2 🚀
Bugfix release, mainly fixing the spelling of licence/license so the file is properly included in the package.
Reminder how to do PEP 639 metadata: https://hugovk.dev/blog/2025/improving-licence-metadata/
Just released: PrettyTable 3.16 🚀
Just released: norwegianblue 0.21.0 🚀
Add support for OSC 8 hyperlinks in the terminal.
https://github.com/prettytable/prettytable/releases/tag/3.16.0
norwegianblue now uses this to create hyperlinks in the terminal instead of printing a wide column of links. Use command+click with iTerm.
Also create hyperlinks for Markdown, reStructuredText and HTML output.
https://github.com/hugovk/norwegianblue/releases/tag/0.21.0
Attached are before and after images.
Just released: termcolor 3.0.0 🚀
ANSI colour formatting for the terminal.
🎨 Add support for Python 3.14
🎨 Only apply FORCE_COLOR, NO_COLOR & ANSI_COLORS_DISABLED env vars when present & not an empty string
🎨 Replace literal types with strings
🎨 Replace deprecated classifier with licence expression (PEP 639)
🎨 Speedup: move typing imports into type-checking block
🎨 Remove deprecated __ALL__, use __all__ instead
Just released: Python 3.14.0a7 🚀
Just released: Python 3.13.3 🚀🚀
Just released: Python 3.12.10 🚀🚀🚀
Just released: Python 3.11.12 🚀🚀🚀🚀
Just released: Python 3.10.17 🚀🚀🚀🚀🚀
Just released: Python 3.9.22 🚀🚀🚀🚀🚀🚀
Last 3.14 alpha! Less than a month to get new features in before beta!
Last 3.12 bugfix release! Now in security fix only!
And security releases of 3.9-3.11.
Please upgrade 3.9-3.13!
Please test 3.14!
Just released: Pillow 11.2.1 🚀
There was meant to be a 11.2.0 on 1st April, but we put too much good stuff in the wheels and hit the @pypi.org project limit before it could all be uploaded. That was yanked and now deleted and 11.2.1 is back to normal size.
We'll try and put the good stuff back for 11.3.0 on 1st July but take up less space.
Just released: Python Docs Theme 2025.4 🚀
📚 Require Sphinx 7.3
📚 Add support for Python 3.14
📚 Drop support for Python 3.10-3.11
📚 Copy button for code samples
📚 PEP 639 licence metadata
📚 and more!
https://github.com/python/python-docs-theme/releases
Thanks to Tomas Roun for the copy button! Demo:
🙈 https://www.youtube.com/watch?v=2cxSP90gj8c [Vappu is May Day]
Just released! 🚀🚀🚀🚀
termcolor 3.1.0
Add true colour, cache system lookups
https://github.com/termcolor/termcolor/releases/tag/3.1.0
em-keyboard 5.1.0
Add Emoji 16.0: 🇨🇶
https://github.com/hugovk/em-keyboard/releases/tag/v5.1.0
Humanize 4.12.3
Fix regression in naturalsize, improve French translation
https://github.com/python-humanize/humanize/releases/tag/4.12.3
Python Docs Theme 2025.4.1
Fix copy button with multiple tracebacks
https://github.com/python/python-docs-theme/releases/tag/2025.4.1
#Python #release #termcolor #humanize #Sphinx #theme #EmKeyboard #PythonDocsTheme
Just released: Python 3.14.0 beta 1! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
https://discuss.python.org/t/python-3-14-0-beta-1-is-here/91117?u=hugovk
Just released: Python 3.14.0 beta 2! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
Do you maintain a Python package? Please test 3.14. If you find a bug now, we can fix it before October, which helps everyone. And you might find some places in your code to update as well, which helps you.
https://discuss.python.org/t/python-3-14-0-beta-2-is-here/93396?u=hugovk
Just released: Python 3.14.0 beta 3! 🚀🐍
🥧 All the good stuff of b2 but also:
🥧 Free-threaded Python is officially supported! (PEP 779)
🥧 Subinterpreters in the stdlib! (PEP 734)
Do you maintain a Python package? Please test 3.14.
If you find a bug now, we can fix it before October, which helps everyone. And you might find some places in your code to update as well, which helps you.
https://discuss.python.org/t/python-3-14-0-beta-3-is-here/95843?u=hugovk
#Python #CPython #Python314 #release #PEP779 #PEP734 #FreeThreaded #subinterpreters
Just released: linkotron 0.6.0!
🔗 Adds OSC 8 formatting so you can do make those clickable links in terminal emulators.
https://pypi.org/project/linkotron/
#Python #release #linkotron
Just released: Python 3.14.0 beta 4! 🚀🐍
🥧 Last beta!
🥧 Do you maintain a Python package? Please test and report bugs!
🥧 This includes creating pre-release wheels for 3.14, as it helps other projects to do their own testing.
https://discuss.python.org/t/python-3-14-0-beta-4-is-here/98092/1?u=hugovk
#Python #CPython #Python314 #release
Practical GPU Programming: High-performance computing with CUDA, CuPy, and Python on modern GPUs https://leanpub.com/pythongpuprogramming by GitforGits | Asian Publishing House is the featured book on the Leanpub homepage! https://leanpub.com #ComputerHardware #Python #SoftwareEngineering #Graphics #books #ebooks
Find it on Leanpub!
Whee! Now we can import files from the filesystem, as well as reading and writing files. Still haven't wrapped my head around how folders work, still can't enumerate files ..
as usual, work pushed to my micropython fork on github (which is called circuitpython, because you can't have two different forks of the "same" original project, argh).
#micropython #python #retrocomputing #retro68 #macintosh #m68k
oh my yay, it now works well enough to save and edit a file, then import and run that file.
you could basically use an old m68k mac as a python3 (well, micropython) development system now.
don't mind the debug messages, they're as scared of you as you are of them.
#micropython #python #retrocomputing #retro68 #macintosh #m68k
Are there any folks with vintage Mac programming experience who'd like to collaborate on figuring out what's next with Micropython on Mac?
I think that might be: What's the minimal set of APIs to do a fun graphical demo.
Pointers to "how to"-ish documentation in Pascal and C would be great as well, I have failed at finding this kind of stuff. (I do have Inside Macintosh but it is not a great tutorial)
asyncio is working on mac micropython!
also (not shown here) the "sys.stdin" object is pollable, and you can double-click a python file to run it as the main code file.
Now you can witness one of the first quickdraw calls from MicroPython on mac... 🎉 ⬛
#micropython #python #retrocomputing #retro68 #macintosh #m68k
Doing a little iterative code development in micropython on an emulated m68k mac... I might not be so happy with the loading time if a real floppy was involved, but in an emulator it's heckin' snappy.
Clearly I need to tackle the issue that you can't REALLY draw to the same window as the terminal....
#micropython #python #retroComputing #retro68 #macintosh #m68k
From the Leanpub Blog: Welcome to the Leanpub Launch video for Introduction to GIS Programming: A Practical Python Guide to Open Source Geospatial Tools by Qiusheng Wu!
#books #leanpublishing #selfpublishing #booklaunch #GIS #Python #OpenSource #Geospatial #RemoteSensing #DataScience #EarthEngine #geemap #leafmap #LeanpubPodcast
Leanpub book LAUNCH 🚀 Introduction to GIS Programming: A Practical Python Guide to Open Source Geospatial Tools by Qiusheng Wu
Watch here:
#books #leanpublishing #selfpublishing #booklaunch #GIS #Python #OpenSource #Geospatial #RemoteSensing #DataScience #EarthEngine #geemap #leafmap #LeanpubPodcast