From: Rebecca N. Palmer Date: Tue, 12 Jan 2021 21:06:04 +0000 (+0000) Subject: pandas (1.1.5+dfsg-2) unstable; urgency=medium X-Git-Tag: archive/raspbian/1.5.3+dfsg-2+rpi1~1^2^2^2^2^2^2^2^2^2^2~31 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=241420b64551d9c0d15fd441db5f0294798c9208;p=pandas.git pandas (1.1.5+dfsg-2) unstable; urgency=medium * Remove dead URL from tests/examples. (Closes: #979621) * Mark autopkgtest needs-internet. * Revert "Print uname etc during build". * Mark matplotlib nocheck/nodoc and allow building on ports without matplotlib or numexpr. (Closes: #977470) * Add python3-tabulate build/test-depends. * Add bottleneck and numexpr test-depends. * Tests: don't require warnings that jedi no longer produces. [dgit import unpatched pandas 1.1.5+dfsg-2] --- 241420b64551d9c0d15fd441db5f0294798c9208 diff --cc debian/README.source index 00000000,00000000..aa04e75e new file mode 100644 --- /dev/null +++ b/debian/README.source @@@ -1,0 -1,0 +1,16 @@@ ++New upstream and contributors_list update (warning: assumes my directory layout): ++ ++#update this: export version=1.1.2 ++GBP_CONF_FILES=~/.gbp.conf gbp import-orig --upstream-branch=23dfsg --debian-branch=debian --uscan --pristine-tar ++echo "Current to version ${version} (generated by git shortlog -ns)" > debian/contributors_list.txt ++echo "There may be multiple entries for the same person if they have used more than one (form of their) name" >> debian/contributors_list.txt ++echo "https://github.com/pandas-dev/pandas/graphs/contributors" >> debian/contributors_list.txt ++echo "" >> debian/contributors_list.txt ++cd ~/Debian/upstreams/pandas ++git pull ++git checkout v${version} ++git shortlog -ns >> ~/Debian/sourcepkgs/pandas/debian/contributors_list.txt ++cd ~/Debian/sourcepkgs/pandas ++echo "" >> debian/contributors_list.txt ++echo "Debian packaging" >> debian/contributors_list.txt ++git shortlog -ns -- debian >> debian/contributors_list.txt diff --cc debian/changelog index 00000000,00000000..38054fbf new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,1277 @@@ ++pandas (1.1.5+dfsg-2) unstable; urgency=medium ++ ++ * Remove dead URL from tests/examples. (Closes: #979621) ++ * Mark autopkgtest needs-internet. ++ * Revert "Print uname etc during build". ++ * Mark matplotlib nocheck/nodoc and allow building on ports without ++ matplotlib or numexpr. (Closes: #977470) ++ * Add python3-tabulate build/test-depends. ++ * Add bottleneck and numexpr test-depends. ++ * Tests: don't require warnings that jedi no longer produces. ++ ++ -- Rebecca N. Palmer Tue, 12 Jan 2021 21:06:04 +0000 ++ ++pandas (1.1.5+dfsg-1) unstable; urgency=medium ++ ++ * Upstream bugfix release. Refresh patches, contributors_list. ++ * Default to openpyxl not xlrd in read_excel, and skip xlrd tests, ++ as xlrd fails if defusedxml is installed (#976620). ++ * Skip numba tests, and not other rolling.apply tests, on s390x. ++ (LP: #1901860) ++ * Tests: on 32 bit systems, avoid time input that overflows. ++ * Print uname etc during build (test for #973854). ++ * Bump Standards-Version to 4.5.1 (no changes needed). ++ ++ -- Rebecca N. Palmer Mon, 07 Dec 2020 23:06:28 +0000 ++ ++pandas (1.1.4+dfsg-1) unstable; urgency=medium ++ ++ * Upstream bugfix release. Refresh patches, contributors_list. ++ * Remove numba test-depends (skips tests). (Closes: #973589) ++ * Loosen pandas-lib->pandas Depends versioning. (Closes: #973289) ++ ++ -- Rebecca N. Palmer Wed, 04 Nov 2020 18:36:11 +0000 ++ ++pandas (1.1.3+dfsg-2) unstable; urgency=medium ++ ++ * Tests: re-xfail an intermittent instance of #877419. ++ * Remove no longer needed test_statsmodels xfail. ++ * Fix invalid test skips. ++ ++ -- Rebecca N. Palmer Thu, 22 Oct 2020 07:14:29 +0100 ++ ++pandas (1.1.3+dfsg-1) unstable; urgency=medium ++ ++ * Upstream bugfix release. Refresh patches, contributors_list. ++ * Remove outdated README.source, ++ add contributors_list update process. ++ * Fix invalid test xfail. ++ * Re-add mistakenly removed non-x86 test xfails. ++ * Declare transition Breaks (see #969650). ++ * Skip another test if multiprocessing is not available. ++ * Update cython3 Depends. ++ * Fix pytables expression bug with Python 3.9. (Closes: #972015) ++ * Allow test_statsmodels to fail on 3.9 to break bootstrap cycle. ++ * Upload to unstable. (Closes: #969650) ++ ++ -- Rebecca N. Palmer Sun, 18 Oct 2020 16:22:36 +0100 ++ ++pandas (1.1.1+dfsg-3) experimental; urgency=medium ++ ++ * Remove no longer needed test xfails. ++ * Xfail some more non-x86 numba tests and a new instance of #877419. ++ * Skip test_register_entrypoint during build. ++ * Tests: don't assume little-endian. ++ ++ -- Rebecca N. Palmer Thu, 03 Sep 2020 08:01:24 +0100 ++ ++pandas (1.1.1+dfsg-2) experimental; urgency=medium ++ ++ * Unconditionally build-depend on sphinx-common (for dh_sphinxdoc). ++ * Re-enable but ignore another potentially crashing non-x86 test. ++ ++ -- Rebecca N. Palmer Tue, 01 Sep 2020 08:17:32 +0100 ++ ++pandas (1.1.1+dfsg-1) experimental; urgency=medium ++ ++ * New upstream release. ++ * Upload to experimental. ++ * Drop/refresh patches. Update d/copyright and contributors_list. ++ * Re-enable asyncio tests. ++ * Skip fsspec tests while it is too old a version. ++ * Fix plot test cleanup (upstream bug 35080). ++ * Skip test that is expected to fail in our setup. ++ * Update minimum dependency versions. ++ * Use dh_sphinxdoc. ++ * Re-enable but ignore potentially crashing non-x86 tests. ++ * Simplify d/rules, mostly by using pybuild more. ++ ++ -- Rebecca N. Palmer Mon, 31 Aug 2020 18:44:39 +0100 ++ ++pandas (1.0.5+dfsg-3) unstable; urgency=medium ++ ++ * Remove pytest-asyncio test-depends. ++ * Remove numba test-depends on non-x86: at least s390x crashes. ++ ++ -- Rebecca N. Palmer Wed, 26 Aug 2020 22:34:50 +0100 ++ ++pandas (1.0.5+dfsg-2) unstable; urgency=medium ++ ++ * Fix missing import and update numba submodule name in patches. ++ * Disable asyncio tests (workaround for #969050). ++ * Warn that numba may give wrong answers on non-x86, ++ and remove test-depends on mipsel. ++ * Skip a crashing test on s390x. ++ ++ -- Rebecca N. Palmer Wed, 26 Aug 2020 20:19:16 +0100 ++ ++pandas (1.0.5+dfsg-1) unstable; urgency=medium ++ ++ * Upstream bugfix release. Refresh patches, contributors_list. ++ * Fix invalid test xfails. ++ * Only Recommend numba on amd64, to reduce the risk of bugs. ++ * Don't test-depend on numba on ppc64el (where it crashes, #863511?) ++ or on ports architectures (where it mostly isn't available). ++ * Remove no longer needed test xfails/skips. ++ * Upload to unstable. (Closes: #950430) ++ ++ -- Rebecca N. Palmer Tue, 25 Aug 2020 20:07:50 +0100 ++ ++pandas (0.25.3+dfsg2-5) unstable; urgency=medium ++ ++ * Tests: ignore rounding difference on i386. (Closes: #968208) ++ ++ -- Rebecca N. Palmer Sun, 16 Aug 2020 20:09:14 +0100 ++ ++pandas (0.25.3+dfsg2-4) unstable; urgency=medium ++ ++ * Be compatible with matplotlib 3.3. (Closes: #966393) ++ * Docs: fix broken remote->local Javascript replacement. ++ ++ -- Rebecca N. Palmer Sun, 09 Aug 2020 22:11:25 +0100 ++ ++pandas (0.25.3+dfsg2-3) unstable; urgency=medium ++ ++ * Nested DataFrames may raise ValueError with numpy 1.19 ++ (upstream bug 32289). Clarify error message and xfail tests. ++ * Stop using a no-longer-existing numpy constant. ++ * Tests: ignore deprecations/rewordings and avoid setup exception ++ with numpy 1.19. (Together, the above Closes: #963817) ++ * Bump debhelper compat to 13. ++ * Fix HDFStore.flush (part of #877419) on s390x. ++ * Add NEWS.html.gz for Standards-Version 4.5.0. ++ (Choosing not to also add NEWS.gz as it would be large.) ++ * Tests: accept Hurd's errno and lack of multiprocessing. ++ * Docs: replace embedded Javascript copies with links. ++ ++ -- Rebecca N. Palmer Sun, 28 Jun 2020 21:47:22 +0100 ++ ++pandas (1.0.4+dfsg-1) experimental; urgency=medium ++ ++ * Upstream bugfix release. (Closes: #962335) ++ * Refresh patches, update contributors_list. ++ * Fix broken tests. ++ * Tests: allow numba to raise an error on 32 bit systems. ++ * Don't test-depend on numba on armel (where it crashes, ++ possibly #863508) or ppc64/riscv64 (where it isn't available). ++ * Xfail some more HDF5 tests on big-endian architectures. ++ ++ -- Rebecca N. Palmer Tue, 09 Jun 2020 22:19:23 +0100 ++ ++pandas (0.25.3+dfsg2-2) unstable; urgency=medium ++ ++ * Tests: don't fail on jedi deprecation warnings. ++ ++ -- Rebecca N. Palmer Thu, 07 May 2020 11:57:06 +0100 ++ ++pandas (1.0.3+dfsg2-1) experimental; urgency=medium ++ ++ * Upstream bugfix release, update contributors_list. ++ * Merge packaging from unstable, ++ but omit no longer needed clipboard warn/xfail. ++ * Only show the NaN -> datetime warning from float dtypes ++ (to avoid an exception while trying to check). ++ * Recommend numba, as we now have a recent enough version. ++ * Re-add dask test-dependency. ++ * Clarify non-x86 warnings, remove no longer needed xfails / ignores. ++ * Clean up whitespace and patch names/descriptions. ++ * Remove patches no longer needed. ++ * Network tests: use more stable URLs. ++ ++ -- Rebecca N. Palmer Wed, 06 May 2020 17:07:44 +0100 ++ ++pandas (0.25.3+dfsg2-1) unstable; urgency=medium ++ ++ * Remove inconveniently licensed (CC-BY-SA) snippets. ++ * Fix (harmless) SyntaxWarning on install. (Closes: #956021) ++ * Fix NaT sort order and test failures with numpy 1.18. ++ (Closes: #958531) ++ ++ -- Rebecca N. Palmer Wed, 06 May 2020 12:18:23 +0100 ++ ++pandas (0.25.3+dfsg-9) unstable; urgency=medium ++ ++ * Don't raise on import without matplotlib installed. Add test of this. ++ ++ -- Rebecca N. Palmer Fri, 03 Apr 2020 21:56:02 +0100 ++ ++pandas (0.25.3+dfsg-8) unstable; urgency=medium ++ ++ * Tests: don't fail on harmless changes in dependencies. (Closes: #954647) ++ ++ -- Rebecca N. Palmer Thu, 02 Apr 2020 18:53:32 +0100 ++ ++pandas (0.25.3+dfsg-7) unstable; urgency=medium ++ ++ * Fix another test failure due to our warnings. ++ * Skip rather than xfail crashing tests. ++ ++ -- Rebecca N. Palmer Wed, 26 Feb 2020 18:45:58 +0000 ++ ++pandas (0.25.3+dfsg-6) unstable; urgency=medium ++ ++ * Don't fail tests on our own warnings. ++ * Xfail some more HDF tests on non-x86 architectures. ++ * Warn that clipboard I/O is broken on big-endian architectures ++ and xfail test. ++ * Use pytest-forked to isolate (already xfailed) crashing test. ++ * Xfail tests that use no-longer-existing URLs. ++ ++ -- Rebecca N. Palmer Wed, 26 Feb 2020 07:40:25 +0000 ++ ++pandas (0.25.3+dfsg-5) unstable; urgency=medium ++ ++ * Backport packaging from experimental: ++ - Remove unnecessary test skips, and reorganize remaining ones. ++ - Use xfails instead of skips. ++ - Add warnings for the known non-x86 breakages ++ (NaN -> datetime #877754, HDF and Stata I/O #877419). ++ - Tell I/O tests where to find the source tree's test data ++ instead of skipping them. ++ - Stop using deprecated envvar/tag names. ++ - Use https for links where available. ++ ++ -- Rebecca N. Palmer Mon, 24 Feb 2020 22:38:26 +0000 ++ ++pandas (1.0.1+dfsg-1) experimental; urgency=medium ++ ++ * Upstream bugfix release. ++ * Refresh patches. ++ * Update and sort d/copyright, update contributors_list. ++ * Re-enable checking the test suite. ++ * Declare transition Breaks (see #950430). ++ * Add jinja2 recommends/test-depends. ++ * Fix test_to_numpy failure on big-endian systems. ++ * Register documentation in doc-base. (Closes: #879226) ++ * Remove no longer needed test xfails/skips, ++ and reorganize the remaining ones. ++ * Tell I/O tests where to find the source tree's test data ++ instead of skipping them. ++ * Enable multiarch. ++ * Temporarily drop dask test-dependency to avoid uninstallability. ++ * Add warnings for the known non-x86 breakages ++ (NaN -> datetime #877754, HDF and Stata I/O #877419). ++ ++ -- Rebecca N. Palmer Sun, 23 Feb 2020 17:13:08 +0000 ++ ++pandas (1.0.0+dfsg-1) experimental; urgency=medium ++ ++ * New upstream release. ++ * Upload to experimental, as this is an API break (see #950430). ++ * Drop patches applied upstream, refresh others. ++ * Update and improve d/copyright, update contributors_list. ++ * Xfail a test that fails in the C locale. ++ * Update and organize depends/recommends. ++ * Docs: use a sphinx theme we have, fix spelling, ++ link to rather than embed remote resource, ++ use https links where available. ++ * Stop using deprecated envvar/tag names. ++ * Xfail rather than skip previously broken tests, ++ and put the condition in the patch not d/rules or d/tests. ++ * Remove no longer used patch-stamp. ++ * Temporarily ignore the test suite to get a first build. ++ ++ -- Rebecca N. Palmer Sun, 02 Feb 2020 21:04:36 +0000 ++ ++pandas (0.25.3+dfsg-4) unstable; urgency=medium ++ ++ * No-change upload to unstable. (Closes: #937236, #931557) ++ ++ -- Rebecca N. Palmer Sun, 10 Nov 2019 16:35:41 +0000 ++ ++pandas (0.25.3+dfsg-3) experimental; urgency=medium ++ ++ * Fix autopkgtest. ++ ++ -- Rebecca N. Palmer Sat, 09 Nov 2019 10:29:47 +0000 ++ ++pandas (0.25.3+dfsg-2) experimental; urgency=medium ++ ++ * Split up the test suite to fit in memory on mipsel, ++ and stop ignoring it there. (Closes: #943732) ++ * Reproducibility: use correct path for stripping docs. ++ * Declare transition Breaks (see #931557). ++ * Tests: ignore warning from Python 3.8. ++ * Update d/copyright (some files have moved). ++ * Use local requirejs. ++ ++ -- Rebecca N. Palmer Fri, 08 Nov 2019 07:56:16 +0000 ++ ++pandas (0.25.3+dfsg-1) experimental; urgency=medium ++ ++ * Upstream bugfix release. ++ * Drop patch no longer needed. ++ * Update autopkgtest dependencies, drop unused link. ++ * Better document test skips, remove unnecessary ones. ++ * Reproducibility: strip timestamps and build paths, ++ use fixed random seeds for building documentation. ++ * Ignore test suite on mipsel. ++ ++ -- Rebecca N. Palmer Sat, 02 Nov 2019 22:26:31 +0000 ++ ++pandas (0.25.2+dfsg-2) experimental; urgency=medium ++ ++ * Correct path for contributors list, and don't fail when ++ not building the -doc package. ++ * Try again to fix test failure due to deb_nonversioneer_version. ++ * Skip some failing tests on non-Intel (see #943732), ++ require other tests to pass. ++ * Fix another typo. ++ ++ -- Rebecca N. Palmer Mon, 28 Oct 2019 22:06:10 +0000 ++ ++pandas (0.25.2+dfsg-1) experimental; urgency=medium ++ ++ [ Graham Inggs ] ++ * Skip python2 test_register_by_default on s390x ++ * Fix python2 test failures in certain locales ++ ++ [ Yaroslav Halchenko ] ++ * Recent upstream release ++ * Updated patches ++ * Adjusted for the gone ci/print_versions ++ * d/control ++ - added python{,3}-hypothesis to b-depends ++ ++ [ Rebecca N. Palmer ] ++ * New upstream release. ++ * Upload to experimental, as this is an API break (see #931557). ++ * Drop patches fixed upstream, refresh others. ++ * Remove Python 2 packages (see #937236). ++ * Use Python 3 in shebangs and subprocess calls. ++ * Re-enable building on Python 3.8. ++ * Use the new location of print_versions. ++ * Skip feather tests and remove build-dependency: ++ they now need pyarrow.feather, which isn't in Debian. ++ * Don't fail tests for our versioneer removal ++ or a differently worded error message. ++ * Add/update minimum dependency versions. ++ * Add numpydoc, nbconvert and pytest-xdist build-depends. ++ * Update d/copyright. ++ * Pre-generate a contributor list to avoid needing the git log ++ at build time (when it won't exist). ++ * Allow tests to fail for now. ++ ++ -- Rebecca N. Palmer Mon, 28 Oct 2019 07:53:21 +0000 ++ ++pandas (0.23.3+dfsg-8) unstable; urgency=medium ++ ++ * Examples dependencies: re-add statsmodels and xarray; ++ also add rpy2 and feather. ++ * Use packaged intersphinx indexes. (Closes: #876417) ++ * Use https for intersphinx links. ++ * Remove cythonized-files*. (They are regenerated on each build.) ++ * Remove test xfail, as statsmodels has now been fixed. ++ * Set Rules-Requires-Root: no. ++ * Make documentation Suggest the Python 3 version. ++ * Suggest statsmodels. ++ * Only use Python 3 sphinx, and mark it -Indep/nodoc. ++ * Bump debhelper compat to 12 and use debhelper-compat and pybuild. ++ * Remove pycompat and X-Python*-Version. ++ * Add missing d/copyright item. ++ * Remove obsolete TODOs. ++ * Clarify descriptions. ++ * Stop referring to examples that no longer exist. ++ * Fix typos. ++ * Remove old (no longer used) EXCLUDE_TESTS*. ++ * Deduplicate documentation files. ++ * Use Python 3 shebangs, and fix broken shebang. ++ * Add python3-ipykernel, -ipywidgets, -seaborn to ++ Build-Depends-Indep. ++ * Disable dh_auto_test: it fails, and we run the tests elsewhere. ++ * Mark test dependencies nocheck/nodoc. ++ * Remove old minimum versions / alternative dependencies. ++ * Build-depend on dh-python. ++ * Don't build on python3.8, as it will fail tests (see #931557). ++ ++ -- Rebecca N. Palmer Sun, 27 Oct 2019 11:38:37 +0000 ++ ++pandas (0.23.3+dfsg-7) unstable; urgency=medium ++ ++ * Revert test patch and use an xfail instead. ++ * Temporarily drop statsmodels+xarray Build-Depends, as they are ++ uninstallable until this is built. ++ * Add python3-xarray to autopkgtest Depends. ++ * Drop Python 2 autopkgtest (but keep build-time test). ++ * Remove duplicate Recommends. ++ ++ -- Rebecca N. Palmer Fri, 20 Sep 2019 08:01:37 +0100 ++ ++pandas (0.23.3+dfsg-6) unstable; urgency=medium ++ ++ * Team upload ++ * Avoid FTBFS with statsmodels 0.9.0 ++ * Add python3-statsmodels to autopkgtest Depends ++ ++ -- Graham Inggs Wed, 18 Sep 2019 13:46:01 +0000 ++ ++pandas (0.23.3+dfsg-5) unstable; urgency=medium ++ ++ * Team upload ++ * Add locales-all to Build-Depends and autopkgtest Depends in order to ++ consistently test in all avalable locales ++ * Add crh_UA to skip_noencoding_locales.patch ++ * Fix wrong debian/source/options exclude, thanks Steve Langasek ++ ++ -- Graham Inggs Wed, 18 Sep 2019 05:57:44 +0000 ++ ++pandas (0.23.3+dfsg-4) unstable; urgency=medium ++ ++ * Add self to Uploaders. ++ * Recommend .xls format support also in Python 3. (Closes: #880125) ++ * Tests: don't call fixtures, as this is an error in pytest 4+. ++ * Don't test datetime in locales with no encoding. ++ (These are broken by a Python stdlib bug.) ++ ++ -- Rebecca N. Palmer Sat, 14 Sep 2019 16:37:43 +0100 ++ ++pandas (0.23.3+dfsg-3) unstable; urgency=medium ++ ++ * Team upload. ++ * Make np.array @ Series act the right way round. (Closes: #923708) ++ * Replace #918206 fix with a fix that doesn't change the return type ++ and inplace-ness of np.array += DataFrame. (Closes: #923707) ++ * Fix missing page in documentation. ++ ++ -- Rebecca N. Palmer Wed, 06 Mar 2019 22:19:34 +0000 ++ ++pandas (0.23.3+dfsg-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Don't fail the build on +dfsg versions. ++ * Fix another d/copyright issue. ++ * Add d/upstream/metadata. ++ ++ -- Rebecca N. Palmer Sat, 02 Mar 2019 14:57:12 +0000 ++ ++pandas (0.23.3+dfsg-1) unstable; urgency=medium ++ ++ * Team upload. ++ * Fix DataFrame @ np.array matrix multiplication. (Closes: #918206) ++ * Fix documentation build (Sphinx now defaults to Python 3). ++ (Closes: #804552, LP: #1803018) ++ * Add documentation examples dependencies. ++ * Update d/copyright. ++ * Remove unlicensed files. ++ ++ -- Rebecca N. Palmer Fri, 01 Mar 2019 23:02:18 +0000 ++ ++pandas (0.23.3-1) unstable; urgency=medium ++ ++ * New upstream release ++ * debian/patches ++ - many upstreamed patches are removed and others refreshed ++ ++ -- Yaroslav Halchenko Sat, 28 Jul 2018 00:39:32 -0400 ++ ++pandas (0.22.0-8) unstable; urgency=medium ++ ++ * Team Upload. ++ * patches: ++ + Add patch: deb_dont_call_py2_in_py3_test.patch ++ During python3 unit test, command 'python' is called by one of ++ the tests. When there is no python2 installation, tests such as ++ autopkgtest would fail. ++ * Put the conditionally applied patch to series' comment to avoid ++ lintianW: patch-file-present-but-not-mentioned-in-series. ++ * Trying to fix the autopkgtest: ++ + Leave a comment about the way to run unittest in the test control file. ++ + Synchronize B-D and autopkgtest depends. ++ + Allow output to stderr during test. ++ * Switch from nosetest to pytest. ++ * Synchronize pytest argument for rules and autopkgtest. ++ - Replace tests/unittest with the symlink pointed to tests/unittest3. ++ That scripts is smart enough to tell from py2 and py3, so we won't ++ need to write the same thing twice. ++ - Filter out intel tests on non-x86 architectures. ++ - Only enable "slow" tests on (Debian + x86) tester. "slow" tests may ++ consume too much memory to cause memory error or trigger OOM killer. ++ * control: ++ + Add missing python3 dependencies and sort the B-D list. ++ * Point Vcs-* fields to Salsa. ++ * Update Homepage to https://pandas.pydata.org/ . ++ * rules: ++ * Reverse the architecture filtering logic. ++ * Disable "slow" tests during build for non-x86 architectures. ++ This may significantly reduce the build time on those weak architectures. ++ * Don't specify the pytest marker expression twice. ++ The first expression will be overridden. ++ * Fix hardening flags. ++ - Cleanup the mess of unused nosetest exclusion expressions. ++ * Update lintian overrides. ++ + Override source-is-missing error, which is a false-positive triggered ++ by insane-line-length-in-source-file. ++ + Override insane-line-length-in-source-file because we have nothing ++ todo with lenghy lines in html. ++ * TODO: Point out that the unittest speed can be boosted with pytest-xdist. ++ ++ -- Mo Zhou Sun, 17 Jun 2018 16:01:16 +0000 ++ ++pandas (0.22.0-7) unstable; urgency=medium ++ ++ * Team Upload. ++ ++ [ Mo Zhou ] ++ * Remove patch: deb_fix_test_failure_test_basic_indexing, which is ++ unneeded for pandas >= 0.21 . (Closes: #900061) ++ ++ [ Graham Inggs ] ++ * Add riscv64 to the list of "not intel" architectures ++ * Update mark_tests_working_on_intel_armhf.patch ++ ++ -- Graham Inggs Tue, 29 May 2018 13:50:59 +0000 ++ ++pandas (0.22.0-6) unstable; urgency=medium ++ ++ * Team upload ++ * Fix FTBFS with Sphinx 1.7, thanks Dmitry Shachnev! ++ ++ -- Graham Inggs Tue, 24 Apr 2018 19:09:20 +0000 ++ ++pandas (0.22.0-5) unstable; urgency=medium ++ ++ * Team upload ++ * Add compatibility with Matplotlib 2.2 (Closes: #896673) ++ ++ -- Graham Inggs Mon, 23 Apr 2018 13:56:12 +0000 ++ ++pandas (0.22.0-4) unstable; urgency=medium ++ ++ * Team upload ++ * Fix more tests expecting little-endian results ++ * Fix heap corruption in read_csv on 32-bit, big-endian architectures ++ (Closes: #895890) ++ ++ -- Graham Inggs Sun, 22 Apr 2018 21:48:27 +0000 ++ ++pandas (0.22.0-3) unstable; urgency=medium ++ ++ * Team upload ++ * Refresh and re-enable mark_tests_working_on_intel.patch ++ * Fix test__get_dtype tests expecting little-endian results ++ ++ -- Graham Inggs Thu, 12 Apr 2018 11:04:21 +0000 ++ ++pandas (0.22.0-2) unstable; urgency=medium ++ ++ * debian/patches ++ - as upstream moved over to pytest from nose, no more nose imports were ++ in the code. Just adjusted patches to import nose where needed ++ * debian/rules ++ - specify LC_ALL=C locale to avoid crash while building docs ++ - add the 0001-TST-pytest-deprecation-warnings-GH17197-17253-reversed.patch ++ to the series if building on a system with an old pytest ++ ++ -- Yaroslav Halchenko Wed, 21 Feb 2018 23:44:58 -0500 ++ ++pandas (0.22.0-1) unstable; urgency=medium ++ ++ * Upstream release ++ * debian/patches ++ - refreshed many ++ - updated some ++ - added ++ - up_moto_optional to skip tests requiring moto (#777089) ++ - deb_skip_difffailingtests to skip two failing tests ++ (see https://github.com/pandas-dev/pandas/issues/19774) ++ - up_xlwt_optional to skip a test requiring xlwt ++ - deb_ndsphinx_optional to make nbsphinx optional. ++ Make nbsphinx not required in build-depends on systems with ++ older python-sphinx ++ - mark_tests_failing_on_386.patch ++ see https://github.com/pandas-dev/pandas/issues/19814 ++ - removed adopted upstream: ++ - dateutil-2.6.1-fixed-ambiguous-tz-dst-be.patch ++ - up_tst_np_argsort_comparison2 ++ - disabled for now: ++ - mark_tests_working_on_intel.patch ++ - up_tst_dont_assert_that_a_bug_exists_in_numpy ++ ++ -- Yaroslav Halchenko Wed, 21 Feb 2018 10:30:06 -0500 ++ ++pandas (0.20.3-11) unstable; urgency=medium ++ ++ * Team upload. ++ * Cherry-pick upstream commit 5f2b96bb637f6ddeec169c5ef8ad20013a03c853 ++ to workaround a numpy bug. (Closes: #884294) ++ + patches/up_tst_dont_assert_that_a_bug_exists_in_numpy ++ * Cherry-pick upstream commits to fix test failure caused by test_argsort(). ++ + patches/up_tst_np_argsort_comparison2 ++ * Workaround test failure of test_basic_indexing() in file ++ pandas/tests/series/test_indexing.py . ++ + patches/deb_fix_test_failure_test_basic_indexing ++ ++ -- Mo Zhou Sat, 20 Jan 2018 09:00:31 +0000 ++ ++pandas (0.20.3-10) unstable; urgency=medium ++ ++ * Team upload. ++ * Exclude more tests failing on mips, armhf and powerpc ++ ++ -- Andreas Tille Tue, 24 Oct 2017 21:26:02 +0200 ++ ++pandas (0.20.3-9) unstable; urgency=medium ++ ++ * Team upload. ++ * Add missing "import pytest" to two patched tests ++ * Secure URI in watch file ++ ++ -- Andreas Tille Tue, 24 Oct 2017 08:18:54 +0200 ++ ++pandas (0.20.3-8) unstable; urgency=medium ++ ++ * Team upload. ++ * Exclude one more test and de-activate non-working ignore of test errors ++ ++ -- Andreas Tille Mon, 23 Oct 2017 21:32:24 +0200 ++ ++pandas (0.20.3-7) unstable; urgency=medium ++ ++ * Team upload. ++ * debhelper 9 ++ * Use Debian packaged mathjax ++ * Do not Recommends python3-six since it is mentioned in Depends ++ * Remove redundant/outdated XS-Testsuite: autopkgtest ++ * Exclude one more test and de-activate non-working ignore of test errors ++ ++ -- Andreas Tille Mon, 23 Oct 2017 17:33:55 +0200 ++ ++pandas (0.20.3-6) unstable; urgency=medium ++ ++ * Team upload. ++ * Ignore test errors on some architectures ++ (Concerns bug #877419) ++ * Remove __pycache__ remainings from testing ++ * Standards-Version: 4.1.1 ++ * DEP3 for Google Analytics patch ++ * Complete Google Analytics patch ++ ++ -- Andreas Tille Mon, 23 Oct 2017 09:05:27 +0200 ++ ++pandas (0.20.3-5) unstable; urgency=medium ++ ++ * Make sure remainings of nose tests will not fail. That's a pretty stupid ++ patch since the tests are not using nose any more only some remaining ++ exceptions. Hope it will work anyway. ++ (Concerns bug #877419) ++ ++ -- Andreas Tille Mon, 16 Oct 2017 21:57:45 +0200 ++ ++pandas (0.20.3-4) unstable; urgency=medium ++ ++ * Mark those tests @pytest.mark.intel that pass only on Intel architectures ++ * d/rules: try to exclude tests that were marked "intel" ++ (Concerns bug #877419) ++ ++ -- Andreas Tille Sat, 14 Oct 2017 19:49:01 +0200 ++ ++pandas (0.20.3-3) unstable; urgency=medium ++ ++ * Team upload. ++ * Moved packaging from pkg-exppsy to Debian Science ++ * Exclude certain tests on certain architectures ++ (Concerns bug #877419) ++ ++ -- Andreas Tille Fri, 13 Oct 2017 20:52:53 +0200 ++ ++pandas (0.20.3-2) unstable; urgency=medium ++ ++ * debian/control ++ - boosted policy to 4.0.0 (I think we should be ok) ++ - drop statsmodels from build-depends to altogether avoid the circular ++ build-depends (Closes: #875805) ++ * Diane Trout: ++ - Add dateutil-2.6.1-fixed-ambiguous-tz-dst-be.patch (Closes: #875807) ++ ++ -- Yaroslav Halchenko Thu, 21 Sep 2017 16:11:29 -0400 ++ ++pandas (0.20.3-1) unstable; urgency=medium ++ ++ * Fresh upstream release ++ * debian/patches ++ - updated some, removed changeset*, and disabled possibly fixed upstream ++ ones ++ * debian/{control,rules} ++ - upstream switched to use pytest instead of nose ++ - enabled back all the tests for now ++ - added python-nbsphinx for b-depends, needed for docs ++ * debian/*.install ++ - no .so at the first level of subdirectories, now present on the third ++ ++ -- Yaroslav Halchenko Mon, 10 Jul 2017 20:00:59 -0400 ++ ++pandas (0.19.2-5.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Apply patch by Rebecca N. Palmer ++ Closes: #858260 ++ ++ -- Andreas Tille Sun, 02 Apr 2017 07:06:36 +0200 ++ ++pandas (0.19.2-5) unstable; urgency=medium ++ ++ * And one more test to skip on non-amd64 -- test_round_trip_valid_encodings ++ ++ -- Yaroslav Halchenko Thu, 12 Jan 2017 13:10:11 -0500 ++ ++pandas (0.19.2-4) unstable; urgency=medium ++ ++ * Exclude few more "plotting" tests on non-amd64 which cause FTBFS ++ on s390 ++ ++ -- Yaroslav Halchenko Thu, 12 Jan 2017 11:43:13 -0500 ++ ++pandas (0.19.2-3) unstable; urgency=medium ++ ++ * Brought back changeset_0699c89882133a41c250abdac02796fec84512e8.diff ++ which should resolve tests failures on BE platforms (wasn't yet ++ upstreamed within 0.19.x releases) ++ ++ -- Yaroslav Halchenko Thu, 12 Jan 2017 09:44:52 -0500 ++ ++pandas (0.19.2-2) unstable; urgency=medium ++ ++ * Exclude a number of tests while running on non-amd64 platforms ++ due to bugs in numpy/pandas ++ ++ -- Yaroslav Halchenko Wed, 11 Jan 2017 12:13:05 -0500 ++ ++pandas (0.19.2-1) unstable; urgency=medium ++ ++ * Fresh upstream minor release -- supposed to be bugfix but interacts ++ with current beta (1:1.12.0~b1-1) numpy leading to various failed tests ++ * debian/patches ++ - changeset_ae6a0a51cf41223394b7ef1038c210045d486cc8.diff ++ to guarantee the same Series dtype as of cut regardless of architecture ++ - up_buggy_overflows ++ workaround for inconsistent overflows while doing pow operation on big ++ ints ++ * debian/rules ++ - exclude more tests which are due to known issues in numpy beta and thus ++ not to be addressed directly in pandas ++ ++ -- Yaroslav Halchenko Wed, 04 Jan 2017 10:19:52 -0500 ++ ++pandas (0.19.1+git174-g81a2f79-1) experimental; urgency=medium ++ ++ * New upstream snapshot from v0.19.0-174-g81a2f79 ++ - lots of bugfixes since 0.19.1, so decided to test snapshot ++ ++ -- Yaroslav Halchenko Sat, 10 Dec 2016 22:43:19 -0500 ++ ++pandas (0.19.1-3) unstable; urgency=medium ++ ++ * Require cython >= 0.23 or otherwise use pre-cythoned sources ++ (should resolve https://github.com/pandas-dev/pandas/issues/14699 ++ on jessie) ++ * debian/control ++ - Build-Conflicts with python-tables 3.3.0-4 since that one leads to FTBFS ++ - boosted policy to 3.9.8 ++ * debian/rules ++ - Exclude few more tests which fail on big endian and other platforms ++ test_(msgpack|read_dta18) ++ * debian/patches ++ - changeset_0699c89882133a41c250abdac02796fec84512e8.diff ++ to compare in the tests against native endianness ++ ++ -- Yaroslav Halchenko Fri, 09 Dec 2016 15:49:50 -0500 ++ ++pandas (0.19.1-2) unstable; urgency=medium ++ ++ * debian/control ++ - Moved statsmodels build-depend (optional) under build-depends-indep ++ to break circular dependency. Thanks Stuart Prescott for the analysis ++ * debian/patches/ ++ - changeset_1309346c08945cd4764a549ec63cf51089634a45.diff ++ to not mask problem reading json leading to use of undefined variable ++ ++ -- Yaroslav Halchenko Sun, 27 Nov 2016 21:49:40 -0500 ++ ++pandas (0.19.1-1) unstable; urgency=medium ++ ++ * Fresh upstream release ++ ++ -- Yaroslav Halchenko Fri, 18 Nov 2016 12:19:54 -0500 ++ ++pandas (0.19.0+git14-ga40e185-1) unstable; urgency=medium ++ ++ * New upstream post-release (includes some bugfixes) snapshot ++ * debian/patches ++ - dropped changeset_ and up_ patches adopted upstream, refreshed the rest ++ * debian/rules,patches ++ - save debian-based version into __version.py, so doesn't conflict with ++ upstream tests of public API ++ - exclude for now test_expressions on python3 ++ (see https://github.com/pydata/pandas/issues/14269) ++ ++ -- Yaroslav Halchenko Thu, 13 Oct 2016 10:26:18 -0400 ++ ++pandas (0.18.1-1) unstable; urgency=medium ++ ++ * Fresh upstream release ++ * debian/patches/ ++ - changeset_46af7cf0f8e0477f6cc7454aa786a573228f0ac3.diff ++ to allow also AttributeError exception being thrown in the tests ++ (Closes: #827938) ++ - debian/patches/deb_skip_test_precision_i386 ++ removed (upstreamed) ++ ++ -- Yaroslav Halchenko Wed, 13 Jul 2016 10:42:00 -0400 ++ ++pandas (0.18.0+git114-g6c692ae-1) unstable; urgency=medium ++ ++ * debian/control ++ - added python{,3}-pkg-resources to direct Depends for the packages ++ (Closes: #821076) ++ ++ -- Yaroslav Halchenko Sun, 17 Apr 2016 20:49:25 -0400 ++ ++pandas (0.17.1-3) unstable; urgency=medium ++ ++ * debian/tests/unittest* ++ - set LC_ALL=C.UTF-8 for the tests run to prevent failure of test_set_locale ++ ++ -- Yaroslav Halchenko Tue, 08 Dec 2015 08:31:30 -0500 ++ ++pandas (0.17.1-2) unstable; urgency=medium ++ ++ * debian/control ++ - make -statsmodels and -tables optional build-depends on those platforms ++ where they are N/A atm. Added bdepends on python3-tables since available ++ ++ -- Yaroslav Halchenko Sun, 06 Dec 2015 12:58:26 -0500 ++ ++pandas (0.17.1-1) unstable; urgency=medium ++ ++ * Fresh upstream bugfix release ++ * debian/rules ++ - fixed deletion of moved away .so files ++ ++ -- Yaroslav Halchenko Fri, 27 Nov 2015 10:52:49 -0500 ++ ++pandas (0.17.0+git8-gcac4ad2-2) unstable; urgency=medium ++ ++ * Bug fix: install also msgpack/*.so extensions to -lib packages ++ ++ -- Yaroslav Halchenko Sat, 10 Oct 2015 13:52:54 -0400 ++ ++pandas (0.17.0+git8-gcac4ad2-1) unstable; urgency=medium ++ ++ * New upstream snapshot post release to pick up few bugfixes ++ - Started to trigger failures of test_constructor_compound_dtypes and ++ test_invalid_index_types -- disabled those for now, see ++ https://github.com/pydata/pandas/issues/11169 ++ * debian/rules ++ - Generate pandas/version.py if not present out of debian/changelog ++ upstream version information (versioneer wouldn't know since relies on ++ git) ++ ++ -- Yaroslav Halchenko Fri, 09 Oct 2015 21:35:23 -0400 ++ ++pandas (0.16.2+git65-g054821d-1) unstable; urgency=medium ++ ++ * Fresh upstream post-release snapshot (to pick up recent fixes etc) ++ (Closes: #787432) ++ * debian/{control,rules} ++ - build -doc package (Closes: #660900) ++ - add ipython (or alternative new ones from neurodebian) into ++ Build-Depends-Indep to build docs ++ - add python{,3}-{lxml,html5lib} to Build-Depends and Recommends ++ - use LC_ALL=C.UTF-8 while running tests ++ - exclude also test_set_locale since it fails ATM ++ see https://github.com/pydata/pandas/issues/10471 ++ ++ -- Yaroslav Halchenko Tue, 30 Jun 2015 17:26:54 -0400 ++ ++pandas (0.16.0~rc1-1) experimental; urgency=medium ++ ++ * New upstream release candidate ++ ++ -- Yaroslav Halchenko Fri, 13 Mar 2015 14:21:39 -0400 ++ ++pandas (0.15.2-1) unstable; urgency=medium ++ ++ * Fresh upstream release ++ ++ -- Yaroslav Halchenko Thu, 11 Dec 2014 09:51:57 -0500 ++ ++pandas (0.15.1+git125-ge463818-1) unstable; urgency=medium ++ ++ * New upstream snapshot from v0.15.1-125-ge463818. ++ * Upload to unstable during freeze since previous one in sid didn't make it ++ to jessie anyways ++ * debian/control ++ - remove versioning demand for cython (it would use pre-cythonized code on ++ older ones and there is no longer need in sid/jessie to enforce version). ++ As a consecuence -- removed all dsc patches pointing to ++ nocython3-dsc-patch, since no longer needed ++ ++ -- Yaroslav Halchenko Sun, 30 Nov 2014 21:09:36 -0500 ++ ++pandas (0.15.0-2) unstable; urgency=medium ++ ++ * debian/control ++ - specify minimal numpy to be 1.7 ++ * debian/patches ++ - deb_skip_stata_on_bigendians skip test_stata again on BE platforms ++ - deb_skip_test_precision_i386 skip test_precision_conversion on 32bit ++ ++ -- Yaroslav Halchenko Thu, 30 Oct 2014 23:09:13 -0400 ++ ++pandas (0.15.0-1) unstable; urgency=medium ++ ++ * New upstream release ++ * debian/control ++ - restrict statsmodels and matplotlib from being required on the ports ++ which do not have them ++ ++ -- Yaroslav Halchenko Sun, 26 Oct 2014 11:30:23 -0400 ++ ++pandas (0.14.1-2) unstable; urgency=medium ++ ++ * debian/patches/changeset_314012d.diff ++ - Fix converter test for MPL1.4 (Closes: #763709) ++ ++ -- Yaroslav Halchenko Mon, 06 Oct 2014 11:53:42 -0400 ++ ++pandas (0.14.1-1) unstable; urgency=medium ++ ++ * New upstream release ++ ++ -- Yaroslav Halchenko Thu, 10 Jul 2014 23:38:49 -0400 ++ ++pandas (0.14.0+git393-g959e3e4-1) UNRELEASED; urgency=medium ++ ++ * New upstream snapshot from v0.14.0-345-g8cd3dd6 ++ * debian/rules ++ - disable running disabled tests to prevent clipboard tests failures ++ under kfreebsd kernels ++ ++ -- Yaroslav Halchenko Mon, 07 Jul 2014 12:29:50 -0400 ++ ++pandas (0.14.0+git213-g741b2fa-1) experimental; urgency=medium ++ ++ * New upstream snapshot from v0.14.0-213-g741b2fa. ++ ++ -- Yaroslav Halchenko Thu, 19 Jun 2014 10:30:42 -0400 ++ ++pandas (0.14.0+git17-g3849d5d-1) unstable; urgency=medium ++ ++ * New upstream snapshot from v0.14.0-17-g3849d5d -- has resolved a number ++ of bugs sneaked into 0.14.0 release, and caused FTBFS on some platforms ++ and backports ++ ++ -- Yaroslav Halchenko Sun, 01 Jun 2014 00:54:34 -0400 ++ ++pandas (0.14.0-1) unstable; urgency=medium ++ ++ * New upstream release ++ ++ -- Yaroslav Halchenko Fri, 30 May 2014 08:45:35 -0400 ++ ++pandas (0.14.0~rc1+git79-g1fa5dd4-1) experimental; urgency=medium ++ ++ * New upstream snapshot from v0.14.0rc1-73-g8793356 ++ * debian/patches: ++ - dropped CPed changeset_*s ++ - added deb_disable_googleanalytics ++ * debian/control: ++ - boosted policy compliance to 3.9.5 ++ ++ -- Yaroslav Halchenko Tue, 27 May 2014 16:00:00 -0400 ++ ++pandas (0.13.1-2) unstable; urgency=low ++ ++ * debian/patches/changeset_6d56e7300d66d3ba76684334bbb44b6cd0ea9f61.diff ++ to fix FTBFS of statsmodels due to failing tests (Closes: #735804) ++ ++ -- Yaroslav Halchenko Sat, 08 Feb 2014 12:46:42 -0500 ++ ++pandas (0.13.1-1) unstable; urgency=low ++ ++ * Fresh upstream release ++ * debian/patches ++ - deb_skip_test_pytables_failure to mitigate error while testing on ++ amd64 wheezy and ubuntu 12.04 ++ ++ -- Yaroslav Halchenko Tue, 04 Feb 2014 12:09:29 -0500 ++ ++pandas (0.13.0+git464-g15a8ff7-1) experimental; urgency=low ++ ++ * Fresh pre-release snapshot ++ * debian/patches ++ - removed all cherry-picked patches (should have been upstreamed) ++ ++ -- Yaroslav Halchenko Wed, 29 Jan 2014 21:27:45 -0500 ++ ++pandas (0.13.0-2) unstable; urgency=low ++ ++ * debian/patches ++ - 0001-BLD-fix-cythonized-msgpack-extension-in-setup.py-GH5.patch ++ to resolve issue with building C++ Cython extension using ++ pre-generated sources ++ - 0001-Add-division-future-import-everywhere.patch ++ 0002-remove-explicit-truediv-kwarg.patch ++ to resolve compatibility issues with elderly Numexpr ++ - 0001-BUG-Yahoo-finance-changed-ichart-url.-Fixed-here.patch ++ - deb_skip_sequencelike_on_armel to prevent FTBFS on armel due to failing ++ test: https://github.com/pydata/pandas/issues/4473 ++ ++ -- Yaroslav Halchenko Fri, 03 Jan 2014 23:13:48 -0500 ++ ++pandas (0.13.0-1) unstable; urgency=low ++ ++ * Fresh upstream release ++ - resolved compatibility with matplotlib 1.3 (Closes: #733848) ++ * debian/{control,rules} ++ - use xvfb (added to build-depends together with xauth, and xclip) ++ for tests ++ - define http*_proxy to prevent downloads ++ - install .md files not .rst for docs -- were renamed upstream ++ - include .cpp Cython generated files into debian/cythonized-files* ++ ++ -- Yaroslav Halchenko Wed, 01 Jan 2014 18:08:22 -0500 ++ ++pandas (0.12.0-2) unstable; urgency=low ++ ++ [ Dmitry Shachnev ] ++ * DEP-8 tests improvements: ++ - Use Xvfb for running tests. ++ - Increase verbosity using -v flag. ++ - Fix printing interpreter version in unittests3. ++ * Fix indentaion in debian/control. ++ ++ [ Yaroslav Halchenko ] ++ * debian/control ++ - place python3-matplotlib ahead of elderly python-matplotlib without ++ python3 support since now we have python3-matplotlib in sid ++ * debian/copyright ++ - go through reported missing copyright/license statements (Closes: ++ #700564) Thanks Luca Falavigna for the report ++ * debian/rules,patches ++ - exclude test test_bar_log due to incompatibility with matplotlib 1.3.0 (test ++ adjusted upstream and would be re-enabled for the new release). ++ - debian/patches/changeset_952c5f0bc433622d21df20ed761ee4cb728370eb.diff ++ adds matplotlib 1.3.0 compatibility ++ ++ -- Yaroslav Halchenko Sat, 14 Sep 2013 20:02:58 -0400 ++ ++pandas (0.12.0-1) unstable; urgency=low ++ ++ * New upstream release: ++ - should address failed tests on 32bit platforms ++ * debian/patches ++ - neurodebian: allow to build for jessie with outdated cython ++ * debian/control ++ - build for Python2 >= 2.7 due to some (probably temporary) incompatibilities ++ in tests with 2.6 ++ ++ -- Yaroslav Halchenko Wed, 24 Jul 2013 23:29:03 -0400 ++ ++pandas (0.12.0~rc1+git127-gec8920a-1) experimental; urgency=low ++ ++ * New upstream snapshot from origin/master at v0.12.0rc1-127-gec8920a ++ - should address FTBFS due to failing tests on big endians ++ ++ -- Yaroslav Halchenko Sat, 20 Jul 2013 09:23:04 -0400 ++ ++pandas (0.12.0~rc1+git112-gb79996c-1) experimental; urgency=low ++ ++ * Fresh git snapshot of upstream candidate release. Experimental build ++ to verify functioning across the ports. ++ * debian/control ++ - dedented last "paragraph" to break it away from the 2nd one. ++ Thanks Beatrice Torracca for the detailed report (Closes: #712260) ++ - Depends on python-six now ++ * debian/{,tests/}control ++ - added python{,3}-bs4, python-html5lib to Build-Depends for more ++ thorough testing ++ ++ -- Yaroslav Halchenko Thu, 18 Jul 2013 13:15:19 -0400 ++ ++pandas (0.11.0-2) unstable; urgency=low ++ ++ [ Yaroslav Halchenko ] ++ * Upload to unstable -- this upstream release addressed Cython 0.19 ++ compatibility issue (Closes: #710608) ++ * Recommends numexpr ++ * Re-cythonized using Cython 0.19 ++ ++ [ Dmitry Shachnev ] ++ * debian/tests/unittests3: use nosetests3 instead of nosetests-3.x. ++ ++ -- Yaroslav Halchenko Mon, 03 Jun 2013 11:57:43 -0400 ++ ++pandas (0.11.0-1) experimental; urgency=low ++ ++ * New upstream release ++ ++ -- Yaroslav Halchenko Tue, 23 Apr 2013 22:40:15 -0400 ++ ++pandas (0.10.1-1) experimental; urgency=low ++ ++ * New upstream release ++ ++ -- Yaroslav Halchenko Tue, 22 Jan 2013 13:07:31 -0500 ++ ++pandas (0.10.0-1) experimental; urgency=low ++ ++ * New upstream release ++ - drops python 2.5 support (we are dropping pyversions in favor of ++ X-Python-Version) ++ * debian/patches: ++ - all previous are in upstream now, dropped locally ++ - added -dsc-patch'es for systems without cython3 ++ * debian/control: ++ - added python-statsmodels for the extended tests coverage ++ ++ -- Yaroslav Halchenko Mon, 17 Dec 2012 12:27:25 -0500 ++ ++pandas (0.9.1-2) unstable; urgency=low ++ ++ [ Julian Taylor ] ++ * Provide python3 packages ++ * Add autopkgtests ++ * debian/patches: ++ - relax-float-tests.patch: ++ replace float equality tests with almost equal ++ - fix-endian-tests.patch: ++ patch from upstream to fix the test failure on big endian machines ++ ++ [ Yaroslav Halchenko ] ++ * Upload to unstable ++ * Dropping pysupport ++ * debian/rules: ++ - slight reduction of code duplication between python 2 and 3 ++ - cythonize for both python 2 and 3 into separate directories ++ ++ -- Yaroslav Halchenko Sat, 01 Dec 2012 22:57:47 -0500 ++ ++pandas (0.9.1-1) experimental; urgency=low ++ ++ * New upstream release ++ * Boosted policy to 3.9.3 (no due changes) ++ * debian/rules ++ - Fixed up cleaning up of cythonized files ++ ++ -- Yaroslav Halchenko Wed, 14 Nov 2012 09:44:14 -0500 ++ ++pandas (0.9.0-1) experimental; urgency=low ++ ++ * New upstream release ++ ++ -- Yaroslav Halchenko Sun, 07 Oct 2012 21:26:23 -0400 ++ ++pandas (0.9.0~rc2-1) experimental; urgency=low ++ ++ * New upstream release candidate ++ ++ -- Yaroslav Halchenko Fri, 21 Sep 2012 10:27:52 -0400 ++ ++pandas (0.8.1-1) unstable; urgency=low ++ ++ * Primarily a bugfix upstream release. ++ * up_tag_yahoo_test_requiring_network patch removed. ++ ++ -- Yaroslav Halchenko Sun, 22 Jul 2012 20:13:16 -0400 ++ ++pandas (0.8.0-2) unstable; urgency=medium ++ ++ * up_tag_yahoo_test_requiring_network patch cherry-picked from upstream ++ GIT so that tests would not be excercised at package build time ++ (Closes: #681449) ++ ++ -- Yaroslav Halchenko Fri, 13 Jul 2012 08:54:41 -0400 ++ ++pandas (0.8.0-1) unstable; urgency=low ++ ++ * Fresh upstream release ++ * debian/control ++ - drop python-statsmodels from Build-Depends since it might not be yet ++ available on some architectures and is not critical for the test ++ - recommend python-statsmodels instead of deprecated ++ python-scikits.statsmodels ++ ++ -- Yaroslav Halchenko Fri, 29 Jun 2012 13:02:28 -0400 ++ ++pandas (0.8.0~rc2+git26-g76c6351-1) experimental; urgency=low ++ ++ * Fresh upstream release candidate ++ - all patches dropped (upstreamed) ++ - requires numpy >= 1.6 ++ ++ -- Yaroslav Halchenko Tue, 12 Jun 2012 13:23:27 -0400 ++ ++pandas (0.7.3-1) unstable; urgency=low ++ ++ * Fresh upstream release ++ - few post-release patches (submitted upstream) to exclude unittests ++ requiring network access ++ * debian/control: ++ - python-openpyxl, python-xlwt, python-xlrd into Build-Depends ++ and Recommends ++ * debian/rules: ++ - exclude running tests marked with @network ++ ++ -- Yaroslav Halchenko Thu, 12 Apr 2012 11:27:31 -0400 ++ ++pandas (0.7.1+git1-ga2e86c2-1) unstable; urgency=low ++ ++ * New upstream release with a bugfix which followed ++ ++ -- Yaroslav Halchenko Thu, 01 Mar 2012 22:28:10 -0500 ++ ++pandas (0.7.0-1) unstable; urgency=low ++ ++ * New upstream release ++ * Updated pre-cythoned .c files for older Debian/Ubuntu releases. ++ Added a stamp file with upstream version to assure up-to-dateness ++ of the generated files ++ * Dropped all exclusions of unittests and patches -- shouldn't be necessary ++ any longer ++ * Build only for requested versions (not all supported) of Python ++ * Do nothing for build operation, rely on overloaded install ++ (to avoid undesired re-cythonization on elderly Ubuntus) ++ * Adjusted url in watch due to migration of repository under pydata ++ organization ++ ++ -- Yaroslav Halchenko Mon, 16 Jan 2012 19:31:50 -0500 ++ ++pandas (0.6.1-1) UNRELEASED; urgency=low ++ ++ * New upstream release ++ * python-tk into Build-Depends ++ * Create matplotlibrc with backend: Agg to allow tests run without $DISPLAY ++ * Carry pre-cythonized .c files for systems with older Cython ++ * Skip few tests known to fail ++ ++ -- Yaroslav Halchenko Tue, 13 Dec 2011 18:36:11 -0500 ++ ++pandas (0.5.0+git7-gcf32be2-1) unstable; urgency=low ++ ++ * New upstream release with post-release fixes ++ ++ -- Yaroslav Halchenko Tue, 01 Nov 2011 21:15:06 -0400 ++ ++pandas (0.4.3-1) unstable; urgency=low ++ ++ * New upstream release(s): primarily bugfixes and optimizations but also ++ with some minor API changes and new functionality ++ * Adjusted debian/watch to match new layout on github ++ ++ -- Yaroslav Halchenko Tue, 18 Oct 2011 11:27:50 -0400 ++ ++pandas (0.4.1-1) unstable; urgency=low ++ ++ * New upstream bugfix release ++ - incorporated all debian/patches ++ * debian/rules: 'clean' removes generated pandas/version.py ++ * debian/copyright: adjusted to become DEP-5 compliant ++ ++ -- Yaroslav Halchenko Sun, 25 Sep 2011 21:48:30 -0400 ++ ++pandas (0.4.0-1) unstable; urgency=low ++ ++ * Initial Debian release (Closes: #641464) ++ ++ -- Yaroslav Halchenko Tue, 13 Sep 2011 12:24:05 -0400 diff --cc debian/contributors_list.txt index 00000000,00000000..a32627a9 new file mode 100644 --- /dev/null +++ b/debian/contributors_list.txt @@@ -1,0 -1,0 +1,2304 @@@ ++Current to version 1.1.5 (generated by git shortlog -ns) ++There may be multiple entries for the same person if they have used more than one (form of their) name ++https://github.com/pandas-dev/pandas/graphs/contributors ++ ++ 3130 Wes McKinney ++ 3043 jreback ++ 2027 jbrockmendel ++ 1689 Jeff Reback ++ 1032 Joris Van den Bossche ++ 943 y-p ++ 743 Tom Augspurger ++ 630 Chang She ++ 607 Phillip Cloud ++ 463 gfyoung ++ 356 Simon Hawkins ++ 344 sinhrks ++ 327 Adam Klein ++ 282 Matthew Roeschke ++ 236 William Ayd ++ 196 MomIsBestFriend ++ 169 Marc Garcia ++ 160 Andy Hayden ++ 148 topper-123 ++ 128 Jeff Tratner ++ 122 Jeffrey Tratner ++ 119 MeeseeksMachine ++ 109 Vytautas Jancauskas ++ 106 Daniel Saxton ++ 93 Jeremy Schendel ++ 92 Pietro Battiston ++ 89 Skipper Seabold ++ 88 Terji Petersen ++ 86 alimcmaster1 ++ 85 h-vetinari ++ 84 Stephan Hoyer ++ 81 Kaiqi Dong ++ 76 Wouter Overmeire ++ 70 jschendel ++ 65 Sinhrks ++ 62 Kevin Sheppard ++ 62 Martin Winkel ++ 61 TomAugspurger ++ 58 Mortada Mehyar ++ 57 Christopher Whelan ++ 55 Chris ++ 54 Thomas Kluyver ++ 54 behzad nouri ++ 49 Ka Wo Chen ++ 45 Marco Gorelli ++ 43 Kieran O'Mahony ++ 42 Dieter Vandenbussche ++ 38 Paul Reidy ++ 34 chris-b1 ++ 33 Evan Wright ++ 32 bwignall ++ 31 Jan Schulz ++ 31 Mak Sze Chun ++ 29 Yaroslav Halchenko ++ 29 immerrr ++ 28 David Stephens ++ 26 Gábor Lipták ++ 26 Justin Zheng ++ 25 Stephen Lin ++ 25 Thein Oo ++ 25 rockg ++ 23 Fabian Haase ++ 22 Licht Takeuchi ++ 22 Ming Li ++ 22 ganevgv ++ 21 Ryan Nazareth ++ 21 Thierry Moisan ++ 20 Dan Birken ++ 20 lexual ++ 19 Abraham Flaxman ++ 19 Artemy Kolchinsky ++ 19 DSM ++ 18 Farhan Reynaldo ++ 18 Kerby Shedden ++ 18 pilkibun ++ 18 unutbu ++ 17 Anthonios Partheniou ++ 17 Nicolas Bonnotte ++ 16 Matt Roeschke ++ 16 Robert de Vries ++ 16 Saurav Chakravorty ++ 16 danielballan ++ 16 onesandzeroes ++ 15 Abdullah İhsan Seçer ++ 15 Alex Kirko ++ 15 Jiaxiang ++ 15 Tobias Brandt ++ 15 seth-p ++ 14 Christopher C. Aycock ++ 14 Dr. Irv ++ 14 Gregory Rome ++ 14 Irv Lustig ++ 14 Maximilian Roos ++ 14 Roy Hyunjin Han ++ 14 Spencer Lyon ++ 14 locojaydev ++ 13 Alex Rothberg ++ 13 John W. O'Brien ++ 13 Jonathan Chambers ++ 13 Todd Jennings ++ 13 Vaibhav Vishal ++ 13 patrick ++ 13 rhshadrach ++ 13 willpeppo ++ 12 Alex Rychyk ++ 12 Luca Beltrame ++ 12 PKEuS ++ 12 Richard T. Guy ++ 12 Tommy ++ 12 Wenhuan ++ 11 Andrew Rosenfeld ++ 11 Bharat Raghunathan ++ 11 Daniel Himmelstein ++ 11 Joe Jevnik ++ 11 Keith Hughitt ++ 11 Uwe L. Korn ++ 11 anmyachev ++ 11 proost ++ 11 terrytangyuan ++ 10 Aaron Critchley ++ 10 Alexander Ponomaroff ++ 10 Anjali2019 ++ 10 Dale Jung ++ 10 Garrett Drapala ++ 10 John McNamara ++ 10 K.-Michael Aye ++ 10 Kendall Masse ++ 10 Martin Blais ++ 10 Nick Eubank ++ 10 Sam Foo ++ 10 Tim Swast ++ 10 cbertinato ++ 9 3vts ++ 9 Albert Villanova del Moral ++ 9 Damien Garaud ++ 9 Guillaume Gay ++ 9 Jacob Schaer ++ 9 Tong SHEN ++ 9 Viktor Kerkez ++ 8 Aly Sivji ++ 8 Andrew Wieteska ++ 8 Brandon Bradley ++ 8 Dr-Irv ++ 8 Hugh Kelley ++ 8 Kalyan Gokhale ++ 8 Michael Marino ++ 8 Mike Kelly ++ 8 Pandas Development Team ++ 8 RaisaDZ ++ 8 Shawn Heide ++ 8 Varun ++ 8 Vasily Litvinov ++ 8 himanshu awasthi ++ 8 jnmclarty ++ 7 Adam J. Stewart ++ 7 Benedikt Sauer ++ 7 Dan Allan ++ 7 Derek McCammond ++ 7 Francis T. O'Donovan ++ 7 Jason Sexauer ++ 7 Joel Nothman ++ 7 Kernc ++ 7 Michael Mueller ++ 7 OlivierLuG ++ 7 Quang Nguyễn ++ 7 Rushabh Vasani ++ 7 Samesh Lakhotia ++ 7 Takafumi Arakaki ++ 7 Winterflower ++ 7 Younggun Kim ++ 7 cleconte987 ++ 7 dsm054 ++ 7 nipunreddevil ++ 7 scls19fr ++ 7 themien ++ 6 ArtinSarraf ++ 6 Benjamin Rowell ++ 6 Brad Buran ++ 6 Bran Yang ++ 6 Brian Wignall ++ 6 Chris Whelan ++ 6 Chuanzhu Xu ++ 6 David Bew ++ 6 Fangchen Li ++ 6 Garrett-R ++ 6 Graham Inggs ++ 6 HH-MWB ++ 6 Jeff Carey ++ 6 Kelsey Jordahl ++ 6 Mateusz Woś ++ 6 Matt Kirk ++ 6 Neil Parley ++ 6 Nicholaus E. Halecky ++ 6 Piotr Jucha ++ 6 Robin to Roxel ++ 6 Rouz Azari ++ 6 Stephen Hoover ++ 6 Steve ++ 6 Thomas A Caswell ++ 6 Thomas Grainger ++ 6 Tola A ++ 6 Uddeshya Singh ++ 6 Vincent Arel-Bundock ++ 6 Wes Turner ++ 6 ZhuBaohe ++ 6 agijsberts ++ 6 agraboso ++ 6 ajcr ++ 6 clham ++ 6 ischwabacher ++ 6 kernc ++ 6 mproszewska ++ 6 rbenes ++ 6 rebecca-palmer ++ 6 timmie ++ 6 tmnhat2001 ++ 5 Adam Obeng ++ 5 Addison Lynch ++ 5 Ajay Saxena ++ 5 Alan Velasco ++ 5 Andrew ++ 5 Ben Kandel ++ 5 Chapman Siu ++ 5 Clark Fitzgerald ++ 5 Clemens Brunner ++ 5 DataOmbudsman ++ 5 David Cottrell ++ 5 Deepyaman Datta ++ 5 Douglas McNeil ++ 5 Galuh Sahid ++ 5 Gjelt ++ 5 Janelle Zoutkamp ++ 5 Jon Mease ++ 5 Joris Vankerschaver ++ 5 Josh ++ 5 Ksenia ++ 5 Lars Buitinck ++ 5 LeakedMemory ++ 5 Marc Abramowitz ++ 5 Mark Wiebe ++ 5 Matti Picus ++ 5 Max Chen ++ 5 Nicholas Musolino ++ 5 Oğuzhan Öğreden ++ 5 Pauli Virtanen ++ 5 Prabakaran Kumaresshan ++ 5 Prakhar Pandey ++ 5 Roman Yurchak ++ 5 Sangwoong Yoon ++ 5 Scott E Lasley ++ 5 Stijn Van Hoey ++ 5 Sumanau Sareen ++ 5 Tao He ++ 5 Tarbo Fukazawa ++ 5 Ted Petrou ++ 5 Tomaz Berisa ++ 5 TrigonaMinima ++ 5 Troels Nielsen ++ 5 WANG Aiyong ++ 5 William Blan ++ 5 Yuichiro Kaneko ++ 5 avinashpancham ++ 5 benjamin ++ 5 dieterv77 ++ 5 dilex42 ++ 5 donK23 ++ 5 nrebena ++ 5 pv8493013j ++ 5 realead ++ 5 tshauck ++ 5 yui-knk ++ 4 Adam Greenhall ++ 4 Ali McMaster ++ 4 Alvaro Tejero-Cantero ++ 4 Andreas Würl ++ 4 Armin Varshokar ++ 4 Avi Sen ++ 4 Benjamin Thyreau ++ 4 Blake Hawkins ++ 4 Bob Haffner ++ 4 Brenda Moon ++ 4 Brett Naul ++ 4 Chalmer Lowe ++ 4 Cheuk Ting Ho ++ 4 Chris Billington ++ 4 Chris Warth ++ 4 Chris Zimmerman ++ 4 Christian Hudon ++ 4 DaanVanHauwermeiren ++ 4 Dan Miller ++ 4 Daniel Waeber ++ 4 Dave Hughes ++ 4 David Adrián Cañones Castellano ++ 4 Dražen Lučanin ++ 4 Erfan Nariman ++ 4 Erik ++ 4 Gianluca Rossi ++ 4 Giftlin Rajaiah ++ 4 Goyo ++ 4 Gregg Lind ++ 4 Guilherme Beltramini ++ 4 Henning Sperr ++ 4 Jacques Kvam ++ 4 James Myatt ++ 4 JennaVergeynst ++ 4 Jev Kuznetsov ++ 4 Jiang Yue ++ 4 Jim Crist ++ 4 John Zwinck ++ 4 Junya Hayashi ++ 4 Kevin Stone ++ 4 Krishna ++ 4 Kyle Meyer ++ 4 Laura Collard, PhD ++ 4 Loïc Estève ++ 4 Mabel Villalba ++ 4 Matias Heikkilä ++ 4 Matt Wittmann ++ 4 Matthew Gilbert ++ 4 Max van Deursen ++ 4 Nathan Abel ++ 4 Nicholas Ver Halen ++ 4 OXPHOS ++ 4 Olivier Grisel ++ 4 Oluokun Adedayo ++ 4 Paul Ivanov ++ 4 Ram Rachum ++ 4 Robert Gieseke ++ 4 Roger Thomas ++ 4 Samuel Sinayoko ++ 4 Shane Conway ++ 4 Shivam Rana ++ 4 Sofiane Mahiou ++ 4 Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) ++ 4 Stephen Rauch ++ 4 Stéphan Taljaard ++ 4 Thomas Li ++ 4 Trent Hauck ++ 4 Vincent La ++ 4 Vladimir Filimonov ++ 4 Vyomkesh Tripathi ++ 4 Will Holmgren ++ 4 akosel ++ 4 cel4 ++ 4 cgohlke ++ 4 chapman siu ++ 4 gliptak ++ 4 hugo ++ 4 kota matsuoka ++ 4 luzpaz ++ 4 robbuckley ++ 4 waitingkuo ++ 4 wcwagner ++ 3 Aaditya Panikath ++ 3 Abhijeet Krishnan ++ 3 Adam Hooper ++ 3 Aleksey Bilogur ++ 3 Alex Alekseyev ++ 3 Alexander Buchkovsky ++ 3 Alfonso MHC ++ 3 Alp Arıbal ++ 3 Andreas Winkler ++ 3 Angelos Evripiotis ++ 3 Aniruddha Bhattacharjee ++ 3 Anjana S ++ 3 Anthony Milbourne ++ 3 Anton I. Sipos ++ 3 Baurzhan Muftakhidinov ++ 3 Ben Welsh ++ 3 Benjamin Beier Liu ++ 3 Bhavani Ravi ++ 3 Big Head ++ 3 Brandon M. Burroughs ++ 3 Brock Mendel ++ 3 Caleb Epstein ++ 3 Carlos Souza ++ 3 Chris Bertinato ++ 3 Chris Mazzullo ++ 3 Christoph Gohlke ++ 3 Dave Hirschfeld ++ 3 David Krych ++ 3 Dillon Niederhut ++ 3 Doug Latornell ++ 3 Eric Chea ++ 3 Francesc Via ++ 3 Giacomo Ferroni ++ 3 Giftlin ++ 3 Grant Smith ++ 3 Guillaume Lemaitre ++ 3 Guillaume Poulin ++ 3 Hammad Mashkoor ++ 3 Haochen Wu ++ 3 Harshavardhan Bachina ++ 3 Hielke Walinga ++ 3 Hubert ++ 3 Hugues Valois ++ 3 Hyukjin Kwon ++ 3 Iain Barr ++ 3 Ingolf Becker ++ 3 Israel Saeta Pérez ++ 3 Ivan Nazarov ++ 3 Jack Bicknell ++ 3 Jake VanderPlas ++ 3 James Cobon-Kerr ++ 3 Jan Rudolph ++ 3 Jan-Philip Gehrcke ++ 3 Jared Groves ++ 3 Jean Helie ++ 3 Jean-Mathieu Deschenes ++ 3 Jeroen Kant ++ 3 Jesper Dramsch ++ 3 Jesse Farnham ++ 3 Joel Ostblom ++ 3 John Freeman ++ 3 Joon Ro ++ 3 Josh Dimarsky ++ 3 Josh Klein ++ 3 Josiah Baker ++ 3 Karmel Allison ++ 3 Kate Surta ++ 3 Keshav Ramaswamy ++ 3 Kyle Barron ++ 3 Liam3851 ++ 3 Louis Huynh ++ 3 MBrouns ++ 3 Marian Denes ++ 3 Markus Meier ++ 3 Martina Oefelein ++ 3 Mateusz ++ 3 Mathis Felardos ++ 3 Matt Braymer-Hayes ++ 3 Matteo Santamaria ++ 3 Matthew Brett ++ 3 Maximiliano Greco ++ 3 Mike Kutzma ++ 3 Mitar ++ 3 Myles Braithwaite ++ 3 Naomi Bonnin ++ 3 Nate Yoder ++ 3 Nick Pentreath ++ 3 Noam Hershtig ++ 3 Pamela Wu ++ 3 Patrick O'Brien ++ 3 Paul ++ 3 Piotr Niełacny ++ 3 Prasanjit Prakash ++ 3 Pulkit Maloo ++ 3 Randy Carnevale ++ 3 Riccardo Magliocchetti ++ 3 Richard Höchenberger ++ 3 Rik-de-Kort ++ 3 Robin ++ 3 Robin Wilson ++ 3 Ryan ++ 3 Safia Abdalla ++ 3 Sahil Dua ++ 3 SatheeshKumar Mohan ++ 3 Sebastian Bank ++ 3 Shorokhov Sergey ++ 3 Simon Gibbons ++ 3 Souvik Mandal ++ 3 Sparkle Russell-Puleri ++ 3 Stefania Delprete ++ 3 Stefano Cianciulli ++ 3 Thijs Damsma ++ 3 Tjerk Santegoeds ++ 3 Toby Dylan Hocking ++ 3 Tom Ajamian ++ 3 Tom Bird ++ 3 Victoria Zdanovskaya ++ 3 Yian ++ 3 Yoshiki Vázquez Baeza ++ 3 Zac Hatfield-Dodds ++ 3 adneu ++ 3 alphaCTzo7G ++ 3 anomrake ++ 3 davidshinn ++ 3 dengemann ++ 3 duozhang ++ 3 fjetter ++ 3 jdeschenes ++ 3 jen w ++ 3 joshuaar ++ 3 linebp ++ 3 lukasbk ++ 3 mcjcode ++ 3 miker985 ++ 3 nathalier ++ 3 ogiaquino ++ 3 partev ++ 3 prossahl ++ 3 rekcahpassyla ++ 3 ri938 ++ 3 smartvinnetou ++ 3 stonebig ++ 3 thatneat ++ 3 tv3141 ++ 3 unknown ++ 3 za ++ 3 zach powers ++ 2 Aaron Staple ++ 2 Achmad Syarif Hidayatullah ++ 2 Adam Bull ++ 2 Adam Marcus ++ 2 Adrian Mastronardi ++ 2 Aidan Montare ++ 2 Alex Chase ++ 2 Alex Gaudio ++ 2 Alex Hall ++ 2 Alex Volkov ++ 2 Alex Watt ++ 2 Alexander Michael Schade ++ 2 Allen Downey ++ 2 Andrew Burrows ++ 2 Andy ++ 2 Andy R. Terrel ++ 2 Angela Ambroz ++ 2 Anna Daglis ++ 2 Antoine Mazières ++ 2 Artem Bogachev ++ 2 Atsushi Nukariya ++ 2 Ayla Khan ++ 2 Batalex ++ 2 Ben Alex ++ 2 Ben Schiller ++ 2 Ben Thayer ++ 2 Benjamin Adams ++ 2 Bernard Willers ++ 2 Bhuvana KA ++ 2 Bill Letson ++ 2 Bobae Kim ++ 2 Camilo Cota ++ 2 Carol Willing ++ 2 Chamoun Saoma ++ 2 Charalampos Papaloizou ++ 2 Charles David ++ 2 Chris Grinolds ++ 2 Chris Reynolds ++ 2 Chris Stadler ++ 2 Chris Stoafer ++ 2 Christer van der Meeren ++ 2 Christian Chwala ++ 2 Christos Petropoulos ++ 2 CloseChoice ++ 2 Cody ++ 2 Dan Ringwalt ++ 2 Daniel Grady ++ 2 DanielFEvans ++ 2 Data & Code Expert Experimenting with Code on Data ++ 2 DavaIlhamHaeruzaman ++ 2 Dave Willmer ++ 2 David Arcos ++ 2 David Cook ++ 2 David Gwynne ++ 2 David Stansby ++ 2 Devin Petersohn ++ 2 Devjeet Roy ++ 2 Diane Trout ++ 2 Diego Argueta ++ 2 Dom ++ 2 Doran Deluz ++ 2 Douglas Rudd ++ 2 Dražen Lučanin ++ 2 Drew Seibert ++ 2 Dror Atariah ++ 2 EdAbati ++ 2 Eduardo Schettino ++ 2 Egor ++ 2 Egor Panfilov ++ 2 Elle ++ 2 Elliott Sales de Andrade ++ 2 Emiliano Jordan ++ 2 Eric Chlebek ++ 2 Fabian Retkowski ++ 2 Fabian Rost ++ 2 Fabio Zanini ++ 2 Fred Reiss ++ 2 Fábio Rosado ++ 2 Gabriel Corona ++ 2 Gabriel Tutui ++ 2 George Hartzell ++ 2 Geraint Duck ++ 2 Gina ++ 2 Gioia Ballin ++ 2 Giovanni Lanzani ++ 2 Graham Jeffries ++ 2 Grant Roch ++ 2 Guillaume Horel ++ 2 Hamed Saljooghinejad ++ 2 Hannah Ferchland ++ 2 Hassan Kibirige ++ 2 Henry Kleynhans ++ 2 How Si Wei ++ 2 HubertKl ++ 2 HyunTruth ++ 2 Hyungtae Kim ++ 2 Ian Eaves ++ 2 Ian Henriksen ++ 2 Iblis Lin ++ 2 Ignacio Santolin ++ 2 Ilya V. Schurov ++ 2 Ivan Smirnov ++ 2 JDkuba ++ 2 JMBurley ++ 2 Jack Kelly ++ 2 Jacopo Rota ++ 2 Jaehoon Hwang ++ 2 Jaidev Deshpande ++ 2 James Draper ++ 2 Jan Koch ++ 2 Jan Å koda ++ 2 Jaume Bonet ++ 2 Javad Noorbakhsh ++ 2 Jay Parlar ++ 2 Jeff Knupp ++ 2 Jeff Mellen ++ 2 Jeffrey Gerard ++ 2 Jethro Cao ++ 2 Jimmy Callin ++ 2 Jing Qiang Goh ++ 2 Joao Victor Martinelli ++ 2 Joaq Almirante ++ 2 Joe Bradish ++ 2 John David Reaver ++ 2 John G Evans ++ 2 John Liekezer ++ 2 John-Colvin ++ 2 Jon M. Mease ++ 2 Jonas Abernot ++ 2 Jonathan deWerd ++ 2 Jordi Contestí ++ 2 Jose Quinones ++ 2 Juarez Bochi ++ 2 Julia Evans ++ 2 Julia Signell ++ 2 Julien Danjou ++ 2 Jung Dong Ho ++ 2 Justin Bozonier ++ 2 Justin Lecher ++ 2 KOBAYASHI Ittoku ++ 2 Kamil Kisiel ++ 2 Kang Yoosam ++ 2 Kara de la Marck ++ 2 Karthigeyan ++ 2 Katrin Leinweber ++ 2 Kee Chong Tan ++ 2 Kevin Bowey ++ 2 Koustav Samaddar ++ 2 Kunal Gosar ++ 2 Kyle Kelley ++ 2 Kyle Prestel ++ 2 LJ ++ 2 Leif Johnson ++ 2 Leif Walsh ++ 2 Leo Razoumov ++ 2 Luca Scarabello ++ 2 Lucas Kushner ++ 2 Lucas Scarlato Astur ++ 2 Luke ++ 2 Mabroor Ahmed ++ 2 Mahmoud Lababidi ++ 2 Manan Pal Singh ++ 2 Manraj Singh ++ 2 Marc ++ 2 Marco Hemken ++ 2 Marco Neumann ++ 2 Margaret Sy ++ 2 Martina G. Vilas ++ 2 Mason Gallo ++ 2 Mats Maiwald ++ 2 Matt Maybeno ++ 2 Matthias Bussonnier ++ 2 Max Bolingbroke ++ 2 Maxim Veksler ++ 2 Michael ++ 2 Michael Charlton ++ 2 Michael Odintsov ++ 2 Michael Penkov ++ 2 Michael Schatzow ++ 2 Michael W Schatzow ++ 2 Miguel ++ 2 Min RK ++ 2 Mitch Negus ++ 2 Mohamed Amine ZGHAL ++ 2 Mohammad Hasnain Mohsin Rajan ++ 2 Monson Shao ++ 2 Natalie Jann ++ 2 Nathalie Rud ++ 2 Nathan Pinger ++ 2 Naveen Michaud-Agrawal ++ 2 Nick Chmura ++ 2 Nico Cernek ++ 2 Nicolas Dickreuter ++ 2 Nikhil Kumar Mengani ++ 2 Nipun Batra ++ 2 Oleg Shteynbuk ++ 2 Oliver Hofkens ++ 2 Ondrej Kokes ++ 2 Ondřej Čertík ++ 2 Paddy Mullen ++ 2 Pankaj Pandey ++ 2 Patrick Cando ++ 2 Patrick O'Keeffe ++ 2 Paul Ganssle ++ 2 Paul Lee ++ 2 Paul Sanders ++ 2 Pawel Kordek ++ 2 Pedro Reys ++ 2 Peter Prettenhofer ++ 2 Phan Duc Nhat Minh ++ 2 Philipp A ++ 2 Pierre Haessig ++ 2 Piotr Chromiec ++ 2 Piyush Aggarwal ++ 2 Rafal Skolasinski ++ 2 Rajib Mitra ++ 2 Ravi Kumar Nimmi ++ 2 Rick ++ 2 Rinoc Johnson ++ 2 Rob Levy ++ 2 Robert Meyer ++ 2 Roei.r ++ 2 Roger Erens ++ 2 Rohit Sanjay ++ 2 Roman Pekar ++ 2 Ronan Lamy ++ 2 Roshni ++ 2 RuiDC ++ 2 Ruijing Li ++ 2 Ryan Rehman ++ 2 Sam Cohan ++ 2 SanthoshBala18 ++ 2 Sarah Donehower ++ 2 Saul Shanabrook ++ 2 SaÅ¡o Stanovnik ++ 2 Scott Sanderson ++ 2 Seb ++ 2 Sebastián Vanrell ++ 2 Shadi Akiki ++ 2 Shahul Hameed ++ 2 Shantanu Gontia ++ 2 Sheppard, Kevin ++ 2 Sietse Brouwer ++ 2 Simon-Martin Schröder ++ 2 Simone Basso ++ 2 SleepingPills ++ 2 Soyoun(Rose) Kim ++ 2 Stefaan Lippens ++ 2 Stephen Childs ++ 2 Stephen Pascoe ++ 2 Stephen Simmons ++ 2 Steve Cook ++ 2 Suvayu Ali ++ 2 Tan Tran ++ 2 Tanya Jain ++ 2 Thiviyan Thanapalasingam ++ 2 Thomas J Fan ++ 2 Thomas Smith ++ 2 Tiago Antao ++ 2 Tiago Requeijo ++ 2 Tim D. Smith ++ 2 Tim Hoffmann ++ 2 Tobias Pitters ++ 2 Todd DeLuca ++ 2 Tomoyuki Suzuki ++ 2 Tony Lorenzo ++ 2 Tony Tao ++ 2 Travis N. Vaught ++ 2 Tushar Gupta ++ 2 Tushar Mittal ++ 2 Tux1 ++ 2 Tyler Reddy ++ 2 Valentin Haenel ++ 2 Varad Gunjal ++ 2 Victor Villas ++ 2 Vikram Bhandoh ++ 2 Vipul Rai ++ 2 Vu Le ++ 2 Vytautas Jančauskas ++ 2 WBare ++ 2 Wilfred Hughes ++ 2 Will Ayd ++ 2 Will Furnass ++ 2 WillAyd ++ 2 Wuraola Oyewusi ++ 2 Xbar ++ 2 Yan Facai ++ 2 Yimeng Zhang ++ 2 Yoav Ram ++ 2 Yuecheng Wu ++ 2 Zach Angell ++ 2 adatasetaday ++ 2 akittredge ++ 2 alm ++ 2 andresmcneill ++ 2 ante328 ++ 2 bashtage ++ 2 bjonen ++ 2 bolkedebruin ++ 2 broessli ++ 2 cgangwar11 ++ 2 charalampos papaloizou ++ 2 conquistador1492 ++ 2 csfarkas ++ 2 dahlbaek ++ 2 dan1261 ++ 2 danielplawrence ++ 2 dannyhyunkim ++ 2 david-liu-brattle-1 ++ 2 davidwales ++ 2 deflatSOCO ++ 2 discort ++ 2 dlovell ++ 2 dwkenefick ++ 2 elpres ++ 2 fjdiod ++ 2 froessler ++ 2 gabrielvf1 ++ 2 gdex1 ++ 2 ghasemnaddaf ++ 2 iamshwin ++ 2 ianzur ++ 2 jaimefrio ++ 2 jlamborn324 ++ 2 jmorris0x0 ++ 2 jonaslb ++ 2 keitakurita ++ 2 killerontherun1 ++ 2 kpapdac ++ 2 krsnik93 ++ 2 llllllllll ++ 2 louispotok ++ 2 mattip ++ 2 michaelws ++ 2 msund ++ 2 mtrbean ++ 2 neilkg ++ 2 nlepleux ++ 2 nsuresh ++ 2 nullptr ++ 2 ohad83 ++ 2 ottiP ++ 2 pedrooa ++ 2 phaebz ++ 2 priyankjain ++ 2 qudade ++ 2 reidy-p ++ 2 rjfs ++ 2 roch ++ 2 rvernica ++ 2 s-scherrer ++ 2 scotthavard92 ++ 2 springcoil ++ 2 srib ++ 2 ssikdar1 ++ 2 svenharris ++ 2 taeold ++ 2 tim smith ++ 2 tobycheese ++ 2 tolhassianipar ++ 2 tomneep ++ 2 tonywu1999 ++ 2 tsdlovell ++ 2 tzinckgraf ++ 2 westurner ++ 2 xpvpc ++ 2 yogendrasoni ++ 1 1_x7 ++ 1 3553x ++ 1 A Brooks ++ 1 A. Flaxman ++ 1 AJ Dyka ++ 1 AJ Pryor, Ph.D ++ 1 ARF ++ 1 Aaron Barber ++ 1 Aaron Schumacher ++ 1 Aaron Toth ++ 1 Abbie Popa ++ 1 AbdealiJK ++ 1 Acanthostega ++ 1 Adam Chainz ++ 1 Adam Gleave ++ 1 Adam Kim ++ 1 Adam Klaum ++ 1 Adam Klimont ++ 1 Adam Smith ++ 1 Adam W Bagaskarta ++ 1 AdamShamlian ++ 1 Adrian ++ 1 Adrian Liaw ++ 1 Adrien Emery ++ 1 Agustín Herranz ++ 1 Aivengoe ++ 1 Akash Tandon ++ 1 Akbar Septriyan ++ 1 Akos Furton ++ 1 Alan Du ++ 1 Alan Hogue ++ 1 Alan Yee ++ 1 Alastair James ++ 1 Alejandro Giacometti ++ 1 Alejandro Hall ++ 1 Alejandro Hohmann ++ 1 Aleksandr Drozd ++ 1 Alessandro Amici ++ 1 Alex B ++ 1 Alex Itkes ++ 1 Alex Lubbock ++ 1 Alex Marchenko ++ 1 Alex Radu ++ 1 Alex Strick van Linschoten ++ 1 Alex Vig ++ 1 AlexTereshenkov ++ 1 Alexander Hendorf ++ 1 Alexander Hess ++ 1 Alexander Lenail ++ 1 Alexander Nordin ++ 1 Alexandre Batisse ++ 1 Alexandre Decan ++ 1 Alexis Mignon ++ 1 Alfredo Granja ++ 1 Allen Riddell ++ 1 AllenDowney ++ 1 Allison Browne ++ 1 Alok Singhal ++ 1 Alvaro Aleman ++ 1 Alyssa Fu Ward ++ 1 Aman Thakral ++ 1 Amol ++ 1 Amol Agrawal ++ 1 Amol K ++ 1 Amol Kahat ++ 1 Amy Graham ++ 1 Andrea Bedini ++ 1 Andreas Buhr ++ 1 Andreas H. ++ 1 Andreas Klostermann ++ 1 Andreas Költringer ++ 1 Andrew Bui ++ 1 Andrew Fiore-Gartland ++ 1 Andrew Gaspari ++ 1 Andrew Gross ++ 1 Andrew Kittredge ++ 1 Andrew McPherson ++ 1 Andrew Munch ++ 1 Andrew Schonfeld ++ 1 Andrew Shumanskiy ++ 1 Andrew Spott ++ 1 Andrew Wood ++ 1 Andrew 亮 ++ 1 András Novoszáth ++ 1 André Jonasson ++ 1 Andy Craze ++ 1 Andy Li ++ 1 Anh Le ++ 1 Aniket uttam ++ 1 Anil Kumar Pallekonda ++ 1 Anjali Singh ++ 1 Ankit Dhankhar ++ 1 Anthony O'Brien ++ 1 Antoine Pitrou ++ 1 Antoine Viscardi ++ 1 Antonio Andraues Jr ++ 1 Antonio Gutierrez ++ 1 Antonio Linde ++ 1 Antonio Molina ++ 1 Antonio Quinonez ++ 1 Antony Lee ++ 1 Antti Kaihola ++ 1 Anudeep Tubati ++ 1 Arash Rouhani ++ 1 Arco Bast ++ 1 Arda Kosar ++ 1 Ari Sosnovsky ++ 1 Arjun Sharma ++ 1 Arkadeep Adhikari ++ 1 Arno Veenstra ++ 1 Arunim Samudra ++ 1 Ashish Singal ++ 1 Ashkan ++ 1 Ashwin Prakash Nalwade ++ 1 Ashwin Srinath ++ 1 Ashwini Chaudhary ++ 1 Asish Mahapatra ++ 1 Austin Hackett ++ 1 Avi Kelman ++ 1 Ayappan ++ 1 AyowoleT ++ 1 Azeez Oluwafemi ++ 1 Barry Fitzgerald ++ 1 Bart ++ 1 Bart Aelterman ++ 1 Bart Broere ++ 1 Bas Nijholt ++ 1 Bastiaan ++ 1 Bayle Shanks ++ 1 Becky Sweger ++ 1 Ben ++ 1 Ben Auffarth ++ 1 Ben James ++ 1 Ben Nelson ++ 1 Ben North ++ 1 Benjamin Fischer ++ 1 Benjamin Gross ++ 1 Benjamin Grove ++ 1 Benjamin M. Gross ++ 1 Benoit Paquet ++ 1 Benoit Pointet ++ 1 Benoît Vinot ++ 1 Berkay ++ 1 Bernhard Thiel ++ 1 Bhavesh Poddar ++ 1 BielStela ++ 1 Bill Chambers ++ 1 Bjorn Arneson ++ 1 Blair ++ 1 Bob Baxley ++ 1 Boris Lau ++ 1 BorisVerk ++ 1 Bradley Dice ++ 1 Brandon Rhodes ++ 1 BrenBarn ++ 1 Brendan Sullivan ++ 1 Brett Randall ++ 1 Brett Rosen ++ 1 Brian ++ 1 Brian Choi ++ 1 Brian Granger ++ 1 Brian J. McGuirk ++ 1 Brian Jacobowski ++ 1 Brian McFee ++ 1 Brian Quistorff ++ 1 Brian Strand ++ 1 Brian Tu ++ 1 Bruno P. Kinoshita ++ 1 Bryan Cutler ++ 1 Bryant Moscon ++ 1 Bryce Guinta ++ 1 C John Klehm ++ 1 C.A.M. Gerlach ++ 1 Caleb Braun ++ 1 Carl Johan ++ 1 Carlos Eduardo Moreira dos Santos ++ 1 Carlos García Márquez ++ 1 Carsten van Weelden ++ 1 Carter Green ++ 1 Cecilia ++ 1 Cesar H ++ 1 Chankey Pathak ++ 1 Charlie Clark ++ 1 Chase Albert ++ 1 Chau Hoang ++ 1 Chitrank Dixit ++ 1 Chris Burr ++ 1 Chris Carroux ++ 1 Chris Catalfo ++ 1 Chris Filo Gorgolewski ++ 1 Chris Gilmer ++ 1 Chris Ham ++ 1 Chris Kerr ++ 1 Chris M ++ 1 Chris Mulligan ++ 1 Chris Roberts ++ 1 Chris Withers ++ 1 ChrisRobo ++ 1 Christian Berendt ++ 1 Christian Geier ++ 1 Christian Haege ++ 1 Christian Perez ++ 1 Christian Prinoth ++ 1 Christian Stade-Schuldt ++ 1 Christoph Moehl ++ 1 Christoph Paulik ++ 1 Christopher Scanlin ++ 1 Chu Qing Hao ++ 1 Cihan Ceyhan ++ 1 Clearfield Christopher ++ 1 Clemens Tolboom ++ 1 Clément Robert ++ 1 Cody Piersall ++ 1 Colin ++ 1 Connor Charles ++ 1 Constantine Glen Evans ++ 1 Cornelius Riemenschneider ++ 1 Crystal Gong ++ 1 CuylenE ++ 1 D.S. McNeil ++ 1 Da Cheezy Mobsta ++ 1 Da Wang ++ 1 DaCoEx ++ 1 Damian Kula ++ 1 Damini Satya ++ 1 Dan Davison ++ 1 Dan Dixey ++ 1 DanBasson ++ 1 Daniel Chen ++ 1 Daniel Frank ++ 1 Daniel Garrido ++ 1 Daniel Hrisca ++ 1 Daniel Hähnke ++ 1 Daniel Julius Lasiman ++ 1 Daniel Luis Costa ++ 1 Daniel Ni ++ 1 Daniel Sakuma ++ 1 Daniel Shapiro ++ 1 Daniel Siladji ++ 1 Danilo Horta ++ 1 Darcy Meyer ++ 1 Darin Plutchok ++ 1 Dav Clark ++ 1 Dave Lewis ++ 1 David BROCHART ++ 1 David C Hall ++ 1 David Fischer ++ 1 David Hirschfeld ++ 1 David Hoese ++ 1 David Hoffman ++ 1 David John Gagne ++ 1 David Jung ++ 1 David Kelly ++ 1 David Liu ++ 1 David Lutz ++ 1 David Polo ++ 1 David Rasch ++ 1 David Read ++ 1 David Rouquet ++ 1 David S ++ 1 David Wolever ++ 1 David Zaslavsky ++ 1 DavidRosen ++ 1 Dean ++ 1 Dean Langsam ++ 1 Deepan Das ++ 1 Denis Belavin ++ 1 Dennis Bakhuis ++ 1 Dennis Kamau ++ 1 Diego Fernandez ++ 1 Diego Torres ++ 1 Dimitri ++ 1 Dimitris Spathis ++ 1 Dina ++ 1 Dmitry L ++ 1 Dobatymo ++ 1 Dody Suria Wijaya ++ 1 Dominik Stanczak ++ 1 Donald Curtis ++ 1 DorAmram ++ 1 Dorothy Kabarozi ++ 1 Dorozhko Anton ++ 1 Doug Coleman ++ 1 Dr. Leo ++ 1 DrIrv ++ 1 Drew Fustin ++ 1 Drew Heenan ++ 1 Drewrey Lupton ++ 1 Dylan Dmitri Gray ++ 1 ETF ++ 1 Eduardo Blancas Reyes ++ 1 Ehsan Azarnasab ++ 1 Eliza Mae Saret ++ 1 Elliot Marsden ++ 1 Elliot S ++ 1 Endre Mark Borza ++ 1 Ennemoser Christoph ++ 1 Enrico Rotundo ++ 1 Eric Boxer ++ 1 Eric Brassell ++ 1 Eric Groszman ++ 1 Eric Kisslinger ++ 1 Eric O. LEBIGOT (EOL) ++ 1 Eric Stein ++ 1 Eric Wieser ++ 1 Eric Wong ++ 1 Erik Fredriksen ++ 1 Erik Hasse ++ 1 Erik M. Bray ++ 1 Erik Nilsson ++ 1 Erkam Uyanik ++ 1 Ernesto Freitas ++ 1 EternalLearner42 ++ 1 Eunseop Jeong ++ 1 Evan ++ 1 Evan D ++ 1 Evan Kanter ++ 1 Evan Livelo ++ 1 Eyden Villanueva ++ 1 FAN-GOD ++ 1 Fabien Aulaire ++ 1 Fabrizio Pollastri ++ 1 Fakabbir Amin ++ 1 Fei Phoon ++ 1 Felix Divo ++ 1 Felix Lawrence ++ 1 Felix Marczinowski ++ 1 Fer Sar ++ 1 Fernando Margueirat ++ 1 Fernando Perez ++ 1 Filip Ter ++ 1 Flavien Lambert ++ 1 Florian Jetter ++ 1 Florian Müller ++ 1 Florian Rathgeber ++ 1 Florian Wilhelm ++ 1 Floris Kint ++ 1 ForTimeBeing ++ 1 Forbidden Donut ++ 1 FragLegs ++ 1 Francesc Alted ++ 1 Francesco Brundu ++ 1 Francesco Truzzi ++ 1 Frank Cleary ++ 1 Frank Hoang ++ 1 Frank Pinter ++ 1 Frans van Dunné ++ 1 Fumito Hamamura ++ 1 GYHHAHA ++ 1 Gabe F ++ 1 Gabe Fernando ++ 1 Gabi Davar ++ 1 Gabriel Araujo ++ 1 Gabriel Monteiro ++ 1 Gabriel Moreira ++ 1 Gabriel Reid ++ 1 Gabriel de Maeztu ++ 1 Gaibo Zhang ++ 1 Gaurav Chauhan ++ 1 Gaëtan de Menten ++ 1 George Kuan ++ 1 Georgi Baychev ++ 1 German Gomez-Herrero ++ 1 Gianpaolo Macario ++ 1 Gilberto Olimpio ++ 1 Gim Seng ++ 1 GiuPassarelli ++ 1 Giulio Pepe ++ 1 Giuseppe Romagnuolo ++ 1 Gordon Blackadder ++ 1 Gordon Chen ++ 1 Gosuke Shibahara ++ 1 Gouthaman Balaraman ++ 1 Graham R. Jeffries ++ 1 Graham Taylor ++ 1 Graham Wetzler ++ 1 Greg Reda ++ 1 Greg Williams ++ 1 Gregory Livschitz ++ 1 Grigorios Giannakopoulos ++ 1 Grzegorz Konefał ++ 1 Guilherme Leite ++ 1 Guilherme Salomé ++ 1 Guilherme Samora ++ 1 Guillem Borrell ++ 1 Guillem Sánchez ++ 1 Gyeongjae Choi ++ 1 HHest ++ 1 HagaiHargil ++ 1 Haleemur Ali ++ 1 Hamish Pitkeathly ++ 1 Hanmin Qin ++ 1 Hans ++ 1 Hao Wu ++ 1 Harsh Nisar ++ 1 Harshit Patni ++ 1 Harutaka Kawamura ++ 1 Hassan Shamim ++ 1 Hatem Nassrat ++ 1 Hendrik Makait ++ 1 Henry Hammond ++ 1 Hissashi Rocha ++ 1 Hsiaoming Yang ++ 1 Huan Li ++ 1 Hugo Herter ++ 1 Huize Wang ++ 1 Hussain Tamboli ++ 1 Ian Dunn ++ 1 Ian Hoegen ++ 1 Ibrahim Sharaf ElDen ++ 1 Ignacio Vergara Kausel ++ 1 Ignasi Fosch ++ 1 Igor Conrado Alves de Lima ++ 1 Igor Filippov ++ 1 Igor Shelvinskyi ++ 1 Illia Polosukhin ++ 1 Imanflow ++ 1 Inevitable-Marzipan ++ 1 Iqrar Agalosi Nureyza ++ 1 Isaac Schwabacher ++ 1 Isaac Slavitt ++ 1 Isaac Virshup ++ 1 IsvenC ++ 1 Iulius Curt ++ 1 Iva Koevska ++ 1 Iva Laginja ++ 1 Iva Miholic ++ 1 Ivan Bessarabov ++ 1 Iván Vallés Pérez ++ 1 JElfner ++ 1 Jack Greisman ++ 1 Jackie Leng ++ 1 Jacob Austin ++ 1 Jacob Buckheit ++ 1 Jacob Bundgaard ++ 1 Jacob Deppen ++ 1 Jacob Howard ++ 1 Jacob Peacock ++ 1 Jacob Wasserman ++ 1 Jake Tae ++ 1 Jake Torcasso ++ 1 Jake Vanderplas ++ 1 Jakob Jarmar ++ 1 Jakub Nowacki ++ 1 James Bourbeau ++ 1 James Casbon ++ 1 James Goppert ++ 1 James Hiebert ++ 1 James McBride ++ 1 James Santucci ++ 1 James Winegar ++ 1 Jan F-F ++ 1 Jan Novotný ++ 1 Jan Pipek ++ 1 Jan Wagner ++ 1 Jan Werkmann ++ 1 Jan Červenka ++ 1 Jane Chen ++ 1 Jarrod Millman ++ 1 Jason Bandlow ++ 1 Jason Kiley ++ 1 Jason Swails ++ 1 Jason Wolosonovich ++ 1 Jasper J.F. van den Bosch ++ 1 Javad ++ 1 Jay Alammar ++ 1 Jay Bourque ++ 1 Jay Offerdahl ++ 1 Jayanth Katuri ++ 1 Jean-Baptiste Schiratti ++ 1 Jean-Francois Zinque ++ 1 Jeanderson Barros Candido ++ 1 Jeff Blackburne ++ 1 Jeff Hammerbacher ++ 1 Jeffrey Starr ++ 1 Jenn Olsen ++ 1 Jeongmin Yu ++ 1 Jered Dominguez-Trujillo ++ 1 Jeremy Wagner ++ 1 Jerod Estapa ++ 1 Jesse Pardue ++ 1 Jihwan Song ++ 1 Jihyung Moon ++ 1 Jim ++ 1 Jim Jeon ++ 1 JimStearns206 ++ 1 Jimmy Woo ++ 1 Jinyang Zhou ++ 1 Joachim Wagner ++ 1 Joan Martin Miralles ++ 1 Joaquim L. Viegas ++ 1 Joerg Rittinger ++ 1 Joeun Park ++ 1 Johan von Forstner ++ 1 John ++ 1 John Bodley ++ 1 John Cant ++ 1 John Evans ++ 1 John Fremlin ++ 1 John Paton ++ 1 John Tucker ++ 1 John Ward ++ 1 Johnny ++ 1 Johnny Chiu ++ 1 Johnny Gill ++ 1 Johnny Metz ++ 1 Jon Crall ++ 1 Jon Thielen ++ 1 Jonas ++ 1 Jonas Buyl ++ 1 Jonas Hoersch ++ 1 Jonas Schulze ++ 1 Jonathan J. Helmus ++ 1 Jonathan Larkin ++ 1 Jonathan Whitmore ++ 1 Jonathan de Bruin ++ 1 Jonathon Vandezande ++ 1 Jongwony ++ 1 Joost Kranendonk ++ 1 Jop Vermeer ++ 1 Jordan Erenrich ++ 1 Jorge López Fueyo ++ 1 Joschka zur Jacobsmühlen ++ 1 Jose Manuel Martí ++ 1 Jose Rivera-Rubio ++ 1 Joseph Gulian ++ 1 JosephWagner ++ 1 Josh Friedlander ++ 1 Josh Howes ++ 1 Josh Levy-Kramer ++ 1 Josh Owen ++ 1 Joshua Bradt ++ 1 Joshua Leahy ++ 1 Joshua Smith ++ 1 Joshua Storck ++ 1 José F. R. Fonseca ++ 1 Jovixe ++ 1 Joy Bhalla ++ 1 Jozef Brandys ++ 1 João Veiga ++ 1 Julian Kuhlmann ++ 1 Julian Santander ++ 1 Julien Marrec ++ 1 Julio Martinez ++ 1 Jun ++ 1 Jun Kim ++ 1 Juraj Niznan ++ 1 Justin Berka ++ 1 Justin C Johnson ++ 1 Justin Cole ++ 1 Justin Essert ++ 1 Justin Lin ++ 1 Justin Solinsky ++ 1 Jörg Döpfert ++ 1 Júlio ++ 1 KD-dev-lab ++ 1 Kacawi ++ 1 Kamal Kamalaldin ++ 1 Kamil Sindi ++ 1 Kane ++ 1 Kapil Patel ++ 1 Karel De Brabandere ++ 1 Karl Dunkle Werner ++ 1 Karmanya Aggarwal ++ 1 Karrie Kehoe ++ 1 Karthik Mathur ++ 1 Kassandra Keeton ++ 1 Katherine Surta ++ 1 Katherine Younglove ++ 1 Katie Atkinson ++ 1 Kaushal Rohit ++ 1 Keiron Pizzey ++ 1 Keith Kraus ++ 1 Keith Webber ++ 1 Keming Zhang ++ 1 Ken Mankoff ++ 1 Ken Van Haren ++ 1 Kenneth ++ 1 Kenny Huynh ++ 1 Ketan ++ 1 Kevin Anderson ++ 1 Kevin Kuhl ++ 1 Kevin Markham ++ 1 Kevin Nguyen ++ 1 Kilian Lieret ++ 1 Kimi Li ++ 1 Kirk Hansen ++ 1 Kisekka David ++ 1 Kodi Arfer ++ 1 Koki Nishihara ++ 1 Koushik ++ 1 Krishna Chivukula ++ 1 Kristian Holsheimer ++ 1 Krzysztof Chomski ++ 1 Ksenia Bobrova ++ 1 Ksenia Gueletina ++ 1 Kurtis Kerstein ++ 1 Kyle ++ 1 Kyle Boone ++ 1 Kyle Hausmann ++ 1 Kyle Kosic ++ 1 Kyle McCahill ++ 1 Laksh Arora ++ 1 Larry Ren ++ 1 Laurens Geffert ++ 1 Laurent Gautier ++ 1 Leon Yin ++ 1 Lewis Cowles ++ 1 Li Jin ++ 1 Liam Marshall ++ 1 Linda Chen ++ 1 Line Pedersen ++ 1 Linxiao Wu ++ 1 LiuSeeker ++ 1 Liudmila ++ 1 Lorenzo Bolla ++ 1 Lorenzo Cestaro ++ 1 Lorenzo Stella ++ 1 Loïc Séguin-C ++ 1 Luca Donini ++ 1 Lucca Delchiaro Costabile ++ 1 Luciano Viola ++ 1 Ludovico Russo ++ 1 Luis Ortiz ++ 1 Luiz Gustavo ++ 1 Lukasz ++ 1 Luke Lee ++ 1 Luke Shepard ++ 1 Luo Yicheng ++ 1 MKhalusova ++ 1 Maarten Rietbergen ++ 1 Mac ++ 1 Maciej J ++ 1 Madhuri Palanivelu ++ 1 Magnus Jöud ++ 1 Mahdi Ben Jelloul ++ 1 Makarov Andrey ++ 1 Malcolm ++ 1 Malgorzata Turzanska ++ 1 Manu NALEPA ++ 1 Manuel Leonhardt ++ 1 Manuel Riel ++ 1 Maoyuan Liu ++ 1 Marco Farrugia ++ 1 Maria del Mar Bibiloni ++ 1 Mario Corchero ++ 1 Marius Potgieter ++ 1 Mark Mandel ++ 1 Mark O'Leary ++ 1 Mark Roth ++ 1 Mark Sikora ++ 1 Mark Woodbridge ++ 1 Marlene Silva Marchena ++ 1 MarsGuy ++ 1 Martin Babka ++ 1 Martin Bjeldbak Madsen ++ 1 Martin Durant ++ 1 Martin Fleischmann ++ 1 Martin Jones ++ 1 Martin Journois ++ 1 Marvzinc ++ 1 María Marino ++ 1 MasonGallo ++ 1 MatanCohe ++ 1 Matheus Cardoso ++ 1 Mathew Topper ++ 1 Matt Bark ++ 1 Matt Boggess ++ 1 Matt Cooper ++ 1 Matt Gambogi ++ 1 Matt Savoie ++ 1 Matt Suggit ++ 1 Matt Williams ++ 1 MattRijk ++ 1 Matteo Felici ++ 1 Matthew Kirk ++ 1 Matthew Lurie ++ 1 Matthew Rocklin ++ 1 Matthew Tan ++ 1 Matthias Kuhn ++ 1 Matthieu Brucher ++ 1 Matti Airas ++ 1 Max Chang ++ 1 Max Grender-Jones ++ 1 Max Halford ++ 1 Max Kanter ++ 1 Max Kovalovs ++ 1 Max Mikhaylov ++ 1 MaxU ++ 1 Mayank Asthana ++ 1 Mayank Bisht ++ 1 Megan Thong ++ 1 Mehmet Ali "Mali" Akmanalp ++ 1 Michael Davis ++ 1 Michael Droettboom ++ 1 Michael E. Gruen ++ 1 Michael Felt ++ 1 Michael Gasvoda ++ 1 Michael Lamparski ++ 1 Michael P. Moran ++ 1 Michael Röttger ++ 1 Michael Scherer ++ 1 Michael Selik ++ 1 Michael Silverstein ++ 1 Michael Waskom ++ 1 Michael-J-Ward ++ 1 Michelangelo D'Agostino ++ 1 Michiel Stock ++ 1 Mickaël Schoentgen ++ 1 Mie~~~ ++ 1 Miguel Marques ++ 1 Miguel Sánchez de León Peque ++ 1 Mike Cramblett ++ 1 Mike Graham ++ 1 Mikolaj Chwalisz ++ 1 Milo ++ 1 Min ho Kim ++ 1 MinGyo Jung ++ 1 MinRK ++ 1 Miroslav Å edivý ++ 1 Misha Veldhoen ++ 1 Mohammad Jafar Mashhadi ++ 1 Mohit Anand ++ 1 Monica ++ 1 Montana Low ++ 1 Moonsoo Kim ++ 1 Morgan Stuart ++ 1 Morgan243 ++ 1 Moritz Münst ++ 1 Morton Fox ++ 1 Moussa Taifi ++ 1 Muhammad Haseeb Tariq ++ 1 Mukul Ashwath Ram ++ 1 MusTheDataGuy ++ 1 Mykola Golubyev ++ 1 Nanda H Krishna ++ 1 Nate Armstrong ++ 1 Nate George ++ 1 Nathan Ford ++ 1 Nathan Sanders ++ 1 Nathan Typanski ++ 1 Nathanael ++ 1 Navreet Gill ++ 1 Nehil Jain ++ 1 Nicholas Stahl ++ 1 Nicholas Ursa ++ 1 Nick Burns ++ 1 Nick Foti ++ 1 Nick Garvey ++ 1 Nick Newman ++ 1 Nick Stahl ++ 1 Nico Schlömer ++ 1 Nigel Markey ++ 1 Niklas Weber ++ 1 Nikoleta Glynatsi ++ 1 Nikos Karagiannakis ++ 1 Nipun Sadvilkar ++ 1 Nis Martensen ++ 1 Noah ++ 1 Noah Spies ++ 1 Nolan Nichols ++ 1 Noora Husseini ++ 1 Noritada Kobayashi ++ 1 Noémi Éltető ++ 1 ObliviousParadigm ++ 1 Oktay Sabak ++ 1 Olga Lyashevska ++ 1 Olivier Bilodeau ++ 1 Olivier Harris ++ 1 Onno Eberhard ++ 1 Osman ++ 1 P-Tillmann ++ 1 Pablo Ambrosio ++ 1 Pan Deng / Zora ++ 1 Parfait G ++ 1 Pastafarianist ++ 1 Patrick ++ 1 Patrick Luo ++ 1 Patrick O'Melveny ++ 1 Patrick Park ++ 1 Patrik Hlobil ++ 1 Paul Lilley ++ 1 Paul Mannino ++ 1 Paul Masurel ++ 1 Paul Mestemaker ++ 1 Paul Reiners ++ 1 Paul Siegel ++ 1 Paul van Mulbregt ++ 1 Paula ++ 1 Paulo Roberto de Oliveira Castro ++ 1 Pav A ++ 1 Pearcekieser ++ 1 Pedro Larroy ++ 1 Peng Yu ++ 1 Pepe Flores ++ 1 Pete Huang ++ 1 Peter ++ 1 Peter Bull ++ 1 Peter Csizsek ++ 1 Peter Hoffmann ++ 1 Peter Quackenbush ++ 1 Peter Steinbach ++ 1 Peter Waller ++ 1 Peter Yanovich ++ 1 Petio Petrov ++ 1 Petr Baev ++ 1 Petra Chong ++ 1 Phil Kirlin ++ 1 Phil Ngo ++ 1 Phil Ruffwind ++ 1 Phil Schaf ++ 1 Philip Gura ++ 1 Philippe Ombredanne ++ 1 Pierre-Yves Bourguignon ++ 1 Piotr Kasprzyk ++ 1 Prabhjot Singh ++ 1 Pradyumna Reddy Chinthala ++ 1 Pranav Suri ++ 1 Prashant Anand ++ 1 Pratap Vardhan ++ 1 Priyanka Ojha ++ 1 Puneeth K ++ 1 Puneetha Pai ++ 1 Pyry Kovanen ++ 1 README Bot ++ 1 Rafael Jaimes III ++ 1 Rafif ++ 1 Raghav ++ 1 RahulHP ++ 1 Rajat ++ 1 Rajhans Jadhao ++ 1 Rajiv Bharadwaj ++ 1 Rakshit Naidu ++ 1 Ralph Bean ++ 1 Ray Bell ++ 1 Red ++ 1 Redonnet Louis ++ 1 RenzoBertocchi ++ 1 Rhys Parry ++ 1 Ricardo Alanis ++ 1 Richard Eames ++ 1 Richard Lewis ++ 1 Richard Shadrach ++ 1 Ridhwan Luthra ++ 1 Rishipuri ++ 1 Rob Forgione ++ 1 Rob deCarvalho ++ 1 Robert ++ 1 Robert Bradshaw ++ 1 Robert Gibboni ++ 1 Robert Kern ++ 1 Robin Kiplang'at ++ 1 RobinFiveWords ++ 1 Rodolfo Fernandez ++ 1 Rohan Pandit ++ 1 Rohith295 ++ 1 Rok Mihevc ++ 1 RomainSa ++ 1 Roman Imankulov ++ 1 Roman Khomenko ++ 1 Ror ++ 1 Ross Petchler ++ 1 Roy Keyes ++ 1 Roymprog ++ 1 Rupert Thompson ++ 1 Russell Smith ++ 1 Ryan Grout ++ 1 Ryan Hendrickson ++ 1 Ryan Joyce ++ 1 Ryszard T. Kaleta ++ 1 Rémy Léone ++ 1 Rüdiger Busche ++ 1 SAI SRAVAN MEDICHERLA ++ 1 SEUNG HOON, SHIN ++ 1 SHUBH CHATTERJEE ++ 1 Sakar Panta ++ 1 Sam Zhang ++ 1 Sami Salonen ++ 1 Samir Musali ++ 1 Samira-g-js ++ 1 Samuel Denny ++ 1 Samyak Jain ++ 1 Sandeep Pathak ++ 1 Sandrine Pataut ++ 1 Sandu Ursu ++ 1 Sanghee Kim ++ 1 Sangmin Park ++ 1 Sanjiv Lobo ++ 1 Santosh Kumar ++ 1 Sarah Bird ++ 1 Sarah Masud ++ 1 SarahJessica ++ 1 Sarma Tangirala ++ 1 Sasidhar Kasturi ++ 1 Saumitra Shahapure ++ 1 Schaer, Jacob C ++ 1 Scott Cole ++ 1 Scott Gigante ++ 1 Scott Lasley ++ 1 Scott McAllister ++ 1 Scott Talbert ++ 1 SdgJlbl ++ 1 Sean Chan ++ 1 Sebastian Berg ++ 1 Sebastian Gsänger ++ 1 Sebastian Pölsterl ++ 1 Sebastian Rubbert ++ 1 Senthil Palanisami ++ 1 Sereger13 ++ 1 Sergei Chipiga ++ 1 Sergei Ivko ++ 1 Sergey ++ 1 Sergey Kopylov ++ 1 Sergio Pascual ++ 1 Shannon Wang ++ 1 Sharad Vijalapuram ++ 1 Shashank Agarwal ++ 1 Shengpu Tang ++ 1 ShilpaSugan ++ 1 Shirish Kadam ++ 1 Shubham Chaudhary ++ 1 Shyam Saladi ++ 1 SiYoungOh ++ 1 Siddhesh Poyarekar ++ 1 Sidharthan Nair ++ 1 Simon Legner ++ 1 Simon Riddell ++ 1 SimonBaron ++ 1 Siu Kwan Lam ++ 1 Soham Tiwari ++ 1 Song Wenhao ++ 1 Sourav kumar ++ 1 Soyoun Kim ++ 1 Spencer Carrucciu ++ 1 Spencer Clark ++ 1 SplashDance ++ 1 Stefan van der Walt ++ 1 Stefano Miccoli ++ 1 Steffen Rehberg ++ 1 Steffen Schmitz ++ 1 Sten ++ 1 Stephen Cowley ++ 1 Stephen Kappel ++ 1 StephenVoland ++ 1 Sterling Paramore ++ 1 Steve Baker ++ 1 Steve Choi ++ 1 Steve Dower ++ 1 Steven ++ 1 Steven Cutting ++ 1 Stewart Henderson ++ 1 Stuart Berg ++ 1 Sudarshan Konge ++ 1 Sudeep ++ 1 SultanOrazbayev ++ 1 Sumin Byeon ++ 1 SurajH1 ++ 1 Sven ++ 1 Sylvain Corlay ++ 1 Sylvia ++ 1 Szymon Bednarek ++ 1 Sébastien de Menten ++ 1 Sören ++ 1 T N ++ 1 Taavi Burns ++ 1 Takuya N ++ 1 Talitha Pumar ++ 1 Tamas Nagy ++ 1 Tambe Tabitha Achere ++ 1 Tang Heyi ++ 1 Tanmay Daripa ++ 1 Tara Adiseshan ++ 1 Telt ++ 1 Terry Santegoeds ++ 1 Thiago Cordeiro da Fonseca ++ 1 Thiago Serafim ++ 1 ThibTrip ++ 1 Thomas Kluiters ++ 1 Thomas Lentali ++ 1 Thomas Wiecki ++ 1 Thoralf Gutierrez ++ 1 Thouis (Ray) Jones ++ 1 Thrasibule ++ 1 Tilen Kusterle ++ 1 Tim Akinbo ++ 1 Tim Cera ++ 1 Tim Gates ++ 1 Tim Hopper ++ 1 Tim McNamara ++ 1 Tirth Jain ++ 1 Tobias Gustafsson ++ 1 Tom ++ 1 Tom Farnbauer ++ 1 Tom Neep ++ 1 Tomasz Kluczkowski ++ 1 Tommy Lynch ++ 1 Tomáš Chvátal ++ 1 Tong Shen ++ 1 Travis ++ 1 Triple0 ++ 1 Tuan ++ 1 Tuhin Mahmud ++ 1 Tulio Casagrande ++ 1 Unprocessable ++ 1 Upkar Lidder ++ 1 Utkarsh Upadhyay ++ 1 Uwe ++ 1 Uwe Hoffmann ++ 1 Vadym Barda ++ 1 Valentin Iovene ++ 1 Vandana Iyer ++ 1 Vibhu Agarwal ++ 1 Victor Chaves ++ 1 Victor Maryama ++ 1 Victor Salgado ++ 1 Vijay Sai Mutyala ++ 1 Vijayant ++ 1 Vikas Pandey ++ 1 Vikram Shirgur ++ 1 Vikramjeet Das ++ 1 Vince W ++ 1 Vincent Davis ++ 1 Vinícius Figueiredo ++ 1 Vipin Kumar ++ 1 Vishwak Srinivasan ++ 1 Vishwam Pandya ++ 1 Vitória Helena ++ 1 Vivek ++ 1 Vladimir Berkutov ++ 1 Vladislav ++ 1 Vyom Jain ++ 1 Víctor Moron Tejero ++ 1 Weiwen Gu ++ 1 Weston Renoud ++ 1 Wieland Hoffmann ++ 1 Wiktor Tomczak ++ 1 Wil Tan ++ 1 Will Thompson ++ 1 William ++ 1 William Hogman ++ 1 Wilson Lin ++ 1 Winand ++ 1 Wouter De Coster ++ 1 XF ++ 1 Xiang Zhang ++ 1 YG-Riku ++ 1 YaOzI ++ 1 Yadunandan ++ 1 Yago González ++ 1 Yash Shukla ++ 1 Yasin A ++ 1 Yee Mey ++ 1 Yeojin Kim ++ 1 Yeongseon Choe ++ 1 Yevgeniy Grechka ++ 1 Yi Liu ++ 1 Yitzhak Andrade ++ 1 Yoann Goular ++ 1 Yoong Kang Lim ++ 1 Yosuke KOBAYASHI ++ 1 Yosuke Nakabayashi ++ 1 Young Joong Kim ++ 1 Yu Wang ++ 1 Yuan Tang (Terry) ++ 1 Yuliya Dovzhenko ++ 1 Yulong Yang ++ 1 Yury Bayda ++ 1 Yusei Tahara ++ 1 Yuval Langer ++ 1 Zach Dwiel ++ 1 Zachary Lawrence ++ 1 Zaky Bilfagih ++ 1 Zeb Nicholls ++ 1 Zeke ++ 1 Zihao Zhao ++ 1 aaron315 ++ 1 abaldenko ++ 1 abarber4gh ++ 1 aberres ++ 1 acorbe ++ 1 adrian-stepien ++ 1 aeltanawy ++ 1 aernlund ++ 1 agustín méndez ++ 1 ailchau ++ 1 ajenkins-cargometrics ++ 1 akielbowicz ++ 1 alex argunov ++ 1 alex arsenovic ++ 1 alexander135 ++ 1 alexandercbooth ++ 1 alinde1 ++ 1 amphy ++ 1 amuta ++ 1 andhikayusup ++ 1 andymaheshw ++ 1 ankostis ++ 1 anton-d ++ 1 araraonline ++ 1 atbd ++ 1 austinc ++ 1 avelineg ++ 1 aviolov ++ 1 azuranski ++ 1 azure-pipelines[bot] ++ 1 babakkeyvani ++ 1 bastewart ++ 1 benabel ++ 1 benarthur91 ++ 1 bernie gray ++ 1 bertrandhaut ++ 1 bganglia ++ 1 biddwan09 ++ 1 bk521234 ++ 1 bkandel ++ 1 bmagnusson ++ 1 bmu ++ 1 boombard ++ 1 bpraggastis ++ 1 bravech ++ 1 brian-pantano ++ 1 c123w ++ 1 carlosdanielcsantos ++ 1 cclauss ++ 1 chaimdemulder ++ 1 chappers ++ 1 charlie0389 ++ 1 chebee7i ++ 1 chernrick ++ 1 chinhwee ++ 1 chinskiy ++ 1 chromy ++ 1 claudiobertoldi ++ 1 cmazzullo ++ 1 conmai ++ 1 cr3 ++ 1 cruzzoe ++ 1 cxl923cc ++ 1 cyrusmaher ++ 1 d10genes ++ 1 dajcs ++ 1 dalgarno ++ 1 daniel ++ 1 daniellebrown ++ 1 darke-spirits ++ 1 david ++ 1 david-cortes ++ 1 davidjameshumphreys ++ 1 davidmvalente ++ 1 davidovitch ++ 1 daydreamt ++ 1 dequadras ++ 1 derestle-htwg ++ 1 dgram0 ++ 1 dhuettenmoser ++ 1 dickreuter ++ 1 dkamm ++ 1 dmanikowski-reef ++ 1 doosik_bae ++ 1 dr-leo ++ 1 dubourg ++ 1 dylanchase ++ 1 economy ++ 1 eduardo naufel schettino ++ 1 ejnens ++ 1 elmonsomiat ++ 1 elrubio ++ 1 emilydolson ++ 1 endenis ++ 1 engstrom ++ 1 enisnazif ++ 1 epizzigoni ++ 1 est271 ++ 1 euri10 ++ 1 evangelineliu ++ 1 ezcitron ++ 1 fabriziop ++ 1 faic ++ 1 fding253 ++ 1 fengyqf ++ 1 fivemok ++ 1 fl4p ++ 1 fleimgruber ++ 1 floydsoft ++ 1 flying-sheep ++ 1 francisco souza ++ 1 funnycrab ++ 1 gabrielclow ++ 1 ganego ++ 1 garanews ++ 1 gfr ++ 1 goldenbull ++ 1 guru kiran ++ 1 guygoldberg ++ 1 gwrome ++ 1 h-vishal ++ 1 hack-c ++ 1 haison ++ 1 hannah-c ++ 1 harisbal ++ 1 harshul1610 ++ 1 hasnain2808 ++ 1 hcontrast ++ 1 heckeop ++ 1 helger ++ 1 henriqueribeiro ++ 1 herrfz ++ 1 hesham.shabana@hotmail.com ++ 1 hhuuggoo ++ 1 hironow ++ 1 hongshaoyang ++ 1 hshimizu77 ++ 1 hsperr ++ 1 huashuai ++ 1 hunterowens ++ 1 iamsimha ++ 1 ian ++ 1 ignamv ++ 1 igorfassen ++ 1 iulia ++ 1 jackieleng ++ 1 jalazbe ++ 1 jalbritt ++ 1 jamesoliverh ++ 1 jamin-aws-ospo ++ 1 jaredsnyder ++ 1 jayfoad ++ 1 jazzmuesli ++ 1 jebob ++ 1 jeps-journal ++ 1 jeschwar ++ 1 jfcorbett ++ 1 jfoo ++ 1 jh-wu ++ 1 jjames34 ++ 1 jkovacevic ++ 1 jnecus ++ 1 jniznan ++ 1 joaoavf ++ 1 joders ++ 1 jojomdt ++ 1 josham ++ 1 joy-rosie ++ 1 jsexauer ++ 1 juan huguet ++ 1 juricast ++ 1 justinchan23 ++ 1 kaustuv deolal ++ 1 kdiether ++ 1 kiwirob ++ 1 kjford ++ 1 klonuo ++ 1 knuu ++ 1 kotrfa ++ 1 kpflugshaupt ++ 1 krey ++ 1 ksanghai ++ 1 kylekeppler ++ 1 l736x ++ 1 larvian ++ 1 leandermaben ++ 1 leerssej ++ 1 lenolib ++ 1 lexy-lixinyu ++ 1 lgautier ++ 1 link2xt ++ 1 lloydkirk ++ 1 lodagro ++ 1 lrjball ++ 1 lucas ++ 1 lucyleeow ++ 1 maheshbapatu ++ 1 majiang ++ 1 manikbhandari ++ 1 manoj_koneni ++ 1 manu ++ 1 manuels ++ 1 marcosrullan ++ 1 marydmit ++ 1 masterpiga ++ 1 matthiashuschle ++ 1 mattrijk ++ 1 maxalbert ++ 1 maximilianr ++ 1 maxwasserman ++ 1 mazayo ++ 1 mck619 ++ 1 mcocdawc ++ 1 mdeboc ++ 1 mgilbert ++ 1 mglasder ++ 1 miguelmorin ++ 1 mikebailey ++ 1 miquelcamprodon ++ 1 mjlove12 ++ 1 moaraccounts ++ 1 monicaBee ++ 1 mpuels ++ 1 mschmohl ++ 1 mwaskom ++ 1 naveenkaushik2504 ++ 1 nicolab100 ++ 1 nileracecrew ++ 1 nmartensen ++ 1 nprad ++ 1 nuffe ++ 1 ojdo ++ 1 omtinez ++ 1 orereta ++ 1 ossdev07 ++ 1 paihu ++ 1 pajachiet ++ 1 pallav-fdsi ++ 1 pan Jacek ++ 1 pandas-docs-bot ++ 1 parchd-1 ++ 1 paul-mannino ++ 1 pbreach ++ 1 peadarcoyle ++ 1 peterpanmj ++ 1 philipphanemann ++ 1 pijucha ++ 1 pizzathief ++ 1 pmaxey83 ++ 1 pqzx ++ 1 ptype ++ 1 pvanhauw ++ 1 rafarui ++ 1 raguiar2 ++ 1 ranarag ++ 1 raph-m ++ 1 ratijas ++ 1 rdk1024 ++ 1 readyready15728 ++ 1 rhstanton ++ 1 ribonoous ++ 1 rmihael ++ 1 rmunjal29 ++ 1 robertzk ++ 1 rs2 ++ 1 ruiann ++ 1 s-weigand ++ 1 sage ++ 1 sagungrp ++ 1 sakkemo ++ 1 salem3358 ++ 1 saloni30 ++ 1 samghelms ++ 1 sangarshanan ++ 1 sanguineturtle ++ 1 sardonick ++ 1 saskakarsi ++ 1 saurav2608 ++ 1 scriptomation ++ 1 seales ++ 1 sfoo ++ 1 shaido987 ++ 1 shawnbrown ++ 1 sideeye ++ 1 silentquasar ++ 1 skwbc ++ 1 smartswdeveloper ++ 1 someben ++ 1 stahlous ++ 1 stas-sl ++ 1 stefansimik ++ 1 step4me ++ 1 stephenwlin ++ 1 steveayers124 ++ 1 stijnvanhoey ++ 1 sudhir mohanraj ++ 1 surveymedia.ca ++ 1 svaksha ++ 1 syutbai ++ 1 tadashigaki ++ 1 tadeja ++ 1 tamuhey ++ 1 testvinder ++ 1 thauck ++ 1 the-nose-knows ++ 1 theandygross ++ 1 themrmax ++ 1 thuske ++ 1 timcera ++ 1 timhunderwood ++ 1 tlaytongoogle ++ 1 tom-alcorn ++ 1 tomascassidy ++ 1 tomrod ++ 1 tworec ++ 1 venkateshdatta1993 ++ 1 verakai ++ 1 vivikelapoutre ++ 1 vkk800 ++ 1 vytas ++ 1 wandersoncferreira ++ 1 watercrossing ++ 1 wavedatalab ++ 1 willbowditch ++ 1 willweil ++ 1 winlu ++ 1 xgdgsc ++ 1 yehia67 ++ 1 yelite ++ 1 yhaque1213 ++ 1 ym-pett ++ 1 yrhooke ++ 1 ysau ++ 1 ywpark1 ++ 1 zachcp ++ 1 zaki-indra ++ 1 zertrin ++ 1 zhanghui ++ 1 zhangjinjie ++ 1 zhezherun ++ 1 znmean ++ 1 zys5945 ++ 1 zzgao ++ 1 Åsmund Hjulstad ++ 1 Øystein S. Haaland ++ 1 颜发才(Yan Facai) ++ ++Debian packaging ++ 323 Yaroslav Halchenko ++ 256 Rebecca N. Palmer ++ 49 Mo Zhou ++ 25 Andreas Tille ++ 25 Graham Inggs ++ 4 Dmitry Shachnev ++ 2 Julian Taylor ++ 2 Yaroslav O Halchenko ++ 1 Diane Trout ++ 1 Ole Streicher diff --cc debian/control index 00000000,00000000..0a36ce7f new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,179 @@@ ++Source: pandas ++Section: python ++Priority: optional ++Maintainer: Debian Science Team ++Uploaders: Yaroslav Halchenko , ++ Michael Hanke , ++ Rebecca N. Palmer ++Build-Depends: debhelper-compat (= 13), ++ dh-python, ++ locales-all, ++ python3-all-dev, ++ cython3 (>= 0.29.21~), ++ python3-bottleneck (>= 1.2.1~) , ++ python3-bs4 , ++ python3-dask (>= 2.10.1~) , ++ python3-dateutil (>= 2.7.3~), ++ python3-html5lib , ++ python3-hypothesis , ++ python3-jinja2 , ++ python3-lxml , ++ python3-matplotlib [!ia64 !sh4 !x32] , ++# armel, s390x numba crash, mipsel gives wrong answer, most ports don't have numba ++# re-add when #972246 is fixed python3-numba (>= 0.46.0~) [amd64 arm64 armhf i386 mips64el mipsel ppc64el s390x] , ++ python3-numexpr (>= 2.6.2~) [!kfreebsd-any !sparc64] , ++ python3-numpy, ++ python3-odf , ++ python3-openpyxl , ++# upstream actually want pytest >= 5.0.1 but we don't have that in testing ++ python3-pytest (>= 4.0.2~) , ++ python3-pytest-asyncio , ++ python3-pytest-forked , ++ python3-pytest-xdist (>= 1.21~) , ++ python3-scipy, ++ python3-setuptools, ++ python3-six, ++ python3-tables (>= 3.4.3~) , ++ python3-tabulate (>= 0.8.3~) , ++ python3-tk , ++ python3-tz , ++# broken - #976620 python3-xlrd , ++ python3-xlsxwriter , ++ python3-xlwt , ++ sphinx-common, ++ xvfb , ++ xauth , ++ xclip , ++Build-Depends-Indep: ++ python3-sphinx , ++ python3-ipykernel , ++ python3-nbconvert (>= 5.4.1~) , ++ python3-nbsphinx , ++ python3-numpydoc , ++ ipython3 (>= 7.11.1~) , ++ jdupes , ++# for style.ipynb ++ pandoc , ++# for intersphinx inventories ++ python3-doc , ++ python-numpy-doc , ++ python-scipy-doc , ++ python-matplotlib-doc , ++ python-statsmodels-doc , ++# these are for not having (as many) exception messages in documentation examples ++# so may be temporarily removed if they are broken or to break bootstrap cycles ++# not in Debian (not to be confused with python3-arrow) python3-pyarrow , ++ python3-ipywidgets , ++ python3-rpy2 , ++ python3-seaborn , ++ python3-sqlalchemy , ++ python3-statsmodels , ++ python3-xarray , ++Standards-Version: 4.5.1 ++Rules-Requires-Root: no ++Homepage: https://pandas.pydata.org/ ++Vcs-Browser: https://salsa.debian.org/science-team/pandas ++Vcs-Git: https://salsa.debian.org/science-team/pandas.git ++ ++Package: python3-pandas ++Architecture: all ++Depends: ${misc:Depends}, ${python3:Depends}, ++ python3-numpy (>= 1:1.15~), ++ python3-dateutil (>= 2.7.3~), ++ python3-pandas-lib (>= ${source:Upstream-Version}), ++# should maybe have a python3-pandas-lib (<< ${source:Upstream-Version}.0), as well, but that leaves arch:all BD-Uninstallable if arch:amd64 builds first ++ python3-pkg-resources, ++ python3-six, ++Recommends: python3-scipy, ++ python3-matplotlib, ++ python3-tz, ++# for faster processing ++# see -lib for python3-numba ++ python3-bottleneck, ++ python3-numexpr, ++# for spreadsheet I/O ++ python3-odf, ++ python3-openpyxl, ++# broken - #976620 python3-xlrd, ++ python3-xlwt, ++# for HTML table I/O ++ python3-bs4, ++ python3-html5lib, ++ python3-lxml, ++# for HDF5 I/O ++ python3-tables, ++# for styled output ++ python3-jinja2, ++Suggests: python-pandas-doc, ++ python3-statsmodels ++Breaks: ++# 0.23 -> 0.25 API breaks, #931557 ++ cnvkit (<< 0.9.6-2~), ++# 0.25 -> 1.0 API breaks, #950430 ++ python3-biom-format (<< 2.1.8+dfsg-3.1~), ++ python3-feather-format (<< 0.3.1+dfsg1-4~), ++ python3-statsmodels (<< 0.11.0~), ++ python3-seaborn (<< 0.9.1~), ++ q2-demux (<< 2019.10.0-1.1~), ++ q2templates (<< 2019.10.0+dfsg-1.1~), ++ q2-types (<< 2019.10.0-1.1~), ++# 1.0 -> 1.1 API breaks, #969650 ++ python3-dask (<< 2.11.0+dfsg-1.1~), ++ python3-skbio (<< 0.5.6-3~) ++Description: data structures for "relational" or "labeled" data ++ pandas is a Python package providing fast, flexible, and expressive ++ data structures designed to make working with "relational" or ++ "labeled" data both easy and intuitive. It aims to be the fundamental ++ high-level building block for doing practical, real world data ++ analysis in Python. pandas is well suited for many different kinds of ++ data: ++ . ++ - Tabular data with heterogeneously-typed columns, as in an SQL ++ table or Excel spreadsheet ++ - Ordered and unordered (not necessarily fixed-frequency) time ++ series data. ++ - Arbitrary matrix data (homogeneously typed or heterogeneous) with ++ row and column labels ++ - Any other form of observational / statistical data sets. The data ++ actually need not be labeled at all to be placed into a pandas ++ data structure ++ . ++ This package contains the Python 3 version. ++ ++Package: python-pandas-doc ++Architecture: all ++Section: doc ++Depends: ${misc:Depends}, ++ ${sphinxdoc:Depends} ++Suggests: python3-pandas ++Description: data structures for "relational" or "labeled" data - documentation ++ pandas is a Python package providing fast, flexible, and expressive ++ data structures designed to make working with "relational" or ++ "labeled" data both easy and intuitive. It aims to be the fundamental ++ high-level building block for doing practical, real world data ++ analysis in Python. pandas is well suited for many different kinds of ++ data: ++ . ++ - Tabular data with heterogeneously-typed columns, as in an SQL ++ table or Excel spreadsheet ++ - Ordered and unordered (not necessarily fixed-frequency) time ++ series data. ++ - Arbitrary matrix data (homogeneously typed or heterogeneous) with ++ row and column labels ++ - Any other form of observational / statistical data sets. The data ++ actually need not be labeled at all to be placed into a pandas ++ data structure ++ . ++ This package contains the documentation. ++ ++Package: python3-pandas-lib ++Architecture: any ++Multi-Arch: same ++Depends: ${misc:Depends}, ${shlibs:Depends}, ${python3:Depends}, python3-numpy (>=1:1.15~) ++# this is here to allow it to be arch-specific, to avoid numba bugs on other architectures ++Recommends: python3-numba [amd64] ++Description: low-level implementations and bindings for pandas ++ This is a low-level package for python3-pandas providing ++ architecture-dependent extensions. ++ . ++ Users should not need to install it directly. diff --cc debian/copyright index 00000000,00000000..75838fae new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,733 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Upstream-Name: pandas ++Upstream-Contact: pandas-dev@python.org ++Source: https://github.com/pandas-dev/pandas ++Files-Excluded: doc/source/user_guide/cookbook.rst ++Comment: cookbook has around 100 Stack Overflow snippets (CC-BY-SA with possibly inadequate attribution), the Google pandas/io/auth.py referred to in LICENSES/OTHER was removed in upstream commit 1bad601 ++ ++Files: * ++Copyright: 2008-2011 AQR Capital Management, LLC ++ 2011 Wes McKinney and pandas developers ++ 2011-2020 Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 ++Comment: The original source contains some CC-BY-SA snippets by Stack Overflow users (https://stackoverflow.com/users/1114/jeremy-banks, https://stackoverflow.com/users/387251/oliver, https://stackoverflow.com/users/3297752/noah-motion, https://stackoverflow.com/users/925671/bill, https://stackoverflow.com/users/1082349/foobar, https://stackoverflow.com/users/3089209/crantila, https://stackoverflow.com/users/2375855/ojdo, https://stackoverflow.com/users/487339/dsm, https://stackoverflow.com/users/2677943/swenzel), but these may be too small to be copyrightable, and the less trivial ones are patched out in this package ++ ++Files: doc/sphinxext/* ++Copyright: 2008, Stefan van der Walt , Pauli Virtanen ++License: BSD-2 ++ ++Files: doc/sphinxext/announce.py ++Copyright: 2001-2017 Enthought, Inc. and SciPy Developers. ++ 2017-2020 Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 ++Comment: it is possible that other code was also taken from Scipy ++ ++Files: pandas/_libs/src/headers/portable.h ++Copyright: 2005-2014 Rich Felker and contributors ++ 2008-2019, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team ++License: Expat and BSD-3 ++Origin: musl (partly) ++Comment: this might or might not be from a public domain part of musl ++ ++Files: pandas/_libs/src/headers/ms_* ++Copyright: 2006-2008 Alexander Chemeris ++License: BSD-3 ++ ++Files: pandas/_libs/src/klib/* ++Copyright: 2008, 2009, 2011 by Attractive Chaos ++License: Expat ++ ++Files: pandas/_libs/src/parser/tokenizer.* ++Copyright: 2002 Michael Ringgaard ++ 2011-2012 Warren Weckesser ++ 2001-2012 Python Software Foundation and Python contributors ++ 2012-2020 Lambda Foundry, Inc. and PyData Development Team ++License: Python and BSD-3 ++Origin: csv (Python standard library), github.com/WarrenWeckesser/textreader ++ ++Files: pandas/_libs/src/skiplist.h ++Copyright: 2009, Raymond Hettinger ++ 2011-2020 Wes McKinney and PyData Development Team ++License: Expat and BSD-3 ++Origin: http://code.activestate.com/recipes/576930/ ++Comment: it is a Cython code "inspired" by the original Python code by Raymond ++ ++Files: pandas/_libs/src/ujson/* ++Copyright: 1988-1993 The Regents of the University of California ++ 1994 Sun Microsystems, Inc. ++ 2007 Nick Galbreath ++ 2011-2013 ESN Social Software AB and Jonas Tarnstrom ++ 2012-2020 Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 and Expat ++Origin: ultrajson ++ ++Files: pandas/_libs/tslibs/parsing.pyx ++Copyright: 2003-2011 - Gustavo Niemeyer ++ 2012-2014 - Tomi Pieviläinen ++ 2014-2016 - Yaron de Leeuw ++ 2015-2017 - Paul Ganssle ++ 2015-2017 - dateutil contributors (see AUTHORS file) ++ 2008-2020, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 ++Origin: dateutil (partly) ++ ++Files: pandas/_libs/tslibs/src/datetime/* ++Copyright: 2005-2013, NumPy Developers ++License: BSD-3 ++Origin: numpy ++Comment: Listed as derived from Numpy 1.7 ++ ++Files: pandas/_libs/window/aggregations.pyx ++ pandas/tests/window/moments/test_moments_rolling.py ++Copyright: 2010-2012 Archipel Asset Management AB ++ 2011-2020 Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 ++Origin: bottleneck (partly) ++Comment: Original was BSD-2, but BSD-2 and BSD-3 = BSD-3 ++ ++Files: pandas/compat/* ++Copyright: 2010-2013 Benjamin Peterson ++ 2012-2020 Lambda Foundry, Inc. and PyData Development Team ++License: Expat and BSD-3 ++Origin: six ++ ++Files: pandas/core/accessor.py ++Copyright: 2014-2018 xarray developers ++ 2018-2020 Lambda Foundry, Inc. and PyData Development Team ++License: Apache-2.0 and BSD-3 ++Origin: xarray (partly) ++ ++Files: pandas/io/clipboard/* ++Copyright: 2010-2017 Albert Sweigart and Pyperclip contributors ++ 2016-2020 Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 ++Origin: Pyperclip ++ ++Files: pandas/io/sas/sas7bdat.py ++Copyright: 2015 Jared Hobbs ++ 2016-2020 Lambda Foundry, Inc. and PyData Development Team ++Origin: https://bitbucket.org/jaredhobbs/sas7bdat ++License: Expat ++ ++Files: pandas/tests/io/data/html/banklist.html ++ pandas/tests/io/data/csv/banklist.csv ++ pandas/tests/io/data/html/spam.html ++Copyright: None; by Federal Deposit Insurance Corporation and US Department of Agriculture ++License: public-domain ++ ++Files: pandas/tests/io/data/html/wikipedia_states.html ++Copyright: 2002-2014 Wikipedia contributors (full list: https://en.wikipedia.org/w/index.php?title=List_of_U.S._states_and_territories_by_area&offset=20140630&action=history) ++License: CC-BY-SA-3.0 ++ ++Files: pandas/tests/io/data/spss/* ++Copyright: 2019 Hadley Wickham; RStudio; and Evan Miller ++License: Expat ++Origin: https://haven.tidyverse.org ++ ++Files: setup.py ++Copyright: 2009-2012, Brian Granger, Min Ragan-Kelley (from pyzmq) ++ 2004 Infrae (from lxml) ++ 2008-2020, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team ++License: BSD-3 ++ ++Files: debian/* ++Copyright: 2011-2018, Yaroslav Halchenko ++ 2019-2020, Debian Science Team ++License: BSD-3 ++ ++License: BSD-2 ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are ++ met: ++ . ++ 1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ 2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++License: BSD-3 ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are ++ met: ++ . ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above ++ copyright notice, this list of conditions and the following ++ disclaimer in the documentation and/or other materials provided ++ with the distribution. ++ * Neither the name of the copyright holder nor the names of any ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++License: Expat ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ "Software"), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ . ++ The above copyright notice and this permission notice shall be ++ included in all copies or substantial portions of the Software. ++ . ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ SOFTWARE. ++ ++License: Apache-2.0 ++ Licensed under the Apache License, Version 2.0 (the "License"); ++ you may not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ . ++ http://www.apache.org/licenses/LICENSE-2.0 ++ . ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. ++ . ++ On Debian systems full text of the license could be found in ++ /usr/share/common-licenses/Apache-2.0 . ++ ++License: Python ++ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 ++ -------------------------------------------- ++ . ++ 1. This LICENSE AGREEMENT is between the Python Software Foundation ++ ("PSF"), and the Individual or Organization ("Licensee") accessing and ++ otherwise using this software ("Python") in source or binary form and ++ its associated documentation. ++ . ++ 2. Subject to the terms and conditions of this License Agreement, PSF hereby ++ grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, ++ analyze, test, perform and/or display publicly, prepare derivative works, ++ distribute, and otherwise use Python alone or in any derivative version, ++ provided, however, that PSF's License Agreement and PSF's notice of copyright, ++ i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ++ Python Software Foundation; All Rights Reserved" are retained in Python alone or ++ in any derivative version prepared by Licensee. ++ . ++ 3. In the event Licensee prepares a derivative work that is based on ++ or incorporates Python or any part thereof, and wants to make ++ the derivative work available to others as provided herein, then ++ Licensee hereby agrees to include in any such work a brief summary of ++ the changes made to Python. ++ . ++ 4. PSF is making Python available to Licensee on an "AS IS" ++ basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR ++ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND ++ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS ++ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT ++ INFRINGE ANY THIRD PARTY RIGHTS. ++ . ++ 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON ++ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS ++ A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, ++ OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. ++ . ++ 6. This License Agreement will automatically terminate upon a material ++ breach of its terms and conditions. ++ . ++ 7. Nothing in this License Agreement shall be deemed to create any ++ relationship of agency, partnership, or joint venture between PSF and ++ Licensee. This License Agreement does not grant permission to use PSF ++ trademarks or trade name in a trademark sense to endorse or promote ++ products or services of Licensee, or any third party. ++ . ++ 8. By copying, installing or otherwise using Python, Licensee ++ agrees to be bound by the terms and conditions of this License ++ Agreement. ++ ++License: public-domain ++ US federal government works ++ ++License: CC-BY-SA-3.0 ++ Creative Commons Attribution-ShareAlike 3.0 Unported ++ . ++ . ++ . ++ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS ++ LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON ++ AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, ++ AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. ++ . ++ License ++ . ++ . ++ . ++ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ++ ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE ++ LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS ++ PROHIBITED. ++ . ++ BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS ++ LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE ++ RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. ++ . ++ . ++ . ++ . ++ . ++ 1. ++ Definitions ++ . ++ . ++ . ++ . ++ a. ++ "Adaptation" means a work based upon the Work, or upon the Work and other ++ pre-existing works, such as a translation, adaptation, derivative work, arrangement of ++ music or other alterations of a literary or artistic work, or phonogram or performance and ++ includes cinematographic adaptations or any other form in which the Work may be recast, ++ transformed, or adapted including in any form recognizably derived from the original, ++ except that a work that constitutes a Collection will not be considered an Adaptation for ++ the purpose of this License. For the avoidance of doubt, where the Work is a musical work, ++ performance or phonogram, the synchronization of the Work in timed-relation with a moving ++ image ("synching") will be considered an Adaptation for the purpose of this ++ License. ++ . ++ . ++ . ++ b. ++ "Collection" means a collection of literary or artistic works, such as ++ encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works ++ or subject matter other than works listed in Section 1(f) below, which, by reason of the ++ selection and arrangement of their contents, constitute intellectual creations, in which ++ the Work is included in its entirety in unmodified form along with one or more other ++ contributions, each constituting separate and independent works in themselves, which ++ together are assembled into a collective whole. A work that constitutes a Collection will ++ not be considered an Adaptation (as defined below) for the purposes of this License. ++ . ++ . ++ . ++ c. ++ "Creative Commons Compatible License" means a license that is listed at ++ http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons ++ as being essentially equivalent to this License, including, at a minimum, because that ++ license: (i) contains terms that have the same purpose, meaning and effect as the License ++ Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of ++ works made available under that license under this License or a Creative Commons ++ jurisdiction license with the same License Elements as this License. ++ . ++ . ++ . ++ d. ++ "Distribute" means to make available to the public the original and copies of the ++ Work or Adaptation, as appropriate, through sale or other transfer of ownership. ++ . ++ . ++ . ++ e. ++ "License Elements" means the following high-level license attributes as selected by ++ Licensor and indicated in the title of this License: Attribution, ShareAlike. ++ . ++ . ++ . ++ f. ++ "Licensor" means the individual, individuals, entity or entities that offer(s) the ++ Work under the terms of this License. ++ . ++ . ++ . ++ g. ++ "Original Author" means, in the case of a literary or artistic work, the ++ individual, individuals, entity or entities who created the Work or if no individual or ++ entity can be identified, the publisher; and in addition (i) in the case of a performance ++ the actors, singers, musicians, dancers, and other persons who act, sing, deliver, ++ declaim, play in, interpret or otherwise perform literary or artistic works or expressions ++ of folklore; (ii) in the case of a phonogram the producer being the person or legal entity ++ who first fixes the sounds of a performance or other sounds; and, (iii) in the case of ++ broadcasts, the organization that transmits the broadcast. ++ . ++ . ++ . ++ h. ++ "Work" means the literary and/or artistic work offered under the terms of this ++ License including without limitation any production in the literary, scientific and ++ artistic domain, whatever may be the mode or form of its expression including digital ++ form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work ++ of the same nature; a dramatic or dramatico-musical work; a choreographic work or ++ entertainment in dumb show; a musical composition with or without words; a cinematographic ++ work to which are assimilated works expressed by a process analogous to cinematography; a ++ work of drawing, painting, architecture, sculpture, engraving or lithography; a ++ photographic work to which are assimilated works expressed by a process analogous to ++ photography; a work of applied art; an illustration, map, plan, sketch or ++ three-dimensional work relative to geography, topography, architecture or science; a ++ performance; a broadcast; a phonogram; a compilation of data to the extent it is protected ++ as a copyrightable work; or a work performed by a variety or circus performer to the ++ extent it is not otherwise considered a literary or artistic work. ++ . ++ . ++ . ++ i. ++ "You" means an individual or entity exercising rights under this License who has ++ not previously violated the terms of this License with respect to the Work, or who has ++ received express permission from the Licensor to exercise rights under this License ++ despite a previous violation. ++ . ++ . ++ . ++ j. ++ "Publicly Perform" means to perform public recitations of the Work and to ++ communicate to the public those public recitations, by any means or process, including by ++ wire or wireless means or public digital performances; to make available to the public ++ Works in such a way that members of the public may access these Works from a place and at ++ a place individually chosen by them; to perform the Work to the public by any means or ++ process and the communication to the public of the performances of the Work, including by ++ public digital performance; to broadcast and rebroadcast the Work by any means including ++ signs, sounds or images. ++ . ++ . ++ . ++ k. ++ "Reproduce" means to make copies of the Work by any means including without ++ limitation by sound or visual recordings and the right of fixation and reproducing ++ fixations of the Work, including storage of a protected performance or phonogram in ++ digital form or other electronic medium. ++ . ++ . ++ . ++ . ++ . ++ 2. ++ Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses ++ free from copyright or rights arising from limitations or exceptions that are provided for in ++ connection with the copyright protection under copyright law or other applicable laws. ++ . ++ . ++ . ++ 3. ++ License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a ++ worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable ++ copyright) license to exercise the rights in the Work as stated below: ++ . ++ . ++ . ++ . ++ a. ++ to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce ++ the Work as incorporated in the Collections; ++ . ++ . ++ . ++ b. ++ to create and Reproduce Adaptations provided that any such Adaptation, including any ++ translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise ++ identify that changes were made to the original Work. For example, a translation could be ++ marked "The original work was translated from English to Spanish," or a ++ modification could indicate "The original work has been modified."; ++ . ++ . ++ . ++ c. ++ to Distribute and Publicly Perform the Work including as incorporated in Collections; and, ++ . ++ . ++ . ++ d. ++ to Distribute and Publicly Perform Adaptations. ++ . ++ . ++ . ++ e. ++ For the avoidance of doubt: ++ . ++ . ++ . ++ . ++ i. ++ Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to ++ collect royalties through any statutory or compulsory licensing scheme cannot be ++ waived, the Licensor reserves the exclusive right to collect such royalties for any ++ exercise by You of the rights granted under this License; ++ . ++ . ++ . ++ ii. ++ Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect ++ royalties through any statutory or compulsory licensing scheme can be waived, the ++ Licensor waives the exclusive right to collect such royalties for any exercise by You ++ of the rights granted under this License; and, ++ . ++ . ++ . ++ iii. ++ Voluntary License Schemes. The Licensor waives the right to collect royalties, whether ++ individually or, in the event that the Licensor is a member of a collecting society ++ that administers voluntary licensing schemes, via that society, from any exercise by ++ You of the rights granted under this License. ++ . ++ . ++ . ++ . ++ The above rights may be exercised in all media and formats whether now known or hereafter ++ devised. The above rights include the right to make such modifications as are ++ technically necessary to exercise the rights in other media and formats. Subject to ++ Section 8(f), all rights not expressly granted by Licensor are hereby reserved. ++ . ++ . ++ . ++ . ++ 4. ++ Restrictions. The license granted in Section 3 above is expressly made subject to and limited by ++ the following restrictions: ++ . ++ . ++ . ++ . ++ a. ++ You may Distribute or Publicly Perform the Work only under the terms of this License. You ++ must include a copy of, or the Uniform Resource Identifier (URI) for, this License with ++ every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any ++ terms on the Work that restrict the terms of this License or the ability of the recipient ++ of the Work to exercise the rights granted to that recipient under the terms of the ++ License. You may not sublicense the Work. You must keep intact all notices that refer to ++ this License and to the disclaimer of warranties with every copy of the Work You ++ Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may ++ not impose any effective technological measures on the Work that restrict the ability of a ++ recipient of the Work from You to exercise the rights granted to that recipient under the ++ terms of the License. This Section 4(a) applies to the Work as incorporated in a ++ Collection, but this does not require the Collection apart from the Work itself to be made ++ subject to the terms of this License. If You create a Collection, upon notice from any ++ Licensor You must, to the extent practicable, remove from the Collection any credit as ++ required by Section 4(c), as requested. If You create an Adaptation, upon notice from any ++ Licensor You must, to the extent practicable, remove from the Adaptation any credit as ++ required by Section 4(c), as requested. ++ . ++ . ++ . ++ b. ++ You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this ++ License; (ii) a later version of this License with the same License Elements as this ++ License; (iii) a Creative Commons jurisdiction license (either this or a later license ++ version) that contains the same License Elements as this License (e.g., ++ Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you ++ license the Adaptation under one of the licenses mentioned in (iv), you must comply with ++ the terms of that license. If you license the Adaptation under the terms of any of the ++ licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must ++ comply with the terms of the Applicable License generally and the following provisions: ++ (I) You must include a copy of, or the URI for, the Applicable License with every copy of ++ each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any ++ terms on the Adaptation that restrict the terms of the Applicable License or the ability ++ of the recipient of the Adaptation to exercise the rights granted to that recipient under ++ the terms of the Applicable License; (III) You must keep intact all notices that refer to ++ the Applicable License and to the disclaimer of warranties with every copy of the Work as ++ included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or ++ Publicly Perform the Adaptation, You may not impose any effective technological measures ++ on the Adaptation that restrict the ability of a recipient of the Adaptation from You to ++ exercise the rights granted to that recipient under the terms of the Applicable License. ++ This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does ++ not require the Collection apart from the Adaptation itself to be made subject to the ++ terms of the Applicable License. ++ . ++ . ++ . ++ c. ++ If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, ++ unless a request has been made pursuant to Section 4(a), keep intact all copyright notices ++ for the Work and provide, reasonable to the medium or means You are utilizing: (i) the ++ name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the ++ Original Author and/or Licensor designate another party or parties (e.g., a sponsor ++ institute, publishing entity, journal) for attribution ("Attribution Parties") ++ in Licensor's copyright notice, terms of service or by other reasonable means, the ++ name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent ++ reasonably practicable, the URI, if any, that Licensor specifies to be associated with the ++ Work, unless such URI does not refer to the copyright notice or licensing information for ++ the Work; and (iv), consistent with ++ Section ++ 3(b), in the case of an Adaptation, a credit ++ identifying the use of the Work in the Adaptation (e.g., "French translation of the ++ Work by Original Author," or "Screenplay based on original Work by Original ++ Author"). The credit required by this Section 4(c) may be implemented in any ++ reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a ++ minimum such credit will appear, if a credit for all contributing authors of the ++ Adaptation or Collection appears, then as part of these credits and in a manner at least ++ as prominent as the credits for the other contributing authors. For the avoidance of ++ doubt, You may only use the credit required by this Section for the purpose of attribution ++ in the manner set out above and, by exercising Your rights under this License, You may not ++ implicitly or explicitly assert or imply any connection with, sponsorship or endorsement ++ by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or ++ Your use of the Work, without the separate, express prior written permission of the ++ Original Author, Licensor and/or Attribution Parties. ++ . ++ . ++ . ++ d. ++ Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by ++ applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself ++ or as part of any Adaptations or Collections, You must not distort, mutilate, modify or ++ take other derogatory action in relation to the Work which would be prejudicial to the ++ Original Author's honor or reputation. Licensor agrees that in those jurisdictions ++ (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License ++ (the right to make Adaptations) would be deemed to be a distortion, mutilation, ++ modification or other derogatory action prejudicial to the Original Author's honor ++ and reputation, the Licensor will waive or not assert, as appropriate, this Section, to ++ the fullest extent permitted by the applicable national law, to enable You to reasonably ++ exercise Your right under Section 3(b) of this License (right to make Adaptations) but not ++ otherwise. ++ . ++ . ++ . ++ . ++ . ++ 5. ++ Representations, Warranties and Disclaimer ++ UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND ++ MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, ++ STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, ++ FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ++ ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME ++ JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT ++ APPLY TO YOU. ++ . ++ . ++ . ++ . ++ 6. ++ Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL ++ LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, ++ PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF ++ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ++ . ++ . ++ . ++ 7. ++ Termination ++ . ++ . ++ . ++ . ++ a. ++ This License and the rights granted hereunder will terminate automatically upon any breach by ++ You of the terms of this License. Individuals or entities who have received Adaptations or ++ Collections from You under this License, however, will not have their licenses terminated ++ provided such individuals or entities remain in full compliance with those licenses. ++ Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. ++ . ++ . ++ . ++ b. ++ Subject to the above terms and conditions, the license granted here is perpetual (for the ++ duration of the applicable copyright in the Work). Notwithstanding the above, Licensor ++ reserves the right to release the Work under different license terms or to stop ++ distributing the Work at any time; provided, however that any such election will not serve ++ to withdraw this License (or any other license that has been, or is required to be, ++ granted under the terms of this License), and this License will continue in full force and ++ effect unless terminated as stated above. ++ . ++ . ++ . ++ . ++ . ++ 8. ++ Miscellaneous ++ . ++ . ++ . ++ . ++ a. ++ Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to ++ the recipient a license to the Work on the same terms and conditions as the license ++ granted to You under this License. ++ . ++ . ++ . ++ b. ++ Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient ++ a license to the original Work on the same terms and conditions as the license granted to ++ You under this License. ++ . ++ . ++ . ++ c. ++ If any provision of this License is invalid or unenforceable under applicable law, it shall ++ not affect the validity or enforceability of the remainder of the terms of this License, ++ and without further action by the parties to this agreement, such provision shall be ++ reformed to the minimum extent necessary to make such provision valid and enforceable. ++ . ++ . ++ . ++ d. ++ No term or provision of this License shall be deemed waived and no breach consented to unless ++ such waiver or consent shall be in writing and signed by the party to be charged with such ++ waiver or consent. ++ . ++ . ++ . ++ e. ++ This License constitutes the entire agreement between the parties with respect to the Work ++ licensed here. There are no understandings, agreements or representations with respect to ++ the Work not specified here. Licensor shall not be bound by any additional provisions that ++ may appear in any communication from You. This License may not be modified without the ++ mutual written agreement of the Licensor and You. ++ . ++ . ++ . ++ f. ++ The rights granted under, and the subject matter referenced, in this License were drafted ++ utilizing the terminology of the Berne Convention for the Protection of Literary and ++ Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO ++ Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the ++ Universal Copyright Convention (as revised on July 24, 1971). These rights and subject ++ matter take effect in the relevant jurisdiction in which the License terms are sought to ++ be enforced according to the corresponding provisions of the implementation of those ++ treaty provisions in the applicable national law. If the standard suite of rights granted ++ under applicable copyright law includes additional rights not granted under this License, ++ such additional rights are deemed to be included in the License; this License is not ++ intended to restrict the license of any rights under applicable law. ++ . ++ . ++ . ++ . ++ Creative Commons Notice ++ . ++ Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the ++ Work. Creative Commons will not be liable to You or any party on any legal theory for any damages ++ whatsoever, including without limitation any general, special, incidental or consequential damages ++ arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative ++ Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and ++ obligations of Licensor. ++ . ++ Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, ++ Creative Commons does not authorize the use by either party of the trademark "Creative ++ Commons" or any related trademark or logo of Creative Commons without the prior written consent ++ of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current ++ trademark usage guidelines, as may be published on its website or otherwise made available upon ++ request from time to time. For the avoidance of doubt, this trademark restriction does not form part ++ of the License. ++ . ++ Creative Commons may be contacted at http://creativecommons.org/. diff --cc debian/gbp.conf index 00000000,00000000..9688b7a8 new file mode 100644 --- /dev/null +++ b/debian/gbp.conf @@@ -1,0 -1,0 +1,10 @@@ ++[DEFAULT] ++# the default branch for upstream sources: ++upstream-branch = master ++# the default branch for the debian patch: ++debian-branch = debian ++# the default tag formats used: ++upstream-tag = v%(version)s ++debian-tag = debian/%(version)s ++ ++ diff --cc debian/patches/35080_plot_tests.patch index 00000000,00000000..016e2e0d new file mode 100644 --- /dev/null +++ b/debian/patches/35080_plot_tests.patch @@@ -1,0 -1,0 +1,35 @@@ ++Description: Clean up so test_ts_plot_with_tz doesn't fail ++ ++Author: Steffen Rehberg, Rebecca N. Palmer ++Bug: https://github.com/pandas-dev/pandas/issues/35080 ++Forwarded: no ++ ++--- a/pandas/tests/plotting/test_converter.py +++++ b/pandas/tests/plotting/test_converter.py ++@@ -70,15 +70,17 @@ class TestRegistration: ++ # Set to the "warn" state, in case this isn't the first test run ++ register_matplotlib_converters() ++ ax.plot(s.index, s.values) +++ plt.clf() ++ ++ def test_pandas_plots_register(self): ++- pytest.importorskip("matplotlib.pyplot") +++ plt = pytest.importorskip("matplotlib.pyplot") ++ s = Series(range(12), index=date_range("2017", periods=12)) ++ # Set to the "warn" state, in case this isn't the first test run ++ with tm.assert_produces_warning(None) as w: ++ s.plot() ++ ++ assert len(w) == 0 +++ plt.clf() ++ ++ def test_matplotlib_formatters(self): ++ units = pytest.importorskip("matplotlib.units") ++@@ -108,6 +110,7 @@ class TestRegistration: ++ register_matplotlib_converters() ++ with ctx: ++ ax.plot(s.index, s.values) +++ plt.clf() ++ ++ def test_registry_resets(self): ++ units = pytest.importorskip("matplotlib.units") diff --cc debian/patches/968208_rounding.patch index 00000000,00000000..1eb7fb69 new file mode 100644 --- /dev/null +++ b/debian/patches/968208_rounding.patch @@@ -1,0 -1,0 +1,28 @@@ ++Description: Don't fail test for rounding difference on i386 ++ ++Author: Rebecca N. Palmer ++Bug-Debian: https://bugs.debian.org/968208 ++Forwarded: no ++ ++--- a/pandas/tests/window/moments/test_moments_rolling.py +++++ b/pandas/tests/window/moments/test_moments_rolling.py ++@@ -1,5 +1,8 @@ ++ import copy ++ import warnings +++import sys +++import platform +++import re ++ ++ import numpy as np ++ from numpy.random import randn ++@@ -829,7 +832,9 @@ def test_rolling_quantile_interpolation_ ++ if np.isnan(q1): ++ assert np.isnan(q2) ++ else: ++- assert q1 == q2 +++ assert np.abs(q1-q2)<1e-15 +++ if not (re.match('i.?86|x86',platform.uname()[4]) and sys.maxsize<2**33): +++ assert q1 == q2 ++ ++ ++ def test_invalid_quantile_value(): diff --cc debian/patches/979621_dead_url.patch index 00000000,00000000..4c71b080 new file mode 100644 --- /dev/null +++ b/debian/patches/979621_dead_url.patch @@@ -1,0 -1,0 +1,46 @@@ ++Description: Stop using now-dead URL in tests/examples ++ ++Origin: loosely based on upstream commit 68db2d26ddb5f95de4254d61b850d3dcaf6ce717 ++Author: patrick "phofl", Rebecca N. Palmer ++Bug: https://github.com/pandas-dev/pandas/issues/38988 ++Bug-Debian: https://bugs.debian.org/979621 ++Forwarded: no ++ ++--- a/doc/source/user_guide/io.rst +++++ b/doc/source/user_guide/io.rst ++@@ -2377,14 +2377,10 @@ Read a URL with no options: ++ ++ .. ipython:: python ++ ++- url = 'https://www.fdic.gov/bank/individual/failed/banklist.html' +++ url = 'https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/io/data/html/banklist.html' ++ dfs = pd.read_html(url) ++ dfs ++ ++-.. note:: ++- ++- The data from the above URL changes every Monday so the resulting data above ++- and the data below may be slightly different. ++ ++ Read in the content of the file from the above URL and pass it to ``read_html`` ++ as a string: ++--- a/pandas/tests/io/test_html.py +++++ b/pandas/tests/io/test_html.py ++@@ -123,7 +123,7 @@ class TestReadHtml: ++ ++ @tm.network ++ def test_banklist_url_positional_match(self): ++- url = "http://www.fdic.gov/bank/individual/failed/banklist.html" +++ url = "https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/io/data/html/banklist.html" ++ # Passing match argument as positional should cause a FutureWarning. ++ with tm.assert_produces_warning(FutureWarning): ++ df1 = self.read_html( ++@@ -136,7 +136,7 @@ class TestReadHtml: ++ ++ @tm.network ++ def test_banklist_url(self): ++- url = "http://www.fdic.gov/bank/individual/failed/banklist.html" +++ url = "https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/io/data/html/banklist.html" ++ df1 = self.read_html( ++ url, match="First Federal Bank of Florida", attrs={"id": "table"} ++ ) diff --cc debian/patches/contributor_list_not_in_tarball.patch index 00000000,00000000..460313b8 new file mode 100644 --- /dev/null +++ b/debian/patches/contributor_list_not_in_tarball.patch @@@ -1,0 -1,0 +1,28 @@@ ++Description: Don't try to read a contributor list from the git log ++ ++Debian packages are built from tarballs, so there isn't a git log. ++ ++Author: Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/doc/sphinxext/contributors.py +++++ b/doc/sphinxext/contributors.py ++@@ -14,10 +14,8 @@ use:: ++ While the v0.23.1 tag does not exist, that will use the HEAD of the ++ branch as the end of the revision range. ++ """ ++-from announce import build_components ++ from docutils import nodes ++ from docutils.parsers.rst import Directive ++-import git ++ ++ ++ class ContributorsDirective(Directive): ++@@ -25,6 +23,7 @@ class ContributorsDirective(Directive): ++ name = "contributors" ++ ++ def run(self): +++ return [nodes.paragraph(), nodes.Text("For contributors, please see /usr/share/doc/contributors_list.txt or https://github.com/pandas-dev/pandas/graphs/contributors")] ++ range_ = self.arguments[0] ++ if range_.endswith("x..HEAD"): ++ return [nodes.paragraph(), nodes.bullet_list()] diff --cc debian/patches/deb_disable_googleanalytics.patch index 00000000,00000000..a541430f new file mode 100644 --- /dev/null +++ b/debian/patches/deb_disable_googleanalytics.patch @@@ -1,0 -1,0 +1,82 @@@ ++Author: Yaroslav Halchenko ++ Andreas Tille ++ Rebecca N. Palmer ++Last-Update: Mon, 23 Oct 2017 08:55:28 +0200 ++Description: Avoid privacy breach by Google Analytics ++Forwarded: not-needed ++ ++--- a/pandas/tests/io/data/html/spam.html +++++ b/pandas/tests/io/data/html/spam.html ++@@ -27,45 +27,9 @@ ++ ++ ++ ++- ++- +++ ++ ++ ++ ++@@ -794,4 +758,4 @@ handler: function() {this.cancel();}, ++   Software v.1.2.2 ++ ++ ++- ++\ No newline at end of file +++ ++--- a/web/pandas/_templates/layout.html +++++ b/web/pandas/_templates/layout.html ++@@ -1,14 +1,6 @@ ++ ++ ++ ++- ++ pandas - Python Data Analysis Library ++ ++ diff --cc debian/patches/deb_doc_donotoverride_PYTHONPATH.patch index 00000000,00000000..dc39d226 new file mode 100644 --- /dev/null +++ b/debian/patches/deb_doc_donotoverride_PYTHONPATH.patch @@@ -1,0 -1,0 +1,21 @@@ ++Description: Don't try to import from the source directory ++ ++Needed as we build the extension modules elsewhere ++ ++Author: Yaroslav Halchenko ++Forwarded: not-needed ++ ++--- a/doc/make.py +++++ b/doc/make.py ++@@ -339,8 +339,9 @@ def main(): ++ # external libraries (namely Sphinx) to compile this module and resolve ++ # the import of `python_path` correctly. The latter is used to resolve ++ # the import within the module, injecting it into the global namespace ++- os.environ["PYTHONPATH"] = args.python_path ++- sys.path.insert(0, args.python_path) +++ # Debian: we set it outside +++ #os.environ["PYTHONPATH"] = args.python_path +++ #sys.path.insert(0, args.python_path) ++ globals()["pandas"] = importlib.import_module("pandas") ++ ++ # Set the matplotlib backend to the non-interactive Agg backend for all diff --cc debian/patches/deb_no_strict_data.patch index 00000000,00000000..890149b9 new file mode 100644 --- /dev/null +++ b/debian/patches/deb_no_strict_data.patch @@@ -1,0 -1,0 +1,19 @@@ ++Description: Don't fail tests because we don't ship test data ++ ++This applies to users running them; our build/autopkgtest re-enable ++this and use the data from the source tree ++ ++Author: Yaroslav Halchenko ++Forwarded: no ++ ++--- a/setup.cfg +++++ b/setup.cfg ++@@ -55,7 +55,7 @@ exclude = ++ minversion = 4.0.2 ++ testpaths = pandas ++ doctest_optionflags = NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL ELLIPSIS ++-addopts = --strict-data-files +++# addopts = --strict-data-files ++ xfail_strict = True ++ filterwarnings = ++ error:Sparse:FutureWarning diff --cc debian/patches/deb_nonversioneer_version.patch index 00000000,00000000..42cb5fcc new file mode 100644 --- /dev/null +++ b/debian/patches/deb_nonversioneer_version.patch @@@ -1,0 -1,0 +1,46 @@@ ++Description: Don't try to use git to find the version number ++ ++Needed as Debian buildds use tarballs ++ ++Author: Yaroslav Halchenko ++Forwarded: not-needed ++ ++--- a/pandas/__init__.py +++++ b/pandas/__init__.py ++@@ -177,13 +177,7 @@ from pandas.util._tester import test ++ import pandas.testing ++ import pandas.arrays ++ ++-# use the closest tagged version if possible ++-from ._version import get_versions ++- ++-v = get_versions() ++-__version__ = v.get("closest-tag", v["version"]) ++-__git_version__ = v.get("full-revisionid") ++-del get_versions, v +++from .__version import version as __version__ ++ ++ # GH 27101 ++ # TODO: remove Panel compat in 1.0 ++--- a/pandas/tests/api/test_api.py +++++ b/pandas/tests/api/test_api.py ++@@ -200,7 +200,7 @@ class TestPDApi(Base): ++ "_testing", ++ "_tslib", ++ "_typing", ++- "_version", +++# not in Debian "_version", ++ ] ++ ++ def test_api(self): ++--- a/pandas/tests/test_common.py +++++ b/pandas/tests/test_common.py ++@@ -141,7 +141,7 @@ def test_standardize_mapping(): ++ dd = collections.defaultdict(list) ++ assert isinstance(com.standardize_mapping(dd), partial) ++ ++- +++@pytest.mark.xfail(reason="deb_nonversioneer_version patch") ++ def test_git_version(): ++ # GH 21295 ++ git_version = pd.__git_version__ diff --cc debian/patches/find_test_data.patch index 00000000,00000000..c2cc1561 new file mode 100644 --- /dev/null +++ b/debian/patches/find_test_data.patch @@@ -1,0 -1,0 +1,56 @@@ ++Description: Allow tests to use the data files in the source tree ++ ++We don't ship these in the package, ++but do want to run the tests that use them ++ ++Author: Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/pandas/conftest.py +++++ b/pandas/conftest.py ++@@ -23,6 +23,7 @@ from datetime import date, time, timedel ++ from decimal import Decimal ++ import operator ++ import os +++import argparse ++ ++ from dateutil.tz import tzlocal, tzutc ++ import hypothesis ++@@ -70,6 +71,7 @@ def pytest_addoption(parser): ++ action="store_true", ++ help="Fail if a test is skipped for missing data file.", ++ ) +++ parser.addoption("--deb-data-root-dir",action="store",help=argparse.SUPPRESS)#for internal use of the Debian CI infrastructure, may change without warning. Security note: test_pickle can run arbitrary code from this directory ++ ++ ++ def pytest_runtest_setup(item): ++@@ -785,7 +787,7 @@ def strict_data_files(pytestconfig): ++ ++ ++ @pytest.fixture ++-def datapath(strict_data_files): +++def datapath(strict_data_files,pytestconfig): ++ """ ++ Get the path to a data file. ++ ++@@ -803,7 +805,9 @@ def datapath(strict_data_files): ++ ValueError ++ If the path doesn't exist and the --strict-data-files option is set. ++ """ ++- BASE_PATH = os.path.join(os.path.dirname(__file__), "tests") +++ BASE_PATH = pytestconfig.getoption("--deb-data-root-dir",default=None) +++ if BASE_PATH is None: +++ BASE_PATH = os.path.join(os.path.dirname(__file__), "tests") ++ ++ def deco(*args): ++ path = os.path.join(BASE_PATH, *args) ++--- a/pandas/tests/util/test_util.py +++++ b/pandas/tests/util/test_util.py ++@@ -57,6 +57,7 @@ def test_datapath_missing(datapath): ++ datapath("not_a_file") ++ ++ +++@pytest.mark.xfail(reason="--deb-data-root-dir intentionally breaks this",strict=False) ++ def test_datapath(datapath): ++ args = ("io", "data", "csv", "iris.csv") ++ diff --cc debian/patches/fix_random_seeds.patch index 00000000,00000000..b6aa6392 new file mode 100644 --- /dev/null +++ b/debian/patches/fix_random_seeds.patch @@@ -1,0 -1,0 +1,35 @@@ ++Description: Use fixed seeds for reproducible pseudorandomness ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/doc/source/getting_started/comparison/comparison_with_r.rst +++++ b/doc/source/getting_started/comparison/comparison_with_r.rst ++@@ -226,6 +226,7 @@ In ``pandas`` we may use :meth:`~pandas. ++ ++ import random ++ import string +++ random.seed(123456) # for reproducibility ++ ++ baseball = pd.DataFrame( ++ {'team': ["team %d" % (x + 1) for x in range(5)] * 5, ++--- a/doc/source/user_guide/advanced.rst +++++ b/doc/source/user_guide/advanced.rst ++@@ -586,6 +586,7 @@ they need to be sorted. As with any inde ++ .. ipython:: python ++ ++ import random +++ random.seed(123456) # for reproducibility ++ random.shuffle(tuples) ++ s = pd.Series(np.random.randn(8), index=pd.MultiIndex.from_tuples(tuples)) ++ s ++--- a/doc/source/user_guide/visualization.rst +++++ b/doc/source/user_guide/visualization.rst ++@@ -991,6 +991,7 @@ are what constitutes the bootstrap plot. ++ :suppress: ++ ++ np.random.seed(123456) +++ random.seed(123456) # for reproducibility - bootstrap_plot uses random.sample ++ ++ .. ipython:: python ++ diff --cc debian/patches/fsspec_version.patch index 00000000,00000000..3e258d11 new file mode 100644 --- /dev/null +++ b/debian/patches/fsspec_version.patch @@@ -1,0 -1,0 +1,29 @@@ ++Description: Skip rather than fail tests if fsspec is too old ++ ++(which it currently is in Debian) ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/pandas/tests/io/test_fsspec.py +++++ b/pandas/tests/io/test_fsspec.py ++@@ -20,7 +20,7 @@ text = df1.to_csv(index=False).encode() ++ ++ @pytest.fixture ++ def cleared_fs(): ++- fsspec = pytest.importorskip("fsspec") +++ fsspec = pytest.importorskip("fsspec", "0.7.4") ++ ++ memfs = fsspec.filesystem("memory") ++ yield memfs ++--- a/pandas/tests/io/test_pickle.py +++++ b/pandas/tests/io/test_pickle.py ++@@ -455,7 +455,7 @@ def test_pickle_generalurl_read(monkeypa ++ tm.assert_frame_equal(df, result) ++ ++ ++-@td.skip_if_no("fsspec") +++@td.skip_if_no("fsspec", "0.7.4") ++ def test_pickle_fsspec_roundtrip(): ++ with tm.ensure_clean(): ++ mockurl = "memory://afile" diff --cc debian/patches/hurd_compat.patch index 00000000,00000000..3513a227 new file mode 100644 --- /dev/null +++ b/debian/patches/hurd_compat.patch @@@ -1,0 -1,0 +1,70 @@@ ++Description: Avoid test failures on Hurd ++ ++Allow multiprocessing to be unavailable ++Accept any errno not just 2 for (intentionally) nonexistent files ++(Hurd appears to use 2**30+2) ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/pandas/tests/io/parser/test_common.py +++++ b/pandas/tests/io/parser/test_common.py ++@@ -961,7 +961,7 @@ def test_nonexistent_path(all_parsers): ++ parser = all_parsers ++ path = f"{tm.rands(10)}.csv" ++ ++- msg = r"\[Errno 2\]" +++ msg = r"\[Errno 2\]|\[Errno [0-9]+\] No such file or directory" ++ with pytest.raises(FileNotFoundError, match=msg) as e: ++ parser.read_csv(path) ++ assert path == e.value.filename ++--- a/pandas/tests/io/parser/test_multi_thread.py +++++ b/pandas/tests/io/parser/test_multi_thread.py ++@@ -3,7 +3,12 @@ Tests multithreading behaviour for readi ++ parsing files for each parser defined in parsers.py ++ """ ++ from io import BytesIO ++-from multiprocessing.pool import ThreadPool +++import pytest +++try: +++ from multiprocessing.pool import ThreadPool +++ ThreadPool() +++except ImportError: +++ pytest.skip("multiprocessing not available",allow_module_level=True) ++ ++ import numpy as np ++ import pytest ++--- a/pandas/tests/test_downstream.py +++++ b/pandas/tests/test_downstream.py ++@@ -30,6 +30,11 @@ def df(): ++ ++ ++ def test_dask(df): +++ try: +++ from multiprocessing.pool import ThreadPool +++ ThreadPool() +++ except ImportError: +++ pytest.skip("multiprocessing not available") ++ ++ toolz = import_module("toolz") # noqa ++ dask = import_module("dask") # noqa ++--- a/pandas/tests/io/test_common.py +++++ b/pandas/tests/io/test_common.py ++@@ -152,7 +152,7 @@ bar2,12,13,14,15 ++ ++ path = os.path.join(HERE, "data", "does_not_exist." + fn_ext) ++ msg1 = fr"File (b')?.+does_not_exist\.{fn_ext}'? does not exist" ++- msg2 = fr"\[Errno 2\] No such file or directory: '.+does_not_exist\.{fn_ext}'" +++ msg2 = fr"\[Errno [0-9]+\] No such file or directory: '.+does_not_exist\.{fn_ext}'" ++ msg3 = "Expected object or value" ++ msg4 = "path_or_buf needs to be a string file path or file-like" ++ msg5 = ( ++@@ -195,7 +195,7 @@ bar2,12,13,14,15 ++ monkeypatch.setattr(icom, "_expand_user", lambda x: os.path.join("foo", x)) ++ ++ msg1 = fr"File (b')?.+does_not_exist\.{fn_ext}'? does not exist" ++- msg2 = fr"\[Errno 2\] No such file or directory: '.+does_not_exist\.{fn_ext}'" +++ msg2 = fr"\[Errno [0-9]+\] No such file or directory: '.+does_not_exist\.{fn_ext}'" ++ msg3 = "Unexpected character found when decoding 'false'" ++ msg4 = "path_or_buf needs to be a string file path or file-like" ++ msg5 = ( diff --cc debian/patches/i386_time_overflow.patch index 00000000,00000000..65f9bb6b new file mode 100644 --- /dev/null +++ b/debian/patches/i386_time_overflow.patch @@@ -1,0 -1,0 +1,26 @@@ ++Description: Avoid year 2038 overflow in test ++ ++https://tests.reproducible-builds.org/debian/rbuild/unstable/i386/pandas_1.1.4+dfsg-1.rbuild.log.gz ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/pandas/tests/indexes/datetimes/test_ops.py +++++ b/pandas/tests/indexes/datetimes/test_ops.py ++@@ -2,6 +2,7 @@ from datetime import datetime ++ ++ import numpy as np ++ import pytest +++import sys ++ ++ import pandas as pd ++ from pandas import ( ++@@ -122,7 +123,7 @@ class TestDatetimeIndexOps: ++ "microsecond", ++ ], ++ ): ++- idx = pd.date_range(start="2013-04-01", periods=30, freq=freq, tz=tz) +++ idx = pd.date_range(start="2013-04-01", periods=10 if (sys.maxsize<2**33 and freq=='A') else 30, freq=freq, tz=tz) ++ assert idx.resolution == expected ++ ++ def test_value_counts_unique(self, tz_naive_fixture): diff --cc debian/patches/jedi018_compat.patch index 00000000,00000000..9cc99ace new file mode 100644 --- /dev/null +++ b/debian/patches/jedi018_compat.patch @@@ -1,0 -1,0 +1,63 @@@ ++Description: Don't require external warnings that no longer exist ++ ++(The cause is not actually known to be jedi 0.18, but it moved to a ++new upstream version since the last pandas and ipython didn't.) ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- pandas-1.1.5+dfsg.orig/pandas/tests/arrays/categorical/test_warnings.py +++++ pandas-1.1.5+dfsg/pandas/tests/arrays/categorical/test_warnings.py ++@@ -18,7 +18,7 @@ class TestCategoricalWarnings: ++ # GH 31324 newer jedi version raises Deprecation warning ++ import jedi ++ ++- if jedi.__version__ < "0.16.0": +++ if jedi.__version__ < "0.16.0" or jedi.__version__ >= "0.18.0": ++ warning = tm.assert_produces_warning(None) ++ else: ++ warning = tm.assert_produces_warning( ++--- pandas-1.1.5+dfsg.orig/pandas/tests/frame/test_api.py +++++ pandas-1.1.5+dfsg/pandas/tests/frame/test_api.py ++@@ -542,7 +542,7 @@ class TestDataFrameMisc: ++ # GH 33567, jedi version raises Deprecation warning in Ipython ++ import jedi ++ ++- if jedi.__version__ < "0.17.0": +++ if jedi.__version__ < "0.17.0" or jedi.__version__ >= "0.18.0": ++ warning = tm.assert_produces_warning(None) ++ else: ++ warning = tm.assert_produces_warning( ++--- pandas-1.1.5+dfsg.orig/pandas/tests/indexes/test_base.py +++++ pandas-1.1.5+dfsg/pandas/tests/indexes/test_base.py ++@@ -2206,7 +2206,7 @@ Index(['a', 'bb', 'ccc', 'a', 'bb', 'ccc ++ # GH 31324 newer jedi version raises Deprecation warning ++ import jedi ++ ++- if jedi.__version__ < "0.16.0": +++ if jedi.__version__ < "0.16.0" or jedi.__version__ >= "0.18.0": ++ warning = tm.assert_produces_warning(None) ++ else: ++ warning = tm.assert_produces_warning( ++--- pandas-1.1.5+dfsg.orig/pandas/tests/resample/test_resampler_grouper.py +++++ pandas-1.1.5+dfsg/pandas/tests/resample/test_resampler_grouper.py ++@@ -33,7 +33,7 @@ async def test_tab_complete_ipython6_war ++ # GH 33567, jedi version raises Deprecation warning in Ipython ++ import jedi ++ ++- if jedi.__version__ < "0.17.0": +++ if jedi.__version__ < "0.17.0" or jedi.__version__ >= "0.18.0": ++ warning = tm.assert_produces_warning(None) ++ else: ++ warning = tm.assert_produces_warning(DeprecationWarning, check_stacklevel=False) ++--- pandas-1.1.5+dfsg.orig/pandas/tests/series/test_api.py +++++ pandas-1.1.5+dfsg/pandas/tests/series/test_api.py ++@@ -498,7 +498,7 @@ class TestSeriesMisc: ++ # GH 33567, jedi version raises Deprecation warning in Ipython ++ import jedi ++ ++- if jedi.__version__ < "0.17.0": +++ if jedi.__version__ < "0.17.0" or jedi.__version__ >= "0.18.0": ++ warning = tm.assert_produces_warning(None) ++ else: ++ warning = tm.assert_produces_warning( diff --cc debian/patches/mathjax-path.patch index 00000000,00000000..ff53e2fb new file mode 100644 --- /dev/null +++ b/debian/patches/mathjax-path.patch @@@ -1,0 -1,0 +1,16 @@@ ++Description: Use Debian packaged mathjax ++ ++Author: Andreas Tille ++Forwarded: not-needed ++ ++--- a/doc/source/conf.py +++++ b/doc/source/conf.py ++@@ -68,6 +68,8 @@ extensions = [ ++ "contributors", # custom pandas extension ++ ] ++ +++mathjax_path="MathJax.js" +++ ++ exclude_patterns = ["**.ipynb_checkpoints"] ++ try: ++ import nbconvert diff --cc debian/patches/matplotlib33_compat.patch index 00000000,00000000..92ebc4f6 new file mode 100644 --- /dev/null +++ b/debian/patches/matplotlib33_compat.patch @@@ -1,0 -1,0 +1,17 @@@ ++Description: Matplotlib 3.3 compatibility fixup ++ ++Author: Rebecca N. Palmer ++Bug-Debian: https://bugs.debian.org/966393 ++Forwarded: no ++ ++--- a/pandas/tests/plotting/test_datetimelike.py +++++ b/pandas/tests/plotting/test_datetimelike.py ++@@ -1465,7 +1465,7 @@ class TestTSPlot(TestPlotBase): ++ s2.plot(ax=ax) ++ s1.plot(ax=ax) ++ ++- @pytest.mark.xfail(reason="GH9053 matplotlib does not use ax.xaxis.converter") +++ @pytest.mark.xfail(reason="GH9053 matplotlib does not use ax.xaxis.converter", strict=False) ++ def test_add_matplotlib_datetime64(self): ++ # GH9053 - ensure that a plot with PeriodConverter still understands ++ # datetime64 data. This still fails because matplotlib overrides the diff --cc debian/patches/numba_fail_32bit.patch index 00000000,00000000..aa681ac4 new file mode 100644 --- /dev/null +++ b/debian/patches/numba_fail_32bit.patch @@@ -1,0 -1,0 +1,123 @@@ ++Description: Allow some numba errors on non-amd64, warn on non-x86 ++ ++Specifying the exception type allows only explicit errors, ++not silently wrong answers ++ ++Numba has been observed to give wrong answers on mipsel, ++and crash on armel (LLVM ERROR) and s390x (segfault). ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/pandas/tests/window/test_numba.py +++++ b/pandas/tests/window/test_numba.py ++@@ -6,9 +6,18 @@ import pandas.util._test_decorators as t ++ from pandas import Series, option_context ++ import pandas._testing as tm ++ from pandas.core.util.numba_ import NUMBA_FUNC_CACHE +++from pandas.compat import is_platform_32bit, is_platform_little_endian +++import platform +++import sys +++try: +++ from numba.core.errors import UnsupportedParforsError +++except ImportError: +++ UnsupportedParforsError = ImportError ++ ++ ++ @td.skip_if_no("numba", "0.46.0") +++@pytest.mark.xfail(condition=is_platform_32bit(), raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False) +++@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False) ++ @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") ++ # Filter warnings when parallel=True and the function can't be parallelized by Numba ++ class TestApply: ++@@ -37,6 +46,7 @@ class TestApply: ++ ) ++ tm.assert_series_equal(result, expected) ++ +++ @pytest.mark.xfail(condition='mips' in platform.uname()[4].lower() and sys.maxsize<2**33, reason="Numba may give wrong answers on mipsel", strict=False) ++ @pytest.mark.parametrize("jit", [True, False]) ++ def test_cache(self, jit, nogil, parallel, nopython): ++ # Test that the functions are cached correctly if we switch functions ++@@ -78,6 +88,7 @@ class TestApply: ++ ++ ++ @td.skip_if_no("numba", "0.46.0") +++@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False) ++ def test_use_global_config(): ++ def f(x): ++ return np.mean(x) + 2 ++--- a/pandas/tests/window/conftest.py +++++ b/pandas/tests/window/conftest.py ++@@ -5,6 +5,7 @@ from numpy.random import randn ++ import pytest ++ ++ import pandas.util._test_decorators as td +++from pandas.compat import is_platform_little_endian ++ ++ from pandas import DataFrame, Series, bdate_range, notna ++ ++@@ -85,7 +86,7 @@ def engine(request): ++ ++ @pytest.fixture( ++ params=[ ++- pytest.param(("numba", True), marks=td.skip_if_no("numba", "0.46.0")), +++ pytest.param(("numba", True), marks=[pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False),td.skip_if_no("numba", "0.46.0")]), ++ ("cython", True), ++ ("cython", False), ++ ] ++--- a/pandas/core/window/numba_.py +++++ b/pandas/core/window/numba_.py ++@@ -4,6 +4,10 @@ import numpy as np ++ ++ from pandas._typing import Scalar ++ from pandas.compat._optional import import_optional_dependency +++import platform +++import re +++import warnings +++warn_numba_platform = "Non-x86 system detected, Numba may give wrong results or crash" if not bool(re.match('i.?86|x86',platform.uname()[4])) else False ++ ++ from pandas.core.util.numba_ import ( ++ check_kwargs_and_nopython, ++@@ -49,6 +53,8 @@ def generate_numba_apply_func( ++ numba_func = jit_user_function(func, nopython, nogil, parallel) ++ ++ numba = import_optional_dependency("numba") +++ if warn_numba_platform: +++ warnings.warn(warn_numba_platform) ++ ++ if parallel: ++ loop_range = numba.prange ++--- a/pandas/tests/groupby/transform/test_numba.py +++++ b/pandas/tests/groupby/transform/test_numba.py ++@@ -6,6 +6,7 @@ import pandas.util._test_decorators as t ++ from pandas import DataFrame, option_context ++ import pandas._testing as tm ++ from pandas.core.util.numba_ import NUMBA_FUNC_CACHE +++from pandas.compat import is_platform_little_endian ++ ++ ++ @td.skip_if_no("numba", "0.46.0") ++@@ -41,6 +42,7 @@ def test_check_nopython_kwargs(): ++ ++ ++ @td.skip_if_no("numba", "0.46.0") +++@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False) ++ @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") ++ # Filter warnings when parallel=True and the function can't be parallelized by Numba ++ @pytest.mark.parametrize("jit", [True, False]) ++@@ -70,6 +72,7 @@ def test_numba_vs_cython(jit, pandas_obj ++ ++ ++ @td.skip_if_no("numba", "0.46.0") +++@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False) ++ @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") ++ # Filter warnings when parallel=True and the function can't be parallelized by Numba ++ @pytest.mark.parametrize("jit", [True, False]) ++@@ -115,6 +118,7 @@ def test_cache(jit, pandas_obj, nogil, p ++ ++ ++ @td.skip_if_no("numba", "0.46.0") +++@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False) ++ def test_use_global_config(): ++ def func_1(values, index): ++ return values + 1 diff --cc debian/patches/privacy.patch index 00000000,00000000..93a95ec3 new file mode 100644 --- /dev/null +++ b/debian/patches/privacy.patch @@@ -1,0 -1,0 +1,20 @@@ ++Description: Link to rather than embed Google calendar ++ ++Author: Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/doc/source/development/meeting.rst +++++ b/doc/source/development/meeting.rst ++@@ -16,11 +16,7 @@ The minutes of past meetings are availab ++ Calendar ++ -------- ++ ++-This calendar shows all the developer meetings. ++- ++-.. raw:: html ++- ++- +++`This calendar `__ shows all the developer meetings. ++ ++ You can subscribe to this calendar with the following links: ++ diff --cc debian/patches/python39_compat.patch index 00000000,00000000..753cc8f6 new file mode 100644 --- /dev/null +++ b/debian/patches/python39_compat.patch @@@ -1,0 -1,0 +1,22 @@@ ++Description: Fix pytables expressions with Python 3.9 ++ ++ast.Index has been replaced by a bare value, so we need to do the ++conversion from Constant to int ++ ++Author: Rebecca N. Palmer ++Bug-Debian: https://bugs.debian.org/972015 ++Forwarded: https://github.com/pandas-dev/pandas/issues/37217 ++ ++--- a/pandas/core/computation/pytables.py +++++ b/pandas/core/computation/pytables.py ++@@ -425,6 +425,10 @@ class PyTablesExprVisitor(BaseExprVisito ++ value = value.value ++ except AttributeError: ++ pass +++ try: +++ slobj = slobj.value +++ except AttributeError: +++ pass ++ ++ if isinstance(slobj, Term): ++ # In py39 np.ndarray lookups with Term containing int raise diff --cc debian/patches/remove_ccbysa_snippets.patch index 00000000,00000000..84cab8d5 new file mode 100644 --- /dev/null +++ b/debian/patches/remove_ccbysa_snippets.patch @@@ -1,0 -1,0 +1,243 @@@ ++Description: Remove code from Stack Overflow ++ ++Stack Overflow content is CC-BY-SA licensed, ++which this package is not supposed to be. These snippets may be ++too small to be copyrightable, but removing them to be safe. ++ ++https://lists.debian.org/debian-legal/2020/04/threads.html#00018 ++ ++Author: Rebecca N. Palmer ++Forwarded: no - deletes some tests/examples without replacement ++ ++--- /dev/null +++++ b/doc/source/user_guide/cookbook.rst ++@@ -0,0 +1,22 @@ +++.. _cookbook: +++ +++{{ header }} +++ +++.. _cookbook.idioms: +++.. _cookbook.selection: +++.. _cookbook.multi_index: +++.. _cookbook.missing_data: +++.. _cookbook.grouping: +++.. _cookbook.pivot: +++.. _cookbook.resample: +++.. _cookbook.merge: +++.. _cookbook.plotting: +++.. _cookbook.csv: +++.. _cookbook.csv.multiple_files: +++.. _cookbook.sql: +++.. _cookbook.excel: +++.. _cookbook.html: +++.. _cookbook.hdf: +++.. _cookbook.binary: +++ +++This page has been removed for copyright reasons. ++--- a/doc/source/user_guide/index.rst +++++ b/doc/source/user_guide/index.rst ++@@ -47,4 +47,3 @@ Further information on any specific meth ++ scale ++ sparse ++ gotchas ++- cookbook ++--- a/pandas/io/sql.py +++++ b/pandas/io/sql.py ++@@ -1491,14 +1491,14 @@ def _get_valid_sqlite_name(name): ++ # Replace all " with "". ++ # Wrap the entire thing in double quotes. ++ ++- uname = _get_unicode_name(name) ++- if not len(uname): +++ name = _get_unicode_name(name) +++ if not len(name): ++ raise ValueError("Empty table or column name specified") ++ ++- nul_index = uname.find("\x00") ++- if nul_index >= 0: +++ if '\0' in name: ++ raise ValueError("SQLite identifier cannot contain NULs") ++- return '"' + uname.replace('"', '""') + '"' +++ name = name.replace('"', '""') +++ return '"' + name + '"' ++ ++ ++ _SAFE_NAMES_WARNING = ( ++--- a/pandas/tests/groupby/aggregate/test_other.py +++++ b/pandas/tests/groupby/aggregate/test_other.py ++@@ -24,30 +24,6 @@ from pandas.core.base import Specificati ++ from pandas.io.formats.printing import pprint_thing ++ ++ ++-def test_agg_api(): ++- # GH 6337 ++- # https://stackoverflow.com/questions/21706030/pandas-groupby-agg-function-column-dtype-error ++- # different api for agg when passed custom function with mixed frame ++- ++- df = DataFrame( ++- { ++- "data1": np.random.randn(5), ++- "data2": np.random.randn(5), ++- "key1": ["a", "a", "b", "b", "a"], ++- "key2": ["one", "two", "one", "two", "one"], ++- } ++- ) ++- grouped = df.groupby("key1") ++- ++- def peak_to_peak(arr): ++- return arr.max() - arr.min() ++- ++- expected = grouped.agg([peak_to_peak]) ++- expected.columns = ["data1", "data2"] ++- result = grouped.agg(peak_to_peak) ++- tm.assert_frame_equal(result, expected) ++- ++- ++ def test_agg_datetimes_mixed(): ++ data = [[1, "2012-01-01", 1.0], [2, "2012-01-02", 2.0], [3, None, 3.0]] ++ ++--- a/pandas/tests/groupby/test_categorical.py +++++ b/pandas/tests/groupby/test_categorical.py ++@@ -828,29 +828,6 @@ def test_groupby_empty_with_category(): ++ tm.assert_series_equal(result, expected) ++ ++ ++-def test_sort(): ++- ++- # https://stackoverflow.com/questions/23814368/sorting-pandas- ++- # categorical-labels-after-groupby ++- # This should result in a properly sorted Series so that the plot ++- # has a sorted x axis ++- # self.cat.groupby(['value_group'])['value_group'].count().plot(kind='bar') ++- ++- df = DataFrame({"value": np.random.randint(0, 10000, 100)}) ++- labels = [f"{i} - {i+499}" for i in range(0, 10000, 500)] ++- cat_labels = Categorical(labels, labels) ++- ++- df = df.sort_values(by=["value"], ascending=True) ++- df["value_group"] = pd.cut( ++- df.value, range(0, 10500, 500), right=False, labels=cat_labels ++- ) ++- ++- res = df.groupby(["value_group"], observed=False)["value_group"].count() ++- exp = res[sorted(res.index, key=lambda x: float(x.split()[0]))] ++- exp.index = CategoricalIndex(exp.index, name=exp.index.name) ++- tm.assert_series_equal(res, exp) ++- ++- ++ def test_sort2(): ++ # dataframe groupby sort was being ignored # GH 8868 ++ df = DataFrame( ++--- a/pandas/tests/indexing/multiindex/test_chaining_and_caching.py +++++ b/pandas/tests/indexing/multiindex/test_chaining_and_caching.py ++@@ -6,28 +6,6 @@ import pandas._testing as tm ++ import pandas.core.common as com ++ ++ ++-def test_detect_chained_assignment(): ++- # Inplace ops, originally from: ++- # https://stackoverflow.com/questions/20508968/series-fillna-in-a-multiindex-dataframe-does-not-fill-is-this-a-bug ++- a = [12, 23] ++- b = [123, None] ++- c = [1234, 2345] ++- d = [12345, 23456] ++- tuples = [("eyes", "left"), ("eyes", "right"), ("ears", "left"), ("ears", "right")] ++- events = { ++- ("eyes", "left"): a, ++- ("eyes", "right"): b, ++- ("ears", "left"): c, ++- ("ears", "right"): d, ++- } ++- multiind = MultiIndex.from_tuples(tuples, names=["part", "side"]) ++- zed = DataFrame(events, index=["a", "b"], columns=multiind) ++- ++- msg = "A value is trying to be set on a copy of a slice from a DataFrame" ++- with pytest.raises(com.SettingWithCopyError, match=msg): ++- zed["eyes"]["right"].fillna(value=555, inplace=True) ++- ++- ++ def test_cache_updating(): ++ # 5216 ++ # make sure that we don't try to set a dead cache ++--- a/pandas/tests/indexing/multiindex/test_setitem.py +++++ b/pandas/tests/indexing/multiindex/test_setitem.py ++@@ -141,35 +141,7 @@ class TestMultiIndexSetItem: ++ with pytest.raises(TypeError, match=msg): ++ df.loc["bar"] *= 2 ++ ++- # from SO ++- # https://stackoverflow.com/questions/24572040/pandas-access-the-level-of-multiindex-for-inplace-operation ++- df_orig = DataFrame.from_dict( ++- { ++- "price": { ++- ("DE", "Coal", "Stock"): 2, ++- ("DE", "Gas", "Stock"): 4, ++- ("DE", "Elec", "Demand"): 1, ++- ("FR", "Gas", "Stock"): 5, ++- ("FR", "Solar", "SupIm"): 0, ++- ("FR", "Wind", "SupIm"): 0, ++- } ++- } ++- ) ++- df_orig.index = MultiIndex.from_tuples( ++- df_orig.index, names=["Sit", "Com", "Type"] ++- ) ++ ++- expected = df_orig.copy() ++- expected.iloc[[0, 2, 3]] *= 2 ++- ++- idx = pd.IndexSlice ++- df = df_orig.copy() ++- df.loc[idx[:, :, "Stock"], :] *= 2 ++- tm.assert_frame_equal(df, expected) ++- ++- df = df_orig.copy() ++- df.loc[idx[:, :, "Stock"], "price"] *= 2 ++- tm.assert_frame_equal(df, expected) ++ ++ def test_multiindex_assignment(self): ++ ++--- a/pandas/tests/indexing/test_chaining_and_caching.py +++++ b/pandas/tests/indexing/test_chaining_and_caching.py ++@@ -287,14 +287,6 @@ class TestChaining: ++ df["column1"] = df["column1"] + "c" ++ str(df) ++ ++- # from SO: ++- # https://stackoverflow.com/questions/24054495/potential-bug-setting-value-for-undefined-column-using-iloc ++- df = DataFrame(np.arange(0, 9), columns=["count"]) ++- df["group"] = "b" ++- ++- with pytest.raises(com.SettingWithCopyError): ++- df.iloc[0:5]["group"] = "a" ++- ++ # Mixed type setting but same dtype & changing dtype ++ df = DataFrame( ++ dict( ++--- a/pandas/tests/io/parser/test_common.py +++++ b/pandas/tests/io/parser/test_common.py ++@@ -1077,24 +1077,6 @@ def test_trailing_delimiters(all_parsers ++ tm.assert_frame_equal(result, expected) ++ ++ ++-def test_escapechar(all_parsers): ++- # https://stackoverflow.com/questions/13824840/feature-request-for- ++- # pandas-read-csv ++- data = '''SEARCH_TERM,ACTUAL_URL ++-"bra tv bord","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord" ++-"tv p\xc3\xa5 hjul","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord" ++-"SLAGBORD, \\"Bergslagen\\", IKEA:s 1700-tals series","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord"''' # noqa ++- ++- parser = all_parsers ++- result = parser.read_csv( ++- StringIO(data), escapechar="\\", quotechar='"', encoding="utf-8" ++- ) ++- ++- assert result["SEARCH_TERM"][2] == 'SLAGBORD, "Bergslagen", IKEA:s 1700-tals series' ++- ++- tm.assert_index_equal(result.columns, Index(["SEARCH_TERM", "ACTUAL_URL"])) ++- ++- ++ def test_int64_min_issues(all_parsers): ++ # see gh-2599 ++ parser = all_parsers diff --cc debian/patches/series index 00000000,00000000..e11a2104 new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,30 @@@ ++deb_nonversioneer_version.patch ++deb_doc_donotoverride_PYTHONPATH.patch ++xfail_tests_nonintel_io.patch ++deb_disable_googleanalytics.patch ++deb_no_strict_data.patch ++mathjax-path.patch ++xfail_tests_nonintel_nannat.patch ++skip_noencoding_locales.patch ++use_system_intersphinx.patch ++contributor_list_not_in_tarball.patch ++tests_dont_assume_endian.patch ++fix_random_seeds.patch ++xfail_c_locale.patch ++sphinx_no_pandas_theme.patch ++privacy.patch ++find_test_data.patch ++stable_test_urls.patch ++remove_ccbysa_snippets.patch ++numba_fail_32bit.patch ++hurd_compat.patch ++matplotlib33_compat.patch ++968208_rounding.patch ++fsspec_version.patch ++35080_plot_tests.patch ++skip_test_missing_required_dependency.patch ++python39_compat.patch ++xlrd_976620.patch ++i386_time_overflow.patch ++979621_dead_url.patch ++jedi018_compat.patch diff --cc debian/patches/skip_noencoding_locales.patch index 00000000,00000000..cf584d78 new file mode 100644 --- /dev/null +++ b/debian/patches/skip_noencoding_locales.patch @@@ -1,0 -1,0 +1,25 @@@ ++Description: Don't test datetime in locales with no encoding ++ ++Some datetime tests run the test in every available locale. ++If this set includes locales without an encoding (currently dsb_DE ++and sah_RU), it fails due to Python bug ++https://bugs.python.org/issue20088 ++ ++Failure log ++https://tests.reproducible-builds.org/debian/rbuild/buster/amd64/pandas_0.23.3+dfsg-3.rbuild.log.gz ++ ++Author: Rebecca N. Palmer ++Bug: https://github.com/pandas-dev/pandas/issues/20957 ++Forwarded: no ++ ++--- a/pandas/_config/localization.py +++++ b/pandas/_config/localization.py ++@@ -98,6 +98,8 @@ def _valid_locales(locales, normalize): ++ ++ def _default_locale_getter(): ++ raw_locales = subprocess.check_output(["locale -a"], shell=True) +++ # skip locales without encoding, to avoid Python bug https://bugs.python.org/issue20088 +++ raw_locales = raw_locales.replace(b'\ndsb_DE\n',b'\n').replace(b'\nsah_RU\n',b'\n').replace(b'\ncrh_UA\n',b'\n') ++ return raw_locales ++ ++ diff --cc debian/patches/skip_test_missing_required_dependency.patch index 00000000,00000000..984fd81b new file mode 100644 --- /dev/null +++ b/debian/patches/skip_test_missing_required_dependency.patch @@@ -1,0 -1,0 +1,15 @@@ ++Description: Skip test that fails from outside the source tree ++ ++Author: Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/pandas/tests/test_downstream.py +++++ b/pandas/tests/test_downstream.py ++@@ -146,6 +146,7 @@ def test_pyarrow(df): ++ tm.assert_frame_equal(result, df) ++ ++ +++@pytest.mark.skip(reason="Fails in an installed package as it can't find pandas") ++ def test_missing_required_dependency(): ++ # GH 23868 ++ # To ensure proper isolation, we pass these flags diff --cc debian/patches/sphinx_no_pandas_theme.patch index 00000000,00000000..0050952d new file mode 100644 --- /dev/null +++ b/debian/patches/sphinx_no_pandas_theme.patch @@@ -1,0 -1,0 +1,18 @@@ ++Description: Don't require the pandas theme ++ ++(TODO - package it - here as a multi-upstream-tarball package?) ++ ++Author: Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/doc/source/conf.py +++++ b/doc/source/conf.py ++@@ -198,7 +198,7 @@ pygments_style = "sphinx" ++ ++ # The theme to use for HTML and HTML Help pages. Major themes that come with ++ # Sphinx are currently 'default' and 'sphinxdoc'. ++-html_theme = "pydata_sphinx_theme" +++html_theme = "nature" ++ ++ # The style sheet to use for HTML and HTML Help pages. A file of that name ++ # must exist either in Sphinx' static/ path, or in one of the custom paths diff --cc debian/patches/stable_test_urls.patch index 00000000,00000000..0d880497 new file mode 100644 --- /dev/null +++ b/debian/patches/stable_test_urls.patch @@@ -1,0 -1,0 +1,55 @@@ ++Description: Use test URLs that are less likely to disappear ++ ++Avoid 404 errors in stable when upstream reorganize the test data ++(happened to two of these in 0.25 -> 1.0). ++ ++It is _not_ necessary to update the tag version on every package release, ++only if these tests fail because they expect moved/changed data. ++ ++Author: Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/pandas/tests/io/excel/test_readers.py +++++ b/pandas/tests/io/excel/test_readers.py ++@@ -636,7 +636,7 @@ class TestReaders: ++ @tm.network ++ def test_read_from_http_url(self, read_ext): ++ url = ( ++- "https://raw.githubusercontent.com/pandas-dev/pandas/master/" +++ "https://raw.githubusercontent.com/pandas-dev/pandas/v1.0.3/" ++ "pandas/tests/io/data/excel/test1" + read_ext ++ ) ++ url_table = pd.read_excel(url) ++--- a/pandas/tests/io/parser/test_common.py +++++ b/pandas/tests/io/parser/test_common.py ++@@ -911,7 +911,7 @@ def test_url(all_parsers, csv_dir_path): ++ kwargs = dict(sep="\t") ++ ++ url = ( ++- "https://raw.github.com/pandas-dev/pandas/master/" +++ "https://github.com/pandas-dev/pandas/raw/v1.0.3/" ++ "pandas/tests/io/parser/data/salaries.csv" ++ ) ++ url_result = parser.read_csv(url, **kwargs) ++--- a/pandas/tests/io/parser/test_network.py +++++ b/pandas/tests/io/parser/test_network.py ++@@ -33,7 +33,7 @@ def check_compressed_urls(salaries_table ++ # test reading compressed urls with various engines and ++ # extension inference ++ base_url = ( ++- "https://github.com/pandas-dev/pandas/raw/master/" +++ "https://github.com/pandas-dev/pandas/raw/v1.0.3/" ++ "pandas/tests/io/parser/data/salaries.csv" ++ ) ++ ++--- a/pandas/tests/io/test_html.py +++++ b/pandas/tests/io/test_html.py ++@@ -147,7 +147,7 @@ class TestReadHtml: ++ @tm.network ++ def test_spam_url(self): ++ url = ( ++- "https://raw.githubusercontent.com/pandas-dev/pandas/master/" +++ "https://raw.githubusercontent.com/pandas-dev/pandas/v1.0.3/" ++ "pandas/tests/io/data/html/spam.html" ++ ) ++ df1 = self.read_html(url, match=".*Water.*") diff --cc debian/patches/tests_dont_assume_endian.patch index 00000000,00000000..d54e5c77 new file mode 100644 --- /dev/null +++ b/debian/patches/tests_dont_assume_endian.patch @@@ -1,0 -1,0 +1,119 @@@ ++Description: Fix or skip tests that assume the wrong endianness ++ ++This is a bug in the tests not pandas itself - ++the expected values explicitly specify little-endian ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/pandas/tests/frame/methods/test_to_records.py +++++ b/pandas/tests/frame/methods/test_to_records.py ++@@ -12,6 +12,7 @@ from pandas import ( ++ date_range, ++ ) ++ import pandas._testing as tm +++from pandas.compat import is_platform_little_endian ++ ++ ++ class TestDataFrameToRecords: ++@@ -257,6 +258,7 @@ class TestDataFrameToRecords: ++ ), ++ ], ++ ) +++ @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="expected values assume little-endian",strict=False) ++ def test_to_records_dtype(self, kwargs, expected): ++ # see GH#18146 ++ df = DataFrame({"A": [1, 2], "B": [0.2, 1.5], "C": ["a", "bc"]}) ++@@ -330,11 +332,13 @@ class TestDataFrameToRecords: ++ ), ++ ], ++ ) +++ @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="expected values assume little-endian",strict=False) ++ def test_to_records_dtype_mi(self, df, kwargs, expected): ++ # see GH#18146 ++ result = df.to_records(**kwargs) ++ tm.assert_almost_equal(result, expected) ++ +++ @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="expected values assume little-endian",strict=False) ++ def test_to_records_dict_like(self): ++ # see GH#18146 ++ class DictLike: ++--- a/pandas/tests/scalar/timedelta/test_arithmetic.py +++++ b/pandas/tests/scalar/timedelta/test_arithmetic.py ++@@ -285,7 +285,7 @@ class TestTimedeltaAdditionSubtraction: ++ tm.assert_numpy_array_equal(np.array([2]) * td, expected) ++ msg = ( ++ "ufunc '?multiply'? cannot use operands with types " ++- r"dtype\(']m8\[ns\]'\) and dtype\('[<>]m8\[ns\]'\)" ++ ) ++ with pytest.raises(TypeError, match=msg): ++ td * other ++--- a/pandas/tests/io/parser/test_c_parser_only.py +++++ b/pandas/tests/io/parser/test_c_parser_only.py ++@@ -129,7 +129,7 @@ nan 2 ++ "the dtype timedelta64 is not supported for parsing", ++ dict(dtype={"A": "timedelta64", "B": "float64"}), ++ ), ++- ("the dtype ]U8 is not supported for parsing", dict(dtype={"A": "U8"})), ++ ], ++ ids=["dt64-0", "dt64-1", "td64", "U5") ++ tm.assert_numpy_array_equal(result, expected) ++ ++ # no missing values -> can convert to bool, otherwise raises ++--- a/pandas/tests/arrays/boolean/test_astype.py +++++ b/pandas/tests/arrays/boolean/test_astype.py ++@@ -3,6 +3,7 @@ import pytest ++ ++ import pandas as pd ++ import pandas._testing as tm +++from pandas.compat import is_platform_little_endian ++ ++ ++ def test_astype(): ++@@ -20,7 +21,7 @@ def test_astype(): ++ tm.assert_numpy_array_equal(result, expected) ++ ++ result = arr.astype("str") ++- expected = np.array(["True", "False", ""], dtype=""], dtype="U5") ++ tm.assert_numpy_array_equal(result, expected) ++ ++ # no missing values ++--- a/pandas/tests/arrays/integer/test_dtypes.py +++++ b/pandas/tests/arrays/integer/test_dtypes.py ++@@ -2,6 +2,7 @@ import numpy as np ++ import pytest ++ ++ from pandas.core.dtypes.generic import ABCIndexClass +++from pandas.compat import is_platform_little_endian ++ ++ import pandas as pd ++ import pandas._testing as tm ++@@ -275,7 +276,7 @@ def test_to_numpy_na_raises(dtype): ++ ++ def test_astype_str(): ++ a = pd.array([1, 2, None], dtype="Int64") ++- expected = np.array(["1", "2", ""], dtype=""], dtype="U21") ++ ++ tm.assert_numpy_array_equal(a.astype(str), expected) ++ tm.assert_numpy_array_equal(a.astype("str"), expected) diff --cc debian/patches/use_system_intersphinx.patch index 00000000,00000000..29c008ae new file mode 100644 --- /dev/null +++ b/debian/patches/use_system_intersphinx.patch @@@ -1,0 -1,0 +1,29 @@@ ++Description: Use packaged intersphinx indexes ++ ++Author: Rebecca N. Palmer ++Bug-Debian: https://bugs.debian.org/876417 ++Forwarded: not-needed ++ ++--- a/doc/source/conf.py +++++ b/doc/source/conf.py ++@@ -411,13 +411,13 @@ latex_documents = [ ++ if pattern is None: ++ intersphinx_mapping = { ++ "dateutil": ("https://dateutil.readthedocs.io/en/latest/", None), ++- "matplotlib": ("https://matplotlib.org/", None), ++- "numpy": ("https://numpy.org/doc/stable/", None), ++- "pandas-gbq": ("https://pandas-gbq.readthedocs.io/en/latest/", None), ++- "py": ("https://pylib.readthedocs.io/en/latest/", None), ++- "python": ("https://docs.python.org/3/", None), ++- "scipy": ("https://docs.scipy.org/doc/scipy/reference/", None), ++- "statsmodels": ("https://www.statsmodels.org/devel/", None), +++ "matplotlib": ("https://matplotlib.org/", "/usr/share/doc/python-matplotlib-doc/html/objects.inv"), +++ "numpy": ("https://numpy.org/doc/stable/", "/usr/share/doc/python-numpy-doc/html/objects.inv"), +++ "pandas-gbq": ("https://pandas-gbq.readthedocs.io/en/latest/", None), # not in Debian +++ "py": ("https://pylib.readthedocs.io/en/latest/", None), # no -doc in Debian +++ "python": ("https://docs.python.org/3/", "/usr/share/doc/python3-doc/html/objects.inv"), +++ "scipy": ("https://docs.scipy.org/doc/scipy/reference/", ("/usr/share/doc/python-scipy-doc/html/objects.inv","/usr/share/doc/python-scipy/html/objects.inv")), +++ "statsmodels": ("https://www.statsmodels.org/devel/", "/usr/share/doc/python-statsmodels-doc/html/objects.inv"), ++ "pyarrow": ("https://arrow.apache.org/docs/", None), ++ } ++ diff --cc debian/patches/xfail_c_locale.patch index 00000000,00000000..518704af new file mode 100644 --- /dev/null +++ b/debian/patches/xfail_c_locale.patch @@@ -1,0 -1,0 +1,15 @@@ ++Description: Xfail a test that doesn't work in the C locale ++ ++Author: Rebecca N. Palmer ++Forwarded: no ++ ++--- a/pandas/tests/config/test_localization.py +++++ b/pandas/tests/config/test_localization.py ++@@ -95,6 +95,7 @@ def test_set_locale(lang, enc): ++ assert current_locale == _current_locale ++ ++ +++@pytest.mark.xfail(strict=False,reason="fails in C locale") ++ def test_encoding_detected(): ++ system_locale = os.environ.get("LC_ALL") ++ system_encoding = system_locale.split(".")[-1] if system_locale else "utf-8" diff --cc debian/patches/xfail_tests_nonintel_io.patch index 00000000,00000000..0dce0d6c new file mode 100644 --- /dev/null +++ b/debian/patches/xfail_tests_nonintel_io.patch @@@ -1,0 -1,0 +1,250 @@@ ++Description: HDF5 and Stata I/O are broken on some architectures ++ ++Fix some issues, warn on use and xfail tests for the remainder ++ ++armhf TestHDF5Store::test*encoding only sometimes crashes ++(1.1.3+dfsg-1 passed on build but failed autopkgtest) ++ ++HDF5 and Stata are known to fail on big-endian architectures ++Stata also fails on qemu-ppc64el, but not real ppc64el ++ ++Author: Andreas Tille , Graham Inggs , Yaroslav Halchenko , Rebecca N. Palmer ++Bug-Debian: https://bugs.debian.org/877419 ++Forwarded: no ++ ++--- a/pandas/io/pytables.py +++++ b/pandas/io/pytables.py ++@@ -9,6 +9,10 @@ import os ++ import re ++ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union ++ import warnings +++import platform +++import re +++from pandas.compat import is_platform_little_endian +++warn_hdf_platform = "Non-x86 system detected, HDF(5) format I/O may give wrong results (particularly on files created with older versions) or crash - https://bugs.debian.org/877419" if not bool(re.match('i.?86|x86',platform.uname()[4])) else False ++ ++ import numpy as np ++ ++@@ -527,6 +531,8 @@ class HDFStore: ++ fletcher32: bool = False, ++ **kwargs, ++ ): +++ if warn_hdf_platform: +++ warnings.warn(warn_hdf_platform) ++ ++ if "format" in kwargs: ++ raise ValueError("format is not a defined argument for HDFStore") ++@@ -766,7 +772,10 @@ class HDFStore: ++ self._handle.flush() ++ if fsync: ++ try: ++- os.fsync(self._handle.fileno()) +++ if is_platform_little_endian(): +++ os.fsync(self._handle.fileno()) +++ else: +++ os.sync() # due to a pytables bad-cast bug, fileno is invalid on 64-bit big-endian ++ except OSError: ++ pass ++ ++--- a/pandas/io/stata.py +++++ b/pandas/io/stata.py ++@@ -29,6 +29,9 @@ from typing import ( ++ Union, ++ ) ++ import warnings +++import platform +++import re +++warn_stata_platform = "Non-x86 system detected, Stata format I/O may give wrong results (particularly on strings) - https://bugs.debian.org/877419" if not bool(re.match('i.?86|x86',platform.uname()[4])) else False ++ ++ from dateutil.relativedelta import relativedelta ++ import numpy as np ++@@ -875,6 +878,8 @@ class StataParser: ++ # NOTE: the byte type seems to be reserved for categorical variables ++ # with a label, but the underlying variable is -127 to 100 ++ # we're going to drop the label and cast to int +++ if warn_stata_platform: +++ warnings.warn(warn_stata_platform) ++ self.DTYPE_MAP = dict( ++ list(zip(range(1, 245), [np.dtype("a" + str(i)) for i in range(1, 245)])) ++ + [ ++--- a/pandas/tests/io/pytables/test_store.py +++++ b/pandas/tests/io/pytables/test_store.py ++@@ -54,6 +54,10 @@ from pandas.io.pytables import ( ++ ++ from pandas.io import pytables as pytables # noqa: E402 isort:skip ++ from pandas.io.pytables import TableIterator # noqa: E402 isort:skip +++import platform +++import re +++import sys +++is_crashing_arch=bool((platform.uname()[4].startswith('arm') or platform.uname()[4].startswith('aarch')) and sys.maxsize<2**33) # meant for armhf, though this form will also skip on armel - uname = kernel arch ++ ++ ++ _default_compressor = "blosc" ++@@ -1088,6 +1092,7 @@ class TestHDFStore: ++ check("table", index) ++ check("fixed", index) ++ +++ @pytest.mark.xfail(condition=is_crashing_arch,reason="https://bugs.debian.org/790925",strict=False,run=False) ++ @pytest.mark.skipif( ++ not is_platform_little_endian(), reason="reason platform is not little endian" ++ ) ++@@ -1120,6 +1125,7 @@ class TestHDFStore: ++ ], ++ ) ++ @pytest.mark.parametrize("dtype", ["category", object]) +++ @pytest.mark.xfail(condition=is_crashing_arch,reason="https://bugs.debian.org/790925",strict=False,run=False) ++ def test_latin_encoding(self, setup_path, dtype, val): ++ enc = "latin-1" ++ nan_rep = "" ++@@ -1305,6 +1311,7 @@ class TestHDFStore: ++ # still read from it. ++ pd.read_hdf(store, "k1") ++ +++ @pytest.mark.xfail(condition=is_crashing_arch,reason="https://bugs.debian.org/790925",strict=False,run=False) ++ def test_append_frame_column_oriented(self, setup_path): ++ with ensure_clean_store(setup_path) as store: ++ ++@@ -3921,6 +3928,7 @@ class TestHDFStore: ++ df.iloc[3:5, 1:3] = np.nan ++ df.iloc[8:10, -2] = np.nan ++ +++ @pytest.mark.xfail(condition=is_crashing_arch,reason="https://bugs.debian.org/790925",strict=False,run=False) ++ def test_select_filter_corner(self, setup_path): ++ ++ df = DataFrame(np.random.randn(50, 100)) ++@@ -4177,6 +4185,7 @@ class TestHDFStore: ++ assert isinstance(d1, DataFrame) ++ ++ @td.xfail_non_writeable +++ @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of hdf on non-little endian",strict=False,raises=AttributeError) ++ def test_legacy_table_fixed_format_read_py2(self, datapath, setup_path): ++ # GH 24510 ++ # legacy table with fixed format written in Python 2 ++@@ -4191,6 +4200,7 @@ class TestHDFStore: ++ ) ++ tm.assert_frame_equal(expected, result) ++ +++ @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of hdf on non-little endian",strict=False,raises=AttributeError) ++ def test_legacy_table_fixed_format_read_datetime_py2(self, datapath, setup_path): ++ # GH 31750 ++ # legacy table with fixed format and datetime64 column written in Python 2 ++@@ -4870,6 +4880,7 @@ class TestHDFStore: ++ with pd.HDFStore(path) as store: ++ assert os.fspath(store) == str(path) ++ +++ @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of hdf on non-little endian",strict=False,raises=AttributeError) ++ def test_read_py2_hdf_file_in_py3(self, datapath): ++ # GH 16781 ++ ++--- a/pandas/tests/io/test_stata.py +++++ b/pandas/tests/io/test_stata.py ++@@ -29,6 +29,8 @@ from pandas.io.stata import ( ++ read_stata, ++ ) ++ +++from pandas.compat import is_platform_little_endian +++pytestmark = pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of test_stata on non-little endian",strict=False) ++ ++ @pytest.fixture() ++ def mixed_frame(): ++@@ -203,7 +205,7 @@ class TestStata: ++ # parsed_113 = self.read_dta(self.dta2_113) ++ ++ # Remove resource warnings ++- w = [x for x in w if x.category is UserWarning] +++ w = [x for x in w if x.category is UserWarning and not "Non-x86 system detected" in str(x.message)] ++ ++ # should get warning for each call to read_dta ++ assert len(w) == 3 ++@@ -465,7 +467,7 @@ class TestStata: ++ warnings.simplefilter("always", InvalidColumnName) ++ original.to_stata(path, None, version=version) ++ # should get a warning for that format. ++- assert len(w) == 1 +++ assert len([x for x in w if not "Non-x86 system detected" in str(x.message)]) == 1 ++ ++ written_and_read_again = self.read_dta(path) ++ tm.assert_frame_equal(written_and_read_again.set_index("index"), formatted) ++@@ -1788,8 +1790,9 @@ has been incorrectly encoded by Stata or ++ the string values returned are correct.""" ++ with tm.assert_produces_warning(UnicodeWarning) as w: ++ encoded = read_stata(self.dta_encoding_118) ++- assert len(w) == 151 ++- assert w[0].message.args[0] == msg +++ w2 = [x for x in w if not "Non-x86 system detected" in str(x.message)] +++ assert len(w2) == 151 +++ assert w2[0].message.args[0] == msg ++ ++ expected = pd.DataFrame([["Düsseldorf"]] * 151, columns=["kreis1849"]) ++ tm.assert_frame_equal(encoded, expected) ++--- a/pandas/_testing.py +++++ b/pandas/_testing.py ++@@ -6,6 +6,8 @@ from functools import wraps ++ import gzip ++ import operator ++ import os +++import platform +++import re ++ from shutil import rmtree ++ import string ++ import tempfile ++@@ -2612,6 +2614,8 @@ def assert_produces_warning( ++ ) ++ assert actual_warning.filename == caller.filename, msg ++ else: +++ if actual_warning.category==UserWarning and "Non-x86 system detected" in str(actual_warning.message) and not bool(re.match('i.?86|x86',platform.uname()[4])): +++ continue ++ extra_warnings.append( ++ ( ++ actual_warning.category.__name__, ++--- a/pandas/tests/io/pytables/test_timezones.py +++++ b/pandas/tests/io/pytables/test_timezones.py ++@@ -4,6 +4,7 @@ import numpy as np ++ import pytest ++ ++ import pandas.util._test_decorators as td +++from pandas.compat import is_platform_little_endian ++ ++ import pandas as pd ++ from pandas import DataFrame, DatetimeIndex, Series, Timestamp, date_range ++@@ -311,6 +312,7 @@ def test_store_timezone(setup_path): ++ tm.assert_frame_equal(result, df) ++ ++ +++@pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of hdf on non-little endian",strict=False,raises=AttributeError) ++ def test_legacy_datetimetz_object(datapath, setup_path): ++ # legacy from < 0.17.0 ++ # 8260 ++@@ -362,6 +364,7 @@ def test_read_with_where_tz_aware_index( ++ tm.assert_frame_equal(result, expected) ++ ++ +++@pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of hdf on non-little endian",strict=False,raises=AttributeError) ++ def test_py2_created_with_datetimez(datapath, setup_path): ++ # The test HDF5 file was created in Python 2, but could not be read in ++ # Python 3. ++--- a/pandas/tests/io/test_common.py +++++ b/pandas/tests/io/test_common.py ++@@ -8,7 +8,7 @@ from pathlib import Path ++ ++ import pytest ++ ++-from pandas.compat import is_platform_windows +++from pandas.compat import is_platform_windows, is_platform_little_endian ++ import pandas.util._test_decorators as td ++ ++ import pandas as pd ++@@ -230,11 +230,11 @@ bar2,12,13,14,15 ++ "pyarrow", ++ ("io", "data", "feather", "feather-0_3_1.feather"), ++ ), ++- ( +++ pytest.param( ++ pd.read_hdf, ++ "tables", ++ ("io", "data", "legacy_hdf", "datetimetz_object.h5"), ++- ), +++ marks=pytest.mark.xfail(condition=not is_platform_little_endian(),reason="known failure of hdf on non-little endian",strict=False,raises=AttributeError)), ++ (pd.read_stata, "os", ("io", "data", "stata", "stata10_115.dta")), ++ (pd.read_sas, "os", ("io", "sas", "data", "test1.sas7bdat")), ++ (pd.read_json, "os", ("io", "json", "data", "tsframe_v012.json")), diff --cc debian/patches/xfail_tests_nonintel_nannat.patch index 00000000,00000000..7e411f51 new file mode 100644 --- /dev/null +++ b/debian/patches/xfail_tests_nonintel_nannat.patch @@@ -1,0 -1,0 +1,194 @@@ ++Description: Xfail NaN <-> NaT tests on non-x86 and warn on cast ++ ++pd.Series([np.nan]).astype('datetime64[ns]')[0] = pd.NaT on x86 ++but 1970-01-01 on arm* because float NaN -> int is undefined: ++https://github.com/numpy/numpy/issues/8325 ++https://github.com/pandas-dev/pandas/issues/17792 ++https://github.com/pandas-dev/pandas/issues/26964 ++ ++On s390x it's the maximum _positive_ value (2**63-1 ns = year 2262) ++ ++Author: Andreas Tille , Graham Inggs , Rebecca N. Palmer ++Bug-Debian: https://bugs.debian.org/877754 ++Forwarded: no ++ ++--- a/pandas/core/dtypes/cast.py +++++ b/pandas/core/dtypes/cast.py ++@@ -4,6 +4,10 @@ Routines for casting. ++ ++ from datetime import date, datetime, timedelta ++ from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Type +++import warnings +++import platform +++import re +++warn_nannat_platform = "Non-x86 system detected, float -> datetime/timedelta may not handle NaNs correctly - https://bugs.debian.org/877754" if not bool(re.match('i.?86|x86',platform.uname()[4])) else False ++ ++ import numpy as np ++ ++@@ -991,6 +995,8 @@ def astype_nansafe(arr, dtype, copy: boo ++ f"'{dtype.name}[ns]' instead." ++ ) ++ raise ValueError(msg) +++ if warn_nannat_platform and (is_datetime64_dtype(dtype) or is_timedelta64_dtype(dtype)) and np.issubdtype(arr.dtype, np.floating) and not np.isfinite(arr).all(): +++ warnings.warn(warn_nannat_platform) ++ ++ if copy or is_object_dtype(arr) or is_object_dtype(dtype): ++ # Explicit copy, or required since NumPy can't view from / to object. ++@@ -1367,6 +1373,8 @@ def maybe_cast_to_datetime(value, dtype, ++ value = iNaT ++ elif not is_sparse(value): ++ value = np.array(value, copy=False) +++ if warn_nannat_platform and np.issubdtype(value.dtype, np.floating) and not np.isfinite(value).all(): +++ warnings.warn(warn_nannat_platform) ++ ++ # have a scalar array-like (e.g. NaT) ++ if value.ndim == 0: ++--- a/pandas/tests/dtypes/cast/test_downcast.py +++++ b/pandas/tests/dtypes/cast/test_downcast.py ++@@ -7,6 +7,9 @@ from pandas.core.dtypes.cast import mayb ++ ++ from pandas import DatetimeIndex, Series, Timestamp ++ import pandas._testing as tm +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86',platform.uname()[4])) ++ ++ ++ @pytest.mark.parametrize( ++@@ -77,6 +80,7 @@ def test_downcast_conversion_empty(any_r ++ tm.assert_numpy_array_equal(result, np.array([], dtype=np.int64)) ++ ++ +++@pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ @pytest.mark.parametrize("klass", [np.datetime64, np.timedelta64]) ++ def test_datetime_likes_nan(klass): ++ dtype = klass.__name__ + "[ns]" ++--- a/pandas/tests/frame/indexing/test_where.py +++++ b/pandas/tests/frame/indexing/test_where.py ++@@ -8,6 +8,9 @@ from pandas.core.dtypes.common import is ++ import pandas as pd ++ from pandas import DataFrame, DatetimeIndex, Series, Timestamp, date_range, isna ++ import pandas._testing as tm +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86|s390|ppc',platform.uname()[4])) ++ ++ ++ @pytest.fixture(params=["default", "float_string", "mixed_float", "mixed_int"]) ++@@ -352,6 +355,7 @@ class TestDataFrameIndexingWhere: ++ result = a.where(do_not_replace, b) ++ tm.assert_frame_equal(result, expected) ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False)#not found ++ def test_where_datetime(self): ++ ++ # GH 3311 ++--- a/pandas/tests/frame/test_analytics.py +++++ b/pandas/tests/frame/test_analytics.py ++@@ -23,6 +23,9 @@ from pandas import ( ++ import pandas._testing as tm ++ import pandas.core.algorithms as algorithms ++ import pandas.core.nanops as nanops +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86|s390|ppc',platform.uname()[4])) ++ ++ ++ def assert_stat_op_calc( ++@@ -802,6 +805,7 @@ class TestDataFrameAnalytics: ++ expected = pd.Series(result, index=["A", "B"]) ++ tm.assert_series_equal(result, expected) ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ def test_sum_nanops_timedelta(self): ++ # prod isn't defined on timedeltas ++ idx = ["a", "b", "c"] ++--- a/pandas/tests/indexes/datetimes/test_datetime.py +++++ b/pandas/tests/indexes/datetimes/test_datetime.py ++@@ -7,6 +7,9 @@ import pytest ++ import pandas as pd ++ from pandas import DataFrame, DatetimeIndex, Index, Timestamp, date_range, offsets ++ import pandas._testing as tm +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86|s390|ppc',platform.uname()[4])) ++ ++ randn = np.random.randn ++ ++@@ -95,6 +98,7 @@ class TestDatetimeIndex: ++ idx2 = pd.date_range(end="2000", periods=periods, freq="S") ++ assert len(idx2) == periods ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ def test_nat(self): ++ assert DatetimeIndex([np.nan])[0] is pd.NaT ++ ++--- a/pandas/tests/reductions/test_reductions.py +++++ b/pandas/tests/reductions/test_reductions.py ++@@ -23,6 +23,9 @@ from pandas import ( ++ ) ++ import pandas._testing as tm ++ from pandas.core import nanops +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86|s390|ppc',platform.uname()[4])) ++ ++ ++ def get_objs(): ++@@ -1199,6 +1202,7 @@ class TestSeriesMode: ++ expected = Series(expected2, dtype=object) ++ tm.assert_series_equal(result, expected) ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ @pytest.mark.parametrize( ++ "dropna, expected1, expected2", ++ [ ++--- a/pandas/tests/series/test_constructors.py +++++ b/pandas/tests/series/test_constructors.py ++@@ -27,7 +27,9 @@ from pandas import ( ++ ) ++ import pandas._testing as tm ++ from pandas.core.arrays import IntervalArray, period_array ++- +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86|s390|ppc',platform.uname()[4])) ++ ++ class TestSeriesConstructors: ++ @pytest.mark.parametrize( ++@@ -959,6 +961,7 @@ class TestSeriesConstructors: ++ ++ tm.assert_series_equal(result, expected) ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ @pytest.mark.parametrize("arg", ["2013-01-01 00:00:00", pd.NaT, np.nan, None]) ++ def test_constructor_with_naive_string_and_datetimetz_dtype(self, arg): ++ # GH 17415: With naive string ++@@ -1289,6 +1292,7 @@ class TestSeriesConstructors: ++ series[2] = val ++ assert isna(series[2]) ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ def test_NaT_cast(self): ++ # GH10747 ++ result = Series([np.nan]).astype("M8[ns]") ++--- a/pandas/tests/test_algos.py +++++ b/pandas/tests/test_algos.py ++@@ -34,6 +34,9 @@ import pandas._testing as tm ++ import pandas.core.algorithms as algos ++ from pandas.core.arrays import DatetimeArray ++ import pandas.core.common as com +++import platform +++import re +++is_nannat_working=bool(re.match('i.?86|x86|s390|ppc',platform.uname()[4])) ++ ++ ++ class TestFactorize: ++@@ -1144,6 +1147,7 @@ class TestValueCounts: ++ expected = Series([2, 1, 1], index=[5.0, 10.3, np.nan]) ++ tm.assert_series_equal(result, expected) ++ +++ @pytest.mark.xfail(condition=not is_nannat_working,reason="https://bugs.debian.org/877754",strict=False) ++ def test_value_counts_normalized(self): ++ # GH12558 ++ s = Series([1, 2, np.nan, np.nan, np.nan]) diff --cc debian/patches/xlrd_976620.patch index 00000000,00000000..864ecf79 new file mode 100644 --- /dev/null +++ b/debian/patches/xlrd_976620.patch @@@ -1,0 -1,0 +1,296 @@@ ++Description: Default to openpyxl not xlrd for read_excel ++ ++xlrd 1.2 fails if defusedxml (needed for odf) is installed ++ ++Bug: https://github.com/pandas-dev/pandas/pull/35029 ++Bug-Debian: https://bugs.debian.org/976620 ++Origin: upstream b3a3932af6aafaa2fd41f17e9b7995643e5f92eb ++Author: Robert de Vries, Rebecca N. Palmer ++Forwarded: not-needed ++ ++--- a/doc/source/whatsnew/v1.1.5.rst +++++ b/doc/source/whatsnew/v1.1.5.rst ++@@ -8,6 +8,16 @@ including other versions of pandas. ++ ++ {{ header }} ++ +++.. warning:: +++ +++ Previously, the default argument ``engine=None`` to ``pd.read_excel`` +++ would result in using the `xlrd `_ engine in +++ many cases. The engine ``xlrd`` is no longer maintained, and may not work if ``defusedxml`` +++ is installed. Hence, from version 1.1.5 in Debian and 1.2.0 upstream, +++ if `openpyxl `_ is installed, +++ many of these cases will now default to using the ``openpyxl`` engine. See the +++ :func:`read_excel` documentation for more details. +++ ++ .. --------------------------------------------------------------------------- ++ ++ .. _whatsnew_115.regressions: ++--- a/pandas/io/excel/_base.py +++++ b/pandas/io/excel/_base.py ++@@ -1,13 +1,16 @@ ++ import abc ++ import datetime +++import inspect ++ from io import BufferedIOBase, BytesIO, RawIOBase ++ import os ++ from textwrap import fill ++ from typing import Union +++import warnings ++ ++ from pandas._config import config ++ ++ from pandas._libs.parsers import STR_NA_VALUES +++from pandas.compat._optional import import_optional_dependency ++ from pandas.errors import EmptyDataError ++ from pandas.util._decorators import Appender, deprecate_nonkeyword_arguments ++ ++@@ -104,12 +107,32 @@ dtype : Type name or dict of column -> t ++ of dtype conversion. ++ engine : str, default None ++ If io is not a buffer or path, this must be set to identify io. ++- Supported engines: "xlrd", "openpyxl", "odf", "pyxlsb", default "xlrd". +++ Supported engines: "xlrd", "openpyxl", "odf", "pyxlsb". ++ Engine compatibility : +++ ++ - "xlrd" supports most old/new Excel file formats. ++ - "openpyxl" supports newer Excel file formats. ++ - "odf" supports OpenDocument file formats (.odf, .ods, .odt). ++ - "pyxlsb" supports Binary Excel files. +++ +++ .. versionchanged:: 1.1.5 in Debian, 1.2.0 upstream +++ The engine `xlrd `_ +++ is no longer maintained, and is not supported with +++ python >= 3.9. When ``engine=None``, the following logic will be +++ used to determine the engine. +++ +++ - If ``path_or_buffer`` is an OpenDocument format (.odf, .ods, .odt), +++ then `odf `_ will be used. +++ - Otherwise if ``path_or_buffer`` is a bytes stream, the file has the +++ extension ``.xls``, or is an ``xlrd`` Book instance, then ``xlrd`` will +++ be used. +++ - Otherwise if `openpyxl `_ is installed, +++ then ``openpyxl`` will be used. +++ - Otherwise ``xlrd`` will be used and a ``FutureWarning`` will be raised. +++ +++ Specifying ``engine="xlrd"`` will continue to be allowed for the +++ indefinite future, but may require uninstalling (python3-)defusedxml. +++ ++ converters : dict, default None ++ Dict of functions for converting values in certain columns. Keys can ++ either be integers or column labels, values are functions that take one ++@@ -823,13 +846,32 @@ class ExcelFile: ++ .xls, .xlsx, .xlsb, .xlsm, .odf, .ods, or .odt file. ++ engine : str, default None ++ If io is not a buffer or path, this must be set to identify io. ++- Supported engines: ``xlrd``, ``openpyxl``, ``odf``, ``pyxlsb``, ++- default ``xlrd``. +++ Supported engines: ``xlrd``, ``openpyxl``, ``odf``, ``pyxlsb`` ++ Engine compatibility : +++ ++ - ``xlrd`` supports most old/new Excel file formats. ++ - ``openpyxl`` supports newer Excel file formats. ++ - ``odf`` supports OpenDocument file formats (.odf, .ods, .odt). ++ - ``pyxlsb`` supports Binary Excel files. +++ +++ .. versionchanged:: 1.1.5 in Debian, 1.2.0 upstream +++ +++ The engine `xlrd `_ +++ is no longer maintained, and is not supported with +++ python >= 3.9. When ``engine=None``, the following logic will be +++ used to determine the engine. +++ +++ - If ``path_or_buffer`` is an OpenDocument format (.odf, .ods, .odt), +++ then `odf `_ will be used. +++ - Otherwise if ``path_or_buffer`` is a bytes stream, the file has the +++ extension ``.xls``, or is an ``xlrd`` Book instance, then ``xlrd`` +++ will be used. +++ - Otherwise if `openpyxl `_ is installed, +++ then ``openpyxl`` will be used. +++ - Otherwise ``xlrd`` will be used and a ``FutureWarning`` will be raised. +++ +++ Specifying ``engine="xlrd"`` will continue to be allowed for the +++ indefinite future, but may require uninstalling (python3-)defusedxml. ++ """ ++ ++ from pandas.io.excel._odfreader import _ODFReader ++@@ -846,14 +888,59 @@ class ExcelFile: ++ ++ def __init__(self, path_or_buffer, engine=None): ++ if engine is None: ++- engine = "xlrd" +++ # Determine ext and use odf for ods stream/file ++ if isinstance(path_or_buffer, (BufferedIOBase, RawIOBase)): +++ ext = None ++ if _is_ods_stream(path_or_buffer): ++ engine = "odf" ++ else: ++ ext = os.path.splitext(str(path_or_buffer))[-1] ++ if ext == ".ods": ++ engine = "odf" +++ +++ if ( +++ import_optional_dependency( +++ "xlrd", raise_on_missing=False, on_version="ignore" +++ ) +++ is not None +++ ): +++ from xlrd import Book +++ +++ if isinstance(path_or_buffer, Book): +++ engine = "xlrd" +++ +++ # GH 35029 - Prefer openpyxl except for xls files +++ if engine is None: +++ if ext is None or isinstance(path_or_buffer, bytes) or ext == ".xls": +++ engine = "xlrd" +++ elif ( +++ import_optional_dependency( +++ "openpyxl", raise_on_missing=False, on_version="ignore" +++ ) +++ is not None +++ ): +++ engine = "openpyxl" +++ else: +++ caller = inspect.stack()[1] +++ if ( +++ caller.filename.endswith("pandas/io/excel/_base.py") +++ and caller.function == "read_excel" +++ ): +++ stacklevel = 4 +++ else: +++ stacklevel = 2 +++ warnings.warn( +++ "The xlrd engine is no longer maintained and is not " +++ "supported when using pandas with python >= 3.9. However, " +++ "the engine xlrd will continue to be allowed for the " +++ "indefinite future. The " +++ "openpyxl engine will be used if it is installed and the " +++ "engine argument is not specified. Either install openpyxl " +++ "or specify engine='xlrd' to silence this warning.", +++ FutureWarning, +++ stacklevel=stacklevel, +++ ) +++ engine = "xlrd" ++ if engine not in self._engines: ++ raise ValueError(f"Unknown engine: {engine}") ++ ++--- a/pandas/tests/io/excel/test_readers.py +++++ b/pandas/tests/io/excel/test_readers.py ++@@ -599,6 +599,10 @@ class TestReaders: ++ if pd.read_excel.keywords["engine"] == "openpyxl": ++ pytest.xfail("Maybe not supported by openpyxl") ++ +++ if pd.read_excel.keywords["engine"] is None: +++ # GH 35029 +++ pytest.xfail("Defaults to openpyxl, maybe not supported") +++ ++ result = pd.read_excel("testdateoverflow" + read_ext) ++ tm.assert_frame_equal(result, expected) ++ ++@@ -1153,12 +1154,13 @@ class TestExcelFileRead: ++ actual = pd.read_excel(data, engine=engine) ++ tm.assert_frame_equal(expected, actual) ++ +++ @td.skip_if_no("xlrd") ++ def test_excel_high_surrogate(self, engine): ++ # GH 23809 ++ expected = pd.DataFrame(["\udc88"], columns=["Column1"]) ++ ++ # should not produce a segmentation violation ++- actual = pd.read_excel("high_surrogate.xlsx") +++ actual = pd.read_excel("high_surrogate.xlsx", engine="xlrd") ++ tm.assert_frame_equal(expected, actual) ++ ++ @pytest.mark.parametrize("filename", ["df_empty.xlsx", "df_equals.xlsx"]) ++--- a/pandas/tests/io/excel/test_writers.py +++++ b/pandas/tests/io/excel/test_writers.py ++@@ -351,12 +351,15 @@ class TestExcelWriter: ++ msg = "sheet 0 not found" ++ with pytest.raises(ValueError, match=msg): ++ pd.read_excel(xl, "0") ++- else: +++ elif engine == "xlwt": ++ import xlrd ++ ++ msg = "No sheet named <'0'>" ++ with pytest.raises(xlrd.XLRDError, match=msg): ++ pd.read_excel(xl, sheet_name="0") +++ else: +++ with pytest.raises(KeyError, match="Worksheet 0 does not exist."): +++ pd.read_excel(xl, sheet_name="0") ++ ++ def test_excel_writer_context_manager(self, frame, path): ++ with ExcelWriter(path) as writer: ++@@ -1195,7 +1198,9 @@ class TestExcelWriter: ++ ++ write_frame = DataFrame({"A": datetimes}) ++ write_frame.to_excel(path, "Sheet1") ++- read_frame = pd.read_excel(path, sheet_name="Sheet1", header=0) +++ # GH 35029 - Default changed to openpyxl, but test is for odf/xlrd +++ engine = "odf" if path.endswith("ods") else "xlrd" +++ read_frame = pd.read_excel(path, sheet_name="Sheet1", header=0, engine=engine) ++ ++ tm.assert_series_equal(write_frame["A"], read_frame["A"]) ++ ++--- a/pandas/tests/io/excel/test_xlrd.py +++++ b/pandas/tests/io/excel/test_xlrd.py ++@@ -1,5 +1,7 @@ ++ import pytest ++ +++from pandas.compat._optional import import_optional_dependency +++ ++ import pandas as pd ++ import pandas._testing as tm ++ ++@@ -38,6 +40,48 @@ def test_read_xlrd_book(read_ext, frame) ++ # TODO: test for openpyxl as well ++ def test_excel_table_sheet_by_index(datapath, read_ext): ++ path = datapath("io", "data", "excel", f"test1{read_ext}") ++- with pd.ExcelFile(path) as excel: +++ with pd.ExcelFile(path, engine="xlrd") as excel: ++ with pytest.raises(xlrd.XLRDError): ++ pd.read_excel(excel, sheet_name="asdf") +++ +++ +++def test_excel_file_warning_with_xlsx_file(datapath): +++ # GH 29375 +++ path = datapath("io", "data", "excel", "test1.xlsx") +++ has_openpyxl = ( +++ import_optional_dependency( +++ "openpyxl", raise_on_missing=False, on_version="ignore" +++ ) +++ is not None +++ ) +++ if not has_openpyxl: +++ with tm.assert_produces_warning( +++ FutureWarning, +++ raise_on_extra_warnings=False, +++ match="The xlrd engine is no longer maintained", +++ ): +++ ExcelFile(path, engine=None) +++ else: +++ with tm.assert_produces_warning(None): +++ pd.read_excel(path, "Sheet1", engine=None) +++ +++ +++def test_read_excel_warning_with_xlsx_file(tmpdir, datapath): +++ # GH 29375 +++ path = datapath("io", "data", "excel", "test1.xlsx") +++ has_openpyxl = ( +++ import_optional_dependency( +++ "openpyxl", raise_on_missing=False, on_version="ignore" +++ ) +++ is not None +++ ) +++ if not has_openpyxl: +++ with tm.assert_produces_warning( +++ FutureWarning, +++ raise_on_extra_warnings=False, +++ match="The xlrd engine is no longer maintained", +++ ): +++ pd.read_excel(path, "Sheet1", engine=None) +++ else: +++ with tm.assert_produces_warning(None): +++ pd.read_excel(path, "Sheet1", engine=None) diff --cc debian/python-pandas-doc.doc-base index 00000000,00000000..b29cae02 new file mode 100644 --- /dev/null +++ b/debian/python-pandas-doc.doc-base @@@ -1,0 -1,0 +1,7 @@@ ++Document: python3-pandas ++Title: pandas - powerful Python data analysis toolkit ++Section: Science/Data Analysis ++ ++Format: HTML ++Index: /usr/share/doc/python-pandas-doc/html/index.html ++Files: /usr/share/doc/python-pandas-doc/html/* diff --cc debian/python-pandas-doc.docs index 00000000,00000000..8137b041 new file mode 100644 --- /dev/null +++ b/debian/python-pandas-doc.docs @@@ -1,0 -1,0 +1,1 @@@ ++doc/build/html diff --cc debian/python-pandas-doc.links index 00000000,00000000..3ae42058 new file mode 100644 --- /dev/null +++ b/debian/python-pandas-doc.links @@@ -1,0 -1,0 +1,2 @@@ ++usr/share/doc/python-pandas-doc/html/whatsnew/index.html.gz usr/share/doc/python-pandas-doc/NEWS.html.gz ++usr/share/doc/python-pandas-doc/html/whatsnew/index.html.gz usr/share/doc/python3-pandas/NEWS.html.gz diff --cc debian/rules index 00000000,00000000..4ccc97d6 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,114 @@@ ++#!/usr/bin/make -f ++# -*- mode: makefile; coding: utf-8 -*- ++ ++export DEB_BUILD_MAINT_OPTIONS = hardening=+all ++DPKG_EXPORT_BUILDFLAGS = 1 ++include /usr/share/dpkg/buildflags.mk ++include /usr/share/dpkg/pkg-info.mk ++ ++PY3VERS := $(shell py3versions -vr) ++PY3VER := $(shell py3versions -vd) ++SOURCE_DATE:=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+%a, %d %b %Y" || echo "xxx, xx xxx xxxx") ++SOURCE_TIME:=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+%T" || echo "xx:xx:xx") ++ ++UVER := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's,+dfsg,,g') ++# Python doesn't use ~ for rc ++UVER_PY := $(shell echo $(UVER) | sed -e 's,[~],,g') ++UVER_PYSHORT := $(shell echo $(UVER_PY) | sed -e 's,+git.*,,g') ++ ++# Filter out tests with "marker expressions" and "keyword expressions". Ref: pytest(1) ++ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH), amd64 i386 kfreebsd-amd64 kfreebsd-i386 x32)) ++ PYTEST_MARKER := not network ++else ++ PYTEST_MARKER := not network and not slow ++endif ++# for matplotlib etc ++export HOME=$(CURDIR)/buildtmp ++ ++# Split up the test suite to avoid running out of memory, use xvfb for plot tests, run but ignore potentially crashing tests; test_register_entrypoint expects an installed package ++export PYBUILD_TEST_ARGS=TEST_SUCCESS=true; cd {build_dir} ; for TEST_SUBSET in {build_dir}/pandas/tests/* ; do LOCALE_OVERRIDE=C xvfb-run -a -s "-screen 0 1280x1024x24 -noreset" {interpreter} -m pytest -s -v -m "$(PYTEST_MARKER)" -k "not test_register_entrypoint" --confcutdir={build_dir}/pandas --deb-data-root-dir={dir}/pandas/tests --strict-data-files $$TEST_SUBSET || test $$? = 5 || TEST_SUCCESS=false ; done ; LOCALE_OVERRIDE=C {interpreter} -m pytest -s -v -m "$(PYTEST_MARKER)" --forked --runxfail --confcutdir={build_dir}/pandas --deb-data-root-dir={dir}/pandas/tests --strict-data-files {build_dir}/pandas/tests/groupby/transform/test_numba.py {build_dir}/pandas/tests/window/test_numba.py {build_dir}/pandas/tests/window/test_apply.py || true ; $$TEST_SUCCESS ++ ++export PYBUILD_EXT_DESTDIR=debian/python3-pandas-lib ++export PYBUILD_DESTDIR=debian/python3-pandas ++ ++# try to prevent unsanctioned downloads ++export http_proxy=http://127.0.0.1:9/ ++export https_proxy=http://127.0.0.1:9/ ++ ++export SHELL=/bin/bash ++ ++# Mega rule ++%: ++ : # Explicit build system to avoid use of all-in-1 Makefile ++ dh $@ --buildsystem=pybuild --with python3,numpy3,sphinxdoc ++ ++# The *cython* rules are provided to allow using pre-built Cython files in distributions without a new enough Cython; they are not (and must not be) used in official Debian builds (including -backports). Use instructions: ++# on a system with new enough Cython, run debian/rules cythonize - this will add a directory under debian/ ++# uncomment the _uncythonize rule dependency below ++# remove the cython3 Build-Depends from d/control ++# copy to the older system and build as normal ++# To upgrade to a new upstream version, this process must be repeated ++# Warning - has not been tested for some time ++_cythonize%: override_dh_clean # force removal of previous copies ++ python$(*:2=) setup.py cython ++ D=debian/cythonized-files$(*:2=) && \ ++ git rm -rf $$D || rm -rf $$D; \ ++ find pandas/ -regex '.*\.c\(\|pp\)' | while read f; do \ ++ grep -q 'Generated by Cython' "$$f" || continue; \ ++ mkdir -p "$$D/$$(dirname $$f)"; \ ++ cp "$$f" "$$D/$$(dirname $$f)"; \ ++ git add -f "$$D/$$f" || true; \ ++ done; \ ++ echo "$(UVER)" >| $$D/VERSION; git add $$D/VERSION || true ++ ++_uncythonize%: ++ : # Make sure that cythonized sources are up-to-date ++ [ "$(UVER)" = "`cat debian/cythonized-files3/VERSION`" ] ++ echo "$*" | grep -q '^3' && PY=3 || PY= ; \ ++ echo "I: Using pre-Cython-ed files for Python $*"; \ ++ cd debian/cythonized-files$$PY/ ; \ ++ find . -regex '.*\.c\(\|pp\)' | while read f; do cp $$f ../../$$f; done ++ ++cythonize: _cythonize3 ++ ++override_dh_clean: ++ find pandas/ -regex '.*\.c\(\|pp\)' | xargs grep -l -e 'Generated by Cython' | xargs -r rm -f ++ rm -rf build buildtmp doc/build *-stamp # pandas.egg-info pandas/datasets/__config__.py ++ dh_clean ++ ++override_dh_auto_build-arch: # ${PY3VERS:%=_uncythonize%} ++ mkdir -p buildtmp ++ [ -e pandas/__version.py ] || \ ++ echo -e "version = '$(UVER_PY)'\nshort_version = '$(UVER_PYSHORT)'" > pandas/__version.py ++ dh_auto_build ++ ++override_dh_auto_build-indep: override_dh_auto_build-arch ++ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) ++ : # Build Documentation ++ cd doc && PYTHONPATH=$(CURDIR)/.pybuild/cpython3_$(PY3VER)/build LC_ALL=C python3 make.py html ++ # strip build paths and statsmodels timestamps for reproducibility, and online Javascript for privacy ++ for html in `find doc/build/html -name _modules -prune -o -name "*.html" -o -name "*.ipynb"` ; do \ ++ sed -i -e 's#$(CURDIR)/.pybuild/[^/]*/build/pandas/#/usr/lib/python3/dist-packages/pandas/#g' \ ++ -e 's#$(CURDIR)/debian/python3-pandas/usr/lib/python3/dist-packages/pandas/#/usr/lib/python3/dist-packages/pandas/#g' \ ++ -e 's#