Problem with if statements checking True
Correct me if I'm wrong, but shouldn't the following statement work based on if my variable is true or false?
if twitter_mode: print "Hello" else: pass
Watch out for the line
twitter_mode = str(settings['twitter'])because
bool(False) != bool('False').
Try removing the local copies of
config.feedand always use the attributes of
configinstead. That way you won't have any issues with the local copy being different from the
@ccc Already took care of it ;) accidentally did this somehow..
@dgelessus Could you explain more in depth? Not sure what you mean.
Near the beginning of your gist, you have these two lines:
news_url = config.feed twitter_mode = config.twitter_mode
What you're doing here is you're assigning the current values of
config.twitter_modeto the local (well, actually global, from the perspective of the current module) variables
twitter_mode. Although the variables' values are the same, the variables themselves are not linked in any way. If you change
config.twitter_mode, the global variable
twitter_modedoesn't change, and vice versa.
Further on in your
settings_actionmethod, you declare
twitter_modeas global, but never assign to them - instead you assign to
config.twitter_mode. Now the variables from
configand the current module are no longer in sync. To avoid this issue, simply remove the globals
twitter_mode, and always use
@dgelessus Gotcha. Thanks for explaining that for me. It's been a long day...
Would changing the variables be like writing to a file but writing over the current .py file?
Not sure what you mean exactly. If you assign something to an attribute of the
configmodule, you don't modify the actual source file. The changes are as temporary as any other variable. The important part is that you store your data in a single place (the
configmodule) and not under multiple separate names.
Yes, edit it like any other file.