finstem
PySimpleGUI
finstem | PySimpleGUI | |
---|---|---|
6 | 49 | |
16 | 13,201 | |
- | - | |
7.4 | 8.8 | |
6 months ago | 3 days ago | |
Python | Python | |
- | GNU General Public License v3.0 or later |
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.
finstem
-
Ask HN: Best thing you've made in CLI
It ain't much, but it's honest work: https://github.com/hiAndrewQuinn/finstem
I moved to Finland a few years ago to be with my then-fiancee, now-wife. I started learning Finnish and found that constantly going to Wiktionary to search for the root forms of their words, which have 15 declensions, possessive endings, clitics similar to Japanese particles, and other craziness going on in the root form themselves.
I wrote this to let me very quickly strip away all of that and get just the original dictionary forms of words. Later I wrapped it into a little `fzf` script to make it easy to analyze entire sentences or paragraphs at once.
The code is nothing special at all, but I use this thing dozens of times daily, and it's never let me down.
-
Command Line Interface Guidelines
I know it goes without saying for most of us here, but actually being a heavy terminal user yourself is one of the most important things to understand how to design CLIs. It helps a ton to understand the ecosystem you live in, not just your own organism.
Example: Something I did a few months back ago for a tiny personal project @ https://github.com/hiAndrewQuinn/finstem was implement `--format CSV`, `TSV` and `JSON` flags. I haven't had need for any of these myself, but they exist so any future people who want to use `csvkit`, `awk` and `jq` respectively to wrap around my program have easy ways to do so. That's not stuff I would have had the instincts to do if I wasn't myself a user of all 3 of those programs.
-
Cold-Blooded Software
Most of the software I write is at least somewhat cold-blooded by this definition. My program to find the dictionary forms of Finnish words is an okay example:
https://github.com/hiAndrewQuinn/finstem
I wrote the initial draft in an afternoon almost a year ago, and from then on endeavored to only make changes which I know play nicely with my local software ecology. I usually have `fzf` installed, so an interactive mode comes as a shell script. I usually have `csvkit`, `jq`, and if all else fails `awk` installed, so my last major update was to include flags for CSV, JSON, and TSV output respectively. Etc, etc.
The build instructions intentionally eschew anything like Poetry and just gives you the shell commands I would run on a fresh Ubuntu VirtualBox VM. I hand test it every couple of months in this environment. If the need to Dockerize it ever arose I'm sure it would be straightforward, in part because the shell commands themselves are straightforward.
-
PysimpleGUI
I'm considering taking a tool I have which has a pretty nicely fleshed-out CLI interface and wrapping a GUI around it, so people who don't run desktop Linux can use it too. This seems like it might be perfect for my needs.
https://github.com/hiAndrewQuinn/finstem
-
`finstem` can now do get you the root words for full sentences and paragraphs.
Big GitHub link
-
Things I've learned about building CLI tools in Python
I build little CLI tools in Python non-stop. ChatGPT and some basic knowledge of how the `click` library works has made it almost completely trivial to get the ball rolling for whatever need I have for it, `--help` text included.
The fact that the barrier for creation is so low means I'm even willing to do them to solve very niche problems in generalizable ways. [1] is common enough that a few people have starred it. [2] is niche enough that other Anki folks haven't used it AFAICT. [3] is likely something I'll never personally need again, even though Azure VM reservations not letting you customize your reminders for when they're about to expire is probably a costly mistake for a great many firms. All generated with this same starting methodology, because what I wanted was just a little too fiddly to want to hack together with my shell toolkit.
[1]: https://github.com/hiAndrewQuinn/finstem
[2]: https://github.com/hiAndrewQuinn/table2anki
[3]: https://github.com/hiAndrewQuinn/AzureReservations2ICS
PySimpleGUI
-
Shoes makes building little graphical programs for Mac, Windows, Linux simple
Just a heads up: PySimpleGUI 5 isn't open source any more [0], and the official GitHub repo was replaced with a stub [1]. From the blog post, it sounds like the people behind it will probably remove the FOSS version from PyPI soon.
It's possible the community will fork it with a version of PySimpleGUI 4 that's still kicking around, but I haven't seen one yet.
[0] https://news.ycombinator.com/item?id=39369353
[1] https://github.com/PySimpleGUI/PySimpleGUI
-
PySimpleGUI 4 will be sunsetted in Q2 2024
Their old CONTRIBUTING file <https://github.com/PySimpleGUI/PySimpleGUI/blob/1fa911cafee6...> said:
> Pull requests are not being accepted for the project. This includes sending code changes via other means than "pull requests". Plainly put, code you send will not be used.
> I don't mean to be ugly. This isn't personal. Heck, I don't know "you",the reader personally. It's not about ego. It's complicated. The result is that it allows me to dedicate my life to this project. It's what's required, for whatever reason, for me to do this. That's the best explanation I have. I love and respect the users of this work.
It's obvious in hindsight that those reasons were a bald-faced lie, and the real reason was exactly that he could legally do this rug pull.
-
PysimpleGUI
From https://github.com/PySimpleGUI/PySimpleGUI/issues/142
> 2023 is going to be the "Make or Break" year. I ultimately need to determine if the project is going to continue. To date, it's nowhere near sustainable. The income doesn't cover the cost of the project, meaning that it's not only unable to allow me to pay for my cost of living, but I continue to rack up debt, borrowing money, to keep the project functional.
> This isn't new information if you've followed the over 1,200 announcements I've made since Sept 2018. The data is available should you wish to look at the GitHub Sponsorships and do the simple math required to calculate income from Udemy. It would be great for the project to keep going. I'm hopeful, but more than hope's required to keep the project going.
So if you like this project and want to see it around in the future, please support it.
Github sponsors is probably the best place: https://github.com/sponsors/PySimpleGUI
-
Advice on best way to build the following windows application?
The psutil package makes getting a list of running programs not very difficult. There's an example demo program that polls once a second and displays the top process using CPU time. You could use it as a starting point perhaps.
-
NiceGUI – easy-to-use, Python-based UI framework
How does it compare with remi? https://github.com/rawpython/remi
Looking at the examples, for quick UIs, REMI seems simpler. And PySimpleGUI (https://github.com/PySimpleGUI/PySimpleGUI) offers REMI as a backend to deploy on web too (PySimpleGUI is pretty simple to learn).
-
I made a simple random password generator
Random Password Generator (what an orginal name!) or RPG for short is a simple password generator that uses PySimpleGUI GUI framework, in order to have a user-friendly interface and also because i wanted to have fun.
- How to make progress bar work using PySimpleGUI?
- When to switch languages for a project
-
PySimpleGUI: How to use slider to change variable and plot with matplotlib?
Another approach when the data is easy to graph is to use the Graph Element to create a graph. A Demo Program shows how to make something like this.
What are some alternatives?
python_script_cc - A personal cookiecutter template for simple python3 scripts
kivy - Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS
table2anki - HTML tables to Anki card packages. Does what it says on the tin!
CustomTkinter - A modern and customizable python UI-library based on Tkinter
poetry-cookiecutter - 🍪 Poetry Cookiecutter is a modern Cookiecutter template for scaffolding Python packages and apps
DearPyGui - Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
AzureReservations2ICS - Given the CSV of the Azure Reservations website, create an ICS file of reminder events leading up to the expiration.
EasyGUI - easygui for Python
docopt - Create *beautiful* command-line interfaces with Python
wxPython
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
pywebview - Build GUI for your Python program with JavaScript, HTML, and CSS