diff --git a/MANIFEST b/MANIFEST deleted file mode 100644 index 89b939e..0000000 --- a/MANIFEST +++ /dev/null @@ -1,88 +0,0 @@ -PKG-INFO -Python-DMD Command Line.lnk -__init__.py -dcompiler.py -patch_distutils.py -pydmdvars.bat -readme.txt -support.py -version.txt -examples/testdll/readme.txt -examples/testdll/set-d-path.bat -examples/testdll/setup.py -examples/testdll/test.py -examples/testdll/testdll.d -infrastructure/build_ddoc.bat -infrastructure/build_wiki_ddoc.bat -infrastructure/d/python_dll_def.def_template -infrastructure/d/python_dll_windows_boilerplate.d -infrastructure/pyd/LICENSE -infrastructure/pyd/class_wrap.d -infrastructure/pyd/ctor_wrap.d -infrastructure/pyd/def.d -infrastructure/pyd/dg_convert.d -infrastructure/pyd/exception.d -infrastructure/pyd/ftype.d -infrastructure/pyd/make_object.d -infrastructure/pyd/object.d -infrastructure/pyd/pyd.d -infrastructure/pyd/doc/CANDYDOC.txt -infrastructure/pyd/doc/class_wrap.html -infrastructure/pyd/doc/ctor_wrap.html -infrastructure/pyd/doc/def.html -infrastructure/pyd/doc/dg_convert.html -infrastructure/pyd/doc/exception.html -infrastructure/pyd/doc/ftype.html -infrastructure/pyd/doc/make_object.html -infrastructure/pyd/doc/object.html -infrastructure/pyd/doc/pyd.html -infrastructure/pyd/doc/candydoc/candy.ddoc -infrastructure/pyd/doc/candydoc/explorer.js -infrastructure/pyd/doc/candydoc/ie56hack.css -infrastructure/pyd/doc/candydoc/modules.ddoc -infrastructure/pyd/doc/candydoc/style.css -infrastructure/pyd/doc/candydoc/tree.js -infrastructure/pyd/doc/candydoc/util.js -infrastructure/pyd/doc/candydoc/img/bg.gif -infrastructure/pyd/doc/candydoc/img/candydoc.gif -infrastructure/pyd/doc/candydoc/img/outline/alias.gif -infrastructure/pyd/doc/candydoc/img/outline/bg.gif -infrastructure/pyd/doc/candydoc/img/outline/class.gif -infrastructure/pyd/doc/candydoc/img/outline/enum.gif -infrastructure/pyd/doc/candydoc/img/outline/func.gif -infrastructure/pyd/doc/candydoc/img/outline/module.gif -infrastructure/pyd/doc/candydoc/img/outline/package.gif -infrastructure/pyd/doc/candydoc/img/outline/struct.gif -infrastructure/pyd/doc/candydoc/img/outline/template.gif -infrastructure/pyd/doc/candydoc/img/outline/var.gif -infrastructure/pyd/doc/candydoc/img/package/bg.gif -infrastructure/pyd/doc/candydoc/img/tree/shim.gif -infrastructure/pyd/doc/candydoc/img/tree/tb.gif -infrastructure/pyd/doc/candydoc/img/tree/tbr.gif -infrastructure/pyd/doc/candydoc/img/tree/tbrm.gif -infrastructure/pyd/doc/candydoc/img/tree/tbrp.gif -infrastructure/pyd/doc/candydoc/img/tree/tr.gif -infrastructure/pyd/doc/candydoc/img/tree/trm.gif -infrastructure/pyd/doc/candydoc/img/tree/trp.gif -infrastructure/pyd/generators/argtypes.py -infrastructure/pyd/generators/argtypes.txt -infrastructure/pyd/generators/ctor_wrap.py -infrastructure/pyd/generators/ctor_wrap.txt -infrastructure/pyd/generators/fn_to_dg.py -infrastructure/pyd/generators/fn_to_dg.txt -infrastructure/pyd/generators/func_gen.py -infrastructure/pyd/generators/func_gen.txt -infrastructure/pyd/generators/func_wrap.py -infrastructure/pyd/generators/func_wrap.txt -infrastructure/pyd/wiki_doc/class_wrap.html -infrastructure/pyd/wiki_doc/ctor_wrap.html -infrastructure/pyd/wiki_doc/def.html -infrastructure/pyd/wiki_doc/dg_convert.html -infrastructure/pyd/wiki_doc/exception.html -infrastructure/pyd/wiki_doc/ftype.html -infrastructure/pyd/wiki_doc/make_object.html -infrastructure/pyd/wiki_doc/object.html -infrastructure/pyd/wiki_doc/pyd.html -infrastructure/pyd/wiki_doc/wiki_doc/wikidoc.ddoc -infrastructure/python/headers/python.d -infrastructure/python/libs/2.4/python24_digitalmars.lib diff --git a/infrastructure/pyd/class_wrap.d b/infrastructure/pyd/class_wrap.d index 3c54fb1..a4c45bf 100644 --- a/infrastructure/pyd/class_wrap.d +++ b/infrastructure/pyd/class_wrap.d @@ -28,7 +28,7 @@ private import pyd.ftype; private import pyd.make_object; private import std.string; -// The class object, a subtype of PyObject +/// The class object, a subtype of PyObject template wrapped_class_object(T) { extern(C) struct wrapped_class_object { @@ -37,8 +37,9 @@ template wrapped_class_object(T) { } } -// The type object, an instance of PyType_Type +/// template wrapped_class_type(T) { +/// The type object, an instance of PyType_Type static PyTypeObject wrapped_class_type = { 1, null, @@ -91,9 +92,10 @@ template wrapped_class_type(T) { }; } -// Various wrapped methods +/// Various wrapped methods template wrapped_methods(T) { alias wrapped_class_object!(T) wrap_object; + /// The generic "__new__" method extern(C) PyObject* wrapped_new(PyTypeObject* type, PyObject* args, PyObject* kwds) { wrap_object* self; @@ -106,6 +108,7 @@ template wrapped_methods(T) { return cast(PyObject*)self; } + /// The generic dealloc method. extern(C) void wrapped_dealloc(PyObject* _self) { wrap_object* self = cast(wrap_object*)_self; @@ -118,6 +121,7 @@ template wrapped_methods(T) { self.ob_type.tp_free(self); } + /// The default repr method calls the class's toString. extern(C) PyObject* wrapped_repr(PyObject* _self) { wrap_object* self = cast(wrap_object*)_self; @@ -126,8 +130,10 @@ template wrapped_methods(T) { } } +/// template wrapped_init(T) { alias wrapped_class_object!(T) wrap_object; + /// The default _init method calls the class's zero-argument constructor. extern(C) int init(PyObject* self, PyObject* args, PyObject* kwds) { // TODO: Provide better constructor support... @@ -156,16 +162,18 @@ template property_parts(alias p) { } } +/// template wrapped_get(T, alias Fn) { + /// A generic wrapper around a "getter" property. extern(C) PyObject* func(PyObject* self, void* closure) { return func_wrap!(Fn, 0, T, property_parts!(Fn).getter_type).func(self, null); } } -private import std.stdio; - +/// template wrapped_set(T, alias Fn) { + /// A generic wrapper around a "setter" property. extern(C) int func(PyObject* self, PyObject* value, void* closure) { PyObject* temp_tuple = PyTuple_New(1); @@ -188,8 +196,10 @@ template wrap_class_instances(T) { int[T] wrap_class_instances; } -// A useful check for whether a given class has been wrapped. Mainly used by -// the conversion functions (see make_object.d), but possibly useful elsewhere. +/** + * A useful check for whether a given class has been wrapped. Mainly used by + * the conversion functions (see make_object.d), but possibly useful elsewhere. + */ template is_wrapped(T) { bool is_wrapped = false; } @@ -208,15 +218,26 @@ template wrapped_prop_list(T) { ]; } -// This struct is returned by wrap_class. Its member functions are the primary -// way of wrapping the specific parts of the class. Note that the struct has no -// members. The only information it carries are its template arguments. +/** + * This struct wraps a D class. Its member functions are the primary way of + * wrapping the specific parts of the class. + */ template wrapped_class(char[] classname, T) { struct wrapped_class { static const char[] _name = classname; T t = null; + /** + * Wraps a member function of the class. + * + * Params: + * name = The name of the function as it will appear in Python. + * fn = The member function to wrap. + * MIN_ARGS = The minimum number of arguments this function can accept. + * fn_t = The type of the function. It is only useful to specify this + * if more than one function has the same name as this one. + */ template def(char[] name, alias fn, uint MIN_ARGS = NumberOfArgs!(typeof(&fn)), fn_t=typeof(&fn)) { - void def() { + static void def() { static PyMethodDef empty = { null, null, 0, null }; wrapped_method_list!(T)[length-1].ml_name = name ~ \0; wrapped_method_list!(T)[length-1].ml_meth = @@ -231,8 +252,16 @@ template wrapped_class(char[] classname, T) { } } + /** + * Wraps a property of the class. + * + * Params: + * name = The name of the property as it will appear in Python. + * fn = The property to wrap. + * RO = Whether this is a read-only property. + */ template prop(char[] name, alias fn, bool RO=false) { - void prop() { + static void prop() { static PyGetSetDef empty = { null, null, null, null, null }; wrapped_prop_list!(T)[length-1].name = name ~ \0; wrapped_prop_list!(T)[length-1].get = @@ -251,8 +280,20 @@ template wrapped_class(char[] classname, T) { } } + /** + * Wraps the constructors of the class. + * + * This template takes a series of specializations of the ctor template + * (see ctor_wrap.d), each of which describes a different constructor + * that the class supports. The default constructor need not be + * specified, and will always be available if the class supports it. + * + * Bugs: + * This currently does not support having multiple constructors with + * the same number of arguments. + */ template init(alias C1=undefined, alias C2=undefined, alias C3=undefined, alias C4=undefined, alias C5=undefined, alias C6=undefined, alias C7=undefined, alias C8=undefined, alias C9=undefined, alias C10=undefined) { - void init() { + static void init() { wrapped_class_type!(T).tp_init = &wrapped_ctors!(T, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10).init_func; } @@ -260,6 +301,10 @@ template wrapped_class(char[] classname, T) { } } +/** + * Finalize the wrapping of the class. It is neccessary to call this after all + * calls to the wrapped_class member functions. + */ void finalize_class(CLS) (CLS cls) { alias typeof(cls.t) T; const char[] name = CLS._name; diff --git a/infrastructure/pyd/ctor_wrap.d b/infrastructure/pyd/ctor_wrap.d index 520cd33..b0d0429 100644 --- a/infrastructure/pyd/ctor_wrap.d +++ b/infrastructure/pyd/ctor_wrap.d @@ -26,7 +26,9 @@ private import pyd.class_wrap; private import pyd.exception; private import pyd.make_object; -// This template defines the footprint of an individual constructor. +/** + * This template defines the footprint of an individual constructor. + */ template ctor(T1=void, T2=void, T3=void, T4=void, T5=void, T6=void, T7=void, T8=void, T9=void, T10=void) { static if (!is(T10 == void)) const uint ARGS = 10; @@ -181,7 +183,7 @@ template wrapped_ctor(T, alias Ctor) { } } -// This template accepts a list of "ctor" templates and uses them to wrap a Pyhton __init__ function. +// This template accepts a list of "ctor" templates and uses them to wrap a Python __init__ function. template wrapped_ctors(T, alias C1, alias C2, alias C3, alias C4, alias C5, alias C6, alias C7, alias C8, alias C9, alias C10) { alias wrapped_class_object!(T) wrap_object; static if (!is(C10.arg1 == dummy)) diff --git a/infrastructure/pyd/def.d b/infrastructure/pyd/def.d index ea6d16c..61475a6 100644 --- a/infrastructure/pyd/def.d +++ b/infrastructure/pyd/def.d @@ -51,6 +51,9 @@ PyObject* DPy_Module_p() { * MIN_ARGS = The minimum number of arguments this function can accept. * For use with functions with default arguments. Defaults to * the maximum number of arguments this function supports. + * fn_t = The function type of the function to wrap. This must be + * specified if more than one function shares the same name, + * otherwise the first one defined lexically will be used. * * Examples: *$(D_CODE import pyd.pyd; diff --git a/infrastructure/pyd/dg_convert.d b/infrastructure/pyd/dg_convert.d index 9c01f2d..cc7bf32 100644 --- a/infrastructure/pyd/dg_convert.d +++ b/infrastructure/pyd/dg_convert.d @@ -19,6 +19,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + +/** + * This module contains some more or less dirty hacks for converting between + * function and delegate types. Its contents are strictly for internal use + * within Pyd. + */ module pyd.dg_convert; private import pyd.ftype; diff --git a/infrastructure/pyd/doc/class_wrap.html b/infrastructure/pyd/doc/class_wrap.html index fa5498f..9260f4c 100644 --- a/infrastructure/pyd/doc/class_wrap.html +++ b/infrastructure/pyd/doc/class_wrap.html @@ -15,16 +15,406 @@

pyd.class_wrap



+ +
+ +
struct + +wrapped_class_object + + + + + +'); + +; +
+ + + +
The class object, a subtype of PyObject +

+ + + +
+ + + +
+ + +
template +wrapped_class_type + + +(T)
+ + + +


+ + +
+ +
PyTypeObject +wrapped_class_type + + +; +
+ + + +
The type object, an instance of PyType_Type +

+ +
+
+ + + +
+ + +
template +wrapped_methods + + +(T)
+ + + +
Various wrapped methods +

+ + + +
+ +
PyObject* +wrapped_new + + +(PyTypeObject* type, PyObject* args, PyObject* kwds); +
+ + + +
The generic "_new__" method +

+ +
+ + +
void +wrapped_dealloc + + +(PyObject* _self); +
+ + + +
The generic dealloc method. +

+ +
+ + +
PyObject* +wrapped_repr + + +(PyObject* _self); +
+ + + +
The default repr method calls the class's toString. +

+ +
+
+ + + +
+ + +
template +wrapped_init + + +(T)
+ + + +


+ + +
+ +
int +init + + +(PyObject* self, PyObject* args, PyObject* kwds); +
+ + + +
The default init method calls the class's zero-argument constructor. +

+ +
+
+ + + +
+ + +
template +wrapped_get + + +(T,alias Fn)
+ + + +


+ + +
+ +
PyObject* +func + + +(PyObject* self, void* closure); +
+ + + +
A generic wrapper around a "getter" property. +

+ +
+
+ + + +
+ + +
template +wrapped_set + + +(T,alias Fn)
+ + + +


+ + +
+ +
int +func + + +(PyObject* self, PyObject* value, void* closure); +
+ + + +
A generic wrapper around a "setter" property. +

+ +
+
+ + + +
+ + +
template +is_wrapped + + +(T)
+ + + +
A useful check for whether a given class has been wrapped. Mainly used by + the conversion functions (see make_object.d), but possibly useful elsewhere. + +

+ +
+
+ + +
struct + +wrapped_class + + + + + +'); + +; +
+ + + +
This struct wraps a D class. Its member functions are the primary way of + wrapping the specific parts of the class. + +

+ + + +
+ +
template +def + + +(char[] name,alias fn,uint MIN_ARGS = NumberOfArgs!(typeof(&fn)),fn_t = typeof(&fn))
+ + + +
Wraps a member function of the class. +

+Params:
+ + + + + + + + + + + + + + + + + + + + +
nameThe name of the function as it will appear in Python.
fnThe member function to wrap.
MIN_ARGSThe minimum number of arguments this function can accept.
fn_tThe type of the function. It is only useful to specify this + if more than one function has the same name as this one.

+ + + +
+ + + +
+ + +
template +prop + + +(char[] name,alias fn,bool RO = false)
+ + + +
Wraps a property of the class. +

+Params:
+ + + + + + + + + + + + + + + +
nameThe name of the property as it will appear in Python.
fnThe property to wrap.
ROWhether this is a read-only property.

+ + + +
+ + + +
+ + +
template +init + + +(alias C1 = undefined,alias C2 = undefined,alias C3 = undefined,alias C4 = undefined,alias C5 = undefined,alias C6 = undefined,alias C7 = undefined,alias C8 = undefined,alias C9 = undefined,alias C10 = undefined)
+ + + +
Wraps the constructors of the class. +

+This template takes a series of specializations of the ctor template + (see ctor_wrap.d), each of which describes a different constructor + that the class supports. The default constructor need not be + specified, and will always be available if the class supports it. + +

+BUGS:
+This currently does not support having multiple constructors with + the same number of arguments. + +

+ + + +
+ + + +
+
+ + + +
+
+ + + Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/doc/ctor_wrap.html b/infrastructure/pyd/doc/ctor_wrap.html index d8150a7..ff00fcf 100644 --- a/infrastructure/pyd/doc/ctor_wrap.html +++ b/infrastructure/pyd/doc/ctor_wrap.html @@ -15,16 +15,37 @@

pyd.ctor_wrap



+ +
+ +
template +ctor + + +(T1 = void,T2 = void,T3 = void,T4 = void,T5 = void,T6 = void,T7 = void,T8 = void,T9 = void,T10 = void)
+ + + +
This template defines the footprint of an individual constructor. + +

+ +
+
+
+ + + Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/doc/def.html b/infrastructure/pyd/doc/def.html index 3b70108..5b383b9 100644 --- a/infrastructure/pyd/doc/def.html +++ b/infrastructure/pyd/doc/def.html @@ -46,6 +46,13 @@ The minimum number of arguments this function can accept. For use with functions with default arguments. Defaults to the maximum number of arguments this function supports. + +fn_t + + +The function type of the function to wrap. This must be + specified if more than one function shares the same name, + otherwise the first one defined lexically will be used.
Examples:
import pyd.pyd;
@@ -99,7 +106,7 @@
 		
 			Page was generated with
 			
-			on Sat Jul  1 17:20:37 2006
+			on Sat Jul  1 22:14:02 2006
 
 		
 	
diff --git a/infrastructure/pyd/doc/dg_convert.html b/infrastructure/pyd/doc/dg_convert.html
index 394f2fd..4b21158 100644
--- a/infrastructure/pyd/doc/dg_convert.html
+++ b/infrastructure/pyd/doc/dg_convert.html
@@ -13,8 +13,13 @@
 

pyd.dg_convert

+This module contains some more or less dirty hacks for converting between + function and delegate types. Its contents are strictly for internal use + within Pyd. +

+
@@ -45,7 +50,7 @@
Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006
diff --git a/infrastructure/pyd/doc/exception.html b/infrastructure/pyd/doc/exception.html index 0a9f241..d0268d8 100644 --- a/infrastructure/pyd/doc/exception.html +++ b/infrastructure/pyd/doc/exception.html @@ -67,7 +67,7 @@ Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/doc/ftype.html b/infrastructure/pyd/doc/ftype.html index fe5c3d8..8841afa 100644 --- a/infrastructure/pyd/doc/ftype.html +++ b/infrastructure/pyd/doc/ftype.html @@ -23,7 +23,7 @@ Daniel Keep, Tomasz Stachowiak

Date:
-Sat Jul 1 17:20:37 2006 +Sat Jul 1 22:14:02 2006

@@ -115,7 +115,7 @@ Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/doc/make_object.html b/infrastructure/pyd/doc/make_object.html index ec10b29..cb9e0eb 100644 --- a/infrastructure/pyd/doc/make_object.html +++ b/infrastructure/pyd/doc/make_object.html @@ -191,7 +191,7 @@ Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/doc/object.html b/infrastructure/pyd/doc/object.html index a378984..0535c44 100644 --- a/infrastructure/pyd/doc/object.html +++ b/infrastructure/pyd/doc/object.html @@ -1511,7 +1511,7 @@ Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/doc/pyd.html b/infrastructure/pyd/doc/pyd.html index 3e25ecc..71c748f 100644 --- a/infrastructure/pyd/doc/pyd.html +++ b/infrastructure/pyd/doc/pyd.html @@ -28,7 +28,7 @@ Page was generated with - on Sat Jul 1 17:20:37 2006 + on Sat Jul 1 22:14:02 2006 diff --git a/infrastructure/pyd/wiki_doc/class_wrap.html b/infrastructure/pyd/wiki_doc/class_wrap.html index 890ca6a..e9343f8 100644 --- a/infrastructure/pyd/wiki_doc/class_wrap.html +++ b/infrastructure/pyd/wiki_doc/class_wrap.html @@ -1,5 +1,141 @@

pyd.class_wrap



+
struct wrapped_class_object; +
+
The class object, a subtype of PyObject +

+ +
+
+
template wrapped_class_type(T)
+


+
PyTypeObject wrapped_class_type; +
+
The type object, an instance of PyType_Type +

+ +
+
+
+
template wrapped_methods(T)
+
Various wrapped methods +

+ +
PyObject* wrapped_new(PyTypeObject* type, PyObject* args, PyObject* kwds); +
+
The generic "_new__" method +

+ +
+
void wrapped_dealloc(PyObject* _self); +
+
The generic dealloc method. +

+ +
+
PyObject* wrapped_repr(PyObject* _self); +
+
The default repr method calls the class's toString. +

+ +
+
+
+
template wrapped_init(T)
+


+
int init(PyObject* self, PyObject* args, PyObject* kwds); +
+
The default init method calls the class's zero-argument constructor. +

+ +
+
+
+
template wrapped_get(T,alias Fn)
+


+
PyObject* func(PyObject* self, void* closure); +
+
A generic wrapper around a "getter" property. +

+ +
+
+
+
template wrapped_set(T,alias Fn)
+


+
int func(PyObject* self, PyObject* value, void* closure); +
+
A generic wrapper around a "setter" property. +

+ +
+
+
+
template is_wrapped(T)
+
A useful check for whether a given class has been wrapped. Mainly used by + the conversion functions (see make_object.d), but possibly useful elsewhere. + +

+ +
+
+
struct wrapped_class; +
+
This struct wraps a D class. Its member functions are the primary way of + wrapping the specific parts of the class. + +

+ +
template def(char[] name,alias fn,uint MIN_ARGS = NumberOfArgs!(typeof(&fn)),fn_t = typeof(&fn))
+
Wraps a member function of the class. +

+Params:
+ + + + + + + + +
nameThe name of the function as it will appear in Python.
fnThe member function to wrap.
MIN_ARGSThe minimum number of arguments this function can accept.
fn_tThe type of the function. It is only useful to specify this + if more than one function has the same name as this one.

+ +
+
+
template prop(char[] name,alias fn,bool RO = false)
+
Wraps a property of the class. +

+Params:
+ + + + + + +
nameThe name of the property as it will appear in Python.
fnThe property to wrap.
ROWhether this is a read-only property.

+ +
+
+
template init(alias C1 = undefined,alias C2 = undefined,alias C3 = undefined,alias C4 = undefined,alias C5 = undefined,alias C6 = undefined,alias C7 = undefined,alias C8 = undefined,alias C9 = undefined,alias C10 = undefined)
+
Wraps the constructors of the class. +

+This template takes a series of specializations of the ctor template + (see ctor_wrap.d), each of which describes a different constructor + that the class supports. The default constructor need not be + specified, and will always be available if the class supports it. + +

+BUGS:
+This currently does not support having multiple constructors with + the same number of arguments. + +

+
+
+
+
+
diff --git a/infrastructure/pyd/wiki_doc/ctor_wrap.html b/infrastructure/pyd/wiki_doc/ctor_wrap.html index d2f5a63..f7d1381 100644 --- a/infrastructure/pyd/wiki_doc/ctor_wrap.html +++ b/infrastructure/pyd/wiki_doc/ctor_wrap.html @@ -1,5 +1,12 @@

pyd.ctor_wrap



+
template ctor(T1 = void,T2 = void,T3 = void,T4 = void,T5 = void,T6 = void,T7 = void,T8 = void,T9 = void,T10 = void)
+
This template defines the footprint of an individual constructor. + +

+
+
+
diff --git a/infrastructure/pyd/wiki_doc/def.html b/infrastructure/pyd/wiki_doc/def.html index 9c4ea00..daf2cb2 100644 --- a/infrastructure/pyd/wiki_doc/def.html +++ b/infrastructure/pyd/wiki_doc/def.html @@ -13,6 +13,10 @@

pyd.def

The minimum number of arguments this function can accept. For use with functions with default arguments. Defaults to the maximum number of arguments this function supports. +fn_t +The function type of the function to wrap. This must be + specified if more than one function shares the same name, + otherwise the first one defined lexically will be used.
Examples:
import pyd.pyd;
diff --git a/infrastructure/pyd/wiki_doc/dg_convert.html b/infrastructure/pyd/wiki_doc/dg_convert.html
index 52a3ac6..e6153bd 100644
--- a/infrastructure/pyd/wiki_doc/dg_convert.html
+++ b/infrastructure/pyd/wiki_doc/dg_convert.html
@@ -1,6 +1,11 @@
 

pyd.dg_convert

+This module contains some more or less dirty hacks for converting between + function and delegate types. Its contents are strictly for internal use + within Pyd. +

+
template fn_to_dg(Fn)
This template converts a function type into an equivalent delegate type. diff --git a/infrastructure/pyd/wiki_doc/ftype.html b/infrastructure/pyd/wiki_doc/ftype.html index fb4297c..8e3e736 100644 --- a/infrastructure/pyd/wiki_doc/ftype.html +++ b/infrastructure/pyd/wiki_doc/ftype.html @@ -10,7 +10,7 @@

pyd.ftype

Daniel Keep, Tomasz Stachowiak

Date:
-Sat Jul 1 17:18:42 2006 +Sat Jul 1 22:15:08 2006