def onTextChange(self, event): """ Adjust status when value in textbox differs from value in sysctl Adjust button label if content of textbox can be evaluated """ name = self.get_name(event) if self.debug: print "text changed:\t", name txt = self.find_txt(name) value = txt.GetValue() orig = pysctl.read(name) if value != orig: self.set_warn(name, str(orig)) else: self.set_idle(name) try: evaluated = self.evaluate(value) except (SyntaxError, NameError): return btn = self.find_btn(name) if value == evaluated: btn.SetLabel("set") else: btn.SetLabel("calc")
def onIconClick(self, event): """Re-read value from sysctl""" name = self.get_name(event) if self.debug: print "icon clicked:\t", name txt = self.find_txt(name) txt.SetValue(pysctl.read(name))
def make_all_widgets(self): """Add widget set for each entry in FIELDS to a FlexGridSizer""" sizer = wx.FlexGridSizer(len(FIELDS), 4) sizer.AddGrowableCol(2) for name in FIELDS: value = pysctl.read(name) self.orig_value[name] = value ws = self.make_widget_set(name, value) for w in ws: style = wx.ALL|wx.ALIGN_CENTER_VERTICAL if isinstance(w, nTextCtrl): style |= wx.EXPAND sizer.Add(w, 0, style, 5) sizer.Fit(self) return sizer
#!/usr/bin/env python import pysctl as pc what = "net/core/rmem_max" orig = pc.read(what) print "Original Value:\t", orig try: pc.write(what, int(orig)/2) except pc.WriteError as e: print e pass print "New Value:\t", pc.read(what) try: pc.write(what, orig) except pc.WriteError as e: print e pass print "Reset Value:\t", pc.read(what) try: print pc.read("net.ipv4.tcp_fastopen_key")