Hi,
Well, I found (or rather rediscovered :)) PythonTuple, but I'm still
curious as to whether they will be unified in the future.

-Jeff

On Nov 21, 2007 7:00 PM, Jeff Hardy <[EMAIL PROTECTED]> wrote:
> Hi,
> If I have the following C# library:
> nunified in the futureamespace TestLib
> {
>    public class Foo
>    {
>        public string Bar(Microsoft.Scripting.Tuple t)
>        {
>            return t.ToString();
>        }
>    }
> }
>
> Calling Bar from IronPython results in "TypeError: expected Tuple, got
> tuple". Why are the Python tuple and Microsoft.Scripting.Tuple
> different? And what is the proper type to use for Python tuples?
>
> -Jeff
>
> Python code:
> IronPython console: IronPython 2.0A6 (2.0.11102.00) on .NET 2.0.50727.312
> Copyright (c) Microsoft Corporation. All rights reserved.
> >>> import clr
> >>> clr.AddReference("TestLib")
> >>> import TestLib
> >>> TestLib.Foo().Bar((1, 2, 3))
> Traceback (most recent call last):
>  File , line 0, in ##235
> TypeError: expected Tuple, got tuple
>
>
> With -X:ExceptionDetail:
> IronPython console: IronPython 2.0A6 (2.0.11102.00) on .NET 2.0.50727.312
> Copyright (c) Microsoft Corporation. All rights reserved.
> >>> import clr
> >>> clr.AddReference("TestLib")
> >>> import TestLib
> >>> TestLib.Foo().Bar((1, 2, 3))
> expected Tuple, got tuple
>   at IronPython.Runtime.Converter.Convert(Object value, Type to)
>   at IronPython.Runtime.Converter.ConvertToReferenceType(Object fromObject, 
> Run
> timeTypeHandle typeHandle)
>   at Microsoft.Scripting.Utils.InvokeHelper`3.Invoke(Object arg0, Object arg1)
>   at Microsoft.Scripting.Utils.ReflectedCaller.Invoke(Object[] args)
>   at Microsoft.Scripting.Ast.MethodCallExpression.InvokeMethod(Object 
> instance,
>  Object[] parameters)
>   at Microsoft.Scripting.Ast.MethodCallExpression.DoEvaluate(CodeContext 
> contex
> t)
>   at Microsoft.Scripting.Ast.UnaryExpression.DoEvaluate(CodeContext context)
>   at Microsoft.Scripting.Ast.ConditionalExpression.DoEvaluate(CodeContext 
> conte
> xt)
>   at Microsoft.Scripting.Ast.MethodCallExpression.DoEvaluate(CodeContext 
> contex
> t)
>   at Microsoft.Scripting.Ast.ReturnStatement.DoExecute(CodeContext context)
>   at Microsoft.Scripting.Ast.Statement.Execute(CodeContext context)
>   at 
> Microsoft.Scripting.Actions.ActionBinder.UpdateSiteAndExecute[T](CodeConte
> xt callerContext, DynamicAction action, Object[] args, Object site, T& 
> target, R
> uleSet`1& rules)
>   at 
> Microsoft.Scripting.Actions.DynamicSite`3.UpdateBindingAndInvoke(CodeConte
> xt context, T0 arg0, T1 arg1)
>   at 
> Microsoft.Scripting.Actions.DynamicSiteHelpers.UninitializedTargetHelper`7
> .Invoke2(DynamicSite`3 site, CodeContext context, T0 arg0, T1 arg1)
>   at Microsoft.Scripting.Actions.DynamicSite`3.Invoke(CodeContext context, T0 
> a
> rg0, T1 arg1)
>   at ##235(Object[] , CodeContext )
>   at Microsoft.Scripting.ScriptCode.Run(CodeContext codeContext, Boolean 
> tryEva
> luate)
>   at Microsoft.Scripting.ScriptCode.Run(ScriptModule module)
>   at Microsoft.Scripting.Hosting.CompiledCode.Evaluate(IScriptModule module)
>   at Microsoft.Scripting.Hosting.ScriptEngine.ExecuteCommand(String code, 
> IScri
> ptModule module)
>   at Microsoft.Scripting.Shell.CommandLine.RunOneInteraction()
>   at Microsoft.Scripting.Shell.CommandLine.TryInteractiveAction()
>   at IronPython.Hosting.PythonCommandLine.TryInteractiveAction()
>   at Microsoft.Scripting.Shell.CommandLine.RunInteractiveLoop()
> TypeError: expected Tuple, got tuple
>
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to