duplicity-team team mailing list archive
-
duplicity-team team
-
Mailing list archive
-
Message #00150
Python API
Hello! I was talking to Rob Oaks from Time Drive a while back about
possibly merging efforts. That sort of broke down because I said I
was too invested in my 'call-duplicity-then-interpret-logs' method and
he was too invested in his 'use-duplicity's-Python-module' method.
But that got me thinking.
Deja Dup may be ported to Python at some point, and I wanted to ping
you, Ken, on what a stable duplicity Python module would look like. I
don't know how much you consider possible users of the module when
making changes. Rob could tell you much more about which bits of it
he uses.
It seems like we have 4 main UIs, duplicity (CLI), duply (CLI),
deja-dup (GNOME), and time-drive (KDE) [1]. This touches on all of
them, so I pulled in Edgar in the To: list.
There are two main ways of currently dealing with duplicity's core:
Python module (used by duplicity and time-drive) and CLI/logging (used
by duply and deja-dup). I'll note though, that duply doesn't actually
use the logging side of things. I'm the only log consumer.
(A) Are we consuming resources maintaining two? I think at this
point, the logging is pretty stable and doesn't require much effort
(correct me if I'm wrong Ken). But it is strictly add-on work on top
of the module, which you have to maintain regardless.
(B) Do we need two? I'm willing to drop the logging in favor of a
pure module approach, with the goal of porting Deja Dup to Python at
some point. But keeping it for now makes my life easier, since I
already have all the code written. Edgar, I don't know if you had
plans to use logging. If we want to encourage non-Python wrappers, we
would need to keep it.
(C) Is a module a reasonable approach? Ken, how stable is the
module's classes/methods/API? Should we start thinking about more
formally defining an API?
[1] This reminds me, as we are getting more frontends, it might be
nice to have a more official section on the duplicity website for
frontends. Maybe a section in the left nav bar, with a quick
description of each and what the target audiences are.
-mt
Follow ups