Change Log
==========

1.0.2 (06/17/2021)
------------------
-First Release

1.0.3 (06/22/2021)
-Added attribute table_data to Stand Class: a list of the tree-level data for trees within the stand
-Added method table_to_csv: exports  stand.table_data to a csv file
-Added method table_to_excel: exports stand.table_data to an xlsx file

1.0.4 (06/23/2021)
-Evened out the lengths of the sub lists within stand.table_data

1.0.5 (10/20/2021)
-Changed the way you import the main classes (Stand, Plot, TimberQuick, etc.),
you can now just import them from treetopper instead of from the modules

1.0.6 (10/20/2021)
-Added package dependencies to setup.py

1.0.7 (10/20/2021)
-Testing package dependencies on pip install, apologies for the frequent version increasing

1.0.8 (10/20/2021)
-Testing package dependencies on pip install, apologies for the frequent version increasing

1.0.9 (10/22/2021)
-Added TargetDensityError to the treetopper imports

1.0.10 (10/22/2021)
-Added the option to run through various workflow examples from the terminal using "python -m treetopper.stand"
-Added example inventory data sheets to the package installer, these will be used when using the stand module workflows
-Updated the README
-Fixed a typo for TargetDensityError (previously TargetDenistyError)

1.0.11 (10/22/2021)
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.0.12 (10/22/2021)
-Changed the Manifest.in to include inventory sheets
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.0.13 (10/22/2021)
-Changed the Manifest.in to graft inventory sheets dir
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.0.14 (10/22/2021)
-Moved inventory sheets into the package directory
-Added *.csv and *.xlsx to the global-include of Manifest.in
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.0.15 (10/22/2021)
-Forgot to edit the stand's path to inventory sheet
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.0.16 (10/22/2021)
-Changed the stands inventory sheet path to join with current working directory, relative path did not work
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.0.17 (10/22/2021)
-Changed the stands inventory sheet path to find site-package path, current working directory did not work
-Testing the inclusion of inventory data sheets to the package installer, apologies for the frequent version increasing

1.1.0 (10/22/2021)
-Completed the inclusion of data sheets for package installer, "python -m treetopper.stand [workflow number]" is stable now
-Still need to update docs -- coming soon

1.1.1 (10/25/2021)
-LARGE amount of refactoring
-Methods that have been replaced...
--methods to import from sheets
    stand.from_excel_quick()
    stand.from_excel_full()
    stand.from_csv_quick()
    stand.from_csv_full()

--have been REPLACED with
    stand.import_sheet_quick()
    stand.import_sheet_full()

-stand.console_report() went back to printing the console report, DO NOT need to call print on the return value,
to return the console report as a string, call the stand.get_console_report_text() method

-the Thin Classes also added the option to get the stand report as text, for this call the thin.get_console_report_text() method

-to get pieces of the console report as text, for example only the stand current conditions table, call either of these three methods:
    stand.get_stand_table_text()
    stand.get_logs_table_text()
    stand.get_stats_table_text()
--these tables are also available as lists or dict of lists, the attributes that contain them are
    stand.summary_stand
    stand.summary_logs
    stand.summary_stats

-the Thin Classes also added a summary dict attribute
    thin.summary_thin

-stand.pdf_report() method and thin.pdf_report() method added a "start_file_upon_creation" optional argument, default is False.
If you wish to start the pdf file after it's created, set start_file_upon_creation to True

-to export the processed stand data to an .xlsx or .csv file call either of these two methods:
    stand.table_to_excel()
    stand.table_to_csv()
--these methods will export a sheet formatted like a full cruise sheet

-added the ability to create a blank FVS database by calling the fvs module in the terminal "python -m treetopper.fvs"

-documents have been updated


1.1.2 (10/25/2021)
-fixed small typo in the stand module workflows

1.1.3 (10/27/2021)
-added the option to get the pdf reports for the Stand and Thin classes as a BytesIO object, call the get_pdf_report_bytes_io() method

-added pythoncom.CoInitialize() when dispatching Access to create FVS database from FVS access_db(), I was working on another Flask-based
project and ran into this error "pywintypes.com_error: (-2147221008, 'CoInitialize has not been called.', None, None)", could be from
interference with flask app.run() -- will test and see if successful with the other project. Adding the pythoncom.CoInitialize() hasn't
affected the creation of the access db in normal settings.

1.1.4 (10/27/2021)
-adding pythoncom.CoInitialize() [in version 1.1.3] fixed the problem with calling the access_db() method of the FVS class while
running Flask (and possibly other similar frameworks).

-fixed a small error in the data been sent to the FVS databases: getting the data uses a conditional "if data" to add
data to a list, this was changed to "if data is not None" to include values that were zero

1.1.5 (10/27/2021)
-edited the SQL statement for FVS database table 'FVS_GroupAddFilesAndKeywords'

1.1.6 (10/27/2021)
-edited the SQL statement for FVS database table 'FVS_GroupAddFilesAndKeywords' - last version did not work when running in FVS

