Hotfix/econometrics export filename fix (#5508)

* fix: Modify 'load' behavior to append data to existing sheet

Details:
- Added logic to detect existing sheet and append data if present.
- There is no direct way to append on the sheet, so I am reading the sheet to get the last row number and then writing after that row number.

Resolves: #5472

* Added --export option for exporting to a desired file in /econometrics menu

* Added a -f/--file option to provide the filename for export.
Made -t/--type and -f/--file mutually exclusive.
If -f is not given, -t is required and the filename will be generated based on the time and module.

* Revert `helper_funcs.py` to original state

* Made some arguments not required.

* Minor changes asked by @deeleeramone

* No sheet name

* black

---------

Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com>
This commit is contained in:
Sandip Saha
2023-10-30 08:40:41 +05:30
committed by GitHub
parent b4db72f5e8
commit 195bc057bb

View File

@@ -458,7 +458,15 @@ class EconometricsController(BaseController):
type=str,
)
parser.add_argument(
export_group = parser.add_mutually_exclusive_group(required=False)
export_group.add_argument(
"-f",
"--file",
dest="file",
help="The name of the file you wish to export to",
type=str,
)
export_group.add_argument(
"-t",
"--type",
help="The file type you wish to export to",
@@ -471,7 +479,7 @@ class EconometricsController(BaseController):
if other_args and "-" not in other_args[0][0]:
other_args.insert(0, "-n")
ns_parser = self.parse_known_args_and_warn(
parser, other_args, export_allowed=NO_EXPORT
parser, other_args, export_allowed=EXPORT_ONLY_RAW_DATA_ALLOWED
)
if ns_parser:
@@ -479,10 +487,13 @@ class EconometricsController(BaseController):
console.print("Please enter a valid dataset.")
else:
export_data(
ns_parser.type,
ns_parser.file if ns_parser.file else ns_parser.type,
os.path.dirname(os.path.abspath(__file__)),
ns_parser.name,
self.datasets[ns_parser.name],
sheet_name=" ".join(ns_parser.sheet_name)
if ns_parser.sheet_name
else None,
)
console.print()