mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
This reverts commit 6693f359b3c213513c5096a06c6f67244a44dc52.. 678f85131238622e576705117e299d81cff755c9. Python3 migration is the fundamental change. It requires every developer to install Python3. Before this migration, the well communication and wide verification must be done. But now, most people is not aware of this change, and not try it. So, Python3 migration is reverted and be moved to edk2-staging Python3 branch for the edk2 user evaluation. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com>
121 lines
3.5 KiB
Python
121 lines
3.5 KiB
Python
## @file
|
|
# This file is used to create a database used by ECC tool
|
|
#
|
|
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
|
|
##
|
|
# Import Modules
|
|
#
|
|
from __future__ import absolute_import
|
|
import sqlite3
|
|
import Common.LongFilePathOs as os
|
|
|
|
from . import EdkLogger as EdkLogger
|
|
from CommonDataClass.DataClass import *
|
|
from .StringUtils import *
|
|
from .DataType import *
|
|
|
|
from Table.TableDataModel import TableDataModel
|
|
from Table.TableFile import TableFile
|
|
from Table.TableInf import TableInf
|
|
from Table.TableDec import TableDec
|
|
from Table.TableDsc import TableDsc
|
|
|
|
## Database
|
|
#
|
|
# This class defined the build databse
|
|
# During the phase of initialization, the database will create all tables and
|
|
# insert all records of table DataModel
|
|
#
|
|
# @param object: Inherited from object class
|
|
# @param DbPath: A string for the path of the ECC database
|
|
#
|
|
# @var Conn: Connection of the ECC database
|
|
# @var Cur: Cursor of the connection
|
|
# @var TblDataModel: Local instance for TableDataModel
|
|
#
|
|
class Database(object):
|
|
def __init__(self, DbPath):
|
|
if os.path.exists(DbPath):
|
|
os.remove(DbPath)
|
|
self.Conn = sqlite3.connect(DbPath, isolation_level = 'DEFERRED')
|
|
self.Conn.execute("PRAGMA page_size=8192")
|
|
self.Conn.execute("PRAGMA synchronous=OFF")
|
|
self.Cur = self.Conn.cursor()
|
|
self.TblDataModel = TableDataModel(self.Cur)
|
|
self.TblFile = TableFile(self.Cur)
|
|
self.TblInf = TableInf(self.Cur)
|
|
self.TblDec = TableDec(self.Cur)
|
|
self.TblDsc = TableDsc(self.Cur)
|
|
|
|
## Initialize build database
|
|
#
|
|
# 1. Delete all old existing tables
|
|
# 2. Create new tables
|
|
# 3. Initialize table DataModel
|
|
#
|
|
def InitDatabase(self):
|
|
EdkLogger.verbose("\nInitialize ECC database started ...")
|
|
#
|
|
# Drop all old existing tables
|
|
#
|
|
# self.TblDataModel.Drop()
|
|
# self.TblDsc.Drop()
|
|
# self.TblFile.Drop()
|
|
|
|
#
|
|
# Create new tables
|
|
#
|
|
self.TblDataModel.Create()
|
|
self.TblFile.Create()
|
|
self.TblInf.Create()
|
|
self.TblDec.Create()
|
|
self.TblDsc.Create()
|
|
|
|
#
|
|
# Initialize table DataModel
|
|
#
|
|
self.TblDataModel.InitTable()
|
|
EdkLogger.verbose("Initialize ECC database ... DONE!")
|
|
|
|
## Query a table
|
|
#
|
|
# @param Table: The instance of the table to be queried
|
|
#
|
|
def QueryTable(self, Table):
|
|
Table.Query()
|
|
|
|
## Close entire database
|
|
#
|
|
# Commit all first
|
|
# Close the connection and cursor
|
|
#
|
|
def Close(self):
|
|
self.Conn.commit()
|
|
self.Cur.close()
|
|
self.Conn.close()
|
|
|
|
##
|
|
#
|
|
# This acts like the main() function for the script, unless it is 'import'ed into another
|
|
# script.
|
|
#
|
|
if __name__ == '__main__':
|
|
EdkLogger.Initialize()
|
|
EdkLogger.SetLevel(EdkLogger.DEBUG_0)
|
|
|
|
Db = Database(DATABASE_PATH)
|
|
Db.InitDatabase()
|
|
Db.QueryTable(Db.TblDataModel)
|
|
Db.QueryTable(Db.TblFile)
|
|
Db.QueryTable(Db.TblDsc)
|
|
Db.Close()
|