On Mon, Apr 13, 2009 at 1:14 PM, Mart Sõmermaa <mrts.py...@gmail.com> wrote: > On Mon, Apr 13, 2009 at 8:23 PM, Steven Bethard <steven.beth...@gmail.com> > wrote: >> On Mon, Apr 13, 2009 at 2:29 AM, Mart Sõmermaa <mrts.py...@gmail.com> wrote: >> > As for the duplicate handling, I've implemented a threefold strategy that >> > should address all use cases raised before: >> > >> > def add_query_params(*args, **kwargs): >> > """ >> > add_query_parms(url, [allow_dups, [args_dict, [separator]]], **kwargs) >> > >> > Appends query parameters to an URL and returns the result. >> > >> > :param url: the URL to update, a string. >> > :param allow_dups: if >> > * True: plainly append new parameters, allowing all duplicates >> > (default), >> > * False: disallow duplicates in values and regroup keys so that >> > different values for the same key are adjacent, >> > * None: disallow duplicates in keys -- each key can have a single >> > value and later values override the value (like dict.update()). >> >> Unnamed flag parameters are unfriendly to the reader. If I see something >> like: >> >> add_query_params(url, True, dict(a=b, c=d)) >> >> I can pretty much guess what the first and third arguments are, but I >> have no clue for the second. Even if I have read the documentation >> before, I may not remember whether the middle argument is "allow_dups" >> or "keep_dups". > > Keyword arguments are already used for specifying the arguments to the > query, so naming can't be used. Someone may need an 'allow_dups' key > in their query and forget to pass it in params_dict. > > A default behaviour should be found that works according to most > user's expectations so that they don't need to use the positional > arguments generally.
I believe the usual Python approach here is to have two variants of the function, add_query_params and add_query_params_no_dups (or whatever you want to name them). That way the flag parameter is "named" right in the function name. Steve -- I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a tiny blip on the distant coast of sanity. --- Bucky Katt, Get Fuzzy _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com