added support for float numbers

git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@34 014f5005-505e-4b48-8d0a-63407b615a7c
master
LtWorf 2008-08-08 12:41:16 +07:00
parent a340186071
commit ee37a74088
5 changed files with 40 additions and 4 deletions

@ -24,3 +24,6 @@
0.4 0.4
- Created GUI - Created GUI
0.5
- Added support for float numbers

@ -16,6 +16,8 @@
# #
# author Salvo "LtWorf" Tomaselli <tiposchi@tiscali.it> # author Salvo "LtWorf" Tomaselli <tiposchi@tiscali.it>
import rtypes
class relation (object): class relation (object):
'''This objects defines a relation (as a group of consistent tuples) and operations '''This objects defines a relation (as a group of consistent tuples) and operations
A relation can be represented using a table A relation can be represented using a table
@ -76,6 +78,8 @@ class relation (object):
for j in range(len(self.header.attributes)): for j in range(len(self.header.attributes)):
if i[j].isdigit(): if i[j].isdigit():
attributes[self.header.attributes[j]]=int(i[j]) attributes[self.header.attributes[j]]=int(i[j])
elif rtypes.rstring(i[j]).isFloat():
attributes[self.header.attributes[j]]=float(i[j])
else: else:
attributes[self.header.attributes[j]]=i[j] attributes[self.header.attributes[j]]=i[j]
@ -411,6 +415,7 @@ class header (object):
res.append(j) res.append(j)
return res return res
if __name__=="__main__": if __name__=="__main__":
a=["id","nome","cognome"] a=["id","nome","cognome"]

@ -24,7 +24,7 @@ import parser
import relation import relation
import maingui import maingui
version="0.4" version="0.5"
if __name__ == "__main__": if __name__ == "__main__":
app = QtGui.QApplication(sys.argv) app = QtGui.QApplication(sys.argv)

@ -0,0 +1,28 @@
# Relational
# Copyright (C) 2008 Salvo "LtWorf" Tomaselli
#
# Relation is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# author Salvo "LtWorf" Tomaselli <tiposchi@tiscali.it>
'''Custom types for relational algebra'''
class rstring (str):
'''String subclass with some custom methods'''
def isFloat(self):
'''True if the string is a float number, false otherwise'''
lst=['0','1','2','3','4','5','6','7','8','9','.']
for i in self:
if i not in lst:
return False;
return True;

@ -1,5 +1,5 @@
id name chief age id name chief age
0 jack 0 22 0 jack 0 22.1
1 carl 0 20 1 carl 0 20
2 john 1 30 2 john 1 30
3 dean 1 33 3 dean 1 33