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()