[Python.NET] Decref in RunString

2015-06-08 Thread Nils Becker
Hello there,

I have a quick question concerning the "RunString(string code, IntPtr
globals, IntPtr locals)" routine. In it the parameter "locals" is
decref'ed. Maybe I am missing something (could be, I do not know much about
reference counting), but should something which the user passes be
decref'ed?

My use case is the following: I embed python into C# and have a stateful
wrapper around PythonEngine which manages a global and local dictionary.
Therefore, I need the local dictionary I pass to RunString to be accessable
(and sane) after the call.
I noticed that locals contained random content after I called RunString and
created new variables in the code.
After I removed the Decref call in RunString, it seems to work as I would
expect it to.

Cheers
Nils
_
Python.NET mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet

Re: [Python.NET] Embedding a Python interactive shell in a .NET application

2016-05-17 Thread Nils Becker
Hey,

a while ago I wrote something like a light wrapper around Python.NET to
embed CPython with numpy/scipy in a .NET GUI. It manages local/global
dictionaries, automatically converts simple data types and numpy
arrrays<->C# arrays and provides a plotting widget in C# that shows
matplotlib plots. It also has some other convenience functions.

The code is by no means complete, fully tested or even nice. However, for
me it works.

I uploaded it to github: https://github.com/Lodomir/PythonInterface
As it demonstrates some not-well documented use of Python.NET, I thought it
maybe nice to share the code.

You will need to add the references to Python.NET to build the main project
(PythonInterface) and additionally to the PythonInterface-DLL to build the
examples.

Cheers
Nils

2016-05-13 22:04 GMT+02:00 Denis Akhiyarov :

> for embedding look at c# embedding unit tests and also here:
>
> 1. Old API:
>
> http://pythonnet.github.io/readme.html
>
> 2. New simplified API using dynamic:
>
> https://github.com/pythonnet/pythonnet/blob/master/README.md
>
>
>
> On Thu, May 12, 2016 at 4:16 PM, Saparya K  wrote:
>
>> Thanks for your response, Denis.
>>
>> I had not come across Sho earlier. It looks very interesting. (If only
>> Python 3.x support was available, though it does look like they have added
>> support for their own math and visualization libraries).
>>
>> I am going over the demos and the unit tests and I was able to write a
>> simple console application to access .NET objects from Python. This is very
>> encouraging!
>> I am still figuring out how to embed Python code in my C# WinForms
>> application (instead of a console application).
>>
>> I will continue my experiments, but in the meantime if you or anyone else
>> has any ideas on how to redirect the result from the Python interpreter
>> (say, to a rich text box), I would love to hear them. That is one part of
>> the puzzle that is unclear to me.
>>
>> Thanks,
>> Saparya
>>
>> On Wed, May 11, 2016 at 4:01 PM, Denis Akhiyarov <
>> denis.akhiya...@gmail.com> wrote:
>>
>>> This is definitely possible with WinForms or WPF. See the demo folder in
>>> pythonnet repo. One of the demo's is still in pull request.
>>>
>>> You should probably just try running previous IronPython attempts using
>>> pythonnet and report issues if any. Have a look at Sho from Microsoft.
>>>
>>> There is someone trying to embed ipython REPL using pythonnet/Excel-DNA
>>> or COM in Excel with Custom Task Pane (CTP) written in WinForms:
>>>
>>> https://groups.google.com/forum/#!topic/jupyter/CVht4orvQtc
>>>
>>>
>>>
>>>
>>>
>>> On Wed, May 11, 2016 at 4:44 PM, Saparya K  wrote:
>>>
 Hello PythonNet,

 I am looking to embed a Python interactive (REPL) shell in a .NET
 WinForms application.
 This C# application displays a graphical visualization of some data.
 Methods to manipulate the data in the C# application would be exposed via a
 Python API.
 The idea is to be able to interact with the data from the Python shell
 via the API, and thereby updating the graphical view.

 Ideally, the shell should support any valid Python syntax that is
 required to use the API. This would involve:

1. Querying a collection of data from the application via the
Python API
2. Then manipulating this collection in the Python shell
3. Making API calls with the modified collection as an argument

 I came across a few examples where an interactive shell was developed
 using IronPython. A limitation with this approach is the absence of *Python
 3.x* support (and other C-compiled libraries) in IronPython. For this
 reason, I would prefer to use Python.NET if it is possible.

 Has anyone here tried something like this with Python.NET before? Does
 it looks like what I am trying to achieve is feasible?

 Any direction would be very helpful!

 _
 Python.NET mailing list - PythonDotNet@python.org
 https://mail.python.org/mailman/listinfo/pythondotnet

>>>
>>>
>>> _
>>> Python.NET mailing list - PythonDotNet@python.org
>>> https://mail.python.org/mailman/listinfo/pythondotnet
>>>
>>
>>
>> _
>> Python.NET mailing list - PythonDotNet@python.org
>> https://mail.python.org/mailman/listinfo/pythondotnet
>>
>
>
> _
> Python.NET mailing list - PythonDotNet@python.org
> https://mail.python.org/mailman/listinfo/pythondotnet
>
_
Python.NET mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet