I have designed a class "Graphs" and have initialized 4 lists to store the values that I fetch from the firebase database. I have created a function "fetch_values" to fetch the values and store them in the respective lists. That part is working perfectly. But when I'm trying to access those updated lists in another function "store_values" inside the same class "Graphs", I am getting an error "NameError: name 'fetch_values' is not defined" This function store_values is supposed to take those lists and save the values in a CSV file in my folder. However, it's not working. I hope my question is clear, any help would be appreciated!
This is my class:
class Graphs(object):
def fetch_values():
temp=[]
mois=[]
hum=[]
DT=[]
def fetch():
LY_project=firebase.FirebaseApplication("https://ly-project-b1f1c-default-rtdb.firebaseio.com/",None)
result=LY_project.get("Values","")
#time=pd.to_datetime((result["LastIrrD"] +" "+ result["LastIrrT"]),infer_datetime_format=True)
now=dt.datetime.now().strftime("%H:%M:%S")
temp.append(result["Temperature"])
mois.append(result["Moisture"])
hum.append(result["Humidity"])
DT.append(now)
#DT.append(time)
#print(time)
print(len(DT))
print(result)
#-------------------------------------------Start Fetch-------------------------------------------#
print ("Fetching Values...\n")
n=5 #Number of readings
interval=2 #Interval between readings
safety=n # Safely space added to avoid overwriting of values
rt = RepeatedTimer(interval, fetch) # it auto-starts, no need of rt.start()
try:
sleep(n*interval+safety) # your long-running job goes here...
finally:
rt.stop() # try/finally block to make sure the program ends!
print("\nValues fetched successfully.")
return temp,mois,hum,DT
#----------------------------------------------------------------Store the fetched values---------------------------------------------------------------------#
def store_values():
new_DT,new_temp,new_hum,new_mois=fetch_values()
#Save data to csv file
fields = ['Date-Time', 'Soil Moisture', 'Temperature', 'Humidity']
rows = [new_DT, new_mois, new_temp,new_hum]
dict = {'Date-Time': new_DT, 'Soil Moisture': new_mois, 'Temperature': new_temp, "Humidity": new_hum}
df = pd.DataFrame(dict)
display(df)
#df.to_csv("readings4.csv")
The code under "start fetch is working fine and I am able to fetch the values in the lists. However, when I call those lists in the function below that (store_values), I am getting an error."
Please help!
This is the error I am getting: enter image description here
selfkeyword. It's probably a good idea for you to have a look at a basic python class tutorial, as this is a pretty key featureGraphs.fetch_valuesreturns(temp, mois, hum, DT)and you are assigning that tonew_DT, new_temp, new_hum, new_moiswhich has the variables in a different order...?