Skip to content

Commit

Permalink
Hotfix/econometrics export filename fix (#5508)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
3 people committed Oct 30, 2023
1 parent b4db72f commit 195bc05
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions openbb_terminal/econometrics/econometrics_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,15 @@ def call_export(self, other_args: List[str]):
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",
Expand All @@ -471,18 +479,21 @@ def call_export(self, other_args: List[str]):
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:
if not ns_parser.name or ns_parser.name not in self.datasets:
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()
Expand Down

0 comments on commit 195bc05

Please sign in to comment.