473,396 Members | 1,748 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Warning when doubly linked list is defined gloablly

Hi.,

In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list

when I run the py file, I am getting the Following Error

SyntaxWarning: name 'g_opt_list' is used prior to global declaration

Please let me know how to remove this error

--BestRegars.,
--Chandra

Aug 24 '05 #1
7 1974

chand wrote:
In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list


This is obviously wrong and not the code you wrote, global being
written horribly wrong - which should teach you an important lesson:
post actual code that exposes the problem, not something you think that
is working. Then we might be able to help you.

Diez

Aug 24 '05 #2
chand wrote:
Hi.,

In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list
global?
when I run the py file, I am getting the Following Error

SyntaxWarning: name 'g_opt_list' is used prior to global declaration

Please let me know how to remove this error


This happens in cases like
a = 1
def c():

.... a
.... global a

Does your source only consist of the three lines above? (These would trigger
a SyntaxError because of the typo...)
You should provide a more complete example, so we can tell you where the
problem is. Try to build a minimal file that reproduces the problem. Often
you will find the line causing the error yourself - and the fix might be
obvious to you -, if your strip stuff away.

--
Benjamin Niemann
Email: pink at odahoda dot de
WWW: http://www.odahoda.de/
Aug 24 '05 #3

"chand" <ch***************@gmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
Hi.,

In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list

when I run the py file, I am getting the Following Error

SyntaxWarning: name 'g_opt_list' is used prior to global declaration

Please let me know how to remove this error


To expand slightly on previous answers:

1. Write a *minimal* file that gives you the error. This means that
removing any statement ceases to give you the error. This may answer your
questions.

2. If still puzzled, post again. But cut and paste that *exact* file and
also the *full* error traceback.

Terry J. Reedy

Aug 24 '05 #4
Hi Terry..,

Here is the code which gives the error...

Let me know exact reason for this Error
import os,sys,re,string,math
from xml.dom import minidom, Node
from Layer import Layer
from LMessage import *
from Param import *
from Message import *
from message_mapping import *
from protocol_mapping import *
from symbol_mapping import *
from opt_list_mapping import *
g_del_opt_list =[[],[],[],[],[],[],[]]
sflag = 0
index=0
del_index=0
radflag = 0
depth = 0
xmlflag = 0
opt_param_list = []
del_opt_param_list = []
#g_opt_list = []
MTAS_HOME="/home/chandras/XML_FILES/"
SIG_STANDARD_HOME = "/home/chandras/SIGNALLING_STANDARD/ANSI_SS7/"
symbols=['(',')','{','}','[',']','.']
reverse_symbols=['<','>','~']
layers=['MTP3','SCCP','IOS','CDTAPM2','CDTAPC2','ISUP','IS-41D-SQA']
GUI_API_COMMAND_LIST = [
"NEW",
"ADD_OPTIONAL_PARAM",
"DELETE_OPTIONAL_PARAM",
"DELETE_LAYER",
"RENAME"
]

BASE2 = "01"
BASE10 = "0123456789"
BASE16 = "0123456789ABCDEF"

Message_obj = Message()
filename =""
buffer = []
#LIST = []
def Process_GUI_Command(arg):
global Message_obj
global filename
print "### COMMAND ###", arg[0]
save_fd = os.dup(1)
if arg[0] == "DELETE_OPTIONAL_PARAM":
out_file = file('/tmp/te6.txt', 'w+')
elif arg[0] == "ADD_OPTIONAL_PARAM":
out_file = file('/tmp/te3.txt', 'w+')
else :
out_file = file('/tmp/te.txt', 'w+')
os.dup2(out_file.fileno(), sys.stdout.fileno())

if arg[0] == "NEW" :
global g_opt_list
Message_obj = Message()
layerList = listLayers("ANSI_Layers")
layerList = str(layerList)
layerList = layerList.replace(",","")
for i in range(0,len(g_opt_list)):
g_opt_list[i] = []
os.dup2(save_fd, 1)
return layerList
elif arg[0] == "ADD_OPTIONAL_PARAM" :
global g_opt_list
global layers
global index
message_name = ""
layer_name = arg[1]
#print "Layer Name", layer_name
for layer in layers:
if layer == layer_name:
if OPT_LIST_MAPPING.has_key(layer_name):
index = OPT_LIST_MAPPING[layer_name]
break

if arg[2] != 'Null':
optional_parameter_name = str(arg[2]).replace("+",",")
for symbol in reverse_symbols:
if symbol in optional_parameter_name:
if SYMBOL_REVERSE_MAPPING.has_key(symbol):
old_symbol = SYMBOL_REVERSE_MAPPING[symbol]
optional_parameter_name =
optional_parameter_name.replace(symbol,old_symbol)
Message_obj.AddParam(message_name,layer_name,
optional_parameter_name )
else : optional_parameter_name= 'Null'
add_delete_flag = 0

param_name = optional_parameter_name
show_opts(layer_name,add_delete_flag,param_name)
if int(add_delete_flag) == 0:
add_delete_flag = 0
if optional_parameter_name != "Null":
optList =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,optional_parameter_name)
g_opt_list[int(index)].append(optional_parameter_name)
for i in g_opt_list[int(index)]:
if g_opt_list[int(index)].count(i) == 1:
optList =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,i)
displayoptparams(optList,layer_name,0,"Null")
i= "Null"
optional_parameter_name = "Null"
add_delete_flag = 1
os.dup2(save_fd, 1)

else:
print "Invalid Option"

def show_opts(layer_name,add_delete_flag,param_name):
global index
global g_opt_list
#param_name = "Null"
List =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,"Null")
if (len(List)== 0) :
return "None"
displayoptparams(List,layer_name,add_delete_flag,M essage_obj._message_name)
if param_name == 'Null':
for i in g_opt_list[int(index)]:
if g_opt_list[int(index)].count(i) == 1:
optList =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,i)
displayoptparams(optList,layer_name,0,"Null")
add_delete_flag = 1
return "None"

def main():

#choice = sys.argv[1]
print "####### choice ",
#Process_GUI_Command("NEW")
#list=CMSR.showOptionalParameters("SCCP",0)
#CMSR.saveXMLfile("CMSR2.xml","CMSR")
if __name__ == '__main__':
main()
--Thanks and bestregards.,
--Chandra

Terry Reedy wrote:
"chand" <ch***************@gmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
Hi.,

In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list

when I run the py file, I am getting the Following Error

SyntaxWarning: name 'g_opt_list' is used prior to global declaration

Please let me know how to remove this error


To expand slightly on previous answers:

1. Write a *minimal* file that gives you the error. This means that
removing any statement ceases to give you the error. This may answer your
questions.

2. If still puzzled, post again. But cut and paste that *exact* file and
also the *full* error traceback.

Terry J. Reedy


Aug 30 '05 #5
Hi All..,
Sorry for mailing the code which does't even compile !!

Please find below the code which compiles. Please let me know how to
resolve this warning message..!!
SyntaxWarning: name 'g_opt_list' is used prior to global declaration
import os,sys,re,string,math
from xml.dom import minidom, Node
from Layer import Layer
from LMessage import *
from Param import *
from Message import *
#from message_mapping import *
#from protocol_mapping import *
#from symbol_mapping import *
#from opt_list_mapping import *
g_del_opt_list =[[],[],[],[],[],[],[]]
sflag = 0
index=0
del_index=0
radflag = 0
depth = 0
xmlflag = 0
opt_param_list = []
del_opt_param_list = []
#g_opt_list = []
MTAS_HOME="/home/chandras/XML_FILES/"
SIG_STANDARD_HOME = "/home/chandras/SIGNALLING_STANDARD/ANSI_SS7/"
reverse_symbols=['<','>','~']
layers=['MTP3','SCCP','IOS','CDTAPM2','CDTAPC2','ISUP','IS-41D-SQA']
GUI_API_COMMAND_LIST = [
"NEW",
"ADD_OPTIONAL_PARAM",
"DELETE_OPTIONAL_PARAM",
"DELETE_LAYER",
"RENAME"
]

BASE2 = "01"
BASE10 = "0123456789"
BASE16 = "0123456789ABCDEF"

Message_obj = Message()
filename =""
buffer = []
#LIST = []
def Process_GUI_Command(arg):
global Message_obj
global filename
print "### COMMAND ###", arg[0]
save_fd = os.dup(1)
if arg[0] == "DELETE_OPTIONAL_PARAM":
out_file = file('/tmp/te6.txt', 'w+')
elif arg[0] == "ADD_OPTIONAL_PARAM":
out_file = file('/tmp/te3.txt', 'w+')
else :
out_file = file('/tmp/te.txt', 'w+')
os.dup2(out_file.fileno(), sys.stdout.fileno())

if arg[0] == "NEW" :
global g_opt_list
Message_obj = Message()
layerList = listLayers("ANSI_Layers")
layerList = str(layerList)
layerList = layerList.replace(",","")
for i in range(0,len(g_opt_list)):
g_opt_list[i] = []
os.dup2(save_fd, 1)
return layerList

elif arg[0] == "ADD_OPTIONAL_PARAM" :
global g_opt_list
global layers
global index
message_name = ""
layer_name = arg[1]
#print "Layer Name", layer_name
for layer in layers:
if layer == layer_name:
if
OPT_LIST_MAPPING.has_key(layer_name):
index =
OPT_LIST_MAPPING[layer_name]
break

if arg[2] != 'Null':
optional_parameter_name =
str(arg[2]).replace("+",",")
for symbol in reverse_symbols:
if symbol in optional_parameter_name:
if
SYMBOL_REVERSE_MAPPING.has_key(symbol):
old_symbol =
SYMBOL_REVERSE_MAPPING[symbol]
optional_parameter_name
= optional_parameter_name.replace(symbol,old_symbol)

Message_obj.AddParam(message_name,layer_name,
optional_parameter_name )
else : optional_parameter_name= 'Null'

add_delete_flag = 0

param_name = optional_parameter_name
show_opts(layer_name,add_delete_flag,param_name)
if int(add_delete_flag) == 0:
add_delete_flag = 0
if optional_parameter_name != "Null":
optList =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,optional_parameter_name)

g_opt_list[int(index)].append(optional_parameter_name)
for i in g_opt_list[int(index)]:
if
g_opt_list[int(index)].count(i) == 1:
optList =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,i)

displayoptparams(optList,layer_name,0,"Null")
i= "Null"
optional_parameter_name = "Null"
add_delete_flag = 1
os.dup2(save_fd, 1)

else:
print "Invalid Option"
def show_opts(layer_name,add_delete_flag,param_name):
global index
global g_opt_list
#param_name = "Null"
List =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,"Null")
if (len(List)== 0) :
return "None"

displayoptparams(List,layer_name,add_delete_flag,M essage_obj._message_name)
if param_name == 'Null':
for i in g_opt_list[int(index)]:
if g_opt_list[int(index)].count(i) == 1:
optList =
Message_obj.showOptionalParameters(layer_name,add_ delete_flag,i)

displayoptparams(optList,layer_name,0,"Null")
add_delete_flag = 1
return "None"

def main():

#choice = sys.argv[1]
print "####### choice ",
#Process_GUI_Command("NEW")
#list=CMSR.showOptionalParameters("SCCP",0)
#CMSR.saveXMLfile("CMSR2.xml","CMSR")

if __name__ == '__main__':
main()








































































































































































































































































































































chand wrote:
Hi.,

In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list

when I run the py file, I am getting the Following Error

SyntaxWarning: name 'g_opt_list' is used prior to global declaration

Please let me know how to remove this error

--BestRegars.,
--Chandra


Sep 5 '05 #6
chand wrote:
Sorry for mailing the code which does't even compile !!
You probably missed that other hint where Fredrik Lunddh told you to
somewhat reduce the script's size.
Please find below the code which compiles. Please let me know how to
resolve this warning message..!!
SyntaxWarning: name 'g_opt_list' is used prior to global declaration


This warning occurs if a global variable is used before it is declared as
such:
def f(): .... v = 42
.... global v
....
<stdin>:1: SyntaxWarning: name 'v' is assigned to before global declaration

This kind of code is dangerous because a casual reader might think that v is
a local variable. You can avoid the warning -- and the source of confusion
-- by moving the declaration to before the variable's first usage (I prefer
the top of the function):
def f(): .... global v
.... v = 42
....

In your script things are even more messed up. You declare g_opt_list twice:
def f():

.... global v
.... v = 42
.... global v
....
<stdin>:1: SyntaxWarning: name 'v' is assigned to before global declaration

Now that you understand the cause of the warning it is time to proceed to
yet another effbot hint: You never rebind the global variable g_opt_list
and therefore do not need the

global g_opt_list

statement at all.

Peter

Sep 5 '05 #7

"chand" <ch***************@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
Please let me know how to
resolve this warning message..!!
SyntaxWarning: name 'g_opt_list' is used prior to global declaration
Post the entire error traceback.
Post the entire error traceback.
Post the entire error traceback ;-).


[hundreds? more snipped]

Don't post hundread of blank lines. It took me at least half a minute to
delete them for this reply.

Terry J. Reedy

Sep 5 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: chand | last post by:
Hi., In my api.py file 'g_opt_list' is defined globally g_opt_list =,,,,,,] when I run the py file, I am getting the Following Error SyntaxWarning: name 'g_opt_list' is used prior to global...
4
by: dssuresh6 | last post by:
Whether browsing forward or backward can be done using a singly linked list. Is there any specific case where a doubly linked list is needed? For people who say that singly linked list allows...
5
by: free2cric | last post by:
Hi, how to detect head and tail in cyclic doubly link list ? Thanks, Cric
0
by: drewy2k12 | last post by:
Heres the story, I have to create a doubly linked list for class, and i have no clue on how to do it, i can barely create a single linked list. It has to have both a head and a tail pointer, and...
2
by: murali | last post by:
Hi, I want to insert a node in an sorted doubly linked list of integers in ascending order. The list should not have duplicate nodes. I need an algorithm (assuming an object oriented language) ...
16
by: pauldepstein | last post by:
Can anyone give a realistic example of a task for which the list container works better than vector or deque? Paul Epstein
5
by: adam.kleinbaum | last post by:
Hi there, I'm a novice C programmer working with a series of large (30,000 x 30,000) sparse matrices on a Linux system using the GCC compiler. To represent and store these matrices, I'd like to...
4
kim6987
by: kim6987 | last post by:
can you please spend a little time evaluating this code. I can not run it successfully thanks :) #include<stdio.h> #include<conio.h> #include<stdlib.h> #define SIZE 10 typedef struct dlist
10
by: kalar | last post by:
Hello. we have this struct and we must to make a linked list struct node { char name; char phone; struct node *prevName; // previous node alphabetically struct node *prevNumber; //...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.