[Python.NET] Python to c# long conversion time

Jordan GUILLOT <[email protected]> Mon, 27 Jun 2022 13:30:25 +0000
Newsgroups gmane.comp.python.dotnet
Message-ID <[email protected]>
--===============7484732102777548395==
Content-Language: fr-FR
Content-Type: multipart/alternative;
	boundary="_000_acaf1fc85ab04728980490951e3f77fcavaluncom_"

--_000_acaf1fc85ab04728980490951e3f77fcavaluncom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

I'm using Pythonnet to import proprietary python package from Windows Appli=
cation.
When my python package return a large byte array in C# world, the type conv=
ersion takes lot of time.

To illustrate this long conversion time, I made a simple example:

  1.  A Python package with a method which return a byte array:
class MyClass:
                             @staticmethod
                             def get_bytes_from_py():
                                            array =3D np.arange(0, 720000, =
dtype=3Dnp.uint8)
                                            return bytes(array)


  1.  An application console to call my Python package and which convert 'b=
ytes' type into 'byte[]' type

        static void Main(string[] args)
        {
            Runtime.PythonDLL =3D "c:\\Python38\\python38.dll";
            PythonEngine.Initialize();

            Stopwatch st =3D new Stopwatch();
            st.Start();

            using (Py.GIL())
            {
                dynamic myPackage =3D Py.Import("mypackage");
                dynamic myClass =3D myPackage.MyClass();
                dynamic myPyByteArray =3D myClass.get_bytes_from_py();

                long t0 =3D st.ElapsedMilliseconds;
                byte[] myCsharpByteArray =3D myPyByteArray;
                long t1 =3D st.ElapsedMilliseconds;

                Console.WriteLine("Conversion takes {0}ms", t1-t0);
            }

            st.Stop();
        }


  1.  The console output:

"Conversion takes 303ms"


Is this the right way for this conversion?

Environment:
Python: v3.8.10
Pythonnet:

  *   Pypi: v2.5.2
  *   Nuget : 3.0.0-preview2022-06-03
Windows 10 Pro
.NET framework 4.7.2


Regards,
Jordan GUILLOT



--_000_acaf1fc85ab04728980490951e3f77fcavaluncom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
	{font-family:"Lucida Console";
	panose-1:2 11 6 9 4 5 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:468671628;
	mso-list-type:hybrid;
	mso-list-template-ids:716490056 -295424118 67895299 67895301 67895297 6789=
5299 67895301 67895297 67895299 67895301;}
@list l0:level1
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:-;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-font-family:"Times New Roman";}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l1
	{mso-list-id:481893127;
	mso-list-type:hybrid;
	mso-list-template-ids:1990900592 1235225224 67895321 67895323 67895311 678=
95321 67895323 67895311 67895321 67895323;}
@list l1:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l1:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l1:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l1:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"FR" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:bre=
ak-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Hi,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I&#8217;m using Pythonnet to im=
port proprietary python package from Windows Application.<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">When my python package return a=
 large byte array in C# world, the type conversion takes lot of time.<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">To illustrate this long convers=
ion time, I made a simple example:<o:p></o:p></span></p>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"1">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l1 level1 =
lfo2"><span lang=3D"EN-GB">A Python package with a method which return a by=
te array:<o:p></o:p></span></li></ol>
<p class=3D"MsoNormal" style=3D"text-indent:35.4pt"><span lang=3D"EN-GB">cl=
ass MyClass:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @staticmethod<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; def get_bytes_fro=
m_py():<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ar=
ray =3D np.arange(0, 720000, dtype=3Dnp.uint8)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; re=
turn bytes(array)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<ol style=3D"margin-top:0cm" start=3D"2" type=3D"1">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l1 level1 =
lfo2"><span lang=3D"EN-GB">An application console to call my Python package=
 and which convert &#8216;bytes&#8217; type into &#8216;byte[]&#8217; type<=
o:p></o:p></span></li></ol>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue">static</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-=
family:Consolas;color:black">
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue">void</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-fa=
mily:Consolas;color:black"> Main(</span><span lang=3D"EN-GB" style=3D"font-=
size:9.5pt;font-family:Consolas;color:blue">string</span><span lang=3D"EN-G=
B" style=3D"font-size:9.5pt;font-family:Consolas;color:black">[]
 args)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Runtime.PythonDLL =3D
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:#A31515">&quot;c:\\Python38\\python38.dll&quot;</span><span lang=3D"EN=
-GB" style=3D"font-size:9.5pt;font-family:Consolas;color:black">;<o:p></o:p=
></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PythonEngine.Initialize()=
;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stopwatch st =3D
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue">new</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-fam=
ily:Consolas;color:black"> Stopwatch();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st.Start();<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue">using</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-f=
amily:Consolas;color:black"> (Py.GIL())<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d=
ynamic myPackage =3D Py.Import(</span><span lang=3D"EN-GB" style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:#A31515">&quot;mypackage&quot;</span><s=
pan lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;color:blac=
k">);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d=
ynamic myClass =3D myPackage.MyClass();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d=
ynamic myPyByteArray =3D myClass.get_bytes_from_py();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue">long</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-fa=
mily:Consolas;color:black"> t0 =3D st.ElapsedMilliseconds;<o:p></o:p></span=
></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-family:Consolas;c=
olor:blue">byte</span><span lang=3D"EN-GB" style=3D"font-size:9.5pt;font-fa=
mily:Consolas;color:black">[] myCsharpByteArray =3D myPyByteArray;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span lang=3D"EN-GB" s=
tyle=3D"font-size:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:blue">long=
</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:black"> t1=
 =3D st.ElapsedMilliseconds;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLin=
e(</span><span style=3D"font-size:9.5pt;font-family:Consolas;color:#A31515"=
>&quot;Conversion takes {0}ms&quot;</span><span style=3D"font-size:9.5pt;fo=
nt-family:Consolas;color:black">,
 t1-t0);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st.Stop();<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:Consolas;=
color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<ol style=3D"margin-top:0cm" start=3D"3" type=3D"1">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l1 level1 =
lfo2"><span lang=3D"EN-GB">The console output:<o:p></o:p></span></li></ol>
<p class=3D"MsoListParagraph"><span lang=3D"EN-GB">&#8220;Conversion takes =
303ms&#8221;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Is this the right way for this =
conversion?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:12.0pt">Envi=
ronment:<o:p></o:p></span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:F=
R">Python: v3.8.10<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:F=
R">Pythonnet:<o:p></o:p></span></p>
<ul style=3D"margin-top:0cm" type=3D"disc">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level1 =
lfo1"><span lang=3D"EN-GB" style=3D"mso-fareast-language:FR">Pypi: v</span>=
<span style=3D"font-size:9.0pt;font-family:&quot;Lucida Console&quot;">2.5.=
2</span><span lang=3D"EN-GB" style=3D"mso-fareast-language:FR"><o:p></o:p><=
/span></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list=
:l0 level1 lfo1"><span lang=3D"EN-GB" style=3D"mso-fareast-language:FR">Nug=
et&nbsp;: 3.0.0-preview2022-06-03<o:p></o:p></span></li></ul>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:F=
R">Windows 10 Pro<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:F=
R">.NET framework 4.7.2<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-GB" style=3D"mso-fareast-lan=
guage:FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:F=
R">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:#00007F;mso-fare=
ast-language:FR">Jordan GUILLOT</span><span lang=3D"EN-GB" style=3D"font-si=
ze:10.0pt;color:#000064;mso-fareast-language:FR">
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:F=
R"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>

--_000_acaf1fc85ab04728980490951e3f77fcavaluncom_--

--===============7484732102777548395==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
PythonNet mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/pythonnet.python.org/
Member address: [email protected]

--===============7484732102777548395==--