GitHub user astroshim opened a pull request:

    https://github.com/apache/zeppelin/pull/2106

    Py4j python interpreter

    ### What is this PR for?
    I've been testing the python interpreter and I found at least 4 major 
issues in the current python interpreter.
    
    1. not working streaming output.
     - https://issues.apache.org/jira/browse/ZEPPELIN-2225
    
    2. printed "..." when there is indent in the python code.
     - https://issues.apache.org/jira/browse/ZEPPELIN-1929
    
    3. very slow output of matplotlib
     - https://issues.apache.org/jira/browse/ZEPPELIN-1894
     - https://issues.apache.org/jira/browse/ZEPPELIN-1360
    
    4. Unexpected output of matplotlib.
     - https://issues.apache.org/jira/browse/ZEPPELIN-2107
    
    so I changed python interpreter to use py4j  based on pyspark interpreter 
and would be fixed above issues.
    and I am going to recreate conda, docker for python interpreter ASAP.
    
    
    ### What type of PR is it?
    Bug Fix | Hot Fix | Refactoring
    
    
    ### How should this be tested?
    1. not working streaming output.
    ```
    import time
    for x in range(0, 5):
        print x
        time.sleep(1)
    ```
    
    2. printed "..." when there is indent in the python code.
    ```
    def fn():
        print("hi")
    
    fn()
    ```
    
    3. very slow output of matplotlib.
    ```
    import matplotlib
    import sys
    import matplotlib.pyplot as plt
    plt.plot([1,2,3])
    ```
    
    4. Unexpected output of matplotlib.
    ```
    
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    
    # Make a figure and axes with dimensions as desired.
    fig = plt.figure(figsize=(8, 3))
    ax1 = fig.add_axes([0.05, 0.80, 0.9, 0.15])
    ax2 = fig.add_axes([0.05, 0.475, 0.9, 0.15])
    ax3 = fig.add_axes([0.05, 0.15, 0.9, 0.15])
    
    # Set the colormap and norm to correspond to the data for which
    # the colorbar will be used.
    cmap = mpl.cm.cool
    norm = mpl.colors.Normalize(vmin=5, vmax=10)
    
    # ColorbarBase derives from ScalarMappable and puts a colorbar
    # in a specified axes, so it has everything needed for a
    # standalone colorbar.  There are many more kwargs, but the
    # following gives a basic continuous colorbar with ticks
    # and labels.
    cb1 = mpl.colorbar.ColorbarBase(ax1, cmap=cmap,
                                    norm=norm,
                                    orientation='horizontal')
    cb1.set_label('Some Units')
    
    # The second example illustrates the use of a ListedColormap, a
    # BoundaryNorm, and extended ends to show the "over" and "under"
    # value colors.
    cmap = mpl.colors.ListedColormap(['r', 'g', 'b', 'c'])
    cmap.set_over('0.25')
    cmap.set_under('0.75')
    
    # If a ListedColormap is used, the length of the bounds array must be
    # one greater than the length of the color list.  The bounds must be
    # monotonically increasing.
    bounds = [1, 2, 4, 7, 8]
    norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
    cb2 = mpl.colorbar.ColorbarBase(ax2, cmap=cmap,
                                    norm=norm,
                                    # to use 'extend', you must
                                    # specify two extra boundaries:
                                    boundaries=[0] + bounds + [13],
                                    extend='both',
                                    ticks=bounds,  # optional
                                    spacing='proportional',
                                    orientation='horizontal')
    cb2.set_label('Discrete intervals, some other units')
    
    # The third example illustrates the use of custom length colorbar
    # extensions, used on a colorbar with discrete intervals.
    cmap = mpl.colors.ListedColormap([[0., .4, 1.], [0., .8, 1.],
                                      [1., .8, 0.], [1., .4, 0.]])
    cmap.set_over((1., 0., 0.))
    cmap.set_under((0., 0., 1.))
    
    bounds = [-1., -.5, 0., .5, 1.]
    norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
    cb3 = mpl.colorbar.ColorbarBase(ax3, cmap=cmap,
                                    norm=norm,
                                    boundaries=[-10] + bounds + [10],
                                    extend='both',
                                    # Make the length of each extension
                                    # the same as the length of the
                                    # interior colors:
                                    extendfrac='auto',
                                    ticks=bounds,
                                    spacing='uniform',
                                    orientation='horizontal')
    cb3.set_label('Custom extension lengths, some other units')
    
    plt.show()
    ```
    
    
    ### Questions:
    * Does the licenses files need update? no
    * Is there breaking changes for older versions? no
    * Does this needs documentation? no


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/astroshim/zeppelin py4jPythonInterpreter

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/zeppelin/pull/2106.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2106
    
----
commit 7304919def595312c971e04b7fc5a24c23bd93e8
Author: astroshim <hss...@zepl.com>
Date:   2017-03-07T01:43:58Z

    initialize python interpreter using py4j

commit 276011e32d5ba7fb416744fbbd212916b4e57ce7
Author: astroshim <hss...@zepl.com>
Date:   2017-03-07T04:20:49Z

    add py4j lib

commit 1395875b51795e646ed559b52156d9e8f302e5b0
Author: astroshim <hss...@zepl.com>
Date:   2017-03-07T09:34:10Z

    removed unnecessary code.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to