GitHub user astroshim reopened a pull request:

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

    [WIP] Rewrite PythonInterpreter.

    ### 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.

commit c3f5b78d765a4aa01d0973d6ad79134ab62eb21a
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T05:15:32Z

    Merge branch 'master' of https://github.com/apache/zeppelin into 
py4jPythonInterpreter

commit af097ac95ce047cdf61498fc91c727bb805584c9
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T05:16:46Z

    add testcase

commit f17bff45759143624be39fa8ec3fca959541c055
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T06:01:13Z

    fix testcase failure.

commit 5ae5120615756ddae5be818433b1a595c3aa293d
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T08:10:32Z

    fix interpreter-setting

commit cbbc15c3e3f2dc3bdd564c779de39813a3225751
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T08:35:29Z

    fix py4j path

commit a50179e54f479fe0f999f14f34ed35d1c092cb13
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T17:05:39Z

    add conda interpreter

commit 3c9585fe2a54f9fbcee2688e4bc42397147cfb83
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T17:26:07Z

    update interpreter-setting.json

commit a48df58c6a832828cb50989d67f9b19b7cd498d4
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T17:27:03Z

    Merge branch 'master' into py4jPythonInterpreter

commit 574bd2166b99b191ec6b75e2c12cb536b28cbbfb
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T17:32:39Z

    fix interpreter-setting error

commit 60e982045fa52b1b93d62f49a4b93f2c319dfd5a
Author: astroshim <hss...@zepl.com>
Date:   2017-03-08T17:44:16Z

    bug fix about copying library

commit e49ad246449b2095e350aa87bffacaf656fd615a
Author: astroshim <hss...@zepl.com>
Date:   2017-03-13T17:25:08Z

    add pandas

commit 046db8816a6e8af2ed17c265cbfbeb8af3663931
Author: astroshim <hss...@zepl.com>
Date:   2017-03-14T14:06:17Z

    add testcase

commit f8e19bef1a726504b358a74779fa3e129044fb82
Author: astroshim <hss...@zepl.com>
Date:   2017-03-14T15:10:52Z

    fix matplotlib testcase

commit be5db4d5e9ffe789eaba44989a151f03d66ffd6b
Author: astroshim <hss...@zepl.com>
Date:   2017-03-15T02:55:31Z

    fix pandas sql testcase

commit e8570d2b6d842051ab7046d16c70f66185299140
Author: astroshim <hss...@zepl.com>
Date:   2017-03-15T04:12:53Z

    fix ci for pandassql

commit ac92cdb514f1f1b5e29ee34406a925c07ff89f41
Author: astroshim <hss...@zepl.com>
Date:   2017-03-15T04:43:46Z

    fix python interpreter testcase

----


---
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