For usage, check out example.py Also note that you should NOT roll ntime for data retrieved without explicitly checking that it falls within the template's limitations (mintime, maxtime, mintimeoff, and maxtimeoff); read the BIP 23 specification in detail to understand how they work. It is usually best to simply get more data as often as it is needed. For blkmk_get_mdata, you may specify that you intend to roll the ntime header exactly once per second past usetime - it will then set *out_expires such that the expiration occurs before you roll beyond any ntime limits. If you are rolling ntime at any rate other than once per second, you should NOT specify can_roll_ntime to blkmk_get_mdata, and must check that your usage falls within the explicit template limits yourself.
luke-jr/python-blkmaker
Native Python port of libblkmaker (getblocktemplate client implementation)
PythonMIT