Steempy - Next generation Python library for Steem

in Steem Dev7 days ago

My followers and readers are probably aware that I prefer working with Python over languages that are used in web development. As a result, most of my projects are developed in Python.
For this reason, there's a need for a Python library that handles interaction with the blockchain. Currently, there is the official steem-python library, which is unfortunately very outdated, and beem, which is primarily based on Hive and only supports Steem as an aside - it's unclear how long that will continue (as I can see on GitHub, beem is officially marked as archived and is therefore no longer being maintained).
That's why I've been intending to continue working on the Python library for some time now.

I had already taken the first steps toward that in November 2025:

1. Code Base

Since updates to the old code are unlikely to be implemented anymore due to a lack of maintainers, I had to come up with my own solution. To do this, I took the old code and created a standalone repository - not a fork. The first version 1.0.1 corresponds to the previous steem-python code.

2. Package Index

Even the best code is useless if it isn't easy to use. The previous library could be installed via the Python Package Index (PyPI) as the steem package. Since new developments would no longer be included in the old package, it made sense to start with a new one. I had chosen steempy as the name, since this command would also allow the library to be used on the command line. However, steempy was already reserved, though it hadn't been used in a long time. So I submitted an official ticket to claim the package name for myself. After about three months, this was successfully completed in February 2026, and I was able to upload the first version to PyPI:

https://pypi.org/project/steempy

This version still corresponds to the previous official code from steem-python.
Note: I still need to figure out how to add a project description on PyPI. Maybe one of you has a tip.


grafik.png

3. Dev Env

So now I could just go ahead and start making changes. In particular, the dependency on the outdated pycrypto library absolutely must be fixed so that the installation works smoothly, for example, in containers. Workarounds can be found here, here, and here.

But before I can get started professionally, I need a development environment so I can properly develop, test, and deploy the code.
To do this, I created a new branch and made the following changes:

  • Integration of tox for testing across different Python versions,
  • Creation of GitHub Actions to test the code before deploying to PyPI,
  • Limiting support to Python versions 3.8 through 3.12,
  • Integration of linters and formatting tools for code standardization and code review.

4. Next Steps and Thoughts

  • Should Python 3.8 and 3.9 continue to be supported? I'm almost inclined to say no, because, on the one hand, it increases the effort involved, and on the other hand, these versions are already outdated. Anyone who wants to start developing with my new library now should use a reasonably up-to-date version of Python.
  • Switching to ruff and mypy for code checking and formatting requires many changes to the old code. I'm not yet sure how I'll go about this. It will likely require adapting the code module by module to avoid overhauling the entire codebase at once. But maybe a single commit for all the changes would be better?
  • Currently, all GitHub Actions are still failing due to the pycrypto dependency. I'll therefore likely start addressing this in the first production-ready version. Only then will we see how well the development environment holds up.
  • Further testing should ensure that the new code works properly.
  • The documentation absolutely needs to be updated. I’ll probably use GitHub Pages for this.


10.08.2026

Steem Search on https://moecki.online/

My Full Node on https://api.moecki.online

For fast account recovery set your recovery account to @moecki.recovery.

My Github

Vote here

Sort:  
Loading...

Also wenn das keinen Kommentar wert ist , höhö .
#SUPER , #KLASSE , #TOLL , #JEAHH .

 6 days ago (edited)

Das ist wiederum ein Danke wert :-))

!dubby 5%

Hey @moecki,
thank you for using our automatic payout bot 'DUBby' to share your post rewards with your commentators.

You have not yet issued any payout instructions.
Just write a comment to the users who should receive a share. It should contain the instruction in the form !dubby x %.

If you need help with this, feel free to ask or check this manual (german).

Greetings from the 'DU-Finanzbot' (by Witness @moecki).

TEAM 5

Congratulations! Your post has been upvoted from sc-07 account.

1000093596.png

Curated by : @ sduttaskitchen