ソースを参照

Tag class in a more pythonic way

remove getters and setters
oz123 11 年 前
コミット
70526ff17a
5 ファイル変更25 行追加22 行削除
  1. 0 1
      pwman/data/drivers/sqlite.py
  2. 3 6
      pwman/data/nodes.py
  3. 9 7
      pwman/data/tags.py
  4. 1 2
      pwman/ui/cli.py
  5. 12 6
      pwman/ui/tools.py

+ 0 - 1
pwman/data/drivers/sqlite.py

@@ -158,7 +158,6 @@ class SQLiteDatabaseNewForm(Database):
                     nodeargs, tags = self.parse_node_string(nodestring)
                     node = NewNode(**nodeargs)
                     node.tags = tags
-                    #node.set_id(i)
                     node._id = i
                     nodes.append(node)
         return nodes

+ 3 - 6
pwman/data/nodes.py

@@ -67,7 +67,7 @@ class NewNode(object):
             if isinstance(tag, str):
                 tagsloc += "tag:"+tag.strip()+"**endtag**"
             else:
-                tagsloc += "tag:"+tag.get_name()+"**endtag**"
+                tagsloc += "tag:"+tag._name+"**endtag**"
         dump += tagsloc
         dump = [dump]
         return dump
@@ -85,14 +85,11 @@ class NewNode(object):
             if isinstance(tag, str):
                 tagsloc += "tag:"+tag.strip()+"**endtag**"
             else:
-                tagsloc += "tag:"+tag.get_name()+"**endtag**"
+                tagsloc += "tag:"+tag._name+"**endtag**"
         dump += tagsloc
         dump = [dump]
         return dump
 
-    # def set_id(self, id):
-    #     self._id = id
-
     @property
     def password(self):
         """Get the current password."""
@@ -107,7 +104,7 @@ class NewNode(object):
 
     @username.setter
     def username(self, value):
-        """Set the Notes."""
+        """Set the username."""
         enc = CryptoEngine.get()
         self._username = enc.encrypt(value).strip()
 

+ 9 - 7
pwman/data/tags.py

@@ -30,7 +30,9 @@ class Tag:
     for strings.
     """
     def __init__(self, name):
-        self.set_name(name)
+        enc = CryptoEngine.get()
+        self.name = name
+        self._name = enc.encrypt(name)
 
     def __eq__(self, other):
         if other._name == self._name:
@@ -38,14 +40,14 @@ class Tag:
         else:
             return False
 
-    def get_name(self):
+    @property
+    def name(self):
         enc = CryptoEngine.get()
         return enc.decrypt(self._name)
 
-    def set_name(self, name):
+    @name.setter
+    def name(self, value):
         enc = CryptoEngine.get()
-        self._name = enc.encrypt(name)
+        self._name = enc.encrypt(value)
+
 
-    def __str__(self):
-        enc = CryptoEngine.get()
-        return enc.decrypt(self._name)

+ 1 - 2
pwman/ui/cli.py

@@ -859,7 +859,6 @@ class PwmanCliNew(PwmanCli):
 
     def get_tags(self, default=None):
         defaultstr = ''
-
         if default:
             for t in default:
                 defaultstr += "%s " % (t)
@@ -951,7 +950,7 @@ class PwmanCliNew(PwmanCli):
             if len(tags) == 0:
                 print "None",
             for t in tags:
-                print "%s " % (t.get_name()),
+                print "%s " % (t.name),
             print
         except Exception, e:
             self.error(e)

+ 12 - 6
pwman/ui/tools.py

@@ -28,7 +28,7 @@ import sys
 import struct
 import os
 import colorama
-# import traceback
+from pwman.data.tags import Tag
 
 if sys.platform != 'win32':
     import termios
@@ -271,7 +271,11 @@ class CliMenu(object):
                 currentstr = ''
                 if type(current) == list:
                     for c in current:
-                        currentstr += ("%s " % (c))
+                        try:
+                            currentstr += ' '+c
+                        except TypeError:
+                            currentstr += ' '+c._name
+
                 else:
                     currentstr = current
 
@@ -303,10 +307,12 @@ class CliMenu(object):
                     self.items[3].getter = new_node.notes
                     self.items[3].setter = new_node.notes
                 elif selection == 4:
-                    value = self.items[selection].editor(0)
-                    new_node.tags = value
-                    self.items[4].setter = value
-                    self.items[4].getter = value
+                    taglist = getinput("Tags:")
+                    tagstrings = taglist.split()
+                    tags = [Tag(tn) for tn in tagstrings]
+                    new_node.tags = tags
+                    self.items[4].setter = new_node.tags
+                    self.items[4].getter = new_node.tags
 
             except (ValueError, IndexError):
                 if (option.upper() == 'X'):