On Thu, Oct 24, 2019 at 05:56:39PM +0200, Phil Sutter wrote: > Hi, > > On Thu, Oct 24, 2019 at 11:35:05AM +0200, Pablo Neira Ayuso wrote: > > On Thu, Oct 24, 2019 at 11:20:52AM +0200, Phil Sutter wrote: > > > Hi, > > > > > > On Wed, Oct 23, 2019 at 10:38:33PM +0200, Pablo Neira Ayuso wrote: > > > > On Tue, Oct 22, 2019 at 09:58:53PM +0100, Jeremy Sowden wrote: > > > > > `terse` and `numeric_time` are missing from the `output_flags` dict. > > > > > Add them and getters and setters for them. > > > > > > > > LGTM. > > > > > > > > @Phil, is this fine with you? I let you decide on this. > > > > > > I just pushed it. Could you please update Patchwork? I'm not allowed to. > > > > > > > BTW, would it make sense at some point to remove all the getter/setter > > > > per option and use the setter/getter flags approach as in libnftables? > > > > > > Well, from a compat standpoint we can't remove them. The benefit of > > > those setter/getter methods is the clean interface (user's don't have to > > > memorize flag names) and the semantics of returning the old value. The > > > latter comes in handy when changing flags temporarily. > > > > Probably some transitioning? ie. add the generic set/get flag > > interface. Update clients of this (Eric's code) to use. Leave the old > > interfaces for a while there to make sure people have time to migrate. > > Then remove them. > > Sounds good! > > > Anyway, I'm fine if you prefer this more verbose interface for python, > > no issue. > > Main goal was to keep the bit-fiddling away from users, but a method > which accepts an array of flag names (or flag values) and does the > binary OR'ing should serve fine, too. Good. > > > One could change the private __{g,s}et_output_flag() methods though and > > > make them similar to {g,s}et_debug() methods which probably resemble the > > > syntax you're looking for. > > > > Hm, not sure what you mean. > > I was referring to get_debug() and set_debug() methods of class > Nftables. The getter returns an array of debug flag names, the setter > accepts either a single flag name/value or an array of those. If that's the preferred way to do things in python, rather that using flags like in C, that's fine with me.