C# (CSharp) IronPython.Runtime.Binding Namespace

Classes

Name Description
BinaryRetTypeBinder
Binders
BindingHelpers Common helpers used by the various binding logic.
BindingWarnings Provides support for emitting warnings when built in methods are invoked at runtime.
CompatibilityInvokeBinder Fallback action for performing an invoke from Python. We translate the CallSignature which supports splatting position and keyword args into their expanded form.
ConditionalBuilder Builds up a series of conditionals when the False clause isn't yet known. We can keep appending conditions and if true's. Each subsequent true branch becomes the false branch of the previous condition and body. Finally a non-conditional terminating branch must be added.
ContextArgBuilder ArgBuilder which provides the CodeContext parameter to a method.
CreateFallback Fallback action for performing a new() on a foreign IDynamicMetaObjectProvider. used when call falls back.
MetaBuiltinMethodDescriptor
MetaMethod
MetaOldClass
MetaOldInstance Provides a MetaObject for instances of Python's old-style classes. TODO: Lots of CodeConetxt references, need to move CodeContext onto OldClass and pull it from there.
MetaPythonFunction
MetaPythonFunction.FunctionBinderHelper Performs the actual work of binding to the function. Overall this works by going through the arguments and attempting to bind all the outstanding known arguments - position arguments and named arguments which map to parameters are easy and handled in the 1st pass for GetArgumentsForRule. We also pick up any extra named or position arguments which will need to be passed off to a kw argument or a params array. After all the normal args have been assigned to do a 2nd pass in FinishArguments. Here we assign a value to either a value from the params list, kw-dict, or defaults. If there is ambiguity between this (e.g. we have a splatted params list, kw-dict, and defaults) we call a helper which extracts them in the proper order (first try the list, then the dict, then the defaults).
MetaPythonObject
MetaPythonType
MetaPythonType.ArgumentValues
MetaPythonType.BuiltinInitAdapter
MetaPythonType.BuiltinNewAdapter
MetaPythonType.CallAdapter
MetaPythonType.ConstructorNewAdapter
MetaPythonType.DefaultInitAdapter
MetaPythonType.DefaultNewAdapter
MetaPythonType.InitAdapter
MetaPythonType.MixedInitAdapter
MetaPythonType.MixedNewAdapter
MetaPythonType.NewAdapter
MetaPythonType.SlotInitAdapter
MetaUserObject
PythonBinder
PythonDeleteMemberBinder
PythonDeleteSliceBinder
PythonGetSliceBinder
PythonOverloadResolver
PythonOverloadResolverFactory
PythonProtocol
PythonProtocol.BuiltinCallable Subclass of Callable for a built-in function. This calls a .NET method performing the appropriate bindings.
PythonProtocol.Callable Base class for calling indexers. We have two subclasses that target built-in functions & user defined callable objects. The Callable objects get handed off to ItemBuilder's which then call them with the appropriate arguments.
PythonProtocol.IndexBuilder Base class for building a __*item__ or __*slice__ call.
PythonProtocol.ItemBuilder Derived IndexBuilder for calling __*item__ methods.
PythonProtocol.SliceBuilder Derived IndexBuilder for calling __*slice__ methods
PythonProtocol.SlotCallable Callable to a user-defined callable object. This could be a Python function, a class defining __call__, etc...
PythonSetSliceBinder
SiteLocalStorageBuilder
SlotOrFunction Provides an abstraction for calling something which might be a builtin function or might be some arbitrary user defined slot. If the object is a builtin function the call will go directly to the underlying .NET method. If the object is an arbitrary callable object we will setup a nested dynamic site for performing the additional dispatch. TODO: We could probably do a specific binding to the object if it's another IDyanmicObject.
ValidationInfo
WarningInfo