I released new versions of some of my Python packages during this week and one old PHP project. I also released a totally new one, pypandoc inspired by my earlier post. This post summarizes the most important changes made.
pypandoc is an alternative wrapper for pandoc, the document converter. The API is quite simple. It can convert either provided text or file and its content to the given format. It does some basic error checking as well.
pyqa, the qa script helper, gained functionality that allows you to persist the answers and reuse them later. In other words it is now possible to pass a set of predefined answers to it and stash the answers given by the user somewhere. There's an example of this at the demos directory.
In the process I simplified the design by getting rid of "matches" option. Instead each question type of which is "choice" will have "Other" option by default. I might make this toggleable later if such a need arises. I have a project in mind that allows me to drive the development of this utility further.
I added two new functions to iterplus. index and rindex allow you to seek for the index of sequence matching to the given rule (ie. a function). Besides this little change it should work just like Python API.
Given I use speccer to test my packages these days it's really important it works well. I spent a considerable amount of time simply beefing it up. I added some new tests to the project (yup, testing tools need to be tested as well) and changed the way it generates code considerably.
It should be more robust than before and accept a larger variety of Python syntax. It's possible to make function definitions between tests now unlike before for instance. The runner also accepts a directory as a parameter now making it possible to separate tests properly to a package of their own.
Besides releasing those four I did some work on two other projects as well. Sometimes it's just cool to pick up an old project and kick it around a bit. It's funny how the perspective changes and problems that were hard before become easier to solve.
I also took a stab at my old REPL, Placidity. It has access to the file system now. It acts sort of like a shell wrapper. If it cannot parse something, it falls back to the system shell. I still need to figure out what do I want to do with this thing. Oh well. At least it allows me to evaluate simple Python expressions. There's more information about the tool at my tutorial series about it.
I released my old PHP testing tool, TinyTest, at GitHub. I don't develop it actively anymore but perhaps some PHP guy wants to hack around with it or something. Feel free to "own" the project if you're interested. It's available now under MIT license by the way. An earlier blog post contains more information about the tool.