v0.11.1 Changes: - The calendar for June/July/August has been modified. - supplierInvoiceDateId takes precedence over the default dateId when available.
v0.11.0 Added: - User-defined structures in report configuration for pivot outputs. Although not required (will default to a sheet named after the table and cell B4), allows for more flexibility in data output. - Pivot table configuration can now choose to be formatted or not. - Un-needed sheets are removed prior to saving a spreadsheet. Changed: - Checking for report templates has become more robust to cover edge cases of it not being found. Fixed: - Formatting for pivot tables in an Excel sheet will work correctly if no subtotals have been specified.
v0.10.3 Mostly bug changes regarding adhoc reports and pivot formatting. Changed: - The formatting option has been (very quickly) deprecated. It is no longer necessary to enable the feature; any file generated without a template will be automatically formatted. Fixed: - Depending on the type of report, setting pivot options may crash ade due to unhandled exceptions not yet updated with the pivot changes. - Including raw data now works regardless of the query being a pre-configured or adhoc report, and whether or not a template exists. - Pivot table formatting has been set correctly regardless of the number of columns included in the table.
v0.10.2 Significant bugs and some small features added in this release. Bugs fixes: - With the change from directly accessing raw cursors in pyodbc to using sqlalchemy, add_hierarchy() was still attempting to pull a DataFrame with a raw cursor and .fetchall(). The fix allows new numbers to be added to the local database. - Although lists of PivotArgs were allowed in the report schema, there were instances throughout the codebase that hadn't been updated to accept those changes. Multiple pivots per query are now possible. - Automatic adhoc formatting for pivot tables has been updated to include compatibility with multiple columns. New features: - Included with the updates for PivotArgs is a new attribute `query`. With it, slices to the Output DataFrame can be used instead of the original DataFrame. - When sending a compiled report to a file, unused tabs will be deleted prior to saving. - "rolling_twelve" is a new report configuration keyword replacement. This keyword will be replaced by the the year-month 12 months prior to the most recent close.
v0.10.1 When creating spreadsheets for any ade report, duplicate filenames would automatically create a new file with a version tag (i.e. client_revenue_v1). Due to the sorting method used, the attempt to find the most recent version to +1 to it would crash due to using regex on a Path object instead of a string. This version corrects this behavior and multiple versioned reports past v1 can now be safely created.
adhoc data and pivot table formatting Any template-less report has the option to enable automatic formatting based on its type. A "data" report indicated in reports.yaml, a report without a template with the option "formatting=True", or a true adhoc report created through the REPL, are all candidates for this feature. The original Output dataframe, which can also be included now with pivot tables, will be sent to the spreadsheet formatted as a proper table, while any pivots created will be formatted as a summary: no gridlines, subtotal highlighting, frozen panes, and bolded margins.
v0.9.3 This release contains a fix correcting the URL for code documentation. In the ade window, navigating to Help -> Code documentation will take you to the correct URL.
v0.9.2 🦠Bug fixes: - SQLAlchemy works within PyInstaller executables. New features: - util.sql.split_parameter_list() now has a variable chunk size as an argument. - remote.{customer_search,location_search}() have a flag for globs to specify "=" vs "LIKE" in SQL query.
v0.9.1 🦠Bug fixes: - The makefile now works correctly with PyInstaller expecting a string path instead of a Path object. - The default config.yaml options for `server` and `reference` have been changed from None to `~/` and `~/reference`, respectively. This allows fresh installations to load `ade` correctly and allow users to edit their config with the proper paths before running any report.
v0.9.0 🚀 Breaking changes: - Massive refactoring across the entire library. lib.data has moved to lib.remote, lib.sql has been split between lib.connections, lib.local, and lib.util.sql, and lib.util split up into the latter sql as well as cleanup and data. The only remaining major refactor is to move lib.national into lib.local and set up as a National class. - Harcoded data has been eliminated from the source code. config.yaml should now specify values for file servers and potential backups, a path for reference and template files, and SQL server & database strings. Additionally, all bin/* scripts that require a configuration file should save those files in REPORT_HOME/configs. New features: - Cleaning NA columns for Excel output as well as .pivot_table creation is now available through lib.util.cleanup.na(). - lib.util.data.subtotal() works for multiple aggregate functions as well as allows for pivot table margins. - Both the GUI and lib.remote.run() implement the filename argument from lib.remote.File in order to override auto-generated filename (or the configurated one) and automatically versions filenames with the same name as opposed to the previous overwrite. - Both the GUI and lib.remote.run() now implement the open_file argument from lib.remote.File in order to automatically open the output Excel file instead of running it in the background. Bug fixes: - SQLAlchemy use instead of pyodbc in order to consolidate into a library fully supported by pandas. - lib.util.sql.operator() now casts a value passed to it to a string as there is no longer a dependence on pydantic. - An AssertionError is no longer raised when trying to send an email with an empty Email struct. - DataFrame.append calls have been changed to pd.concat as per the pandas depreciation warning. - The makefile path to change into the correct directory before running install.bat has been corrected. Other: - README has been split and made general, while detailed usage information is available in the wiki https://man.sr.ht/~savoy/ade-wiki/