Metadata-Version: 1.0
Name: nimp
Version: 0.9.2
Summary: Nested Imports for Python
Home-page: http://github.com/tomerfiliba/nimp
Author: Tomer Filiba
Author-email: tomerfiliba@gmail.com
License: MIT
Description: Nested Imports (Nimp)
        ---------------------
        Allows nested imports, a la Java. Nimp installs a harmless meta import-hook that 
        adds support for *nested packages*, i.e., multiple packages that "live" under a 
        common namespace. This is the idiom in Java, where you have packages like 
        ``com.foo.bar.spam`` and ``com.foo.bar.eggs``, as well as in Haskell and several 
        other languages. Nimp basically allows packages to "inject" themselves into 
        shared namespaces.
        
        Compatible with Python 2.3-2.7 and 3.0 and up
        
        Usage
        ^^^^^
        ::
        
          import nimp
          nimp.install()
        
        You can add these two lines to your ``site.py`` script, so you'll get Nimp
        out of the box. 
        
        Benefits
        ^^^^^^^^
        * Allows for distributing "plug-in" packages independently: consider a project 
          like ``twisted``, made of several add-on packages (but without hacking ``distutils`` 
          too much).
        * A project may depend on package ``X.Y`` without having to depend on ``X``.
        * These nested-packages can be found anywhere on your python path (they don't have
          to be located in the same directory)
        * A small (less than 100 LoC) standalone module that does all the magic for you --
          no third-party cooperation required.
        
        .. note::
          ``distutils`` has problems with directory names that contain dots (as in 
          ``com.ibm.storage``), so Nimp supports **either dots or hyphens** (e.g., 
          ``com-ibm-storage``). This allows you to distribute your package nicely, using
          commonplace distribution mechanisms.
           
          **The recommended way is to use hyphens**, but you may continue to use dots,
          as was the case in previous versions. However, **never mix dots and hyphens** 
          (e.g., ``com.ibm-storage``) -- it will not work.
        
        Example Layout
        --------------
        Consider the following directory structure, somewhere on your python path 
        (say, ``site-packages``)::
        
          site-packages/
          
            com-ibm-storage/
              files...
            
            com-ibm-storage-plugins/
              files...
            
            com-ibm-pythontools/
              files...
        
        After calling ``nimp.install()``, the following imports will work as expected::
        
          import com                              # a namespace package (empty)
          import com.ibm                          # a namespace package (empty)
          import com.ibm.pythontools              # a real package
          com.ibm.pythontools.myfunc(1,2,3)
          
          # and of course `from x import y` works too
          from com.ibm.storage import ScsiDisk    
          
          # note how the `plugins` package is "injected" into `storage`
          from com.ibm.storage.plugins import MySQLPlugin
        
Keywords: import hook,nested packages,namespace packages,java-like packages
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.3
Classifier: Programming Language :: Python :: 2.4
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
