[Zope-CVS] CVS: PythonNet/doc - FAQ.txt:1.2

Brian Lloyd brian@zope.com
Mon, 17 Feb 2003 23:06:03 -0500

Update of /cvs-repository/PythonNet/doc
In directory cvs.zope.org:/tmp/cvs-serv8301/doc

Modified Files:
Log Message:
Finish up bare-bones FAQ.

=== PythonNet/doc/FAQ.txt 1.1 => 1.2 ===
--- PythonNet/doc/FAQ.txt:1.1	Mon Feb 17 22:44:35 2003
+++ PythonNet/doc/FAQ.txt	Mon Feb 17 23:06:02 2003
@@ -21,6 +21,9 @@
     A copy of the ZPL is included in the distribution, or you can find the 
     ZPL online at: http://www.zope.org/Products/Zope/LICENSE_20.txt.
+    Ready-to-run distributions of this package include a copy of the CPython
+    dlls and standard library, which are covered by the Python license.
   **What is the current status of the package?**
@@ -73,7 +76,8 @@
   Is This Related To ActiveState's Python.NET Work?
     No. That effort focused on the feasibility of making Python a true .NET 
-    language (compiling Python to IL). 
+    language (compiling Python to IL). You can find that work as well as a 
+    paper describing the goals and results at http://www.activestate.com.
   **How do I install the package?**
@@ -82,7 +86,7 @@
     The release snapshot is a self-contained "private" assembly. Just unzip 
-    the package whereever you want it, cd to that directory and run 
+    the package wherever you want it, cd to that directory and run 
     python.exe to start using it.
@@ -219,19 +223,41 @@
     **Deriving From .NET Classes**
-      xxx
+      This is nearly, but not quite working. It's actually only working 
+      enough to start working on unit tests :) The architecture is designed 
+      to allow for single-inheritance from managed types.
     **Using COM Components**
-      xxx
+      You can use the (MS-provided) aximp and tlbimp tools to generate 
+      managed wrappers for COM libraries. After generating the wrapper, 
+      you can use the libraries from Python just like any other managed 
+      code.
+      Note: currently you need to put the generated wrappers in the GAC 
+      or in the PS.NET assembly directory in order to load it. Future 
+      versions will likely come up with some way of extending the load 
+      path (something like a sys.path for managed assemblies).
     **Type Conversion**
-      xxx
+      Need to document type conversion here. The short answer is: most 
+      simple Python types (string, int, long, etc.) convert automatically 
+      to managed equivalents (String, Int32, etc.). Types that do not have 
+      a logical equivalent in Python are instances of managed types.
+      Note that all strings returned from CLR methods, properties, etc. 
+      are returned as unicode.
-      xxx
+      Because Python code is inherently unverifiable, Python code runs 
+      totally under the radar of the security infrastructure of the CLR. 
+      It hasn't been decided yet exactly what permissions the PS.NET 
+      assembly will demand to run, but it will 
   **Does it support embedding?**
@@ -253,6 +279,18 @@
     I haven't tried building it under Mono - the last time I looked the 
     Mono class libraries were still missing some required parts.
+  **Does it work with Zope?**
+    Yes, but PS.NET is based on Python 2.2, so you'll need to build a 
+    Zope from source against Python 2.2. After that, change the z2.py 
+    (or rather the start.bat file on windows) to point to the python.exe 
+    in the managed assembly.
+    Note that the CLR is free-threaded, and I haven't worked out all of 
+    the thread choreography yet, so you should avoid managed code with 
+    threading concerns (especially COM wrappers) until things are a 
+    little more mature.
   **How can I report bugs?**