8. Changelog¶
8.1. v1.2.6 (2023-11-15)¶
8.1.1. Feat¶
(builder) #104: Allow custom reference definition.
(test): Update test cases.
(operand) #106: Accept number like .3 to be parsed.
(text) #113: Add TEXT function without fraction formatting.
(logic): Update logic functions according to new excel logic.
(text) #113: Add VALUE function.
(math) #121: Improve performances of SUMPRODUCT, PRODUCT, SUM, and SUMIF.
(setup): Update requirements.
(core): Change development status.
(core): Add support for python 3.10 and 3.11.
(functions) #121: Improve handling of EMPTY values.
(excel): Avoid using flatten function in basic routines.
(doc): Add Read the Docs configuration file.
(excel): Add tolerance when comparing two excels.
(excel): Add compare method to verify if formulas is able to replicate excel values.
8.1.2. Fix¶
(doc): Remove broken badge.
(excel) #100: Correct reading rounding from excel.
(math) #100: Correct TRUNC defaults.
(tokens) #113: Correct sheet_id definition.
(functions): Correct dill pickling error.
(excel): Correct reference parsing when loading from JSON.
(functions): Use an alternative method of vectorize when more than 32 arguments are provided.
(look): Correct MATCH, LOOKUP,`HLOOKUP`, and VLOOKUP behaviour when empty values are given.
(date): Correct DATEDIF behaviour when unit is lowercase.
(test): Use regex for unstable tests due to changes in last digits.
(doc): Correct documentation bug due to new sphinx.
(excel) #114: Update reading code according to openpyxl>=3.1.
8.2. v1.2.6 (2022-12-13)¶
8.2.1. Fix¶
(setup): Update schedula requirement.
8.3. v1.2.5 (2022-11-07)¶
8.3.1. Fix¶
(parser): Correct missing raise.
(excel): Skip hidden named ranges.
8.4. v1.2.4 (2022-07-02)¶
8.4.1. Feat¶
(core): Improve speed performance.
(cell): Improve speed RangesAssembler definition.
8.4.2. Fix¶
(cell): Correct range assembler defaults when no sheet_id is defined.
(math) #99: Convert args into np.arrays in func xsumproduct.
(look): Correct lookup parser for float and strings.
8.5. v1.2.3 (2022-05-10)¶
8.5.1. Feat¶
(test): Add more error logs.
(test): Improve code coverage.
(builder): Add compile_class attribute to AstBuilder.
(info): Add ISODD, ISEVEN, ISBLANK, ISTEXT, ISNONTEXT, and ISLOGICAL functions.
8.5.2. Fix¶
(excel): Correct file path excel definition.
(logic): Correct SWITCH error handling.
(actions): Rename workflow name.
(readme): Correct badge link for dependencies status.
(excel): Correct basedir reference to load files.
(date): Correct YEARFRAC and DATEDIF formulation.
(cell): Enable R1C1 notation for absolute and relative references.
(cell): Correct RangeAssembler value assignment.
8.6. v1.2.2 (2022-01-22)¶
8.6.1. Fix¶
(excel): Correct function compilation from excel.
8.7. v1.2.1 (2022-01-21)¶
8.7.1. Feat¶
8.7.2. Fix¶
(excel): Correct compile function when inputs are computed with a default function.
8.8. v1.2.0 (2021-12-23)¶
8.8.1. Feat¶
(binder): Refresh environment binder for 2021.
(look) #87: Add ADDRESS function.
(test): Update test cases.
(financial) #74, #87: Add FV, PV, IPMT, PMT, PPMT, RATE, CUMIPMT, and NPER functions.
(info, logic): Add ISNA and IFNA functions.
(date) #87: Add WEEKDAY, WEEKNUM, ISOWEEKNUM, and DATEDIF functions.
(stat, math) #87: Add SLOPE and PRODUCT functions.
(stats) #87: Add CORREL and MEDIAN functions.
(bin): Add bin folder.
(actions): Add test cases.
(stats) #80: Add FORECAST and FORECAST.LINEAR functions.
(excel) #82: Add inverse of simple references.
8.8.2. Fix¶
8.9. v1.1.1 (2021-10-13)¶
8.9.1. Feat¶
(excel): Improve performances of complete method.
(setup): Add add python 3.9 in setup.py.
(functions): Add SEARCH, ISNUMBER, and EDATE functions.
(travis): Update python version for coveralls.
8.9.2. Fix¶
(doc): Correct missing documentation link.
(doc): Correct typo.
(operator) #70: Correct % operator preceded by space.
8.10. v1.1.0 (2021-02-16)¶
8.10.1. Feat¶
(look) #57: Add SINGLE function.
(function) #51: Add google Excel functions.
(excel) #65: Add documentation and rename method to load models from ranges.
(excel) #65: Add method to load sub-models from range.
(doc): Update Copyright.
(excel): Improve performances.
(excel) #64: Read model from outputs.
(core): Update range definition with path file.
(excel) #64: Add warning for missing reference.
(excel) #64: Add warning message when book loading fails.
(readme) #44: Add example to export and import the model to JSON format.
(readme) #53: Add instructions to install the development version.
(excel) #44: Add feature to export and import the model to JSON- able dict.
(stat, comp) #43: Add STDEV, STDEV.S, STDEV.P, STDEVA, STDEVPA, VAR, VAR.S, VAR.P, VARA, and VARPA functions.
8.10.2. Fix¶
(financial): Correct requirements for irr function.
(excel) #48: Correct reference pointing to different workbooks.
(function) #67: Correct compilation of impure functions (e.g., rand, now, etc.).
(look) #66: Correct check function did not return value.
(test): Remove temp dir.
(excel): Correct external link reading.
(operator) #63: Correct operator parser when starts with spaces.
(text) #61: Convert float as int when stringify if it is an integer.
(math) #59: Convert string to number in math operations.
(functions): Correct _xfilter operating range type.
(parser) #61: Skip n in formula expression.
(operator) #58: Correct operator parser for composed operators.
(excel): Correct invalid range definition and missing sheet or files.
(operand) #52: Correct range parser.
(operand) #50: Correct sheet name parser with space.
(tokens): Correct closure parenthesis parser.
(excel): Skip function compilation for string cells.
(tokens): Correct error parsing when sheet name is defined.
8.11. v1.0.0 (2020-03-12)¶
8.11.1. Feat¶
(core): Add CODE_OF_CONDUCT.md.
(function) #39: Transform NotImplementedError into #NAME?.
(text) #39: Add CONCAT and CONCATENATE functions.
(logic) #38: Add TRUE/FALSE functions.
(excel) #42: Save missing nodes.
(excel) #42: Update logic for RangesAssembler.
(excel): Improve performance of finish method.
(core): Update build script.
(core): Add support for python 3.8 and drop python 3.5 and drop appveyor.
(core): Improve memory performance.
(refact): Update copyright.
(operand): Add fast_range2parts_v4 for named ranges.
8.11.2. Fix¶
(math) #37: Match excel default rounding algorithm of round half up.
(cell): Correct reference in push method.
(readme): Correct doctest.
(token): Correct separator parser.
(excel) #35: Update logic to parse named ranges.
(operand): Associate excel_id==0 to current excel.
(array): Ensure correct deepcopy of Array attributes.
(operand) #39: Correct range parser for named ranges.
(operand) #41: Correct named ranges parser.
8.12. v0.4.0 (2019-08-31)¶
8.12.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.12.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.13. v0.3.0 (2019-04-24)¶
8.13.1. Feat¶
8.13.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.14. v0.2.0 (2018-12-11)¶
8.14.1. Feat¶
(doc) #23: Enhance ExcelModel documentation.
8.14.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.15. v0.1.4 (2018-10-19)¶
8.15.1. Fix¶
(tokens) #20: Improve Number regex.
8.16. v0.1.3 (2018-10-09)¶
8.16.1. Feat¶
(excel) #16: Solve circular references.
(setup): Add donate url.
8.16.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.16.3. Other¶
Update documentation.
Replace excel with Excel.
Create PULL_REQUEST_TEMPLATE.md.
Update issue templates.
Update copyright.
(doc): Update author mail.
8.17. v0.1.2 (2018-09-12)¶
8.17.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.17.2. Fix¶
(ranges): Replace system max size with excel max row and col.
(tokens): Correct number regex.
8.18. v0.1.1 (2018-09-11)¶
8.18.1. Feat¶
(contrib): Add contribution instructions.
(setup): Add additional project_urls.
(setup): Update Development Status to 4 - Beta.
8.18.2. Fix¶
(init) #15: Replace FUNCTIONS and OPERATORS objs with get_functions, SUBMODULES.
(doc): Correct link docs_status.
8.19. v0.1.0 (2018-07-20)¶
8.19.1. Feat¶
8.19.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.20. v0.0.10 (2018-06-05)¶
8.20.1. Feat¶
(look): Simplify _get_type_id function.
8.20.2. Fix¶
(functions): Correct ImportError for FUNCTIONS.
(operations): Correct behaviour of the basic operations.
8.21. v0.0.9 (2018-05-28)¶
8.21.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.21.2. Fix¶
(ranges): Minimize conversion str to int and vice versa.
(functions) #10: Avoid returning shapeless array.
8.22. v0.0.8 (2018-05-23)¶
8.22.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.22.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.22.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.23. v0.0.7 (2017-07-20)¶
8.23.1. Feat¶
(appveyor): Add python 3.6.
(functions) #4: Add sumproduct function.
8.23.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.23.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.24. v0.0.6 (2017-05-31)¶
8.24.1. Fix¶
(plot): Update schedula to 0.1.12.
(range): Sheet name without commas has this [^Wd][w.] format.
8.25. v0.0.5 (2017-05-04)¶
8.25.1. Fix¶
(doc): Update schedula to 0.1.11.
8.26. v0.0.4 (2017-02-10)¶
8.26.1. Fix¶
(regex): Remove deprecation warnings.
8.27. v0.0.3 (2017-02-09)¶
8.27.1. Fix¶
(appveyor): Setup of lxml.
(excel): Remove deprecation warning openpyxl.
(requirements): Update schedula requirement 0.1.9.
8.28. v0.0.2 (2017-02-08)¶
8.28.1. Fix¶
(setup): setup fails due to long description.
(excel): Remove deprecation warning remove_sheet –> remove.