[Freeipa-devel] Integer parameters

Jason Gerard DeRose jderose at redhat.com
Mon Oct 19 18:38:56 UTC 2009


On Mon, 2009-10-19 at 10:24 -0400, John Dennis wrote:
> On 10/19/2009 09:12 AM, Pavel Zuna wrote:
> > John Dennis wrote:
> >> I wanted to assure myself if a command was expecting an integer value,
> >> it could be input in whatever radix the user desires and be correctly
> >> converted. If I understand correctly this code is in parameters.py and
> >> is implemented by the _convert_scalar member function. The Int and
> >> Float classes derive from the Number class and inherit
> >> Number._convert_scalar which attempts to call the type (e.g.
> >> constructor). However the int class only supports base 10 radix
> >> strings in it's constructor, it will not do radix conversion.
> >> Shouldn't the Int parameter class have it's own _convert_scalar which
> >> invokes int(value, 0)? (Note: the second argument to the int
> >> constructor is the radix base, with 0 being a special value indicating
> >> the radix is to be derived from the prefix)
> >>
> > Int only accepts base 10. As you say, we could extend _convert_scalar
> > and have it accept different bases. The question is, do we need/want it
> > to? If we do, then it shouldn't be too hard to implement (and I
> > volunteer to do it).
> 
> Thanks, but I've already made the code change and it will show up in a 
> patch shortly. My main concern was this would alter the UI (accepting a 
> radix other than base 10) and I wanted to make sure this did not occur 
> without some discussion and/or awareness of the change.
> 
> My personal feeling is the desired behavior for our interfaces is:
> 
> * By default all integers are accepted as base 10 and presented in the 
> UI as base 10.
> 
> * However to be friendly and to conform to some other external 
> conventions, it should be possible to supply a value in hex and have the 
> UI properly handle it. It's less clear to me whether the UI should ever 
> present an integral value in hex even if there is some president for 
> that particular value being presented in hex.
> 

I think this sounds reasonable: allow int's to be specified in any base
for which a Python literal repr exist (so I think that's base 10, 16, 8,
and 2), but always display base 10 to the user.




More information about the Freeipa-devel mailing list