vallettea / koala

Transpose your Excel calculations into python for better performances and scaling.
GNU General Public License v3.0
143 stars 60 forks source link

Roll back merge of ExcelCompiler and Spreadsheet objects #226

Open bradbase opened 4 years ago

bradbase commented 4 years ago

@danielsjf @brianmay, Do you mind if we roll back the merger of ExcelCompiler into Spreadsheet?

It's not possible for us to merge those objects while keeping existing functionality (which I rely upon) without a major re-write of Koala -- including major architecture changes -- all in one hit.

If you see that merger as imperative, please let me know.

danielsjf commented 4 years ago

@bradbase I have been absent for a while so I haven't had much time to look into your changes. I don't have a strong opinion on this to be honest. I did like the simplification, but if it breaks things it should be fixed. Concretely you propose to roll back #187, but it could be that this also impacts #189 and #191. I'm not sure the last two are fundamental to the roll back and so if possible I would propose to keep those two intact.

To aid the discussion, could you explain shortly which changes of this merger exactly impact your issues in recreating the old behaviour? Maybe it would be good to create a kind of test for your old behaviour. This would help me to understand the issues more precisely.

brianmay commented 4 years ago

Unfortunately, I work for a consulting company, and I haven't had time to revisit this library in some time. I have no problem with rolling back, although there should be some sort of plan for for moving forward. Which we have not been good at keeping. Maybe:

  1. Roll back this change.
  2. Make a new release that is entirely backward compatible.
  3. Drop Python 2.7 tests.
  4. Redo this merger of ExcelCompiler into Spreadsheet.
  5. Increment major version.
  6. Update documentation. State this is only for Python 3.x and may require changes due to merger.
  7. Release.
ensemble-devices commented 4 years ago

@danielsjf apologies for this very late comment, but I've just noticed that Spreadsheet object appears to have two methods called clean_pointer - its original, plus the one which may have been copied in from ExcelCompiler.

bradbase commented 4 years ago

@ensemble-devices From memory there are a handful of "duplicate" methods (methods with the same name which appear to share the same intent). Some are in the same object, others are in different objects. Often they have similar implementations but are rarely exact copies.

I tried to clean things up and ended up starting a new project https://github.com/bradbase/xlcalculator