Hi, I was being told to share my plugin in the current state. It would be helpful if someone take a look about it in my previous mail and provide feedback.
Thanks. On Tue, Aug 11, 2015 at 11:20 AM, Ahirnish Pareek <ahirn...@arista.com> wrote: > Hi, > > The idea of plugin is very simple and I felt the need of it in my > organization's code base where we use python 2.7 to write the tests. > > There are a lot of functions which looks like this: def foo( var1, > name1=value, *args ): > > The problem that I want to deal with is that we should not have keyword > arguments( *name1* ) before positional arguments( **args* ). Although the > function can still be called by passing *name1* as positional argument > but there would be no way to not specify *name1* but specify **args*. > def foo(a, b=3, *args): > print a, b, args > > Case1: a = 0, b = 2, args = (4, 5) > foo(0, 2, 4, 5) => 0 2 (4, 5) > > Case2: a = 0, b = <default_value>, args = (4, 5) > foo(0, 4, 5) => 0 4 (5, ) ==> args list modified as well as value of 'b' > > And of course, we cant do this: > foo(0, b=2, 4, 5) > > I plan to put this in design_analysis checker and the check looks like > this: > > from astroid.test_utils import extract_node > n = extract_node(''' > def test(a, b=2, *args, c=3, **kwargs): > pass > ''') > > *if n.args.defaults and n.args.varargs:* > print <ErrMsg> > > I already checked it by loading this plugin as an external plugin in my > pylintrc file and it worked as expected. > > Claudio suggested that this might be a useful check, so I plan to merge it > in the developing code-base. > > Do let me know your thoughts! > > On Wed, Aug 5, 2015 at 1:49 PM, Ahirnish Pareek <ahirn...@arista.com> > wrote: > >> Hi, >> >> I have never patched anything to the open-source code and I am confused >> as to what are the right steps to follow. I need to patch a function >> argument related checker into the pylint code base. Can someone point me to >> the steps need to follow to ensure my changes go upstream? >> >> Thanks. >> >> On Fri, Jul 3, 2015 at 3:02 PM, Claudiu Popa <pcmantic...@gmail.com> >> wrote: >> >>> On Thu, Jul 2, 2015 at 9:45 AM, Ahirnish Pareek <ahirn...@arista.com> >>> wrote: >>> > Hi all, >>> > >>> > I was wondering if there's a pattern to calculate Pylint's message-id >>> > numbers? I know that first alphabet indicates if its a warning, error, >>> > convention, refactor or fatal but how do we come up with 4-digit number >>> > after that? >>> > >>> > Like - E1605. E = Error but what is 1605? >>> > >>> > Thanks. >>> >>> >>> Base id of standard checkers (used in msg and report ids): >>> 01: base >>> 02: classes >>> 03: format >>> 04: import >>> 05: misc >>> 06: variables >>> 07: exceptions >>> 08: similar >>> 09: design_analysis >>> 10: newstyle >>> 11: typecheck >>> 12: logging >>> 13: string_format >>> 14: string_constant >>> 15: stdlib >>> 16: python3 >>> >>> So for E1605, that would be from the python 3 checker. Since it's pretty >>> hard to remember all this, the message ids will be deprecated at some >>> point, in favor of using symbolic names. >>> >> >> >> >> -- >> Regards, >> Ahirnish >> > > > > -- > Regards, > Ahirnish > -- Regards, Ahirnish
_______________________________________________ code-quality mailing list code-quality@python.org https://mail.python.org/mailman/listinfo/code-quality