Hello community,

here is the log from the commit of package python-cufflinks for 
openSUSE:Factory checked in at 2019-11-20 10:29:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cufflinks (Old)
 and      /work/SRC/openSUSE:Factory/.python-cufflinks.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-cufflinks"

Wed Nov 20 10:29:20 2019 rev:4 rq:749775 version:0.17.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cufflinks/python-cufflinks.changes        
2019-07-23 22:37:29.278970013 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-cufflinks.new.26869/python-cufflinks.changes 
    2019-11-20 10:29:31.318589601 +0100
@@ -1,0 +2,17 @@
+Tue Nov 19 21:21:37 UTC 2019 - Todd R <toddrme2...@gmail.com>
+
+- Update to version 0.17
+  * Add support for hovertext in annotations
+  * Add support for opacity in annotations
+  * Compatiblity with Plotly 4.x
+  * Fix misc. issues for plotly v4.
+  * Removed bestfit test
+  * Update requirements.txt
+  * Update tests.py
+  * fix bestfit case when index is datetimeindex
+  * fix imports and warnings with plotly v4
+  * plotly 4.0.0 had a bad bug
+  * re-enable bestfit test
+  * remove statsmodels from reqs
+  
+-------------------------------------------------------------------

Old:
----
  cufflinks-0.16.tar.gz

New:
----
  cufflinks-0.17.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-cufflinks.spec ++++++
--- /var/tmp/diff_new_pack.3giE1T/_old  2019-11-20 10:29:31.962589729 +0100
+++ /var/tmp/diff_new_pack.3giE1T/_new  2019-11-20 10:29:31.962589729 +0100
@@ -18,11 +18,10 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-cufflinks
-Version:        0.16
+Version:        0.17.0
 Release:        0
 Summary:        Productivity Tools for Plotly + Pandas
 License:        MIT
-Group:          Development/Languages/Python
 URL:            https://github.com/santosjorge/cufflinks
 Source:         
https://files.pythonhosted.org/packages/source/c/cufflinks/cufflinks-%{version}.tar.gz
 BuildRequires:  %{python_module setuptools}

++++++ cufflinks-0.16.tar.gz -> cufflinks-0.17.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/PKG-INFO new/cufflinks-0.17.0/PKG-INFO
--- old/cufflinks-0.16/PKG-INFO 2019-06-28 18:24:25.000000000 +0200
+++ new/cufflinks-0.17.0/PKG-INFO       2019-10-24 00:20:56.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: cufflinks
-Version: 0.16
+Version: 0.17.0
 Summary: Productivity Tools for Plotly + Pandas
 Home-page: https://github.com/santosjorge/cufflinks
 Author: Jorge Santos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/README.md 
new/cufflinks-0.17.0/README.md
--- old/cufflinks-0.16/README.md        2018-09-09 23:33:15.000000000 +0200
+++ new/cufflinks-0.17.0/README.md      2019-10-24 00:19:37.000000000 +0200
@@ -19,6 +19,10 @@
 
 ### Release Notes
 
+### v0.17.0
+Support for Plotly 4.x
+Cufflinks is no longer compatible with Plotly 3.x
+
 ### v0.14.0
 Support for Plotly 3.0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks/__init__.py 
new/cufflinks-0.17.0/cufflinks/__init__.py
--- old/cufflinks-0.16/cufflinks/__init__.py    2019-04-02 20:27:11.000000000 
+0200
+++ new/cufflinks-0.17.0/cufflinks/__init__.py  2019-10-23 23:54:50.000000000 
+0200
@@ -20,7 +20,7 @@
 from .helper import _printer as help
 from .plotlytools import *
 from plotly.graph_objs import *
-from plotly.plotly import plot
+from chart_studio.plotly import plot
 from .colors import cnames, get_colorscale
 from .utils import pp
 from .tools import subplots,scatter_matrix,figures,getLayout,getThemes,getTheme
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks/pandastools.py 
new/cufflinks-0.17.0/cufflinks/pandastools.py
--- old/cufflinks-0.16/cufflinks/pandastools.py 2017-06-01 10:07:41.000000000 
+0200
+++ new/cufflinks-0.17.0/cufflinks/pandastools.py       2019-10-23 
23:54:50.000000000 +0200
@@ -63,7 +63,11 @@
                                                "please run " \
                                                "pip install statsmodels" )
 
-       x=pd.Series(list(range(1,len(self)+1)),index=self.index)
+       if isinstance(self.index, pd.DatetimeIndex):
+               x=pd.Series(list(range(1,len(self)+1)),index=self.index)
+       else:
+               x=self.index.values
+               
        x=sm.add_constant(x)
        model=sm.OLS(self,x)
        fit=model.fit()
@@ -72,7 +76,7 @@
        # the below methods have been deprecated in Pandas
        # model=pd.ols(x=x,y=self,intercept=True)
        # best_fit=model.y_fitted
-       best_fit.formula='%.2f*x+%.2f' % (vals[0],vals[1])
+       best_fit.formula='%.2f*x+%.2f' % (vals[1],vals[0])
        return best_fit
 
 def normalize(self,asOf=None,multiplier=100):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks/plotlytools.py 
new/cufflinks-0.17.0/cufflinks/plotlytools.py
--- old/cufflinks-0.16/cufflinks/plotlytools.py 2019-06-15 15:00:08.000000000 
+0200
+++ new/cufflinks-0.17.0/cufflinks/plotlytools.py       2019-10-23 
23:54:50.000000000 +0200
@@ -1,5 +1,5 @@
 import pandas as pd
-import plotly.plotly as py
+import chart_studio.plotly as py
 import time
 import copy
 # from plotly.graph_objs import *
@@ -165,6 +165,9 @@
                        trace.update(name=str(trace['name']))
 
        if bestfit:
+               if isinstance(df.index,pd.MultiIndex):
+                       raise TypeError('x cannot be empty for MultiIndex 
dataframes')
+
                if type(bestfit)==list:
                        keys=bestfit
                d={}
@@ -1401,10 +1404,9 @@
                # if not figure.get('layout', None):
                #       figure['layout'] = {}
                try:
-                       filename=figure['layout']['title']
+                       filename=figure.layout['title']['text']
                except:
                        filename='Plotly Playground 
{0}'.format(time.strftime("%Y-%m-%d %H:%M:%S"))
-
        ## Dimensions
        if not dimensions:
                dimensions=(800,500) if not 
auth.get_config_file()['dimensions'] else auth.get_config_file()['dimensions']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks/quant_figure.py 
new/cufflinks-0.17.0/cufflinks/quant_figure.py
--- old/cufflinks-0.16/cufflinks/quant_figure.py        2019-03-20 
23:54:59.000000000 +0100
+++ new/cufflinks-0.17.0/cufflinks/quant_figure.py      2019-10-23 
23:54:50.000000000 +0200
@@ -93,7 +93,7 @@
                
                # self.theme initial values
                
self.theme['theme']=kwargs.pop('theme',auth.get_config_file()['theme'])
-               self.theme['up_color']=kwargs.pop('up_color','java')  # java
+               self.theme['up_color']=kwargs.pop('up_color','#17BECF')  # java
                self.theme['down_color']=kwargs.pop('down_color','grey')
                
                # self.panels initial values
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks/tools.py 
new/cufflinks-0.17.0/cufflinks/tools.py
--- old/cufflinks-0.16/cufflinks/tools.py       2019-04-29 20:21:29.000000000 
+0200
+++ new/cufflinks-0.17.0/cufflinks/tools.py     2019-10-23 23:54:50.000000000 
+0200
@@ -3,9 +3,9 @@
 import numpy as np
 import pandas as pd
 import plotly.offline as py_offline
-import plotly.plotly as py
+import plotly.figure_factory as ff
 from plotly.graph_objs import Figure, Scatter, Line
-from plotly.tools import make_subplots
+from plotly.subplots import make_subplots
 # from plotly.graph_objs.layout import XAxis, YAxis
 
 from . import auth, ta
@@ -61,6 +61,7 @@
        if not theme:
                theme = auth.get_config_file()['theme']
 
+       theme = theme.lower()
        if theme in THEMES:
                return updateColors(copy.deepcopy(THEMES[theme]))
        else:
@@ -500,7 +501,7 @@
                                                )
                                )
 
-                       del annotation['title'] 
+                       del annotation['title']
                        local_list.append(ann)
 
                elif 'x' in annotation:
@@ -516,6 +517,8 @@
                                                                
ax=annotation.get('ax',0),
                                                                
ay=annotation.get('ay',-100),
                                                                
textangle=annotation.get('textangle',-90),
+                                                               
hovertext=annotation.get('hovertext',''),
+                                                               
opacity=annotation.get('opacity',1),
                                                                font = dict(
                                                                        color = 
annotation.get('fontcolor',annotation.get('color',kwargs.get('fontcolor'))),
                                                                        size = 
annotation.get('fontsize',annotation.get('size',kwargs.get('fontsize')))
@@ -544,6 +547,8 @@
                                                                
ax=kwargs.get('ax',0),
                                                                
ay=kwargs.get('ay',-100),
                                                                
textangle=kwargs.get('textangle',-90),
+                                                               
hovertext=kwargs.get('hovertext', ''),
+                                                               
opacity=kwargs.get('opacity',1),
                                                                font = dict(
                                                                        color = 
kwargs['fontcolor'],
                                                                        
size=kwargs['fontsize']
@@ -645,7 +650,7 @@
                                  **kwargs):
        """
        Generates a subplot view for a set of figures
-       This is a wrapper for plotly.tools.make_subplots
+       This is a wrapper for plotly.subplots.make_subplots
 
        Parameters:
        -----------
@@ -772,7 +777,7 @@
                                break
                for _ in figures[i]['data']:
                        for axe in lr:
-                               _.update({'{0}axis'.format(axe[0]):axe})
+                               _.update(axe.trace_kwargs)
                        sp['data'].append(_)
        # Remove extra plots
        for k in list(sp['layout'].keys()):
@@ -946,7 +951,7 @@
        c_dir=ta._ohlc_dict(df)
        args=[df[c_dir[_]] for _ in ohlc]
        args.append(df.index)
-       fig=py.plotly.tools.FigureFactory.create_ohlc(*args,**kwargs)
+       fig=ff.create_ohlc(*args,**kwargs)
        ohlc_bars={}
        ohlc_bars['data']=fig['data']
        ohlc_bars['layout']=fig['layout']
@@ -967,7 +972,7 @@
        c_dir=ta._ohlc_dict(df)
        args=[df[c_dir[_]] for _ in ohlc]
        args.append(df.index)
-       fig=py.plotly.tools.FigureFactory.create_candlestick(*args,**kwargs)
+       fig=ff.create_candlestick(*args,**kwargs)
        candle={}
        candle['data']=fig['data']
        candle['layout']=layout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks/version.py 
new/cufflinks-0.17.0/cufflinks/version.py
--- old/cufflinks-0.16/cufflinks/version.py     2019-06-28 18:20:06.000000000 
+0200
+++ new/cufflinks-0.17.0/cufflinks/version.py   2019-10-24 00:18:22.000000000 
+0200
@@ -1 +1 @@
-__version__ = "0.16"
+__version__ = "0.17.0"
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks.egg-info/PKG-INFO 
new/cufflinks-0.17.0/cufflinks.egg-info/PKG-INFO
--- old/cufflinks-0.16/cufflinks.egg-info/PKG-INFO      2019-06-28 
18:24:25.000000000 +0200
+++ new/cufflinks-0.17.0/cufflinks.egg-info/PKG-INFO    2019-10-24 
00:20:56.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: cufflinks
-Version: 0.16
+Version: 0.17.0
 Summary: Productivity Tools for Plotly + Pandas
 Home-page: https://github.com/santosjorge/cufflinks
 Author: Jorge Santos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/cufflinks.egg-info/requires.txt 
new/cufflinks-0.17.0/cufflinks.egg-info/requires.txt
--- old/cufflinks-0.16/cufflinks.egg-info/requires.txt  2019-06-28 
18:24:25.000000000 +0200
+++ new/cufflinks-0.17.0/cufflinks.egg-info/requires.txt        2019-10-24 
00:20:56.000000000 +0200
@@ -1,6 +1,7 @@
 numpy>=1.9.2
 pandas>=0.19.2
-plotly<4.0.0a0,>=3.0.0
+plotly>=4.1.1
+chart-studio>=1.0.0
 six>=1.9.0
 colorlover>=0.2.1
 setuptools>=34.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/requirements.txt 
new/cufflinks-0.17.0/requirements.txt
--- old/cufflinks-0.16/requirements.txt 2019-04-29 20:21:29.000000000 +0200
+++ new/cufflinks-0.17.0/requirements.txt       2019-10-23 23:54:50.000000000 
+0200
@@ -1,6 +1,7 @@
 numpy>=1.9.2
 pandas>=0.19.2
-plotly>=3.0.0,<4.0.0a0
+plotly>=4.1.1
+chart-studio>=1.0.0
 six>=1.9.0
 colorlover>=0.2.1
 setuptools>=34.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/setup.py new/cufflinks-0.17.0/setup.py
--- old/cufflinks-0.16/setup.py 2019-06-28 18:21:30.000000000 +0200
+++ new/cufflinks-0.17.0/setup.py       2019-10-24 00:18:16.000000000 +0200
@@ -8,7 +8,7 @@
 
 setup(
     name='cufflinks',
-    version='0.16',
+    version='0.17.0',
     description='Productivity Tools for Plotly + Pandas',
     author='Jorge Santos',
     author_email='santos.jo...@gmail.com',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cufflinks-0.16/tests.py new/cufflinks-0.17.0/tests.py
--- old/cufflinks-0.16/tests.py 2019-04-02 20:37:19.000000000 +0200
+++ new/cufflinks-0.17.0/tests.py       2019-10-23 10:44:42.000000000 +0200
@@ -5,6 +5,7 @@
 
 import cufflinks as cf
 import pandas as pd
+import numpy as np
 import unittest
 from nose.tools import assert_equals
 
@@ -221,6 +222,24 @@
        qf.add_bollinger_bands()
        return qf.figure()
 
+def bestfit():
+
+       df = cf.datagen.scatter()
+       df['x'] = np.random.randint(1, 20, df.shape[0])
+       df['y'] = df['x']
+       df = df[['x', 'y']]
+
+       options = {
+               'kind': ['scatter'],
+               'bestfit': [True],
+       }
+
+       def bestfit(self, **kwargs):
+               self._iplot(df, **kwargs)
+
+       _generate_tests(TestIPlot, bestfit, 'bestfit', options)
+
+
 # test generators
 
 
@@ -269,6 +288,7 @@
 color_normalize_tests()
 quant_figure_tests()
 # ta_tests()
+# bestfit()
 
 
 if __name__ == '__main__':


Reply via email to