← Back to team overview

kicad-developers team mailing list archive

Re: Pcbnew Python Interface breakage?

 

Great, thank you both for testing! I have just pushed the patch.

Maurice, you are right about the comment. It was already there, but
should have been removed.

Regards,
Orson

On 06/26/2017 05:16 PM, easyw wrote:
> Hi,
> 
> I solved with a trick
>             try:
>                 board_drawings=board.GetDrawings()
>             except:
>                 board_drawings=board.DrawingsList()
> 
>             for drw in board_drawings:
> 
> for one plugin, and with a similar trick for the other;
> but your solution is cleaner.
> 
> is the
> diff --git a/pcbnew/swig/module.i b/pcbnew/swig/module.i
> correct?
> 
> I see there is a block comment before @line 45
> /*
> %extend MODULE
> ...
> 
> Applying the patch I cannot make any plugins running
> but if I de-comment that block it works...
> 
> 
> Thx
> Maurice
> 
> 
> On 06/26/2017 2:24 PM, Maciej Sumiński wrote:
>> Hi Maurice,
>>
>> This is due to the recent commit that enables iterators for DLISTs. We
>> have forgotten that such change impacts the Python interface.
>>
>> I propose to keep the old interface, otherwise we will face many reports
>> when a script works correctly with the stable release, but not with
>> nightlies.
>>
>> Would you check if the attached patch fixes the problem? If so, I will
>> push it.
>>
>> Regards,
>> Orson
>>
>> On 06/26/2017 10:23 AM, easyw wrote:
>>> Hi,
>>> I can confirm the same error on windows 10.
>>>
>>> I get also an other kind of error in my annular plugin that worked
>>> till now
>>>
>>> "for pad in module.Pads():
>>> TypeError 'SwigPyObject' object is not iterable"
>>>
>>> BR
>>> Maurice
>>>
>>> On 06/25/2017 5:46 PM, Simon Küppers wrote:
>>>> Hi,
>>>> I just updated KiCad on Linux Mint using the Launchpad PPA to test the
>>>> new connection algorithm. However, a SWIG error starts to pop up in my
>>>> python plugins.
>>>> Right now I can produce the error, when calling GetDrawings on the
>>>> board
>>>> object (which worked a few days ago). It looks like the SWIG wrappers
>>>> are desynchronized from the C++-code. Is that (at all) possible?
>>>>
>>>> This is the Traceback I get:
>>>>
>>>> ----
>>>> Traceback (most recent call last):
>>>>
>>>>   File "/home/sk/.kicad_plugins/action_viafence/viafence_action.py",
>>>> line 160, in Run
>>>>     boardItem = self.boardObj.GetDrawings().GetFirst()
>>>>
>>>>   File "/usr/lib/python2.7/dist-packages/pcbnew.py", line 18508, in
>>>> GetDrawings
>>>>     def GetDrawings(self):            return self.m_Drawings
>>>>
>>>>   File "/usr/lib/python2.7/dist-packages/pcbnew.py", line 17803, in
>>>> <lambda>
>>>>     __getattr__ = lambda self, name: _swig_getattr(self, BOARD, name)
>>>>
>>>>   File "/usr/lib/python2.7/dist-packages/pcbnew.py", line 74, in
>>>> _swig_getattr
>>>>     return _swig_getattr_nondynamic(self, class_type, name, 0)
>>>>
>>>>   File "/usr/lib/python2.7/dist-packages/pcbnew.py", line 69, in
>>>> _swig_getattr_nondynamic
>>>>     return object.__getattr__(self, name)
>>>>
>>>> AttributeError: type object 'object' has no attribute '__getattr__'
>>>>
>>>> Best Regards
>>>> Simon
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>


Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups

References