swig/Examples/python/import_packages/relativeimport1
Paweł Tomulik 5562deec62 Fixed SF bug #1297 (Python imports)
This changeset resolves several issues related to python imports.
For example, it's possible now to import modules having same module
names, but belonging to different packages.

From the user's viewpoint, this patch gives a little bit more control on
import directives generated by swig. The user may choose to use relative
or absolute imports (docs are provided in separate PR).

Some details:
  - we (still) generate import directives in form 'import a.b.c' which
    corresponds to absolute imports in python3 and (the only available)
    ambiguous one in python2.
  - added -relativeimport option to use explicit relative import syntax
    (python3),

Tests are under Examples/python, these are in fact regression tests but
with the current swig testing framework it seems to be impossible to put
appropriate tests under test-suite.

Closes #7
2013-12-24 17:22:25 +00:00
..
py2 Fixed SF bug #1297 (Python imports) 2013-12-24 17:22:25 +00:00
py3 Fixed SF bug #1297 (Python imports) 2013-12-24 17:22:25 +00:00
Makefile Fixed SF bug #1297 (Python imports) 2013-12-24 17:22:25 +00:00
README Fixed SF bug #1297 (Python imports) 2013-12-24 17:22:25 +00:00
runme.py Fixed SF bug #1297 (Python imports) 2013-12-24 17:22:25 +00:00

This example tests the %import directive and -relativeimport swig option.

Use 'python runme.py' to run a test.

Overview:
---------

The example defines 2 different extension modules--each wrapping a separate C++
class.

     pyX/pkg2/pkg3/foo.i   - Pkg3_Foo class
     pyX/pkg2/bar.i        - Pkg2_Bar class derived from Pkg3_Foo

The code is processed by swig with -relativeimport flag. The runtime test
imports pyX.pkg2.bar module.

If everything works well, the module pyX.pkg2.bar shall load properly.

Unix:
-----
- Run make
- Run the test as described above