Editing Summer of Code - Getting Started

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 116: Line 116:
 
| [[Summer of Code - Getting Started#OCS | OCS package]] || Sebastian Schöps || Sebastian Schöps || Octave Forge, Numerical || Yes || Easy || Never
 
| [[Summer of Code - Getting Started#OCS | OCS package]] || Sebastian Schöps || Sebastian Schöps || Octave Forge, Numerical || Yes || Easy || Never
 
|-
 
|-
| [[Summer of Code - Getting Started#Using_Python_within_Octave | Pythonic package]] || Mike Miller || Colin B. Macdonald, Abhinav Tripathi || Infrastructure || No  || Medium || some in GSoC 2016
+
| [[Summer of Code - Getting Started#Using_Python_within_Octave | Pytave project]] || Mike Miller || Colin B. Macdonald, Abhinav Tripathi || Infrastructure || No  || Medium || some in GSoC 2016
 
|-
 
|-
 
| [[Summer of Code - Getting Started#JSON_encoding.2Fdecoding | JSON encoding/decoding]] || [[User:Siko1056|Kai T. Ohlhus]] || ? || Infrastructure || Yes  || Medium || Never
 
| [[Summer of Code - Getting Started#JSON_encoding.2Fdecoding | JSON encoding/decoding]] || [[User:Siko1056|Kai T. Ohlhus]] || ? || Infrastructure || Yes  || Medium || Never
Line 282: Line 282:
 
=== Symbolic package ===
 
=== Symbolic package ===
  
Octave's [https://github.com/cbm755/octsympy Symbolic package] handles symbolic computing and other CAS tools.  The main component of Symbolic is a pure m-file class "@sym" which uses the Python package [https://www.sympy.org SymPy] to do (most of) the actual computations.  The package aims to expose the full functionality of SymPy while also providing a high-level of compatibility with the Matlab Symbolic Math Toolbox.  The Symbolic package requires communication between Octave and Python.  Recently, a GSoC2016 project successfully re-implemented this communication using the new [[Pythonic|Pythonic package]].
+
Octave's [https://github.com/cbm755/octsympy Symbolic package] handles symbolic computing and other CAS tools.  The main component of Symbolic is a pure m-file class "@sym" which uses the Python package [https://www.sympy.org SymPy] to do (most of) the actual computations.  The package aims to expose the full functionality of SymPy while also providing a high-level of compatibility with the Matlab Symbolic Math Toolbox.  The Symbolic package requires communication between Octave and Python.  Recently, a GSoC2016 project successfully re-implemented this communication using the new [https://bitbucket.org/mtmiller/pytave Pytave tool].
  
This project proposes to go further: instead of using Pythonic only for the communication layer, we'll use it throughout the Symbolic project.  For example, we might make "@sym" a subclass of "@pyobject".  We also could stop using the "python_cmd" interface and use Pythonic directly from methods.  The main goal was already mentioned: to expose the *full functionality* of SymPy.  For example, we would allow OO-style method calls such as "f.diff(x)" instead of "diff(f, x)".
+
This project proposes to go further: instead of using Pytave only for the communication layer, we'll use it throughout the Symbolic project.  For example, we might make "@sym" a subclass of "@pyobject".  We also could stop using the "python_cmd" interface and use Pytave directly from methods.  The main goal was already mentioned: to expose the *full functionality* of SymPy.  For example, we would allow OO-style method calls such as "f.diff(x)" instead of "diff(f, x)".
  
 
* '''Required skills'''
 
* '''Required skills'''
: OO-programming with m-files, Python, and possibly C/C++ for improving Pythonic (if needed).
+
: OO-programming with m-files, Python, and possibly C/C++ for improving Pytave (if needed).
 
* '''Difficulty'''
 
* '''Difficulty'''
 
: easy/medium
 
: easy/medium
Line 343: Line 343:
 
=== Using Python within Octave ===
 
=== Using Python within Octave ===
  
[[Pythonic]] allows one to call Python functions and interact with Python objects from within Octave .m file code and from the Octave command line interface.  Pythonic may eventually not be a separate package, but rather a core feature of Octave.  This project aims to improve Pythonic with the goal of making the package more stable, maintainable, and full-featured.
+
[https://bitbucket.org/mtmiller/pytave Pytave] allows one to call Python functions and interact with Python objects from within Octave .m file code and from the Octave command line interface.  Ideally, Pytave will not be a separate project, but rather a core feature of Octave.  This project aims to improve Pytave with the goal of merging the code into the core Octave code base.
  
Based on a previous summer project related to Pythonic, this work will consist of fast-paced collaborative software development based on tackling the [https://gitlab.com/mtmiller/octave-pythonic/issues Pythonic issue list].  You would also be expected to participate in software design decisions and discussion, as well as improve documentation, doctests, and unit tests.  As an example of the sorts of decisions being made, note that Octave indexes from 1 whereas Python typically indexes from 0; in which cases is it appropriate to make this transparent to the user?
+
Based on a previous summer project related to Pytave, this work will consist of fast-paced collaborative software development based on tackling the [https://bitbucket.org/mtmiller/pytave/issues?status=new&status=open pytave issue list].  You would also be expected to participate in software design decisions and discussion, as well as improve documentation, doctests and unit tests.  As an example of the sorts of decision decisions being made, note that Octave indexes from 1 whereas Python typically indexes from 0; in which cases is it appropriate to make this transparent to the user?
  
 
* '''Mentors'''
 
* '''Mentors'''

Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)