コード例 #1
0
    def __init__(self, parent, pref, gendef=False, verbose=False):
        self.gen_ok = False
        self.gendef = gendef
        self.verbose = verbose
        if gendef:
            self.ztitle = "Data2Proj, Rev 0.2"
        else:
            self.ztitle = "Data2Code, Rev 0.2"
        self.order_class = None
        self.import_file_name = StringVar()
        self.import_file_name.set(" ")
        self.field_seps = OrderDef.DELIMITERS
        self.field_sel = IntVar()
        self.field_sel.set(0)

        if not pref:
            self.pref = DataPreferences.Load('.')
        else:
            self.pref = pref

        self.display_info = OrderedDict()
        dum = dict(OrderClass())
        for key in dum:
            self.display_info[key] = StringVar()
        super().__init__(parent=parent)
コード例 #2
0
 def _on_open(self):
     pref = DataPreferences.Load(self.home)
     self.project = askopenfilename(title="Open Project File",
                                    initialdir=pref['Projects'],
                                    filetypes=[("PyDAO Project",
                                                OrderDef.ProjType)])
     if not self.project:
         return
     zdef = Factory1.LoadFile(self.project)
     if not zdef:
         messagebox.showerror("Schema File / Format Error",
                              "Unable to import " + self.project)
     else:
         self.table_frame.got_results()
         self.title(self.project)
         self.order_def = zdef
         self._show_order()
コード例 #3
0
 def do_save(self):
     ''' Project file must be created for both saving same, as well as for creating code. '''
     ztbl = self.table_frame.pull_results()
     zdict = ztbl.__dict__()
     if not zdict:
         messagebox.showerror("No Data", "Schema Definition Required.")
         return False
     self.order_def = OrderDef(name=ztbl.get_table_name())
     if not self.order_def.add_table(ztbl):
         messagebox.showerror("Invalid Table",
                              "Please verify SQL Table Definition.")
         return False
     if Factory1.SaveFile(DataPreferences.Load(self.home),
                          self.order_def,
                          overwrite=True) is False:
         messagebox.showerror("Exportation Error",
                              "Please verify user locations.")
         return False
     self.table_frame.got_results()
     return True
コード例 #4
0
 def _on_code_create(self):
     ''' Generate Python code '''
     if self.do_save() is True:
         pref = DataPreferences.Load(self.home)
         order_class = Factory1.Extract(self.order_def, pref)
         zfields = OrderedDict()
         ztables = self.order_def.table_names()
         table_def = self.order_def.find_table(
             ztables[0])  # TODO: Highlander hack.
         for row in table_def:
             zfields[row[1]] = row[2]
         sql = SqliteCrud(order_class, zfields)
         zcode = sql.code_class_template(self.order_def.database_name +
                                         OrderDef.TEXT_DATA_TYPE)
         with open(self.order_def.code_name, 'w') as fh:
             print(zcode, file=fh)
         val = os.path.split(self.order_def.code_name)
         messagebox.showinfo(
             "Source Code Success",
             "Class created as " + val[-1] + " in preference location.")
コード例 #5
0
ファイル: DataAI.py プロジェクト: srqway/PyDAO
    def __init__(self, parent, pref, verbose=False):
        self.gen_ok = False
        self.verbose = verbose
        self.ztitle = "DataAI, Rev 0.1"
        self.order_class = None
        self.import_file_name = StringVar()
        self.import_file_name.set(" ")
        self.field_seps = "Gen Proj", "Gen Code", "Gen Both"
        self.field_sel = StringVar()
        self.field_sel.set(0)

        if not pref:
            self.pref = DataPreferences.Load('.')
        else:
            self.pref = pref

        self.display_info = OrderedDict()
        dum = dict(OrderClass())
        for key in dum:
            self.display_info[key] = StringVar()
        super().__init__(parent=parent)
コード例 #6
0
import os
import sys
sys.path.insert(1, os.path.join(sys.path[0], '../..'))

from SqltDAO.CodeGen01.OrderClass import OrderClass
from SqltDAO.CodeGen01.CodeGen import DaoGen
from SqltDAO.Gui.DataPreferences import Dp1 as DataPreferences

test = DaoGen()

order = OrderClass()
order.class_name = "TC001"
order.file_name = "./foo.py"
order.sep = 'CSV'
print("Order Delimiter:", order.sep)

try:
    data_file = "./tc001_data.txt"
    print(test.write_code(DataPreferences.Load('.'), order, data_file))
except:
    data_file = "./DaoTest01/tc001_data.txt"
    order.file_name = "./DaoTest01/foo.py"
    print(test.write_code(DataPreferences.Load('.'), order, data_file))
コード例 #7
0
        ##                        col = col.replace('"', '').strip()
        ##                        newline += col + '\t'
        ##                    print(newline.strip(), file=fh2)
        files = (
            ("../DaoTest01/Income.csv", "COMMA"),
            ("../DaoTest01/nasdaqlisted.txt", "PIPE"),
            ("../DaoTest01/tc001_data.txt", "CSV"),
            ("../DaoTest01/tc002_data.txt", "TAB"),
        )
        for file, result in files:
            print(file, result)
            detect = Factory1.Detect(file)
            print(detect.__dict__)
    else:
        from SqltDAO.Gui.DataPreferences import Dp1 as DataPreferences
        pref = DataPreferences.Load('.')
        zorder = OrderDef(name=OrderDef.DEFAULT_SCHEMA)
        zname = zorder.project_name
        print("zname", zname)
        if os.path.exists(zname):
            print("unlinking", zname)
            os.unlink(zname)
        for ss in range(4):
            table = "zTable " + str(ss)
            ztable = TableDef(name=table)
            for ztype in TableDef.SupportedTypes:
                ztable.add_field(table + ' ' + ztype, ztype)
            zorder.add_table(ztable)

        print("zorder:\n", zorder, '\n')
        zname = zorder.project_name
コード例 #8
0
 def _on_d2pref(self):
     zpref = DataPreferences(self, self.home)
     if zpref.has_changed():
         pass
コード例 #9
0
 def _on_d2p(self):
     Data2Code(self,
               pref=DataPreferences.Load(self.home),
               gendef=True,
               verbose=True)