I released a new version of my python package, freqit v1.0 today!
When I first built freqit
I knew less about packaging python projects for release. I built it as a class because a lot of the examples I had to work from at the time described the object-oriented nature of python in detail using classes. Now that I’ve had a chance to use freqit
and learned more about python package development, I think the class structure was overkill. This is a simple package doing a simple aggregation task. Having to call it in two steps (defining the class and then calling the aggregation function) was too complicated for what this software is trying to do.
The new release doesn’t add any new features or functionality but this is next on my list. I’d really like freqit
to be able to aggregate by another grouping variable.
I first released freqit
in August 2020, and it took a good while to refresh my memory on all the necessary setup and steps. I relied heavily on the python documentation for packaging projects:
https://packaging.python.org/en/latest/tutorials/packaging-projects/.
I think best practices for releasing packages have also evolved in that time!
One major change is that a pyproject.toml
file has replaced setup.py. This stackoverflow question describes pyproject.toml
vs setup.py
. Although pyproject.toml
is new to me, the stackoverflow question is two years old! Guess I am not hip to the times.
I found conflicting information on whether pyproject.toml
is only for non-editable installs. Some documentation indicated you needed to do something else to create an editable install with a pyproject.toml
. But I also found some information that recent versions of pip support installing pyproject.toml
in editable mode. I wanted to release a non-editable install today, so whether I can still install in editable mode to develop freqit
further will be a problem for future Lauren.
One lesson learned was to not mess with the pyproject.toml
file too much. I reorganized the author parameter onto multiple lines and as a result had several failed package builds. I was trying to make it more readable, but needed to leave it as-is. The best way to learn something is to break it!
You can find freqit
on github here: https://github.com/la-mcnamara/freqit
And on pypi here: https://pypi.org/project/freqit/
I’m very excited for this release, and I hope you like it too!