Merge efforts?
There is also: https://github.com/ethereum/pyethapp/blob/develop/pyethapp/rpc_client.py which has support for python ABI contract proxies: https://github.com/ethereum/pyethapp/blob/develop/pyethapp/rpc_client.py#L219
Any ideas on the best way to merge these efforts?
I found that the most important thing was to tease out dependence on pyethereum (which both ethjsonrpc and pyethapp/rcp_client require.) In practice a python Ethereum dapp really only wants the minimum amount of Ethereum required to talk to a node. It doesn't need all of the extra capability that is only used by Ethereum nodes.
Requiring pyethapp turned out to make it tricky for a lot of folks using OSX to install python dApps, and last time I checked it was impossible (ok, REALLY hard) under Windows. Unfortunately, at the moment "teasing it out" meant that some code needed to be duplicated (the abi module, for instance, as well as code to sign a transaction) which was not an awesome solution - but had the upside that suddenly the dApps were multi-platform.
Actually - I suspect the best starting place would be to separate pyethereum itself into a library containing only the stuff a client needs, and another containing the Ethereum node underpinnings too.
just throwing this out there in case you haven't heard of it but @tcoulter has built https://github.com/ethereumjs/testrpc which attempts to serve the same goal
just another tool at your disposal