Esempio n. 1
0
File: sym.py Progetto: bapcyk/pybase
    def clone(name1, name2):
        """Clone symbol with name1 to name2. Doesn't chech that name1 is
        consistent symbol directory
        """
        if not SymModule._ready:
            raise ValueError("not mounted")

        symdir1 = SymModule.DIR.hpath(name1)
        symdir2 = SymModule.DIR.hpath(name2)

        if not path.exists(symdir1):
            raise Exception("Source symbol does not exist")
        if path.exists(symdir2):
            raise Exception("Destination symbol already exists")

        # copy unmodified files
        shutil.copytree(symdir1, symdir2)
        # modify descr-file
        descr2 = path.join(symdir2, SymModule.DESCR)
        dc = DotCfg()
        with codecs.open(descr2, "r", encoding="utf8") as f:
            dc.parse(f)
            par = dc.get(u"date")
            if par:
                par.value = time.strftime("%Y-%m-%d %H:%M:%S")
            par = dc.get(u"author")
            if par:
                par.value = os.getenv("USER", os.getenv("USERNAME", "Unknown"))
        dc.flush()
Esempio n. 2
0
File: sym.py Progetto: bapcyk/pybase
    def __init__(self, name, canvas, x, y):
        self.fs = self.files(name)
        if not self.fs:
            raise Exception(u"Inconsistent symbol (or mismatched location)")
        self.name = name
        self.c = canvas
        self._vlayers = []
        self._rlayers = []
        self._vilayers = [] # all visible only layers
        self.x = x
        self.y = y
        self.width = self.height = 0
        self._pmenu = None # popup menu
        self.k = {} # keywords, for ex. "sid" (Signal IDeintifier)

        # Try to load keywords from descr. Keywords are options in
        # 'descr' file like:
        #   k.something = some_value
        try:
            dc = DotCfg()
            with codecs.open(self.fs["descr"], "r", encoding="utf8") as f:
                dc.parse(f)
                for p in dc.paths:
                    if len(p) == 2 and p[0] == u"k":
                        self.k[p[1]] = dc.get(DOT.join(p)).value
        except:
            pass

        # create Vlayers
        for i,p in enumerate(self.fs["vlayers"]):
            g = GFigRender(self.c, BaseSymbol._GFIG_ENCODING)
            self._vlayers.append(Vlayer(self, i, g, p))

        # create Rlayer
        imfilename = self.fs["gif"] or self.fs["tiff"]
        if not imfilename:
            raise ValueError(u"No symbol image found")
        for i,f in enumerate(_load_image_frames(imfilename)):
            if not getattr(f, "_noimage", False):
                ph = ImageTk.PhotoImage(f)
                self._rlayers.append(Rlayer(self, i, f, ph))

        # size of symbol will be size of last frame (all are equals)
        self.width = f.size[0]
        self.height = f.size[1]
Esempio n. 3
0
            "# comment2\n"
            "obj = 10\n"
            "obj.dir = \n"
            "obj.opened = \n"
            "obj.saved = \n"
            "obj.color = #FF0000\n"
            "other.color = #4567FF\n"
            "other.weight = 200\n"
            "# speed is one of 1,2,3,4,5\n"
            "speed = 2\n"
            "# Some text\n"
            "text = aaa\\nbbb\n"
            )
    items = ((1,"4800"), (2,"9600"), (3,"14400"), (4,"19200"))
    exp = (
            Parameter("obj", comments="Object name..."),
            Parameter("obj.dir", comments="Directory...", editor=DirectoryEditor()),
            Parameter("obj.opened", comments="Opened file...", editor=OpenFileEditor()),
            Parameter("obj.saved", comments="Saved file...", editor=SaveFileEditor()),
            Parameter("obj.color", comments="Color...", editor=ColorEditor()),
            Parameter("other.color", comments="Color...", editor=ColorEditor()),
            Parameter("other.weight", comments="Weight...", editor=RangeEditor(max=200., step=5.5, format="%.1f", title="the title")),
            Parameter("speed", comments="Speed...", editor=ItemsChooserEditor(selectmode=Tix.EXTENDED, items=items)),
            Parameter("text", comments="Text...", editor=TextEditor()),
            )
    dc = DotCfg(exp)
    dc.parse(sio)
    root = Tix.Tk()
    root.withdraw()
    tdc = TkDotCfg(root, dc)