Metadata-Version: 1.1
Name: importable
Version: 0.2.1
Summary: Allows to import zip-compressed Python package by URL (http, hdfs).
Home-page: https://github.com/malexer/importable
Author: Alex (Oleksii) Markov
Author-email: alex@markovs.me
License: MIT
Description: importable
        ==========
        
        .. image:: https://travis-ci.org/malexer/importable.svg?branch=master
           :target: https://travis-ci.org/malexer/importable
           :alt: Test Status
        
        Allows to import zip-compressed Python package by URL.
        
        Download remote zip-compressed Python package, unzip and add to Python
        path.
        
        All temp files will be removed on exit unless Python process was
        terminated.
        
        Note: ``import`` should be called separatelly after calling
        ``importable``. All we do here - just adding package to local python path.
        
        
        Supported URL types
        -------------------
        
        importable supports a limited set of URL types:
        
        1. Http url to zip file: ``http(s)://<url>/<filename>.zip``
        
           The module, which you are going to import, should be located on the
           first level of <filename>.zip
        
           See section Example.
        
        2. Http url to zip file on GitHub:
           ``http(s)://github.com/<path>/<filename>.zip``
        
           Similar to the previous type except that module is located inside an
           additional directory (in <filename>.zip).
        
        3. Hdfs url to zip file: ``webhdfs://<host>:<port>/<path>/<filename>.zip``
        
           Similar to #1 except that file will be downloaded from HDFS.
        
           ``<host>`` - hostname or IP address of Hdfs namenode
           ``<port>`` - WebHdfs port of namenode
        
        
        Install
        -------
        
        Using pip::
        
            $ pip install importable
        
        
        Usage
        -----
        
        Make remote package importable, then import it and use:
        
        .. code-block:: python
        
            from importable import importable
        
        
            # add contents of "<filename>.zip" to python path
            importable('http://<url>/<filename>.zip')
        
            # now you can import your module
            import <module_name>
        
        
        Example
        -------
        
        Assuming that you have local nginx serving ``/var/www/html/`` on port 80.
        
        .. code-block:: shell
        
            $ mkdir mymodule
            $ echo "my_var = 'I want to import this one!'" > mymodule/__init__.py
            $ zip -r mymodule.zip mymodule
            $ mv mymodule.zip /var/www/html
        
        Then execute the python code:
        
        .. code-block:: python
        
            >>> import mymodule
            Traceback (most recent call last):
              File "<stdin>", line 1, in <module>
            ImportError: No module named 'mymodule'
            >>> from importable import importable
            >>> importable('http://localhost/mymodule.zip')
            >>> import mymodule
            >>> print(mymodule.my_var)
            I want to import this one!
        
Keywords: import url http hdfs zip importable python_path
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
