8. Changelog

8.1. v0.4.0 (2019-08-31)

8.1.1. Feat

  • (doc): Add binder.
  • (setup): Add env ENABLE_SETUP_LONG_DESCRIPTION.
  • (core): Add useful constants.
  • (excel): Add option to write all calculate books inside a folder.
  • (stat) #21: Add COUNTBLANK, LARGE, SMALL functions.
  • (date) #35: Add NPV, XNPV, IRR, XIRR functions.
  • (stat) #21: Add AVERAGEIF, COUNT, COUNTA, COUNTIF functions.
  • (math) #21: Add SUMIF function.
  • (date) #21, #35, #36: Add date functions DATE, DATEVALUE, DAY, MONTH, YEAR, TODAY, TIME, TIMEVALUE, SECOND, MINUTE, HOUR, NOW, YEARFRAC.
  • (info) #21: Add NA function.
  • (date) #21, #35, #36: Add date functions DATE, DATEVALUE, DAY, MONTH, YEAR, TODAY, TIME, TIMEVALUE, SECOND, MINUTE, HOUR, NOW, YEARFRAC.
  • (stat) #35: Add MINA, AVERAGEA, MAXA functions.

8.1.2. Fix

  • (setup): Update tests requirements.
  • (setup): Correct setup dependency (beautifulsoup4).
  • (stat): Correct round indices.
  • (setup) #34: Build universal wheels.
  • (test): Correct import error.
  • (date) #35: Correct behaviour of LOOKUP function when dealing with errors.
  • (excel) #35: Improve cycle detection.
  • (excel,date) #21, #35: Add custom Excel Reader to parse raw datetime.
  • (excel) #35: Correct when definedName is relative #REF!.

8.2. v0.3.0 (2019-04-24)

8.2.1. Feat

  • (logic) #27: Add OR, XOR, AND, NOT functions.
  • (look) #27: Add INDEX function.
  • (look) #24: Improve performances of look functions.
  • (functions) #26: Add SWITCH.
  • (functions) #30: Add GCD and LCM.
  • (chore): Improve performances avoiding combine_dicts.
  • (chore): Improve performances checking intersection.

8.2.2. Fix

  • (tokens): Correct string nodes ids format adding .
  • (ranges): Correct behaviour union of ranges.
  • (import): Enable PyCharm autocomplete.
  • (import): Save imports.
  • (test): Add repo path to system path.
  • (parser): Parse empty args for functions.
  • (functions) #30: Correct implementation of GCD and LCM.
  • (ranges) #24: Enable full column and row reference.
  • (excel): Correct bugs due to new openpyxl.

8.3. v0.2.0 (2018-12-11)

8.3.1. Feat

  • (doc) #23: Enhance ExcelModel documentation.

8.3.2. Fix

  • (core): Add python 3.7 and drop python 3.4.
  • (excel): Make ExcelModel dillable and pickable.
  • (builder): Avoid FormulaError exception during formulas compilation.
  • (excel): Correct bug when compiling excel with circular references.

8.4. v0.1.4 (2018-10-19)

8.4.1. Fix

  • (tokens) #20: Improve Number regex.

8.5. v0.1.3 (2018-10-09)

8.5.1. Feat

  • (excel) #16: Solve circular references.
  • (setup): Add donate url.

8.5.2. Fix

  • (functions) #18: Enable check_error in IF function just for the first argument.
  • (functions) #18: Disable input_parser in IF function to return any type of values.
  • (rtd): Define fpath from prj_dir for rtd.
  • (rtd): Add missing requirements openpyxl for rtd.
  • (setup): Patch to use sphinxcontrib.restbuilder in setup long_description.

8.5.3. Other

  • Update documentation.
  • Replace excel with Excel.
  • Create PULL_REQUEST_TEMPLATE.md.
  • Update issue templates.
  • Update copyright.
  • (doc): Update author mail.

8.6. v0.1.2 (2018-09-12)

8.6.1. Feat

  • (functions) #14: Add ROW and COLUMN.
  • (cell): Pass cell reference when compiling cell + new function struct with dict to add inputs like CELL.

8.6.2. Fix

  • (ranges): Replace system max size with excel max row and col.
  • (tokens): Correct number regex.

8.7. v0.1.1 (2018-09-11)

8.7.1. Feat

  • (contrib): Add contribution instructions.
  • (setup): Add additional project_urls.
  • (setup): Update Development Status to 4 - Beta.

8.7.2. Fix

  • (init) #15: Replace FUNCTIONS and OPERATORS objs with get_functions, SUBMODULES.
  • (doc): Correct link docs_status.

8.8. v0.1.0 (2018-07-20)

8.8.1. Feat

  • (readme) #6, #7: Add examples.
  • (doc): Add changelog.
  • (test): Add info of executed test of test_excel_model.
  • (functions) #11: Add HEX2OCT, HEX2BIN, HEX2DEC, OCT2HEX, OCT2BIN, OCT2DEC, BIN2HEX, BIN2OCT, BIN2DEC, DEC2HEX, DEC2OCT, and DEC2BIN functions.
  • (setup) #13: Add extras_require to setup file.

8.8.2. Fix

  • (excel): Use DispatchPipe to compile a sub model of excel workbook.
  • (range) #11: Correct range regex to avoid parsing of function like ranges (e.g., HEX2DEC).

8.9. v0.0.10 (2018-06-05)

8.9.1. Feat

  • (look): Simplify _get_type_id function.

8.9.2. Fix

  • (functions): Correct ImportError for FUNCTIONS.
  • (operations): Correct behaviour of the basic operations.

8.10. v0.0.9 (2018-05-28)

8.10.1. Feat

  • (excel): Improve performances pre-calculating the range format.
  • (core): Improve performances using DispatchPipe instead SubDispatchPipe when compiling formulas.
  • (function): Improve performances setting errstate outside vectorization.
  • (core): Improve performances of range2parts function (overall 50% faster).

8.10.2. Fix

  • (ranges): Minimize conversion str to int and vice versa.
  • (functions) #10: Avoid returning shapeless array.

8.11. v0.0.8 (2018-05-23)

8.11.1. Feat

  • (functions): Add MATCH, LOOKUP, HLOOKUP, VLOOKUP functions.
  • (excel): Add method to compile ExcelModel.
  • (travis): Run coveralls in python 3.6.
  • (functions): Add FIND,`LEFT`,`LEN`,`LOWER`,`MID`,`REPLACE`,`RIGHT`,`TRIM`, and`UPPER` functions.
  • (functions): Add IRR function.
  • (formulas): Custom reshape to Array class.
  • (functions): Add ISO.CEILING, SQRTPI, TRUNC functions.
  • (functions): Add ROUND, ROUNDDOWN, ROUNDUP, SEC, SECH, SIGN functions.
  • (functions): Add DECIMAL, EVEN, MROUND, ODD, RAND, RANDBETWEEN functions.
  • (functions): Add FACT and FACTDOUBLE functions.
  • (functions): Add ARABIC and ROMAN functions.
  • (functions): Parametrize function wrap_ufunc.
  • (functions): Split function raise_errors adding get_error function.
  • (ranges): Add custom default and error value for defining ranges Arrays.
  • (functions): Add LOG10 function + fix LOG.
  • (functions): Add CSC and CSCH functions.
  • (functions): Add COT and COTH functions.
  • (functions): Add FLOOR, FLOOR.MATH, and FLOOR.PRECISE functions.
  • (test): Improve log message of test cell.

8.11.2. Fix

  • (rtd): Update installation file for read the docs.
  • (functions): Remove unused functions.
  • (formulas): Avoid too broad exception.
  • (functions.math): Drop scipy dependency for calculate factorial2.
  • (functions.logic): Correct error behaviour of if and iferror functions + add BroadcastError.
  • (functions.info): Correct behaviour of iserr function.
  • (functions): Correct error behaviour of average function.
  • (functions): Correct iserror and iserr returning a custom Array.
  • (functions): Now xceiling function returns np.nan instead Error.errors[‘#NUM!’].
  • (functions): Correct is_number function, now returns False when number is a bool.
  • (test): Ensure same order of workbook comparisons.
  • (functions): Correct behaviour of min max and int function.
  • (ranges): Ensure to have a value with correct shape.
  • (parser): Change order of parsing to avoid TRUE and FALSE parsed as ranges or errors as strings.
  • (function):Remove unused kwargs n_out.
  • (parser): Parse error string as formulas.
  • (readme): Remove downloads_count because it is no longer available.

8.11.3. Other

  • Refact: Update Copyright + minor pep.
  • Excel returns 1-indexed string positions???
  • Added common string functions.
  • Merge pull request #9 from ecatkins/irr.
  • Implemented IRR function using numpy.

8.12. v0.0.7 (2017-07-20)

8.12.1. Feat

  • (appveyor): Add python 3.6.
  • (functions) #4: Add sumproduct function.

8.12.2. Fix

  • (install): Force update setuptools>=36.0.1.
  • (functions): Correct iserror iserr functions.
  • (ranges): Replace ‘#N/A’ with ‘’ as empty value when assemble values.
  • (functions) #4: Remove check in ufunc when inputs have different size.
  • (functions) #4: Correct power, arctan2, and mod error results.
  • (functions) #4: Simplify ufunc code.
  • (test) #4: Check that all results are in the output.
  • (functions) #4: Correct atan2 argument order.
  • (range) #5: Avoid parsing function name as range when it is followed by (.
  • (operator) #3: Replace strip with replace.
  • (operator) #3: Correct valid operators like ^- or *+.

8.12.3. Other

  • Made the ufunc wrapper work with multi input functions, e.g., power, mod, and atan2.
  • Created a workbook comparison method in TestExcelModel.
  • Added MIN and MAX to the test.xlsx.
  • Cleaned up the ufunc wrapper and added min and max to the functions list.
  • Relaxed equality in TestExcelModel and made some small fixes to functions.py.
  • Added a wrapper for numpy ufuncs, mapped some Excel functions to ufuncs and provided tests.

8.13. v0.0.6 (2017-05-31)

8.13.1. Fix

  • (plot): Update schedula to 0.1.12.
  • (range): Sheet name without commas has this [^Wd][w.] format.

8.14. v0.0.5 (2017-05-04)

8.14.1. Fix

  • (doc): Update schedula to 0.1.11.

8.15. v0.0.4 (2017-02-10)

8.15.1. Fix

  • (regex): Remove deprecation warnings.

8.16. v0.0.3 (2017-02-09)

8.16.1. Fix

  • (appveyor): Setup of lxml.
  • (excel): Remove deprecation warning openpyxl.
  • (requirements): Update schedula requirement 0.1.9.

8.17. v0.0.2 (2017-02-08)

8.17.1. Fix

  • (setup): setup fails due to long description.
  • (excel): Remove deprecation warning remove_sheet –> remove.