← Back to team overview

kicad-developers team mailing list archive

Re: PATCH : Enhanced Python Shell - Proposed version

 

Patch committed in product branch r6392.  Thank you for your
contribution to KiCad.

Cheers,

Wayne

On 12/17/2015 12:10 AM, Strontium wrote:
> Hi Wayne,
> 
> Thanks for testing this on windows, I really appreciate it a lot.
> 
> I moved the offending comments from being inline comments and placed
> them into the Docstring.  It has the added benefit of making them more
> visible to end users.
> 
> See: http://i.imgur.com/Zq1pdyV.jpg
> (Apologies on the quality of the screen capture.)
> 
> I also ran the pure python code I am submitting for the shell through PEP8,
>  PEP257 and pyflakes and corrected all problems they highlighted. NOTE:
> They are all style issues and not logic faults.
> 
> I don't believe there are style guides for python and KiCad yet, but I
> figured PEP8 and PEP257 would be a minimum.
> 
> I believe I fixed the style problem with the C++ code.
> 
> Revised patch attached.
> Updated code is also on my github.
> 
> Steven
> 
> On 17/12/15 05:56, Wayne Stambaugh wrote:
>> Your patch fails to build using swig 3.0.6 on windows due to the
>> comments you added to kicadplugins.i.  Here is the output:
>>
>> C:/msys64/home/wstambaugh/src/kicad/product/pcbnew/../scripting\kicadplugins.i(101)
>>
>> : Error: Unknown SWIG preprocessor directive: The (if this is a block of
>> target language code, delimit it with %{ and %})
>> C:/msys64/home/wstambaugh/src/kicad/product/pcbnew/../scripting\kicadplugins.i(105)
>>
>> : Error: Unknown SWIG preprocessor directive: The (if this is a block of
>> target language code, delimit it with %{ and %})
>> C:/msys64/home/wstambaugh/src/kicad/product/pcbnew/../scripting\kicadplugins.i(109)
>>
>> : Error: Unknown SWIG preprocessor directive: The (if this is a block of
>> target language code, delimit it with %{ and %})
>> C:/msys64/home/wstambaugh/src/kicad/product/pcbnew/../scripting\kicadplugins.i(113)
>>
>> : Error: Unknown SWIG preprocessor directive: And (if this is a block of
>> target language code, delimit it with %{ and %})
>> C:/msys64/home/wstambaugh/src/kicad/product/pcbnew/../scripting\kicadplugins.i(118)
>>
>> : Error: Unknown SWIG preprocessor directive: NOTE (if this is a block
>> of target language code, delimit it with %{ and %})
>> pcbnew/CMakeFiles/_pcbnew.dir/build.make:61: recipe for target
>> 'pcbnew/pcbnewPYTHON_wrap.cxx' failed
>>
>> I tried using the recommended %{ %} to wrap the comments.  It built fine
>> but crashed when I ran it.  Your best bet is to get rid of the comments
>> or figure out the proper swig technique for wrapping python comments.  I
>> tried removing the comments and it worked fine.  You also have some
>> coding policy violations ( missing spaces before and after parenthesis )
>> that need to fixed.
>>
>>
>> On 12/16/2015 5:58 AM, Strontium wrote:
>>> Hello List,
>>>
>>> I believe I have cleaned up my patch and made the enhanced shell do
>>> everything it should.
>>>
>>> It has a tabbed interface, with simple text editing capabilities.
>>>
>>> Its GUI can be used to introspect the full internal state of pcbnew, as
>>> exposed by the python interface.
>>>
>>> The editor can be used to code python scripts (with syntax
>>> highlighting), and it has auto-completion built in.  Ie, type word press
>>> (dot) and it gives you a list of possibilities which follow. Further,
>>> you can use the editor to load up KiCad files and edit them without
>>> having to use an external editor, if one desires.
>>>
>>> It will allow you to save your interactive history, and restore it in a
>>> new session.  It has a startup file which is executed when the python
>>> shell first starts, and automatically creates a default if it doesn't
>>> exist.  All of its configuration, history and startup files are stored
>>> in the users KiCad configuration directory on each platform.
>>>
>>> The default startup file doesn't do anything, but includes a commented
>>> out example which will automatically load pcbnew into the shell, and get
>>> the current board on screen.  Two very common things that need to be
>>> done most times when you start the python shell.
>>>
>>> The shell is fully written in python, and uses the foundation of
>>> PyAlamode included with wxpython.  It does not introduce any further
>>> dependencies on KiCad, everything it achieves is already built into
>>> KiCad, and not currently exposed.
>>>
>>> It should be possible to extend the shell in future and add features,
>>> without requiring to hack core code inside pcbnew.
>>>
>>> The changes to the core of pcbnew, that I did, were to facilitate this,
>>> and I discuss why I did them in earlier posts. They haven't changed in
>>> this patch.  There may be better ways to achieve this and I am open to
>>> suggestions.
>>>
>>> I have only tested on Linux, but I do not believe any of the OS specific
>>> code changes that I made should negatively effect Windows or Mac,
>>> nevertheless it needs testing on those platforms and I do not have
>>> access to them.
>>>
>>> Screenshots of it in action:
>>>
>>> http://i.imgur.com/lTFFddR.png
>>> http://i.imgur.com/qbACtPR.png
>>> http://i.imgur.com/Yny4Lnc.png
>>> http://i.imgur.com/q2AjrPi.png
>>>
>>> The code is also available on my github:
>>> https://github.com/stevenj/kicad-source-mirror/tree/enahnced-python-shell
>>>
>>>
>>> Hopefully this is useful.
>>>
>>> Steven
>>>
>>>
>>> _______________________________________________
>>> 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
> 


References