emcee icon indicating copy to clipboard operation
emcee copied to clipboard

Refactor backend classes to facilitate adding more

Open DavidMStraub opened this issue 5 years ago • 3 comments

Hi,

I wanted to add one or two additional backends - specifically numpy.savez and possibly SQLite (or generic SQLAlchemy). However when I looked at the code, the existing Backend and HDFBackend did not inherit from a common base class and it was not very transparent in my view which methods were shared/generic and which were implementation dependent. So in this PR, I just reshuffled the code - without changing anything about the API - such that implementation-independent methods are relegated to an abstract base class. Furthermore, an abstract class for file-based backends is added. In this way, it would be straightforward for me to add a numpy.savez backend as a next step.

Sorry I did not discuss this on the emcee-useres mailing list before opening the PR - I made the mistake to read the contributing guidelines only when it was done - but I hope you find it useful nevertheless.

DavidMStraub avatar Jun 25 '20 20:06 DavidMStraub

This is awesome - thanks! I'll try to do a proper review ASAP.

dfm avatar Jun 26 '20 14:06 dfm

Should I rebase this?

DavidMStraub avatar Jun 25 '21 18:06 DavidMStraub

@DavidMStraub: Sorry about dropping the ball on this!! Yes - that would be amazing if you're up for it. Thanks for your patience.

dfm avatar Jun 27 '21 13:06 dfm