← Back to team overview

kicad-developers team mailing list archive

[PATCH] scripts/test_kicad_plugin.py cleanup (relative to BZR5201)

 

I'm very glad and grateful to see that UTF8 class was tuned up in python.
BZR5201 takes my attention to scripts/test_kicad_plugin.py example, so I make it
more friendly to user edit temporary path in one place only.
In addition, there is an example how the Python may be flexible at the stage of
import py module.

Also some cleanup and was taken:
 - „pass” is more lexically correct in except routine than „None” - really does
nothing „under a skin”.
 -  remove unused imports „sys” and „print_function”. „print” from newest Python
2 line works identically as needed.
 - Unify assignments with space to much readability.
 - It's bad practice to import everything from module („*”) - some names from
different modules may have same names, so I limit it to used classes only.
-- 
Best Regards,
LordBlick
--- scripts/test_kicad_plugin.py.old	2014-10-18 12:22:40.000000000 +0200
+++ scripts/test_kicad_plugin.py	2014-10-18 13:42:32.695975000 +0200
@@ -13,32 +13,27 @@
 # 3) Entered following command line, script takes no arguments
 # $ PYTHONPATH=. <path_to>/test_kicad_plugin.py
 
+from pcbnew import IO_MGR, BOARD, MODULE, FPID, UTF8
+from os import rename as mv
 
-from __future__ import print_function
-from pcbnew import *
-import sys
-import os
-
-
-lib_path1='f:/tmp/lib1.pretty'
-lib_path2='f:/tmp/lib2.pretty'
-
+tmp_path = '/tmp'
+lib_path1 = "%s/lib1.pretty" % tmp_path
+lib_path2 = "%s/lib2.pretty" % tmp_path
 
 plugin = IO_MGR.PluginFind( IO_MGR.KICAD )
 
 # Expecting "KiCad":
-print( "Plugin Type", plugin.PluginName() )
+print( "Plugin Type: %s" % plugin.PluginName() )
 
 try:
     plugin.FootprintLibDelete( lib_path1 )
 except:
-    None    # ignore, new may not exist if first run
+    pass    # ignore, new may not exist if first run
 
 try:
     plugin.FootprintLibDelete( lib_path2 )
 except:
-    None    # ignore, new may not exist if first run
-
+    pass    # ignore, new may not exist if first run
 
 plugin.FootprintLibCreate( lib_path1 )
 
@@ -46,13 +41,12 @@
 # for a FootprintLibCreate()
 plugin.FootprintLibCreate( lib_path2 )
 
-
 board = BOARD()
 
 # The only way to construct a MODULE is to pass it a BOARD? Yep.
 module = MODULE( board )
 
-fpid=FPID( 'mine' )
+fpid = FPID( 'mine' )
 
 module.SetFPID( fpid )
 
@@ -65,27 +59,27 @@
 # create a disparity between the library's name ("footprint"),
 # and the module's internal useless name ("mine").  Module is officially named "footprint" now
 # but has (module mine ...) internally:
-os.rename( 'f:/tmp/lib2.pretty/mine.kicad_mod', 'f:/tmp/lib2.pretty/footprint.kicad_mod' )
+mv( "%s/mine.kicad_mod" % lib_path2, "%s/footprint.kicad_mod" % lib_path2 )
 
-footprint=plugin.FootprintLoad( lib_path2, 'footprint' )
+footprint = plugin.FootprintLoad( lib_path2, 'footprint' )
 
 fpid = footprint.GetFPID()
 fpid.SetLibNickname( UTF8( 'mylib' ) )
 name = fpid.Format().GetChars()
 
 # Always after a FootprintLoad() the internal name should match the one used to load it.
-print( "internal name should be 'footprint':", name  )
+print( "Internal name should be 'footprint': '%s'" % name  )
 
 # Verify that the same plugin instance can edge trigger on a lib_path change
 # for FootprintLoad()
-footprint=plugin.FootprintLoad( lib_path1, 'mine' )
+footprint = plugin.FootprintLoad( lib_path1, 'mine' )
 
 fpid = footprint.GetFPID()
 fpid.SetLibNickname( UTF8( 'other_mylib' ) )
 name = fpid.Format().GetChars()
 
 # Always after a FootprintLoad() the internal name should match the one used to load it.
-print( "internal name should be 'mine':", name )
+print( "Internal name should be 'mine': '%s'" % name )
 
 # As of 3-Dec-2013 this test is passed by KICAD_PLUGIN and Wayne is owed an atta boy!
 

Follow ups