Bug 180889 - [MAINTAINER] math/py-pandas: Update to 0.12.0
Summary: [MAINTAINER] math/py-pandas: Update to 0.12.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Kubilay Kocak
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-27 14:20 UTC by John W. O'Brien
Modified: 2013-09-20 14:10 UTC (History)
0 users

See Also:


Attachments
file.diff (17.14 KB, patch)
2013-07-27 14:20 UTC, John W. O'Brien
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John W. O'Brien 2013-07-27 14:20:00 UTC
Changelog
=========

- Update to 0.12.0
- Define regression-test target and TEST_DEPENDS
- Set USE_DISPLAY in support of unit tests

QA
==

portlint: looks fine (ignoring warning about moving TEST_DEPENDS earlier)
nose: OK (SKIP=160)
redports: https://redports.org/buildarchive/20130727114400-47308/


Notes
=====

- Applied two minor fixes after last redports build:
  - https://redports.org/changeset/15037
  - https://redports.org/changeset/15040
- Looking into redports test errors
  - test_banklist_url (pandas.io.tests.test_html.TestReadHtmlBase)
  - test_multiple_matches (pandas.io.tests.test_html.TestReadHtmlBase)
  - test_pythonxy_plugins_table (pandas.io.tests.test_html.TestReadHtmlBase)
  - test_spam_url (pandas.io.tests.test_html.TestReadHtmlBase)
  - test_pytables_native_read (pandas.io.tests.test_pytables.TestHDFStore)
- Looking into test errors when run as unprivileged user
  - test_read_dta10 (pandas.io.tests.test_stata.StataTests)
  - test_stata_doc_examples (pandas.io.tests.test_stata.StataTests)
  - test_write_dta5 (pandas.io.tests.test_stata.StataTests)
  - test_write_dta6 (pandas.io.tests.test_stata.StataTests)

Fix: Apply attached patch.

Patch attached with submission follows:
How-To-Repeat: N/A
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-07-27 14:20:08 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-python

freebsd-python@ wants this port PRs (via the GNATS Auto Assign Tool)
Comment 2 John W. O'Brien 2013-07-27 17:01:11 UTC
This is a multi-part message in MIME format.
Comment 3 John W. O'Brien 2013-07-28 17:51:51 UTC
On 7/27/13 10:25 AM, John W. O'Brien wrote:
[...]
> - test_pytables_native_read (pandas.io.tests.test_pytables.TestHDFStore)
> 
> This is somewhat more concerning, but it may be a problem with the
> devel/py-tables soft dependency.


Yes, pandas appears to be blameless in this case as demonstrated by the
tables test error include below.

wen@, Would you like me to open a PR against devel/py-tables? For
reference, see the pandas test error noted above in any of these build logs:

https://redports.org/buildarchive/20130727114400-47308/

% python -m unittest \
   tables.tests.test_basics.CheckFileTestCase.test04_openGenericHDF5File
E
======================================================================
ERROR: None (tables.tests.test_basics.CheckFileTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/tables/tests/common.py",
line 259, in newmethod
    return oldmethod(self, *args, **kwargs)
  File
"/usr/local/lib/python2.7/site-packages/tables/tests/test_basics.py",
line 1616, in test04_openGenericHDF5File
    ui = fileh.getNode(columns, "pressure", classname="Array")
  File "/usr/local/lib/python2.7/site-packages/tables/file.py", line
1112, in getNode
    node = self._getNode(nodePath)
  File "/usr/local/lib/python2.7/site-packages/tables/file.py", line
1057, in _getNode
    node = self.root._g_loadChild(nodePath)
  File "/usr/local/lib/python2.7/site-packages/tables/group.py", line
1131, in _g_loadChild
    childClass = self._g_getChildLeafClass(childName, warn=True)
  File "/usr/local/lib/python2.7/site-packages/tables/group.py", line
291, in _g_getChildLeafClass
    childCID = self._g_getLChildAttr(childName, 'CLASS')
  File "hdf5Extension.pyx", line 708, in
tables.hdf5Extension.Group._g_getLChildAttr (tables/hdf5Extension.c:6793)
HDF5ExtError: HDF5 error back trace

  File "H5D.c", line 345, in H5Dopen2
    can't open dataset
  File "H5Dint.c", line 1132, in H5D_open
    not found
  File "H5Dint.c", line 1222, in H5D_open_oid
    unable to load type info from dataset header
  File "H5Omessage.c", line 484, in H5O_msg_read
    unable to read object header message
  File "H5Omessage.c", line 545, in H5O_msg_read_oh
    unable to decode message
  File "./H5Oshared.h", line 85, in H5O_dtype_shared_decode
    unable to decode native message
  File "H5Odtype.c", line 1105, in H5O_dtype_decode
    can't decode type
  File "H5Odtype.c", line 550, in H5O_dtype_decode_helper
    incorrect array datatype version

End of HDF5 error back trace

Non-existing node ``/columns/pressure`` under ``/``

----------------------------------------------------------------------
Ran 1 test in 0.006s

FAILED (errors=1)
Closing remaining open files:
/usr/local/lib/python2.7/site-packages/tables/tests/ex-noattr.h5... done
Comment 4 Kubilay Kocak freebsd_committer freebsd_triage 2013-08-13 12:14:36 UTC
Responsible Changed
From-To: freebsd-python->koobs

I'll take this one ;D
Comment 5 dfilter service freebsd_committer freebsd_triage 2013-09-20 14:04:13 UTC
Author: koobs
Date: Fri Sep 20 13:04:02 2013
New Revision: 327698
URL: http://svnweb.freebsd.org/changeset/ports/327698

Log:
  math/py-pandas: Update to 0.12.0
  
  - Update to 0.12.0
  - Two BUILD_DEPENDS are only RUN_DEPENDS, move them
  - Patch some files out of MANIFEST.in
  - Cherry pick upstream issue/commit [1]
  - Define regression-test target and TEST_DEPENDS
  - Document USES=display in support of unit tests
  
  [1] https://github.com/pydata/pandas/issues/4353
  
  PR:		ports/180889
  Submitted by:	John W. O'Brien <john@saltant.com> (maintainer)

Added:
  head/math/py-pandas/files/patch-MANIFEST.in   (contents, props changed)
  head/math/py-pandas/files/patch-pandas-issue4353-pullrequest4356   (contents, props changed)
Modified:
  head/math/py-pandas/Makefile
  head/math/py-pandas/distinfo   (contents, props changed)
  head/math/py-pandas/files/pkg-message.in   (contents, props changed)
  head/math/py-pandas/pkg-plist   (contents, props changed)

Modified: head/math/py-pandas/Makefile
==============================================================================
--- head/math/py-pandas/Makefile	Fri Sep 20 12:54:54 2013	(r327697)
+++ head/math/py-pandas/Makefile	Fri Sep 20 13:04:02 2013	(r327698)
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	pandas
-PORTVERSION=	0.11.0
+PORTVERSION=	0.12.0
 CATEGORIES=	math devel python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -11,11 +11,21 @@ COMMENT=	Flexible, high-performance data
 
 LICENSE=	BSD
 
-BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dateutil>0:${PORTSDIR}/devel/py-dateutil \
-		${PYNUMPY} \
-		${PYTHON_PKGNAMEPREFIX}pytz>0:${PORTSDIR}/devel/py-pytz
+BUILD_DEPENDS=	${PYNUMPY}
 RUN_DEPENDS:=	${BUILD_DEPENDS} \
+		${PYTHON_PKGNAMEPREFIX}dateutil>0:${PORTSDIR}/devel/py-dateutil \
+		${PYTHON_PKGNAMEPREFIX}pytz>0:${PORTSDIR}/devel/py-pytz \
 		${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3
+TEST_DEPENDS=	nosetests:${PORTSDIR}/devel/py-nose \
+		${PYTHON_PKGNAMEPREFIX}numexpr>0:${PORTSDIR}/math/py-numexpr \
+		${PYTHON_PKGNAMEPREFIX}tables>0:${PORTSDIR}/devel/py-tables \
+		${PYTHON_PKGNAMEPREFIX}scipy>0:${PORTSDIR}/science/py-scipy \
+		${PYTHON_PKGNAMEPREFIX}matplotlib>0:${PORTSDIR}/math/py-matplotlib \
+		${PYTHON_PKGNAMEPREFIX}xlrd>0:${PORTSDIR}/textproc/py-xlrd \
+		${PYTHON_PKGNAMEPREFIX}xlwt>0:${PORTSDIR}/textproc/py-xlwt \
+		${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:${PORTSDIR}/www/py-beautifulsoup \
+		${PYTHON_PKGNAMEPREFIX}html5lib>0:${PORTSDIR}/www/py-html5lib \
+		${PYTHON_PKGNAMEPREFIX}lxml>0:${PORTSDIR}/devel/py-lxml
 
 SUB_FILES=	pkg-message
 
@@ -23,6 +33,16 @@ USE_PYTHON=		yes
 USE_PYDISTUTILS=	easy_install
 PYEASYINSTALL_ARCHDEP=	yes
 
+# Uncomment the following line to enable regression-test
+# on a headless (X11-less) host (eg: RedPorts)
+#USES=		display:regression-test
+
+regression-test: build
+	@(cd ${WRKSRC} && \
+		${PYTHON_CMD} ${PYSETUP} build_ext --inplace && \
+		${PYTHON_CMD} ${PYSETUP} nosetests \
+	)
+
 post-install:
 	@${CAT} ${PKGMESSAGE}
 

Modified: head/math/py-pandas/distinfo
==============================================================================
--- head/math/py-pandas/distinfo	Fri Sep 20 12:54:54 2013	(r327697)
+++ head/math/py-pandas/distinfo	Fri Sep 20 13:04:02 2013	(r327698)
@@ -1,2 +1,2 @@
-SHA256 (pandas-0.11.0.tar.gz) = 4d74d4d408494ccc690f6e61d11cb266bb55b142d22bf9b8a7063206073a90d7
-SIZE (pandas-0.11.0.tar.gz) = 2783590
+SHA256 (pandas-0.12.0.tar.gz) = be9b4c3611801b366873531bc87a87dd16b19e7d78fa84c21898cd007931c86d
+SIZE (pandas-0.12.0.tar.gz) = 3155059

Added: head/math/py-pandas/files/patch-MANIFEST.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/py-pandas/files/patch-MANIFEST.in	Fri Sep 20 13:04:02 2013	(r327698)
@@ -0,0 +1,12 @@
+--- ./MANIFEST.in.orig	2013-07-27 06:55:55.000000000 -0400
++++ ./MANIFEST.in	2013-07-27 06:56:02.000000000 -0400
+@@ -2,9 +2,7 @@
+ include LICENSE
+ include RELEASE.md
+ include README.rst
+-include TODO.rst
+ include setup.py
+-include setupegg.py
+ 
+ graft doc
+ prune doc/build

Added: head/math/py-pandas/files/patch-pandas-issue4353-pullrequest4356
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/py-pandas/files/patch-pandas-issue4353-pullrequest4356	Fri Sep 20 13:04:02 2013	(r327698)
@@ -0,0 +1,162 @@
+This patch is adapted from the following upstream commit.
+
+[PATCH] TST/BUG/CLN: make stata IO tests use temporary files for writing
+c98e09951f74bf3445f8144363afaa769be69940
+
+--- pandas/io/tests/test_stata.py.orig
++++ pandas/io/tests/test_stata.py
+@@ -10,9 +10,8 @@ import numpy as np
+ 
+ from pandas.core.frame import DataFrame, Series
+ from pandas.io.parsers import read_csv
+-from pandas.io.stata import read_stata, StataReader, StataWriter
++from pandas.io.stata import read_stata, StataReader
+ import pandas.util.testing as tm
+-from pandas.util.testing import ensure_clean
+ from pandas.util.misc import is_little_endian
+ 
+ 
+@@ -27,15 +26,12 @@ class StataTests(unittest.TestCase):
+         self.dta3 = os.path.join(self.dirpath, 'stata3.dta')
+         self.csv3 = os.path.join(self.dirpath, 'stata3.csv')
+         self.dta4 = os.path.join(self.dirpath, 'stata4.dta')
+-        self.dta5 = os.path.join(self.dirpath, 'stata5.dta')
+-        self.dta6 = os.path.join(self.dirpath, 'stata6.dta')
+         self.dta7 = os.path.join(self.dirpath, 'cancer.dta')
+         self.csv7 = os.path.join(self.dirpath, 'cancer.csv')
+         self.dta8 = os.path.join(self.dirpath, 'tbl19-3.dta')
+         self.csv8 = os.path.join(self.dirpath, 'tbl19-3.csv')
+         self.dta9 = os.path.join(self.dirpath, 'lbw.dta')
+         self.csv9 = os.path.join(self.dirpath, 'lbw.csv')
+-        self.dta10 = os.path.join(self.dirpath, 'stata10.dta')
+ 
+     def read_dta(self, file):
+         return read_stata(file, convert_dates=True)
+@@ -46,9 +42,11 @@ class StataTests(unittest.TestCase):
+     def test_read_dta1(self):
+         reader = StataReader(self.dta1)
+         parsed = reader.data()
+-        # Pandas uses np.nan as missing value. Thus, all columns will be of type float, regardless of their name.
++        # Pandas uses np.nan as missing value.
++        # Thus, all columns will be of type float, regardless of their name.
+         expected = DataFrame([(np.nan, np.nan, np.nan, np.nan, np.nan)],
+-                             columns=['float_miss', 'double_miss', 'byte_miss', 'int_miss', 'long_miss'])
++                             columns=['float_miss', 'double_miss', 'byte_miss',
++                                      'int_miss', 'long_miss'])
+ 
+         for i, col in enumerate(parsed.columns):
+             np.testing.assert_almost_equal(
+@@ -90,7 +88,9 @@ class StataTests(unittest.TestCase):
+                     np.datetime64('NaT')
+                 )
+             ],
+-            columns=['datetime_c', 'datetime_big_c', 'date', 'weekly_date', 'monthly_date', 'quarterly_date', 'half_yearly_date', 'yearly_date']
++            columns=['datetime_c', 'datetime_big_c', 'date', 'weekly_date',
++                     'monthly_date', 'quarterly_date', 'half_yearly_date',
++                     'yearly_date']
+         )
+ 
+         with warnings.catch_warnings(record=True) as w:
+@@ -125,34 +125,40 @@ class StataTests(unittest.TestCase):
+                 ["nine", "two", 9, np.nan, "nine"],
+                 ["ten", "one", "ten", np.nan, "ten"]
+             ],
+-            columns=['fully_labeled', 'fully_labeled2', 'incompletely_labeled', 'labeled_with_missings', 'float_labelled'])
++            columns=['fully_labeled', 'fully_labeled2', 'incompletely_labeled',
++                     'labeled_with_missings', 'float_labelled'])
+ 
+         tm.assert_frame_equal(parsed, expected)
+ 
+-    def test_write_dta5(self):
++    def test_read_write_dta5(self):
+         if not is_little_endian():
+-            raise nose.SkipTest("known failure of test_write_dta5 on non-little endian")
++            raise nose.SkipTest("known failure of test_write_dta5 on "
++                                "non-little endian")
+ 
+         original = DataFrame([(np.nan, np.nan, np.nan, np.nan, np.nan)],
+-                             columns=['float_miss', 'double_miss', 'byte_miss', 'int_miss', 'long_miss'])
++                             columns=['float_miss', 'double_miss', 'byte_miss',
++                                      'int_miss', 'long_miss'])
+         original.index.name = 'index'
+ 
+-        with ensure_clean(self.dta5) as path:
++        with tm.ensure_clean() as path:
+             original.to_stata(path, None, False)
+             written_and_read_again = self.read_dta(path)
+-            tm.assert_frame_equal(written_and_read_again.set_index('index'), original)
++            tm.assert_frame_equal(written_and_read_again.set_index('index'),
++                                  original)
+ 
+     def test_write_dta6(self):
+         if not is_little_endian():
+-            raise nose.SkipTest("known failure of test_write_dta6 on non-little endian")
++            raise nose.SkipTest("known failure of test_write_dta6 on "
++                                "non-little endian")
+ 
+         original = self.read_csv(self.csv3)
+         original.index.name = 'index'
+ 
+-        with ensure_clean(self.dta6) as path:
++        with tm.ensure_clean() as path:
+             original.to_stata(path, None, False)
+             written_and_read_again = self.read_dta(path)
+-            tm.assert_frame_equal(written_and_read_again.set_index('index'), original)
++            tm.assert_frame_equal(written_and_read_again.set_index('index'),
++                                  original)
+ 
+     @nose.tools.nottest
+     def test_read_dta7(self):
+@@ -190,29 +196,30 @@ class StataTests(unittest.TestCase):
+                 decimal=3
+             )
+ 
+-    def test_read_dta10(self):
++    def test_read_write_dta10(self):
+         if not is_little_endian():
+-            raise nose.SkipTest("known failure of test_write_dta10 on non-little endian")
++            raise nose.SkipTest("known failure of test_write_dta10 on "
++                                "non-little endian")
+ 
+-        original = DataFrame(
+-            data=
+-            [
+-                ["string", "object", 1, 1.1, np.datetime64('2003-12-25')]
+-            ],
+-            columns=['string', 'object', 'integer', 'float', 'datetime'])
++        original = DataFrame(data=[["string", "object", 1, 1.1,
++                                    np.datetime64('2003-12-25')]],
++                             columns=['string', 'object', 'integer', 'float',
++                                      'datetime'])
+         original["object"] = Series(original["object"], dtype=object)
+         original.index.name = 'index'
+ 
+-        with ensure_clean(self.dta10) as path:
++        with tm.ensure_clean() as path:
+             original.to_stata(path, {'datetime': 'tc'}, False)
+             written_and_read_again = self.read_dta(path)
+-            tm.assert_frame_equal(written_and_read_again.set_index('index'), original)
++            tm.assert_frame_equal(written_and_read_again.set_index('index'),
++                                  original)
+ 
+     def test_stata_doc_examples(self):
+-        with ensure_clean(self.dta5) as path:
++        with tm.ensure_clean() as path:
+             df = DataFrame(np.random.randn(10, 2), columns=list('AB'))
+             df.to_stata(path)
+ 
++
+ if __name__ == '__main__':
+     nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
+                    exit=False)
+--- pandas/util/testing.py.orig
++++ pandas/util/testing.py
+@@ -86,7 +86,7 @@ def set_trace():
+ #------------------------------------------------------------------------------
+ # contextmanager to ensure the file cleanup
+ @contextmanager
+-def ensure_clean(filename = None):
++def ensure_clean(filename=None):
+     # if we are not passed a filename, generate a temporary
+     if filename is None:
+         filename = tempfile.mkstemp()[1]

Modified: head/math/py-pandas/files/pkg-message.in
==============================================================================
--- head/math/py-pandas/files/pkg-message.in	Fri Sep 20 12:54:54 2013	(r327697)
+++ head/math/py-pandas/files/pkg-message.in	Fri Sep 20 13:04:02 2013	(r327698)
@@ -9,6 +9,20 @@ matplotlib	math/py-matplotlib
 xlrd		textproc/py-xlrd
 xlwt		textproc/py-xlwt
 
+To use the HTML table parsing capabilities that are new to 0.12.0, you
+will need to install
+
+beautifulsoup	www/py-beautifulsoup
+
+and one or the other or both of
+
+html5lib	www/py-html5lib
+lxml		devel/py-lxml
+
+Please read the pandas documentation before deciding:
+
+http://pandas.pydata.org/pandas-docs/stable/gotchas.html#html-gotchas
+
 Also recommended, but not yet available in ports are:
 
 bottleneck		http://berkeleyanalytics.com/bottleneck/

Modified: head/math/py-pandas/pkg-plist
==============================================================================
--- head/math/py-pandas/pkg-plist	Fri Sep 20 12:54:54 2013	(r327697)
+++ head/math/py-pandas/pkg-plist	Fri Sep 20 13:04:02 2013	(r327698)
@@ -8,10 +8,6 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/__init__.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/__init__.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/__init__.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_parser.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_parser.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_parser.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_parser.so
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_sparse.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_sparse.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/_sparse.pyo
@@ -38,6 +34,9 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/array.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/array.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/array.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/base.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/base.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/base.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/categorical.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/categorical.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/core/categorical.pyo
@@ -121,27 +120,51 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/__init__.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/__init__.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/__init__.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/api.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/api.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/api.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/auth.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/auth.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/auth.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/clipboard.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/clipboard.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/clipboard.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/common.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/common.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/common.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/data.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/data.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/data.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/date_converters.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/date_converters.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/date_converters.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/excel.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/excel.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/excel.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/ga.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/ga.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/ga.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/html.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/html.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/html.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/json.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/json.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/json.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/parsers.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/parsers.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/parsers.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/pickle.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/pickle.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/pickle.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/pytables.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/pytables.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/pytables.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/sql.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/sql.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/sql.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/stata.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/stata.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/stata.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/wb.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/wb.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/wb.pyo
@@ -154,6 +177,9 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_cparser.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_cparser.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_cparser.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_data.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_data.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_data.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_date_converters.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_date_converters.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_date_converters.pyo
@@ -163,6 +189,12 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_ga.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_ga.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_ga.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_html.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_html.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_html.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_parsers.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_parsers.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_parsers.pyo
@@ -175,34 +207,62 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_sql.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_sql.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_sql.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_stata.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_stata.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_stata.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_wb.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_wb.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_wb.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_yahoo.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_yahoo.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_yahoo.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/banklist.csv
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/banklist.html
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/salary.table
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/spam.html
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/stata1.dta
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/stata2.dta
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/stata3.dta
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/stata4.dta
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/stata3.csv
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test.xls
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test.xlsx
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test1.csv
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test2.csv
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test2.xls
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test2.xlsx
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/test3.xls
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/unicode_series.csv
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/utf16_ex.txt
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/valid_markup.html
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_hdf/legacy.h5
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_hdf/legacy_0.10.h5
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_hdf/legacy_table.h5
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_hdf/legacy_table_0.11.h5
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_hdf/pytables_native.h5
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_hdf/pytables_native2.h5
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle/0.10.1/AMD64_windows_2.7.3.pickle
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle/0.10.1/x86_64_linux_2.7.3.pickle
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle/0.11.0/x86_64_linux_2.7.3.pickle
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle/0.11.0/x86_64_linux_3.3.0.pickle
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/__init__.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/__init__.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/__init__.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/test_pandas.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/test_pandas.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/test_pandas.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/test_ujson.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/test_ujson.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json/test_ujson.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/json.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/json.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/json.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/json.so
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/lib.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/lib.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/lib.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/lib.so
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/parser.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/parser.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/parser.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/parser.so
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/rpy/__init__.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/rpy/__init__.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/rpy/__init__.pyo
@@ -325,6 +385,9 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_algos.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_algos.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_algos.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_categorical.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_categorical.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_categorical.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_common.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_common.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_common.pyo
@@ -334,9 +397,6 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_expressions.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_expressions.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_expressions.pyo
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_factor.py
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_factor.pyc
-%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_factor.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_format.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_format.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tests/test_format.pyo
@@ -428,6 +488,9 @@
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tests/test_tools.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tests/test_tools.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tests/test_tools.pyo
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tests/test_util.py
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tests/test_util.pyc
+%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tests/test_util.pyo
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tile.py
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tile.pyc
 %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/tools/tile.pyo
@@ -559,6 +622,7 @@
 @dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/sparse
 @dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/sandbox
 @dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/rpy
+@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/test_json
 @dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle/0.11.0
 @dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle/0.10.1
 @dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/pandas/io/tests/data/legacy_pickle
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 6 Kubilay Kocak freebsd_committer freebsd_triage 2013-09-20 14:05:53 UTC
State Changed
From-To: open->closed

Committed, with minor changes. Thanks John!