44import os
55import argparse
66from pathlib import Path
7+ from typing import Any , Dict , List , Optional
8+ from decimal import Decimal
9+
710
811
912def map_dynamo_type (value : Any ):
@@ -28,7 +31,8 @@ def map_dynamo_type(value: Any):
2831
2932def upload_to_s3 (s3_client , bucket , filepath , dry_run = False ):
3033 filename = os .path .basename (filepath )
31- s3_key = f"manual-uploads/{ filename } .json"
34+ print (f"Filepath: { filepath } " )
35+ s3_key = f"manual-uploads/{ filename } "
3236
3337 if dry_run :
3438 print (f"[DRY RUN] Would upload { filepath } to s3://{ bucket } /{ s3_key } " )
@@ -54,7 +58,8 @@ def upload_to_dynamo(dynamo_client, table_name, filepath):
5458 print (f"Failed to upload { filepath } : { e } " )
5559
5660
57- def main ():
61+ def run_upload (args = None ):
62+ print ("\n \n \n ***** We are in main *****\n \n \n " )
5863 parser = argparse .ArgumentParser ()
5964 parser .add_argument ("--env" )
6065 parser .add_argument ("--upload-s3" , type = Path )
@@ -63,25 +68,29 @@ def main():
6368 parser .add_argument ("--s3-bucket" )
6469 parser .add_argument ("--dynamo-table" )
6570 parser .add_argument ("--dry-run" , action = "store_true" )
66- args = parser .parse_args ()
6771
68- if not args .s3_bucket :
69- args .s3_bucket = f"eligibility-signposting-api-{ args .env } -eli-rules"
70- if not args .dynamo_table :
71- args .dynamo_table = f"eligibility-signposting-api-{ args .env } -eligibility_datastore"
72+ if args is None :
73+ parsed_args = parser .parse_args ()
74+ else :
75+ parsed_args = parser .parse_args (args )
76+
77+ if not parsed_args .s3_bucket :
78+ parsed_args .s3_bucket = f"eligibility-signposting-api-{ parsed_args .env } -eli-rules"
79+ if not parsed_args .dynamo_table :
80+ parsed_args .dynamo_table = f"eligibility-signposting-api-{ parsed_args .env } -eligibility_datastore"
7281
7382 session = boto3 .Session ()
74- s3 = session .client ("s3" , region_name = args .region )
75- dynamo = session .client ("dynamodb" , region_name = args .region )
83+ s3 = session .client ("s3" , region_name = parsed_args .region )
84+ dynamo = session .client ("dynamodb" , region_name = parsed_args .region )
7685
77- if args .upload_s3 :
78- for filepath in args .upload_s3 .glob ("*.json" ):
79- upload_to_s3 (s3 , args .s3_bucket , str (filepath ), args .dry_run )
86+ if parsed_args .upload_s3 :
87+ for filepath in parsed_args .upload_s3 .glob ("*.json" ):
88+ upload_to_s3 (s3 , parsed_args .s3_bucket , str (filepath ), parsed_args .dry_run )
8089
81- if args .upload_dynamo :
82- for filepath in args .upload_dynamo .glob ("*.json" ):
83- upload_to_dynamo (dynamo , args .dynamo_table , str (filepath ))
90+ if parsed_args .upload_dynamo :
91+ for filepath in parsed_args .upload_dynamo .glob ("*.json" ):
92+ upload_to_dynamo (dynamo , parsed_args .dynamo_table , str (filepath ))
8493
8594
8695if __name__ == "__main__" :
87- main ()
96+ run_upload ()
0 commit comments