← Back to team overview

team4alfanous team mailing list archive

[Branch ~team4alfanous/alfanous/alfanous-git] Rev 445: Move TRUE_FALSE function into alfanous.Outputs

 

------------------------------------------------------------
revno: 445
committer: Assem Chelli <assem.ch@xxxxxxxxx>
timestamp: Fri 2012-11-23 00:12:08 +0100
message:
  Move TRUE_FALSE function into alfanous.Outputs
   also:
    - simplify console interface and Json output interface to forward
  directly all the arguments as flags
  
  note:
  TRUE_FALSE function is a function that evaluate the strings value and
  return True or False based on it. eg. "no" is considered as False.
modified:
  src/alfanous-cgi/alfanous_json2.py
  src/alfanous/Outputs.py
  src/alfanous/console.py


--
lp:alfanous
https://code.launchpad.net/~team4alfanous/alfanous/alfanous-git

Your team Alfanous team is subscribed to branch lp:alfanous.
To unsubscribe from this branch go to https://code.launchpad.net/~team4alfanous/alfanous/alfanous-git/+edit-subscription
=== modified file 'src/alfanous-cgi/alfanous_json2.py'
--- src/alfanous-cgi/alfanous_json2.py	2012-06-23 22:58:35 +0000
+++ src/alfanous-cgi/alfanous_json2.py	2012-11-22 23:12:08 +0000
@@ -50,42 +50,17 @@
 
 """
 
-## a function to decide what is True and what is false
-TRUE_FALSE = lambda x: False if x.lower() in ["no", "none", "null", "0", "-1", "", "false"] else True;
-
-if len( form ):
-    flags = {}
-    if form.has_key( "action" ): flags["action"] = form["action"][0]
-    if form.has_key( "query" ): flags["query"] = form["query"][0]
-    if form.has_key( "ident" ): flags["ident"] = form["ident"][0]
-    if form.has_key( "platform" ): flags["platform"] = form["platform"][0]
-    if form.has_key( "domain" ): flags["domain"] = form["domain"][0]
-    if form.has_key( "sortedby" ): flags["sortedby"] = form["sortedby"][0]
-    if form.has_key( "page" ): flags["page"] = form["page"][0]
-    if form.has_key( "perpage" ): flags["perpage"] = form["perpage"][0]
-    if form.has_key( "offset" ): flags["offset"] = form["offset"][0]
-    if form.has_key( "range" ):  flags["range"] = form["range"][0]
-    if form.has_key( "recitation" ): flags["recitation"] = form["recitation"][0]
-    if form.has_key( "translation" ): flags["translation"] = form["translation"][0]
-    if form.has_key( "highlight" ): flags["highlight"] = form["highlight"][0]
-    if form.has_key( "script" ): flags["script"] = form["script"][0]
-    if form.has_key( "vocalized" ): flags["vocalized"] = TRUE_FALSE( form["vocalized"][0] )
-    if form.has_key( "prev_aya" ): flags["prev_aya"] = TRUE_FALSE( form["prev_aya"][0] )
-    if form.has_key( "next_aya" ): flags["next_aya"] = TRUE_FALSE( form["next_aya"][0] )
-    if form.has_key( "sura_info" ): flags["sura_info"] = TRUE_FALSE( form["sura_info"][0] )
-    if form.has_key( "word_info" ): flags["word_info"] = TRUE_FALSE( form["word_info"][0] )
-    if form.has_key( "aya_position_info" ): flags["aya_position_info"] = TRUE_FALSE( form["aya_position_info"][0] )
-    if form.has_key( "aya_theme_info" ): flags["aya_theme_info"] = TRUE_FALSE( form["aya_theme_info"][0] )
-    if form.has_key( "aya_stat_info" ): flags["aya_stat_info"] = TRUE_FALSE( form["aya_stat_info"][0] )
-    if form.has_key( "aya_sajda_info" ): flags["aya_sajda_info"] = TRUE_FALSE( form["aya_sajda_info"][0] )
-    if form.has_key( "annotation_aya" ): flags["annotation_aya"] = TRUE_FALSE( form["annotation_aya"][0] )
-    if form.has_key( "annotation_word" ): flags["annotation_word"] = TRUE_FALSE( form["annotation_word"][0] )
-    if form.has_key( "fuzzy" ): flags["fuzzy"] = TRUE_FALSE( form["fuzzy"][0] )
-
+
+# Get form arguments and build the flags dict
+flags = {}
+for key, value in form.items():
+    flags[key] = value[0]
+
+
+if len(flags):    
     print JSON_HEADER
     print JSONoutput.do( flags )
 
-
 else:
     print HTTP_HEADER
     print JSONoutput._information["json_output_system_note"]

=== modified file 'src/alfanous/Outputs.py'
--- src/alfanous/Outputs.py	2012-11-22 21:45:50 +0000
+++ src/alfanous/Outputs.py	2012-11-22 23:12:08 +0000
@@ -42,6 +42,8 @@
 
 STANDARD2UTHMANI = lambda x: std2uth_words[x] if std2uth_words.has_key( x ) else x;
 
+## a function to decide what is True and what is false
+TRUE_FALSE = lambda x: False if x in [False,"False", "no", "0", 0, None] else True;
 
 
 
@@ -332,22 +334,22 @@
 		sortedby = flags["sortedby"] if flags.has_key( "sortedby" ) else self._defaults["flags"]["sortedby"]
 		range = int( flags["perpage"] ) if  flags.has_key( "perpage" )  else flags["range"] if flags.has_key( "range" ) else self._defaults["flags"]["range"]
 		offset = (( int( flags["page"] ) - 1 ) * range) + 1 if flags.has_key( "page" ) else int(flags["offset"]) if flags.has_key( "offset" ) else self._defaults["flags"]["offset"] ## offset = (page-1) * perpage   --  mode paging
+		recitation = flags["recitation"] if flags.has_key( "recitation" ) else self._defaults["flags"]["recitation"]
+		translation = flags["translation"] if flags.has_key( "translation" ) else self._defaults["flags"]["translation"]
 		highlight = flags["highlight"] if flags.has_key( "highlight" ) else self._defaults["flags"]["highlight"]
 		script = flags["script"] if flags.has_key( "script" ) else self._defaults["flags"]["script"]
-		vocalized = flags["vocalized"] if flags.has_key( "vocalized" ) else self._defaults["flags"]["vocalized"]
-		recitation = flags["recitation"] if flags.has_key( "recitation" ) else self._defaults["flags"]["recitation"]
-		translation = flags["translation"] if flags.has_key( "translation" ) else self._defaults["flags"]["translation"]
-		prev_aya = flags["prev_aya"] if flags.has_key( "prev_aya" ) else self._defaults["flags"]["prev_aya"]
-		next_aya = flags["next_aya"] if flags.has_key( "next_aya" ) else self._defaults["flags"]["next_aya"]
-		sura_info = flags["sura_info"] if flags.has_key( "sura_info" ) else self._defaults["flags"]["sura_info"]
-		word_info = flags["word_info"] if flags.has_key( "word_info" ) else self._defaults["flags"]["word_info"]
-		aya_position_info = flags["aya_position_info"] if flags.has_key( "aya_position_info" ) else self._defaults["flags"]["aya_position_info"]
-		aya_theme_info = flags["aya_theme_info"] if flags.has_key( "aya_theme_info" ) else self._defaults["flags"]["aya_theme_info"]
-		aya_stat_info = flags["aya_stat_info"] if flags.has_key( "aya_stat_info" ) else self._defaults["flags"]["aya_stat_info"]
-		aya_sajda_info = flags["aya_sajda_info"] if flags.has_key( "aya_sajda_info" ) else self._defaults["flags"]["aya_sajda_info"]
-		annotation_aya = flags["annotation_aya"] if flags.has_key( "annotation_aya" ) else self._defaults["flags"]["annotation_aya"]
-		annotation_word = flags["annotation_word"] if flags.has_key( "annotation_word" ) else self._defaults["flags"]["annotation_word"]
-		fuzzy = flags["fuzzy"] if flags.has_key( "fuzzy" ) else self._defaults["flags"]["fuzzy"]
+		vocalized = TRUE_FALSE(flags["vocalized"]) if flags.has_key( "vocalized" ) else self._defaults["flags"]["vocalized"]
+		prev_aya = TRUE_FALSE(flags["prev_aya"]) if flags.has_key( "prev_aya" ) else self._defaults["flags"]["prev_aya"]
+		next_aya = TRUE_FALSE(flags["next_aya"]) if flags.has_key( "next_aya" ) else self._defaults["flags"]["next_aya"]
+		sura_info = TRUE_FALSE(flags["sura_info"]) if flags.has_key( "sura_info" ) else self._defaults["flags"]["sura_info"]
+		word_info = TRUE_FALSE(flags["word_info"]) if flags.has_key( "word_info" ) else self._defaults["flags"]["word_info"]
+		aya_position_info = TRUE_FALSE(flags["aya_position_info"]) if flags.has_key( "aya_position_info" ) else self._defaults["flags"]["aya_position_info"]
+		aya_theme_info = TRUE_FALSE(flags["aya_theme_info"]) if flags.has_key( "aya_theme_info" ) else self._defaults["flags"]["aya_theme_info"]
+		aya_stat_info = TRUE_FALSE(flags["aya_stat_info"]) if flags.has_key( "aya_stat_info" ) else self._defaults["flags"]["aya_stat_info"]
+		aya_sajda_info = TRUE_FALSE(flags["aya_sajda_info"]) if flags.has_key( "aya_sajda_info" ) else self._defaults["flags"]["aya_sajda_info"]
+		annotation_aya = TRUE_FALSE(flags["annotation_aya"]) if flags.has_key( "annotation_aya" ) else self._defaults["flags"]["annotation_aya"]
+		annotation_word = TRUE_FALSE(flags["annotation_word"]) if flags.has_key( "annotation_word" ) else self._defaults["flags"]["annotation_word"]
+		fuzzy = TRUE_FALSE(flags["fuzzy"]) if flags.has_key( "fuzzy" ) else self._defaults["flags"]["fuzzy"]
 
 		#preprocess query
 		query= query.replace( "\\", "") 

=== modified file 'src/alfanous/console.py'
--- src/alfanous/console.py	2012-06-24 01:04:31 +0000
+++ src/alfanous/console.py	2012-11-22 23:12:08 +0000
@@ -37,10 +37,6 @@
 DOMAINS = RAWoutput.do( {"action":"show", "query":"domains" } )["show"]["domains"]
 HELPMESSAGES = RAWoutput.do( {"action":"show", "query":"help_messages" } )["show"]["help_messages"]
 
-## a function to decide what is True and what is False
-TRUE_FALSE = lambda x:False if x.lower() in ["no", "none", "null", "0", "-1", "", "false"] else True;
-
-
 arg_parser = ArgumentParser( 
                               description = INFORMATION["description"],
                               prog = 'alfanous-console',
@@ -77,40 +73,17 @@
 arg_parser.add_argument( "--domain", dest = "domain", type = str, help = HELPMESSAGES["domain"] )
 
 
-
-
 #execute command
 def main():
     args = arg_parser.parse_args()
+            
+    # Get the arguments as a dictionary and remove None-valued keys.
+    flags = {}
+    for k,v in args.__dict__.items():
+        if v!=None:
+            flags[k]=v
+
     if args.action and args.query:
-        flags = {}
-        if args.action: flags["action"] = args.action
-        if args.query: flags["query"] = args.query
-        if args.ident: flags["ident"] = args.ident
-        if args.platform: flags["platform"] = args.platform
-        if args.domain: flags["domain"] = args.domain
-        if args.sortedby: flags["sortedby"] = args.sortedby
-        if args.page: flags["page"] = args.page
-        if args.perpage: flags["perpage"] = args.perpage
-        if args.offset: flags["offset"] = args.offset
-        if args.range:  flags["range"] = args.range
-        if args.recitation: flags["recitation"] = args.recitation
-        if args.translation: flags["translation"] = args.translation
-        if args.highlight: flags["highlight"] = args.highlight
-        if args.script: flags["script"] = args.script
-        if args.vocalized: flags["vocalized"] = TRUE_FALSE( args.vocalized )
-        if args.prev_aya: flags["prev_aya"] = TRUE_FALSE( args.prev_aya )
-        if args.next_aya: flags["next_aya"] = TRUE_FALSE( args.next_aya )
-        if args.sura_info: flags["sura_info"] = TRUE_FALSE( args.sura_info )
-        if args.word_info: flags["word_info"] = TRUE_FALSE( args.word_info )
-        if args.aya_position_info: flags["aya_position_info"] = TRUE_FALSE( args.aya_position_info )
-        if args.aya_theme_info: flags["aya_theme_info"] = TRUE_FALSE( args.aya_theme_info )
-        if args.aya_stat_info: flags["aya_stat_info"] = TRUE_FALSE( args.aya_stat_info )
-        if args.aya_sajda_info: flags["aya_sajda_info"] = TRUE_FALSE( args.aya_sajda_info )
-        if args.annotation_aya: flags["annotation_aya"] = TRUE_FALSE( args.annotation_aya )
-        if args.annotation_word: flags["annotation_word"] = TRUE_FALSE( args.annotation_word )
-        if args.fuzzy: flags["fuzzy"] = TRUE_FALSE( args.fuzzy )
-
         print json.dumps( RAWoutput.do( flags ) )
     else:
         print RAWoutput._information["console_note"]