Thanks all. I'm noot looking for a central place to store it all, or for real inmutable constants.
For the example given: class PasswordWidget DEFAULT_DISPLAY = 8('*') (....) would be more than enough and in sql.py there could be things like DAL.FIELDTYPE_STRING = 'string' and in cache.py : DEFAULT_TIMEEXPIRE = 300 the magic values (strings, numbers etc) are thus now a bit more descriptive (and available for autocompletion if not using the online environment). I'm not saying that all strings must/should be replaced as such. On Sat, Jun 6, 2009 at 6:37 AM, Yarko Tymciurak<yark...@gmail.com> wrote: > On Fri, Jun 5, 2009 at 3:46 PM, Hans Donner <hans.don...@pobox.com> wrote: >> >> what is it you do not understand? perhaps I can exaplin it better. > > Hans - > > I get the general idea you are trying to convey --- for web2conf, we put > many configuration items into 'CONSTS' (ok, variables that should not be > changed, except in the config file) ... and we probably went too far. > > In general, there's a balance between readability and DRY (e.g. avoiding > errors). > > For "type" checking, tests return strings in python, and these are generally > most readable if the tests are against strings too (too much DRY can result > in obfuscation, readability falling). > >> >> Examples of 'strings' >> - in PasswordWidget (sqlhtml.py) there is the default display for a >> password, in FORM.accepts this is also re-used > > The string '*********' I would prefer to see as that; in all of web2py, it > occurs only in sqlhtml.py, and only 3 times, twice to set, and once to > test. I suppose for errors, something like 8*('*') might be used (matter > of preference). > >> >> - In the top of sql.py, when loading the drivers 'Postgre' is used as >> a key, while later it looks like it is referred to as 'Postgres' > > > In all of web2py source, there is only ONE string starting with > 'Postg..... and that is (as you point out) probably a typo; as you can > see, drivers (the list this string is appended to) is a list of drivers > available in your installation. It is only used for text display at startup > of web2py, in widget.py, in start() .... for startup dialog.... I don't see > any compelling reason to change this from a string. > > But I think your point is well taken - it would be particularly useful for > readability to assign regular expressions to descriptive names (regardless > of how many times they are used)... or even to a concatenation of readable > chuncks. > > So keep looking for places to suggest readability improvements - don't be > discouraged from your instincts - they are good! > > Kind regards, > Yarko >> >> >> On Fri, Jun 5, 2009 at 10:29 PM, mdipierro<mdipie...@cs.depaul.edu> wrote: >> > >> > I do not understand. I am sure it is because of lack of sleep and >> > headache due to broken glasses (waiting for a replament). >> > >> > Massimo >> > >> > On Jun 5, 3:09 pm, Hans Donner <hans.don...@pobox.com> wrote: >> >> could be my upbringing and my fat fingers/reliance on autocompletion, >> >> but I see a lot of repetitive code and strings, eg >> >> table_field = re.compile('[\w_]+\.[\w_]+') and 'keyname' etc. >> >> >> >> like the table_field being present in multiple files, why not move >> >> them to some shared globals and import from there? >> >> >> >> any reason why frequently reused keynames are not provided as CONST? >> >> Esp when used in different parts of web2py. >> >> This might also prevent the 'Postgre' (missing s?) in sql.py >> >> >> >> I've only been using python for a short time, so this might be the >> >> python way to do it. >> >> >> >> Hans >> > > >> > >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---