freqit v1.0

28 Jan 2023

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!