Update vendored pyperclip to 1.5.8
State: closed

Resolves #9263 

Tested:
- [x] windows
- [x] macosx
- [x] linux


Labels:
name: Output-Formatting
description: __repr__ of pandas objects, to_string
name: Unicode
description: Unicode strings
name: Windows
description: Windows OS

Comments:
add this to the first line of `test_clipboard.py`

`# -*- coding: utf-8 -*-`

Yeah, I took a look at Travis too... I forgot about those Python 2 peoples!

@jcjf further, what platform are you testing this on? (as this requires some 'manual' testing I think), pls check the appropriate box

Hmm... this might be related to https://github.com/asweigart/pyperclip/issues/11

One alternative is to only update the win32 parts of pyperclip. We could take that from pyperclip itself or perhaps from https://github.com/pyreadline/pyreadline/blob/master/pyreadline/clipboard/win32_clipboard.py

@jreback Suggested path forward?

actually I think what u did is ok

the test is failing because xclip / xsel is not installed

iirc we were doing this in the install script somewhere

have a look in ci/install_conda.py

lmk

@jcjf can u update?

I've been very busy recently and haven't had time to take another look at
this.

On 10 May 2015 at 04:16, jreback notifications@github.com wrote:

> @jcjf https://github.com/jcjf can u update?
> 
> —
> Reply to this email directly or view it on GitHub
> https://github.com/pydata/pandas/pull/9693#issuecomment-100540463.

So basically my earlier attempts forgot to maintain compatibility by raising a subclass of `OSError`.

I believe the CI builds don't actually test the GTK+ 2 clipboard properly. There isn't any setup that would make `import gtk` work on its own. However, I claim that this was broken before remains broken now, and most people will be using xclip / xsel / PyQt4 / PySide anyway.

ok, looks reasonable, can you add a release note for 0.17.0 with the referenced issue. We are claiming this is just a bug fix, yes? (e.g. it now supports unicode on windows).

squash.

Then need to have people tests this out on various system, e.g. some manual validation.

can you rebase?

this looks reasonable. can people give this a whirl to make sure it works?

ok, this works on windows, but is failing on mac. any ideas? (I _think_ working on linux as travis is passing)

@jcjf want to rebase this

pyperclip upstream has updated to 1.5.15 - maintain the change 1.5.11 only or try to update?

@jcjf that sounds fine. The main issue I think was testing on this.

can you rebase this

ok, can you rebase & add a whatsnew note for 0.18.0

@jreback I've rebased this for the third time now. Can you please indicate whether this is still failing on mac and whether you intend to merge this soon?

This doesn't pass on macosx, not really sure why. Does this pass on windows?

```
======================================================================
FAIL: test_round_trip_frame_sep (pandas.io.tests.test_clipboard.TestClipboard)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/jreback/pandas/pandas/io/tests/test_clipboard.py", line 71, in test_round_trip_frame_sep
    self.check_round_trip_frame(dt,sep=',')
  File "/Users/jreback/pandas/pandas/io/tests/test_clipboard.py", line 67, in check_round_trip_frame
    tm.assert_frame_equal(data, result, check_dtype=False)
  File "/Users/jreback/pandas/pandas/util/testing.py", line 1012, in assert_frame_equal
    '{0}, {1}'.format(right.shape[1], right.columns))
  File "/Users/jreback/pandas/pandas/util/testing.py", line 819, in raise_assert_detail
    raise AssertionError(msg)
AssertionError: DataFrame are different

DataFrame shape (number of columns) are different
[left]:  2, Index([u'en', u'es'], dtype='object')
[right]: 0, Index([], dtype='object')
```

seems the index is not matching on the nonascii

```
(Pdb) p data
        en       es
0       in       en
1  English  espa?ol
(Pdb) p result
Empty DataFrame
Columns: []
Index: [0       in       en, 1  English  espa?ol]
(Pdb) p read_clipboard(sep=sep)
           en       es
0  0       in       en
1  1  English  espa?ol
(Pdb) p read_clipboard(sep=sep,index_col=0)
Empty DataFrame
Columns: []
Index: [0       in       en, 1  English  espa?ol]
```

these seem to all pass on windows.

I will amend. These seem to pass on a vanlilla terminal in macosx, I have a weird xterm going.

merged via https://github.com/pydata/pandas/commit/925f62a690086d52664379a58f35e26b146a9146

thanks!