Closed pombredanne closed 11 years ago
@sjmachin FYI, since this is about XLRD among other things
@ericgazoni: FYI, since this is about openpyxl among other things
@cjw296 : FYI since this is about XLWT too
I've been planning on making a new version of tablib which only contains basic functionality provided by the standard library. Maybe this is a nice excuse to continue with that project.
Tablib is not switching to the Apache license.
Why does tablib embed copies of packages like xlrd and xlwt rather than just listing them as dependencies in setup.py? Seems pretty crazy to me...
@kennethreitz sry for missing the notice at https://github.com/kennethreitz/tablib/blob/develop/NOTICE ... it was not in the Pypi download
I also updated the issue to remove the apache reference.
NB: I really want to get this fixed and will try to work it out with the xl* authors
regarding openpyxl, my view is that while PHPExcel served as an example, openpyxl code remains original creation, no code could have been copy-pasted between projects obviously. After years of optimization and specific developments, it has little to do with the original PHPExcel implementation, and therefore should be considered as an original work, not linked to the PHPExcel licence.
Besides, it's true that some code comes from external sources, such as ordereddict fallback implementation from Raymond Hettinger, and indeed some code for XML writing from a blog article, credited to the author and used as fair use.
but I'm also siding with @cjw296, as while vendoring the application ensures API stability and reduces maintenance, specifying libraries as dependencies would solve the issue. Now I think @kennethreitz has enough on his plate not to track down every upstream modification on all our libraries, so if anyone is willing to take care of adapting tablib everytime there is a major API change in the *xl libraries, that's probably the way to go (and also because the vendored version of openpyxl is incredibly old :smile:)
again, the next version of tablib will have none of this functionality.
the libraries are vendored in because having 9+ dependencies for a single library is absurd. I also manually ported a large number of them to Python 3 myself, and didn't want to push those projects up to pypi and have to maintain them.
are you really trying to replicate what's done in all those libs using only what's in the standard library ? Or you're just dropping the functionalities to retain only what can be achieved using pure python ?
dropping everything, making a nice plugin system with some sample extension libraries so people can write whatever they want ;)
Sweet ! Le 30 août 2013 16:25, "Kenneth Reitz" notifications@github.com a écrit :
dropping everything, making a nice plugin system with some sample extension libraries so people can write whatever they want ;)
— Reply to this email directly or view it on GitHubhttps://github.com/kennethreitz/tablib/issues/114#issuecomment-23564482 .
@kennethreitz - it's a shame you couldn't push any Python 3 porting work you did to the upstream packages :-( 9 dependencies doesn't seem absurd, especially if they had been optional: if a library is there, you can use it, if not, you can't support that file type...
@cjw296 if you are unhappy with my decisions around Tablib, then feel free to not use it.
Forced to remove tablib from project due to viral licenses. @kennethreitz You might not care, but this does represent a continuing problem, years later.
how do I find practical examples of Worksheet cell styling?
While tablib is MIT-licensed, there are several potential provenance and license issues with Oo, XLS and XLSX formats that tablib embeds. I have collected some of these potential issues here. This is at best ... byzantine.
It feels a tad overwhelming: I am just raising the issue and I would like to help to fix this.
There are some things to consider with regards to implementations of Excel formats read and write (in xlrt, xlwt and openpyxl) as there may be issues with components that support XLS or XLSX formats in general.
See the discussion on these:
See also Apache guidelines for POI: http://poi.apache.org/guidelines.html
openpxyl
https://bitbucket.org/ericgazoni/openpyxl/ is reported as being derived from PHPExcel which is LGPL-licensed at https://github.com/PHPOffice/PHPExcel but openpyxl is not LGPL but MIT-licensed. If this is really derived then there is a possible issue as the license may be that of the original not of the derivative. It also contains code from other origins such as http://lethain.com/entry/2009/jan/22/handling-very-large-csv-and-xml-files-in-python/ PHPExcel in turns claims to contain code from these origins:
PHP port of JAMA matrix library (http://www.phpmath.com/build03/JAMA/docs/) (probably not relevant here)
XLRD
Uses a combo of a BSD license and a BSD original license. XLRD itself is based on a BSD-original-licensed component written in C called xlreader at http://www.giffin.org/xlreader.php released circa fall 2001. This is turn is based on a LGPL 2.0-licensed component at http://www.andykhan.com/excelread/ released circa fall 2001 at http://web.archive.org/web/20011117133717/http://www.andykhan.com/excelread/ . ExcelRead later became jExcelAPI http://jexcelapi.sourceforge.net/, still LGPL-licensed.
The xlrd license history is confusing at best, because if the C xlreader is really a derivative of the Java LGPL-licensed excelread, then its BSD original license might be moot, as the license may be that of the original not of the derivative. If this was just used for ideas, then only the BSD original license issue may stand (with its extensive advertising clause being an issue and making it not GPL-compatible among other things and a pain with MIT or Apache-licensed code).
XLWT
Uses a combo of bsd-modified and bsd-original-license at https://github.com/python-excel/xlwt/blob/master/licences.py . It started as a fork of PyExcelerator by Roman V. Kiseliov that was also BSD-original at http://sourceforge.net/projects/pyexcelerator/ . Pyexcelerator in turn has this notice: http://ftp-master.metadata.debian.org/changelogs//main/p/pyexcelerator/pyexcelerator_0.6.4.1-1_copyright . And per https://github.com/python-excel/xlwt/commit/be268c8a01f1738c39aa3486802972ae6c7f34d1 and https://github.com/python-excel/xlwt/blob/master/licences.py ... this is a partial port of pyXLWriter http://pyxlwriter.sourceforge.net/ LGPL-2.0-licensed, but itself claiming to be a port of a Perl module by John McNamara (Perl Spreadsheet::WriteExcel which was Perl-licensed.)
The combo of BSD, BSD original, Perl and LGPL may not mesh well. The Perl issue may have been addressed here: https://launchpad.net/ubuntu/raring/+source/xlwt/+copyright
Other components:
See also: http://ftp-master.metadata.debian.org/changelogs//main/p/python-tablib/python-tablib_0.9.11-1_copyright