Pandas: License issue: terminal.py contains code licensed under Creative Commons

Created on 16 May 2018  Â·  18Comments  Â·  Source: pandas-dev/pandas

Code Sample, a copy-pastable example if possible

NA

Problem description

The file pandas/io/formats/terminal.py contains source code taken from stack overflow (it explicitly says this in the terminal.py file). However, the source code that exist in stack overflow is licensed under Creative Commons Attribution-Share Alike, see: https://stackoverflow.com/help/licensing.

Pandas claims to be BSD 3 compliant, but it actually has code in terminal.py that is not under BSD.

Keep in mind that the part of the code that is under creative commons is affecting the python 2 implementation. The python 3 implementation does not need the code from stack overflow. So, some possible solutions would be (there might be other options that I am not aware of):

  1. Remove the code that is under CC. This will make the terminal.py unusable for python 2.
  2. Use backports.shutil_get_terminal_size and replace the code under CC. This will make pandas depend on the backports.shutil_get_terminal_size package.
  3. Provide a brand new implementation for the part of terminal.py that is under CC.

Expected Output

NA

Output of pd.show_versions()

NA

Needs Info

Most helpful comment

ok, my official statement:

   I'm totally fine too and hereby dual license my code from
https://stackoverflow.com/a/566752 under BSD.

Hope you are fine that I literal copied this line from your mail ;)

Best regards,
Harco Kuppens

On 18/05/2018 08:45, Vasileios Karavasilis wrote:
>

Thank you all for the effort and the replies.

However, I would like to ask @harcokuppens
https://github.com/harcokuppens to explicitly say something like
@weissi https://github.com/weissi said
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-389848341,
e.g.:

I'm totally fine too and hereby dual license my code from
https://stackoverflow.com/a/6550596 under BSD.

PS: I got the explanation that the phrase: |I'm ok that you use my
solution for combining these two solutions in one function.| gives
exception only to the Pandas project, not every following user of the
pandas library. Moreover, some other compatible licenses would be BSD,
Apache, or MIT. However, I believe the simplest approach is to use BSD
(which Pandas is using).

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-390110920,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUQ8Qy3zGxDUEmprl4qOfIVTDRR0Y1zks5tzm3vgaJpZM4UA3tT.

All 18 comments

We attribute that code back to the source, so everything seems OK. Is that incorrect?

Yes, there is an attribution (without link to the license).

But there are two requirements (from https://creativecommons.org/licenses/by-sa/3.0/):

  1. Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  2. ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.

So, the terminal.py file contains code that was under CC license. By providing this part of code as part of the pandas code you are changing the license of that code from CC to BSD, which is not permitted.

Hmm

If you remix, transform, or build upon the material, you must distribute
your contributions under the same license
https://creativecommons.org/licenses/by-sa/3.0/# as the original.

Sounds like changes to the original must be distributed under the same
license. Not the entire library.

On Wed, May 16, 2018 at 6:25 AM, Vasileios Karavasilis <
[email protected]> wrote:

Yes, there is an attribution (without link to the license).

But there are two requirements (from https://creativecommons.org/
licenses/by-sa/3.0/):

  1. Attribution — You must give appropriate credit, provide a link to
    the license, and indicate if changes were made. You may do so in any
    reasonable manner, but not in any way that suggests the licensor endorses
    you or your use.
  2. ShareAlike — If you remix, transform, or build upon the material,
    you must distribute your contributions under the same license as the
    original.

So, the terminal.py file contains code that was under CC license. By
providing this part of code as part of the pandas code you are changing the
license of that code from CC to BSD, which is not permitted.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-389485263,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABQHIhgk8bfB9FEPDL87aEG1v6z6-Ss7ks5tzAyigaJpZM4UA3tT
.

The StackOverflow answer is on its turn based on this: http://code.activestate.com/recipes/440694-determine-size-of-console-window-on-windows/, which is PSF licensed (or at least the windows part).

Can we ask the author if our relicensing is OK? (I don't know if this would be sufficient)

so newer code is MIT (which is ok with BSD)
https://meta.stackexchange.com/questions/271080/the-mit-license-clarity-on-using-code-on-stack-overflow-and-stack-exchange

but looks like this is an older contribution

@jreback your last link is about CC-BY, not CC-BY-SA, so I think the share-alike part is relevant here

Can we ask the author if our relicensing is OK? (I don't know if this would be sufficient)

Yes, if we can get license or permission from the original author, it solves all the problems. The difficult point is, the answer was posted in 2011, and there is no contact info in the StackOverflow, we are even not sure if could reach the author.

i believe we just need attribution which we have

CC-Attributin-ShareAlike, this proposal only meet with “Attribution”, the problem is the “ShareAlike”.

PS: I go t these answers from the people familiar with this kind of issues in the company that I am working.

The difficult point is, the answer was posted in 2011, and there is no contact info in the StackOverflow, we are even not sure if could reach the author.

The linux code is actually from another answer, and that author has a github profile link. And for the answer you linked to, I am going to do a wild guess and try to ping @harcokuppens (sorry if you are the wrong Harco Kuppens!)


@harcokuppens @weissi for some context that I am pinging you here: we used the code from your answers to this SO question: https://stackoverflow.com/questions/566746/how-to-get-linux-console-window-width-in-python. Since the pandas library is BSD, and SO answers back then were this CC-BY-SA, that is not compatible. So therefore the question to you both: are you OK with us re-using your code snippet in a BSD licenced library? (and agreeing means I think that you are OK with relicensing this code-snippet to BSD, but no expert on that)

On 17/05/2018 11:19, Joris Van den Bossche wrote:
>

The difficult point is, the answer was posted in 2011, and there
is no contact info in the StackOverflow, we are even not sure if
could reach the author.

The linux code is actually from another answer, and that author has a
github profile link. And for the answer you linked to, I am going to
do a wild guess and try to ping @harcokuppens
https://github.com/harcokuppens (sorry if you are the wrong Harco
Kuppens!)


@harcokuppens https://github.com/harcokuppens @weissi
https://github.com/weissi for some context that I am pinging you
here: we used the code from your answers to this SO question:
https://stackoverflow.com/questions/566746/how-to-get-linux-console-window-width-in-python.
Since the pandas library is BSD, and SO answers back then were this
CC-BY-SA, that is compatible. So therefore the question to you both:
are you OK with us re-using your code snippet in a BSD licenced
library? (and agreeing means I think that you are OK with relicensing
this code-snippet to BSD, but no expert on that)

Hi, as you can see in my answer I just combined two solutions found
elsewhere. I even mention their sources in my answer.

I'm ok that you use my solution for combining these two solutions in one
function.

Best regards,
Harco Kuppens

ps. nice to hear somebody is using my comment ;)

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-389801927,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUQ8bNAaGgR88ey-5uHTbUhvrl_CMG4ks5tzUCTgaJpZM4UA3tT.

so newer code is MIT (which is ok with BSD) https://meta.stackexchange.com/questions/271080/the-mit-license-clarity-on-using-code-on-stack-overflow-and-stack-exchange

I received more clarification on this. It seems that this proposal did not make it. There is a follow up thread: https://meta.stackexchange.com/questions/272956/a-new-code-license-the-mit-this-time-with-attribution-required?cb=1. There is the sentence in there: The changes proposed here have been delayed indefinitely.. Moreover, if you check the https://stackexchange.com/legal#licensing, it does not contain any reference to MIT.

Hi, as you can see in my answer I just combined two solutions found elsewhere. I even mention their sources in my answer.

@harcokuppens Thanks for the quick answer! (but still, it is your recombination in functions we used verbatim :-))

Hi there, I'm totally fine too and hereby dual license my code from https://stackoverflow.com/a/566752 under BSD.

Is that statement enough? Or should I write some more?

I think that is fine. Thanks for the answer!

Thank you all for the effort and the replies.

However, I would like to ask @harcokuppens to explicitly say something like @weissi said, e.g.:

I'm totally fine too and hereby dual license my code from https://stackoverflow.com/a/6550596 under BSD.

PS: I got the explanation that the phrase: I'm ok that you use my solution for combining these two solutions in one function. gives exception only to the Pandas project, not every following user of the pandas library. Moreover, some other compatible licenses would be BSD, Apache, or MIT. However, I believe the simplest approach is to use BSD (which Pandas is using).

ok, my official statement:

   I'm totally fine too and hereby dual license my code from
https://stackoverflow.com/a/566752 under BSD.

Hope you are fine that I literal copied this line from your mail ;)

Best regards,
Harco Kuppens

On 18/05/2018 08:45, Vasileios Karavasilis wrote:
>

Thank you all for the effort and the replies.

However, I would like to ask @harcokuppens
https://github.com/harcokuppens to explicitly say something like
@weissi https://github.com/weissi said
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-389848341,
e.g.:

I'm totally fine too and hereby dual license my code from
https://stackoverflow.com/a/6550596 under BSD.

PS: I got the explanation that the phrase: |I'm ok that you use my
solution for combining these two solutions in one function.| gives
exception only to the Pandas project, not every following user of the
pandas library. Moreover, some other compatible licenses would be BSD,
Apache, or MIT. However, I believe the simplest approach is to use BSD
(which Pandas is using).

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-390110920,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUQ8Qy3zGxDUEmprl4qOfIVTDRR0Y1zks5tzm3vgaJpZM4UA3tT.

ok, my official statement:

   I'm totally fine too and hereby dual license my code from
https://stackoverflow.com/a/566752 under BSD.

Hope you are fine that I literal copied this line from your mail ;)

Best regards,
Harco Kuppens

On 18/05/2018 08:45, Vasileios Karavasilis wrote:
>

Thank you all for the effort and the replies.

However, I would like to ask @harcokuppens
https://github.com/harcokuppens to explicitly say something like
@weissi https://github.com/weissi said
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-389848341,
e.g.:

I'm totally fine too and hereby dual license my code from
https://stackoverflow.com/a/6550596 under BSD.

PS: I got the explanation that the phrase: |I'm ok that you use my
solution for combining these two solutions in one function.| gives
exception only to the Pandas project, not every following user of the
pandas library. Moreover, some other compatible licenses would be BSD,
Apache, or MIT. However, I believe the simplest approach is to use BSD
(which Pandas is using).

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pandas-dev/pandas/issues/21074#issuecomment-390110920,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUQ8Qy3zGxDUEmprl4qOfIVTDRR0Y1zks5tzm3vgaJpZM4UA3tT.

Thanks

Was this page helpful?
0 / 5 - 0 ratings

Related issues

idanivanov picture idanivanov  Â·  3Comments

andreas-thomik picture andreas-thomik  Â·  3Comments

marcelnem picture marcelnem  Â·  3Comments

matthiasroder picture matthiasroder  Â·  3Comments

songololo picture songololo  Â·  3Comments