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

@ -23,4 +23,7 @@
- Added support for parenthesis in relational queries
0.4
- Created GUI
- Created GUI
0.5
- Added support for float numbers

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

@ -24,7 +24,7 @@ import parser
import relation
import maingui
version="0.4"
version="0.5"
if __name__ == "__main__":
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,9 +1,9 @@
id name chief age
0 jack 0 22
0 jack 0 22.1
1 carl 0 20
2 john 1 30
3 dean 1 33
4 eve 0 25
5 duncan 4 30
6 paul 4 30
7 alia 1 28
7 alia 1 28