On Oct 29, 9:05 am, Jon Clements <jon...@googlemail.com> wrote: > On 28 Oct, 21:55, Dean McClure <bratpri...@gmail.com> wrote: > > > > > > > On Oct 28, 4:50 pm, Jon Clements <jon...@googlemail.com> wrote: > > > > On 28 Oct, 06:21, Dean McClure <bratpri...@gmail.com> wrote: > > > > > Hi, > > > > > Just wondering how I can get theitems() command fromConfigParserto > > > > not resort all the item pairs that it presents. > > > > > I am trying to get it to read some data in order: > > > > > [Relay Info] > > > > relay_name: IPC > > > > relay_current_range: [60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, > > > > 104, 108, 112, 116] > > > > relay_current_mutliplier: [1/8, 1/4, 1/2, 1, 2, 4] > > > > relay_i: arcfc/(relay_current_range*relay_current_mutliplier) > > > > > so I can input the data and then eval() the equation at the end but > > > > when I go > > > > config.items('Relay Info') > > > > It mixes everything up, is there a way to stop this? > > > > > Here is my selection code > > > > > variables = sorted(config.items('Relay Info')) > > > > #Get inputs from user for each variable > > > > for variable in variables: > > > > if variable[0] == 'relay_name': > > > > vars()[variable[0]] = variable[1] > > > > else: > > > > vars()[variable[0]] = 'not a real thing this is just a > > > > fake that > > > > will never turn up to establish the variable' > > > > if variable[1][0] == '[' and variable[1][-1] == ']': > > > > if variable[0] != 'Any': > > > > while > > > > (variable[1].count(vars()[variable[0]]) < 1): > > > > vars()[variable[0]] = > > > > raw_input(str(variable)[1:-1] + "\n") > > > > if > > > > variable[1].count(vars()[variable[0]]) < 1: > > > > print 'Setting > > > > unavailable' > > > > else: > > > > vars()[variable[0]] = > > > > raw_input(str(variable)[1:-1] + "\n") > > > > else: > > > > vars()[variable[0]] = variable[1] > > > > vars()[variable[0]] = float(eval(vars()[variable[0]])) > > > > > Thanks for the help! > > > > I'm not 100% sure what you're asking, as why should the order be > > > important? > > > > It's probably worth mentioning that the builtin dictionary type is > > > 'unordered' as it uses hashing to store keys. However, > > > theConfigParsermodule does allow you to supply a dict_type parameter in > > > version 2.6+ [http://docs.python.org/library/configparser.html], so > > > you could provide an 'ordered dictionary' which returns itsitemsin > > > insertion order. There's lots of recipes out there for those, but I > > > believe Raymond Hettinger has a fairly good one on the ActiveState(?) > > > cookbook site. (Google for python cookbook). > > > > Since however, the idea of processing INI files is that you *know* > > > what you're looking for and how to interpret it, I'm not sure why > > > you're not using something similar to this (v2.6.2): > > > > relay_name = config.get('Relay Info', 'relay_name') > > > relay_current_range = config.get('Relay Info', 'relay_current_range') > > > relay_current_range_list = eval(relay_current_range) > > > > ...etc... > > > > hth, > > > > Jon. > > > Sorry, basically I was just usingconfigparserto pull sets of > > variables and equations to calculate the clearing time of a circuit > > breaker. As each device is slightly different and I like the structure > > of theconfigparserI decided it'd be an acceptable way to do this. > > The thing is that I wanted to have the relay settings in the first > > section, then have sections for different protection settings, all of > > these have a few input parameters and an output for clearing time. The > > user will select the config file for the relay they want and therefore > > not all the settings will be the same, I know this isn't the intended > > use of theconfigparserbut I thought it'd be much easier for people > > to run from their hdd, just a folder of conf files that can be edited > > or expanded on with relative ease. > > > In order to accommodate for all the different configurations I thought > > I would have (as my code was showing but poorly explained) the > > variable name in the config file (these will be standardised to a > > degree) set to be either a set value or a selectable range in which > > the program will ask the user to select a value from the range. One > > relay may have a value for overload that is a percentage of the CT > > value while others may have a selected full load current which is used > > for everything so having all the input variables and then the equation > > to output the clearing time means that I can ask for the input values > > and evaluate the equation. Or at least I would be able to if I could > > output them in order? > > As Steven has already said, you're lone to an injection attack, don't > allow it. > > What language do you orig. come from? ie, what would you say is your > 'strongest' language. > > Jon.
Probably C, I'm not used to having so many functions :( I have a terrible tendency to build from the bottom and then stumble upon a function that does it all for me. Always ends in tears -- http://mail.python.org/mailman/listinfo/python-list