[PySide] Proposal for "Visual tool to fast edit type system files" -- a Pyside idea

Hugo Parente Lima hugo.lima at openbossa.org
Tue Mar 27 18:43:34 CEST 2012


On Tuesday 27 March 2012 12:24:13 higery wrote:
> The following is my GSOC2012 proposal although in a very preliminary way, I
> will
> appreciate anyone can make some suggestions about this proposal.
> 
> 
> 
> Proposal for "Visual tool to fast edit type system files"

Hi Xu Dehai,

IMO a eclipse plugin doesn't really help too much, but I have a suggestion to 
you that's not too different from your original proposal:

People complain about the difficult to create Pyhton bindings using Shiboken 
very often on our mailing list, so instead of a visual tool, maybe would be 
better to write a tool to help the bootstrap of new bindings, i.e.:

You inform the header files of libraries that you want do bind and it 
generates basic typesystem files for these libraries plus the CMakeFiles for 
the project.

UI is optimal, this can be a command line tool, in fact I believe that is 
better to be a command tool rather than a UI.

The hard work will be modify ApiExtractor to do what you want, once you do 
this, the work can be integrated into Shiboken repository instead of a new 
repository just for this tool.

What do you think? Suggestions? Questions?
 
> 
> Abstract
> -----------------
> Typesystem file is an important XML file used by API Extractor of Pyside to
> save information of how the API should be exported to the chosen target
> language.
> To support different kinds of complex target languages, Pyside typesystem
> file
> must support many simple or complicated meta information, thus it's a
> little
> difficult for developers to edit these pure typesystem files, so it's very
> significant
> to write a visual tool to fast edit typesystem files. We can develop an
> Eclipse plugin
> to fast implement such kind tool.
> 
> Introduction
> ------------------
> Actually, Eclipse already has a very simple XML editor source code, which
> only support
> highlight of the specified schema. To fast implement such kind tool, we can
> reuse this
> source code and add all type system schemas which the typesystem files
> support. The
> API Extractor Type System contains about 8 parts, e.g. specifying types,
> manipulating
> Object and Value Types, modifying functions, modifying arguments, etc. , so
> we can
> support these features step by step. In the mean while, our tool should
> allow users
> insert code in a quick and intelligent way like Eclipse IDE.
> 
> What's more, in future, if our tool is developed in a good status, we can
> add WYSIWYG
> feature to it -- we can import EMF framework to our tool, thus we can drag
> and drop an
> element to a panel, at the same time, generating corresponding snippets
> code of the type
> system to our typesystem file.
> 
> Milestones
> ------------------
> The following is my week-by-week plan:
> Week 1: investigate current API Extractor and collect the detailed
> requirements about
> what kind of tool should be implemented, from reading the source code, and
> the
> developer's ideas
> Week 2: investigate the Eclipse XML editor source code and make an initial
> solution
> Week 3: easy beginning - support typesystem, load-typesystem,rejection,
> Week 4: do more - support primitive-type, enum-type, namespace-type,
> reject-enum-value,
> value-type,object-type,interface-type,container-type,custom-type,function
> Week 5: support inject-code,
> modify-field,modify-function,add-function,conversion-rule
> Week 6: support modify-argument,remove,access,rename
> Week 7: support conversion-rule,remove-argument,rename to,
> remove-default-expression,
> replace-default-expression,replace-type,define-ownership,reference-count,re
> place- value,parent
> Week 8: support suppress-warning, extra-includes,inlude
> Week 9: support template,insert-template,replace
> Week 10: support conversion-rule,
> native-to-target,target-to-native,add-conversion
> Week 11: support inject-documentation,modify-documentation
> Week 12-13: enhance this tool, submit source code, write documentations,
> and so on.
> 
> 
> About me
> --------------------
> I'm an undergraduate from China and I'm preparing for my computer science
> and technology
> bachelor degree in USTB (University of Science and Technology Beijing).
> Java and Python
> is the main programming language when I write programs and software.
> During my coding days, I’m getting to know more and more about the
> Open-Source/FOSS,
> especially its spirits-share, collaborate, make friends. Every time I find
> an excellent
> solution about some problems occurred to me, I become so excited and
> learned a lot from
> the process of problems finding-reporting-solving.
> 
> 
> I joined gsoc2011 last year and took one Python idea as my summer project,
> you can take a
> look at what the project does via python wiki page :
> http://wiki.python.org/moin/SummerOfCode/2011/SetuptoolsFeatures,
> and you also can know more through the my blog for gsoc:
>  http://higery.wordpress.com/
> 
> Contact Info:
> # Name: Xu Dehai(You can call me with my English name-higery)
> # Blog: http://higery.wordpress.com/
> # IRC: higery on irc.freenode.net
> 
> 
> 
> --------
> Best wishes,
> higery

-- 
Hugo Parente Lima
INdT - Instituto Nokia de Tecnologia
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20120327/dd3da0fb/attachment.sig>


More information about the PySide mailing list