Files
Pierre Gondois 7402bd06cf BaseTools: Ecc: Remove unnecessary code
Running the vulture tool on the Ecc folder gave the following
report. Remove the unnecessary code.

- Ecc/c.py:52:
  unused function 'GetConfig' (60% confidence)
- Ecc/c.py:484:
  unused function 'GetFileModificationTimeFromDB' (60% confidence)
- Ecc/CodeFragmentCollector.py:77:
  unused attribute '__Token' (60% confidence)
- Ecc/CodeFragmentCollector.py:78:
  unused attribute '__SkippedChars' (60% confidence)
- Ecc/CodeFragmentCollector.py:109:
  unused method '__EndOfLine' (60% confidence)
- Ecc/CodeFragmentCollector.py:134:
  unused method '__UndoOneChar' (60% confidence)
- Ecc/CodeFragmentCollector.py:221:
  unused method '__InsertComma' (60% confidence)
- Ecc/CodeFragmentCollector.py:539:
  unused method 'PrintFragments' (60% confidence)
- Ecc/Database.py:81:
  unused attribute 'text_factory' (60% confidence)
- Ecc/Database.py:214:
  unused method 'UpdateIdentifierBelongsToFunction_disabled'
  (60% confidence)
- Ecc/MetaFileWorkspace/MetaDataTable.py:142:
  unused method 'IsIntegral' (60% confidence)
- Ecc/MetaFileWorkspace/MetaDataTable.py:205:
  unused method 'GetCrossIndex' (60% confidence)
- Ecc/Xml/XmlRoutines.py:145:
  unused function 'XmlElementData' (60% confidence)
- Ecc/Xml/XmlRoutines.py:162:
  unused function 'XmlElementList' (60% confidence)
- Ecc/Xml/XmlRoutines.py:192:
  unused function 'XmlNodeName' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00

192 lines
5.4 KiB
Python

## @file
# This file is used to create/update/query/erase table for files
#
# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
# Import Modules
#
from __future__ import print_function
import Common.LongFilePathOs as os
import Common.EdkLogger as EdkLogger
from CommonDataClass import DataClass
from CommonDataClass.DataClass import FileClass
## Convert to SQL required string format
def ConvertToSqlString(StringList):
return map(lambda s: "'" + s.replace("'", "''") + "'", StringList)
## TableFile
#
# This class defined a common table
#
# @param object: Inherited from object class
#
# @param Cursor: Cursor of the database
# @param TableName: Name of the table
#
class Table(object):
_COLUMN_ = ''
_ID_STEP_ = 1
_ID_MAX_ = 0x80000000
_DUMMY_ = 0
def __init__(self, Cursor, Name='', IdBase=0, Temporary=False):
self.Cur = Cursor
self.Table = Name
self.IdBase = int(IdBase)
self.ID = int(IdBase)
self.Temporary = Temporary
def __str__(self):
return self.Table
## Create table
#
# Create a table
#
def Create(self, NewTable=True):
if NewTable:
self.Drop()
if self.Temporary:
SqlCommand = """create temp table IF NOT EXISTS %s (%s)""" % (self.Table, self._COLUMN_)
else:
SqlCommand = """create table IF NOT EXISTS %s (%s)""" % (self.Table, self._COLUMN_)
EdkLogger.debug(EdkLogger.DEBUG_8, SqlCommand)
self.Cur.execute(SqlCommand)
self.ID = self.GetId()
## Insert table
#
# Insert a record into a table
#
def Insert(self, *Args):
self.ID = self.ID + self._ID_STEP_
if self.ID >= (self.IdBase + self._ID_MAX_):
self.ID = self.IdBase + self._ID_STEP_
Values = ", ".join(str(Arg) for Arg in Args)
SqlCommand = "insert into %s values(%s, %s)" % (self.Table, self.ID, Values)
EdkLogger.debug(EdkLogger.DEBUG_5, SqlCommand)
self.Cur.execute(SqlCommand)
return self.ID
## Query table
#
# Query all records of the table
#
def Query(self):
SqlCommand = """select * from %s""" % self.Table
self.Cur.execute(SqlCommand)
for Rs in self.Cur:
EdkLogger.verbose(str(Rs))
TotalCount = self.GetId()
## Drop a table
#
# Drop the table
#
def Drop(self):
SqlCommand = """drop table IF EXISTS %s""" % self.Table
try:
self.Cur.execute(SqlCommand)
except Exception as e:
print("An error occurred when Drop a table:", e.args[0])
## Get count
#
# Get a count of all records of the table
#
# @retval Count: Total count of all records
#
def GetCount(self):
SqlCommand = """select count(ID) from %s""" % self.Table
Record = self.Cur.execute(SqlCommand).fetchall()
return Record[0][0]
def GetId(self):
SqlCommand = """select max(ID) from %s""" % self.Table
Record = self.Cur.execute(SqlCommand).fetchall()
Id = Record[0][0]
if Id is None:
Id = self.IdBase
return Id
## Init the ID of the table
#
# Init the ID of the table
#
def InitID(self):
self.ID = self.GetId()
## Exec
#
# Exec Sql Command, return result
#
# @param SqlCommand: The SqlCommand to be executed
#
# @retval RecordSet: The result after executed
#
def Exec(self, SqlCommand):
EdkLogger.debug(EdkLogger.DEBUG_5, SqlCommand)
self.Cur.execute(SqlCommand)
RecordSet = self.Cur.fetchall()
return RecordSet
def SetEndFlag(self):
pass
def GetAll(self):
return self.Exec("select * from %s where ID > 0 order by ID" % (self.Table))
## TableDataModel
#
# This class defined a table used for data model
#
# @param object: Inherited from object class
#
#
class TableDataModel(Table):
_COLUMN_ = """
ID INTEGER PRIMARY KEY,
CrossIndex INTEGER NOT NULL,
Name VARCHAR NOT NULL,
Description VARCHAR
"""
def __init__(self, Cursor):
Table.__init__(self, Cursor, 'DataModel')
## Insert table
#
# Insert a record into table DataModel
#
# @param ID: ID of a ModelType
# @param CrossIndex: CrossIndex of a ModelType
# @param Name: Name of a ModelType
# @param Description: Description of a ModelType
#
def Insert(self, CrossIndex, Name, Description):
(Name, Description) = ConvertToSqlString((Name, Description))
return Table.Insert(self, CrossIndex, Name, Description)
## Init table
#
# Create all default records of table DataModel
#
def InitTable(self):
EdkLogger.verbose("\nInitialize table DataModel started ...")
Count = self.GetCount()
if Count is not None and Count != 0:
return
for Item in DataClass.MODEL_LIST:
CrossIndex = Item[1]
Name = Item[0]
Description = Item[0]
self.Insert(CrossIndex, Name, Description)
EdkLogger.verbose("Initialize table DataModel ... DONE!")