S3ROOT = "s3://463002504035-shoreline/raw/uploads"
[docs]
class SBOUtil:
"""All FABRIC ADDRESS version 2 and 3! inventory files and their location in datalake"""
[docs]
@staticmethod
def get_s3_path_v1() -> dict:
"""
Get the s3 path in a dictionary format for the FABRIC ADDRESS version 1 inventory files
:return: the s3 path a dictionary format for the fabric inventory files
"""
fcc_primary_filename = "FCC_Active_06302022_ver1.csv"
fcc_secondary_filename = "FCC_Secondary_06302022_ver1.csv"
fcc_fabric_mapping = {
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/FabricV1/{fcc_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/FabricV1/{fcc_secondary_filename}",
},
}
return fcc_fabric_mapping
# All fabric version 2 inventory files
[docs]
@staticmethod
def get_s3_path_v2() -> dict:
"""
Get the s3 path in a dictionary format for the FABRIC ADDRESS version 2 inventory files
:return: the s3 path a dictionary format for the fabric inventory files
"""
fcc_bsl_filename = "FCC_Active_BSL_12312022_ver1.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_12312022_ver1.csv"
fcc_secondary_filename = "FCC_Secondary_12312022_ver1.csv"
ntia_primary_filename = "ntia_primary_1_2.csv"
ntia_secondary_filename = "ntia_secondary_1_2.csv"
fcc_fabric_mapping = {
"IN": {
"bsl_primary": f"{S3ROOT}/Indiana/unzipped/CostQuest/ActiveBSL/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Indiana/unzipped/CostQuest/ActiveNoBSL/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Indiana/unzipped/CostQuest/Secondary/{fcc_secondary_filename}",
},
"KS": {
"bsl_primary": f"{S3ROOT}/Kansas/unzipped/Fabric_BDC-12312022_ver1/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Kansas/unzipped/Fabric_BDC-12312022_ver1/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Kansas/unzipped/Fabric_BDC-12312022_ver1/{fcc_secondary_filename}",
},
"LA": {
"bsl_primary": f"{S3ROOT}/Louisiana/unzipped/FabricV2/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Louisiana/unzipped/FabricV2/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Louisiana/unzipped/FabricV2/{fcc_secondary_filename}",
},
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/v2/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Mississippi/unzipped/v2/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/v2/{fcc_secondary_filename}",
},
"OK": {
"bsl_primary": f"{S3ROOT}/Oklahoma/unzipped/FabricV2/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Oklahoma/unzipped/FabricV2/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Oklahoma/unzipped/FabricV2/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {
"AR": {
"bsl_primary": f"{S3ROOT}/Arkansas/unzipped/google_drive/{ntia_primary_filename}",
},
"OH": {
"bsl_primary": f"{S3ROOT}/Ohio/unzipped/Fabric Data/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Ohio/unzipped/Fabric Data/{ntia_secondary_filename}",
},
"VA": {
"bsl_primary": f"{S3ROOT}/Virginia/unzipped/FabricV2/Primary/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Virginia/unzipped/FabricV2/Secondary/{ntia_secondary_filename}",
},
"WV": {
"bsl_primary": f"{S3ROOT}/WestVirginia/unzipped/NTIA/Primary/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/WestVirginia/unzipped/NTIA/Secondary/{ntia_secondary_filename}",
},
}
cqa_fabric_mapping = {
"NV": {
"bsl_primary": f"{S3ROOT}/Nevada/unzipped/FabricV2/cqa_v6_full.csv",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
**cqa_fabric_mapping,
}
return all_fabric_mapping
# All fabric version 3 inventory files
[docs]
@staticmethod
def get_s3_path_v3() -> dict:
"""
Get the s3 path for the fabric version 3 inventory files
:return: the s3 path in a dictionary format for the fabric inventory files
"""
fcc_bsl_filename = "FCC_Active_BSL_07212023_rel_3_2.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_07212023_rel_3_2.csv"
fcc_secondary_filename = "FCC_Secondary_07212023_rel_3_2.csv"
ntia_primary_filename = "ntia_primary_07212023_rel_3_2.csv"
ntia_secondary_filename = "ntia_secondary_07212023_rel_3_2.csv"
fcc_fabric_mapping = {
"IN": {
"bsl_primary": f"{S3ROOT}/Indiana/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Indiana/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Indiana/unzipped/FabricV3/{fcc_secondary_filename}",
},
"KS": {
"bsl_primary": f"{S3ROOT}/Kansas/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Kansas/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Kansas/unzipped/FabricV3/{fcc_secondary_filename}",
},
"LA": {
"bsl_primary": f"{S3ROOT}/Louisiana/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Louisiana/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Louisiana/unzipped/FabricV3/{fcc_secondary_filename}",
},
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/Fabric_v3_2/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Mississippi/unzipped/Fabric_v3_2/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/Fabric_v3_2/{fcc_secondary_filename}",
},
"VA": {
"bsl_primary": f"{S3ROOT}/Virginia/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Virginia/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Virginia/unzipped/FabricV3/{fcc_secondary_filename}",
},
"MT": {
"bsl_primary": f"{S3ROOT}/Montana/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Montana/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Montana/unzipped/FabricV3/{fcc_secondary_filename}",
},
"DE": {
"bsl_primary": f"{S3ROOT}/Delaware/unzipped/FabricV3/FCC_3_2/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Delaware/unzipped/FabricV3/FCC_3_2/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Delaware/unzipped/FabricV3/FCC_3_2/{fcc_secondary_filename}",
},
"ND": {
"bsl_primary": f"{S3ROOT}/NorthDakota/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/NorthDakota/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/NorthDakota/{fcc_secondary_filename}",
},
"MI": {
"bsl_primary": f"{S3ROOT}/Michigan_Detroit/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Michigan_Detroit/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Michigan_Detroit/unzipped/FabricV3/{fcc_secondary_filename}",
},
# "OK": {
# "bsl_primary": "s3://463002504035-readydatalake/raw/uploads/boss_orgs/2328/FCC_Active_BSL_07212023_rel_3_2 (1)-1707751250035.csv",
# "nonbsl": "s3://463002504035-readydatalake/raw/uploads/boss_orgs/2328/FCC_Active_NoBSL_07212023_rel_3_2 (1)-1707751350207.csv",
# "bsl_secondary": "s3://463002504035-readydatalake/raw/uploads/boss_orgs/2328/FCC_Secondary_07212023_rel_3_2 (1)-1707751181517.csv",
# },
"CT": {
"bsl_primary": f"{S3ROOT}/Connecticut/unzipped/FabricV3/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Connecticut/unzipped/FabricV3/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Connecticut/unzipped/FabricV3/{fcc_secondary_filename}",
},
"UT": {
"bsl_primary": f"{S3ROOT}/Utah/unzipped/FabricV3/{fcc_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Utah/unzipped/FabricV3/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {
"NY": {
"bsl_primary": f"{S3ROOT}/NewYork/unzipped/FabricV3/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NewYork/unzipped/FabricV3/{ntia_secondary_filename}",
},
"AR": {
"bsl_primary": f"{S3ROOT}/Arkansas/unzipped/FabricV3/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Arkansas/unzipped/FabricV3/{ntia_secondary_filename}",
},
"OH": {
"bsl_primary": f"{S3ROOT}/Ohio/unzipped/FabricV3/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Ohio/unzipped/FabricV3/{ntia_secondary_filename}",
},
"NM": {
"bsl_primary": f"{S3ROOT}/NewMexico/unzipped/FabricV3/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NewMexico/unzipped/FabricV3/{ntia_secondary_filename}",
},
"PA": {
"bsl_primary": f"{S3ROOT}/Pennsylvania/FabricV3/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Pennsylvania/FabricV3/{ntia_secondary_filename}",
},
"NH": {
"bsl_primary": f"{S3ROOT}/NewHampshire/NTIA FabricV32/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NewHampshire/NTIA FabricV32/{ntia_secondary_filename}",
},
"OR": {
"bsl_primary": f"{S3ROOT}/Oregon/unzipped/FabricV32/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Oregon/unzipped/FabricV32/{ntia_secondary_filename}",
},
"WY": {
"bsl_primary": f"{S3ROOT}/Wyoming/unzipped/FabricV32/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Wyoming/unzipped/FabricV32/{ntia_secondary_filename}",
},
"HI": {
"bsl_primary": f"{S3ROOT}/Hawaii/unzipped/FabricV32/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Hawaii/unzipped/FabricV32/{ntia_secondary_filename}",
},
"CA": {
"bsl_primary": f"{S3ROOT}/California/unzipped/FabricV32/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/California/unzipped/FabricV32/{ntia_secondary_filename}",
},
"OK": {
"bsl_primary": f"{S3ROOT}/Oklahoma/unzipped/v3/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Oklahoma/unzipped/v3/{ntia_secondary_filename}",
},
"IL": {
"bsl_primary": f"{S3ROOT}/Illinois/unzipped/FabricV32/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Illinois/unzipped/FabricV32/{ntia_secondary_filename}",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
# **cqa_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_s3_path_v4() -> dict:
fcc_bsl_filename = "FCC_Active_BSL_12312023_rel_4.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_12312023_rel_4.csv"
fcc_secondary_filename = "FCC_Secondary_12312023_rel_4.csv"
ntia_primary_filename = "ntia_primary_12312023_rel_4.csv"
ntia_secondary_filename = "ntia_secondary_12312023_rel_4.csv"
fcc_fabric_mapping = {
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/FabricV4/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Mississippi/unzipped/FabricV4/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/FabricV4/{fcc_secondary_filename}",
},
"NY": {
"bsl_primary": f"{S3ROOT}/NewYork/unzipped/v4/fabric/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/NewYork/unzipped/v4/fabric/{fcc_non_bsl_filename}",
},
"NM": {
"bsl_primary": f"{S3ROOT}/NewMexico/unzipped/FabricV4/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/NewMexico/unzipped/FabricV4/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/NewMexico/unzipped/FabricV4/{fcc_secondary_filename}",
},
"NJ": {
"bsl_primary": f"{S3ROOT}/NewJersey/unzipped/FabricV4/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/NewJersey/unzipped/FabricV4/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/NewJersey/unzipped/FabricV4/{fcc_secondary_filename}",
},
"MN": {
"bsl_primary": f"{S3ROOT}/Minnesota/bead_prepare/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Minnesota/bead_prepare/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Minnesota/bead_prepare/{fcc_secondary_filename}",
},
"ID": {
"bsl_primary": f"{S3ROOT}/Idaho/unzipped/FabricV4/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Idaho/unzipped/FabricV4/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Idaho/unzipped/FabricV4/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {
"HI": {
"bsl_primary": f"{S3ROOT}/Hawaii/unzipped/V4/CostQuest Fabric BSL Data/ntia_12312023_rel_4 (NEW)/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Hawaii/unzipped/V4/CostQuest Fabric BSL Data/ntia_12312023_rel_4 (NEW)/{ntia_secondary_filename}",
},
"AL": {
"bsl_primary": f"{S3ROOT}/Alabama/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Alabama/{ntia_secondary_filename}",
},
"CA": {
"bsl_primary": f"{S3ROOT}/California/unzipped/FabricV4/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/California/unzipped/FabricV4/{ntia_secondary_filename}",
},
"OK": {
"bsl_primary": f"{S3ROOT}/Oklahoma/unzipped/v4/V4_Fabric_p1.csv", # no secondary file received
# "bsl_secondary": f"{S3ROOT}/Oklahoma/unzipped/FabricV4/{ntia_secondary_filename}",
},
"NH": {
"bsl_primary": f"{S3ROOT}/NewHampshire/unzipped/V4 Fabric/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NewHampshire/unzipped/V4 Fabric/{ntia_secondary_filename}",
},
"IN": {
"bsl_primary": f"{S3ROOT}/Indiana/unzipped/FabricV4/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Indiana/unzipped/FabricV4/{ntia_secondary_filename}",
},
"AR": {
"bsl_primary": f"{S3ROOT}/Arkansas/unzipped/FabricV4/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Arkansas/unzipped/FabricV4/{ntia_secondary_filename}",
},
"PA": {
"bsl_primary": f"{S3ROOT}/Pennsylvania/FabricV4/{ntia_primary_filename}",
# "bsl_secondary": f"{S3ROOT}/Pennsylvania/FabricV4/{ntia_secondary_filename}",
},
"DC": {
"bsl_primary": f"{S3ROOT}/DC/v4/ntia_primary_12312023_rel_4 (1).csv",
"bsl_secondary": f"{S3ROOT}/DC/v4/ntia_secondary_12312023_rel_4 (1).csv",
},
"ND": {
"bsl_primary": f"{S3ROOT}/NorthDakota/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NorthDakota/{ntia_secondary_filename}",
},
"NC": {
"bsl_primary": f"{S3ROOT}/NorthCarolina/FabricV4/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NorthCarolina/FabricV4/{ntia_secondary_filename}",
},
"GU": {
"bsl_primary": f"{S3ROOT}/Guam/pre-challenge/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Guam/pre-challenge/{ntia_secondary_filename}",
},
# "MN": {
# "bsl_primary": f"{S3ROOT}/Minnesota/unzipped/Fabricv4/{ntia_primary_filename}",
# "bsl_secondary": f"{S3ROOT}/Minnesota/unzipped/Fabricv4/{ntia_secondary_filename}",
# },
"AZ": {
"bsl_primary": f"{S3ROOT}/Arizona/FabricV4/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Arizona/FabricV4/{ntia_secondary_filename}",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
# **cqa_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_s3_path_v5() -> dict:
fcc_bsl_filename = "FCC_Active_BSL_06302024_rel_5.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_06302024_rel_5.csv"
fcc_secondary_filename = "FCC_Secondary_06302024_rel_5.csv"
ntia_primary_filename = "ntia_primary_06302024_rel_5.csv"
ntia_secondary_filename = "ntia_secondary_06302024_rel_5.csv"
fcc_fabric_mapping = {
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/FabricV5/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Mississippi/unzipped/FabricV5/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/FabricV5/{fcc_secondary_filename}",
},
"GU": {
"bsl_primary": f"{S3ROOT}/Guam/bead_post/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Guam/bead_post/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Guam/bead_post/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {
"NJ": {
"bsl_primary": f"{S3ROOT}/NewJersey/unzipped/FabricV5/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NewJersey/unzipped/FabricV5/{ntia_secondary_filename}",
},
"TX": {
"bsl_primary": f"{S3ROOT}/Texas/unzipped/FabricV5/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Texas/unzipped/FabricV5/{ntia_secondary_filename}",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
# **cqa_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_s3_path_v6() -> dict:
fcc_bsl_filename = "FCC_Active_BSL_12312024_rel_6.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_12312024_rel_6.csv"
fcc_secondary_filename = "FCC_Supplemental_12312024_rel_6.csv"
ntia_primary_filename = "ntia_primary_12312024_rel_6.csv"
ntia_secondary_filename = "ntia_supplemental_12312024_rel_6.csv"
fcc_fabric_mapping = {
# "CA": {
# "bsl_primary": f"{S3ROOT}/California/unzipped/FabricV6/{fcc_bsl_filename}",
# "bsl_secondary": f"{S3ROOT}/California/unzipped/FabricV6/{fcc_secondary_filename}",
# "nonbsl": f"{S3ROOT}/California/unzipped/FabricV6/{fcc_non_bsl_filename}"
# },
"UT": {
"bsl_primary": f"{S3ROOT}/Utah/unzipped/FabricV6/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Utah/unzipped/FabricV6/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Utah/unzipped/FabricV6/{fcc_secondary_filename}",
},
"KS": {
# DATASME-1922: KOBD-provided CQA export, landed via gdrive_s3 transfer_data
"bsl_primary": f"{S3ROOT}/Kansas/unzipped/FabricV6/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Kansas/unzipped/FabricV6/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Kansas/unzipped/FabricV6/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {
"TX": {
"bsl_primary": f"{S3ROOT}/Texas/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Texas/unzipped/FabricV6/{ntia_secondary_filename}",
},
"OK": {
"bsl_primary": f"{S3ROOT}/Oklahoma/unzipped/FabricV6/{fcc_bsl_filename}",
},
"CA": {
"bsl_primary": f"{S3ROOT}/California/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/California/unzipped/FabricV6/{ntia_secondary_filename}",
},
"AR": {
"bsl_primary": f"{S3ROOT}/Arkansas/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Arkansas/unzipped/FabricV6/{ntia_secondary_filename}",
},
"GU": {
"bsl_primary": f"{S3ROOT}/Guam/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Guam/unzipped/FabricV6/{ntia_secondary_filename}",
},
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/indicated_locations/{ntia_primary_filename}",
# s3://463002504035-shoreline/raw/uploads/Mississippi/unzipped/indicated_locations/ntia_primary_12312024_rel_6.csv
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/indicated_locations/{ntia_secondary_filename}",
},
"AZ": {
"bsl_primary": f"{S3ROOT}/Arizona/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Arizona/unzipped/FabricV6/{ntia_secondary_filename}",
},
"IN": {
"bsl_primary": f"{S3ROOT}/Indiana/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Indiana/unzipped/FabricV6/{ntia_secondary_filename}",
},
"MN": {
"bsl_primary": f"{S3ROOT}/Minnesota/unzipped/FabricV6/{fcc_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Minnesota/unzipped/FabricV6/{fcc_secondary_filename}",
"nonbsl": f"{S3ROOT}/Minnesota/unzipped/FabricV6/{fcc_non_bsl_filename}",
},
"LA": {
"bsl_primary": f"{S3ROOT}/Louisiana/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Louisiana/unzipped/FabricV6/{ntia_secondary_filename}",
},
"NE": {
# DATASME-1963: preliminary NBO files — dev/stage only, do NOT ingest on prod
"bsl_primary": f"{S3ROOT}/Nebraska/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Nebraska/unzipped/FabricV6/{ntia_secondary_filename}",
},
"MP": {
"bsl_primary": f"{S3ROOT}/NorthernMarianaIslands/unzipped/FabricV6/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NorthernMarianaIslands/unzipped/FabricV6/{ntia_secondary_filename}",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
# **cqa_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_s3_path_v7() -> dict:
fcc_bsl_filename = "FCC_Active_BSL_06302025_rel_7.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_06302025_rel_7.csv"
fcc_secondary_filename = "FCC_Supplemental_06302025_rel_7.csv"
ntia_primary_filename = "ntia_primary_06302025_rel_7.csv"
ntia_secondary_filename = "ntia_supplemental_06302025_rel_7.csv"
fcc_fabric_mapping = {
"OK": {
"bsl_primary": f"{S3ROOT}/Oklahoma/unzipped/FabricV7/{fcc_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Oklahoma/unzipped/FabricV7/{fcc_secondary_filename}",
"nonbsl": f"{S3ROOT}/Oklahoma/unzipped/FabricV7/{fcc_non_bsl_filename}",
},
}
ntia_fabric_mapping = {
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/FabricV7/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/FabricV7/{ntia_secondary_filename}",
},
"UT": {
"bsl_primary": f"{S3ROOT}/Utah/unzipped/FabricV7/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Utah/unzipped/FabricV7/{ntia_secondary_filename}",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_s3_path_v8() -> dict:
fcc_bsl_filename = "FCC_Active_BSL_12312025_rel_8.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_12312025_rel_8.csv"
fcc_secondary_filename = "FCC_Supplemental_12312025_rel_8.csv"
fcc_fabric_mapping = {
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/FabricV8/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Mississippi/unzipped/FabricV8/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/FabricV8/{fcc_secondary_filename}",
},
# DATASME-2106: pre-staged — AZ v8 files requested from the SBO but not
# yet delivered. On arrival, check the format by filename (FCC three-file
# vs NTIA two-file) before uploading; move the entry to
# ntia_fabric_mapping with the ntia_* filenames if it's the NTIA format.
"AZ": {
"bsl_primary": f"{S3ROOT}/Arizona/unzipped/FabricV8/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Arizona/unzipped/FabricV8/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Arizona/unzipped/FabricV8/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_s3_path_v9() -> dict:
# DATASME-1906: MS V9 fabric compare vs fp_locations / fp_cai.
# DATASME-1925: TX V9 added (FCC format, same three files as MS).
# DATASME-1956: AZ V9 added (FCC format, same three files as TX).
# Upload the Drive V9 files to the FabricV9/ paths below (FCC format, like v8).
fcc_bsl_filename = "FCC_Active_BSL_06302026_rel_9.csv"
fcc_non_bsl_filename = "FCC_Active_NoBSL_06302026_rel_9.csv"
fcc_secondary_filename = "FCC_Supplemental_06302026_rel_9.csv"
ntia_primary_filename = "ntia_primary_06302026_rel_9.csv"
ntia_secondary_filename = "ntia_supplemental_06302026_rel_9.csv"
fcc_fabric_mapping = {
"MS": {
"bsl_primary": f"{S3ROOT}/Mississippi/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Mississippi/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Mississippi/unzipped/FabricV9/{fcc_secondary_filename}",
},
"TX": {
"bsl_primary": f"{S3ROOT}/Texas/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Texas/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Texas/unzipped/FabricV9/{fcc_secondary_filename}",
},
"AZ": {
"bsl_primary": f"{S3ROOT}/Arizona/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Arizona/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Arizona/unzipped/FabricV9/{fcc_secondary_filename}",
},
"AR": {
"bsl_primary": f"{S3ROOT}/Arkansas/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Arkansas/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Arkansas/unzipped/FabricV9/{fcc_secondary_filename}",
},
"OK": {
"bsl_primary": f"{S3ROOT}/Oklahoma/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Oklahoma/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Oklahoma/unzipped/FabricV9/{fcc_secondary_filename}",
},
"VA": {
# DATASME-2070: files include a border buffer (KY/MD/NC/TN/WV rows);
# they land in the stateabbr=VA partition — filter on the state column for VA-only.
"bsl_primary": f"{S3ROOT}/Virginia/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Virginia/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Virginia/unzipped/FabricV9/{fcc_secondary_filename}",
},
"GU": {
"bsl_primary": f"{S3ROOT}/Guam/unzipped/FabricV9/{fcc_bsl_filename}",
"nonbsl": f"{S3ROOT}/Guam/unzipped/FabricV9/{fcc_non_bsl_filename}",
"bsl_secondary": f"{S3ROOT}/Guam/unzipped/FabricV9/{fcc_secondary_filename}",
},
}
ntia_fabric_mapping = {
"NE": {
# DATASME-1963: preliminary NBO files — dev/stage only, do NOT ingest on prod
"bsl_primary": f"{S3ROOT}/Nebraska/unzipped/FabricV9/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Nebraska/unzipped/FabricV9/{ntia_secondary_filename}",
},
"CA": {
# DATASME-2077: CPUC-provided v9 (NTIA two-file format, no nonbsl)
"bsl_primary": f"{S3ROOT}/California/unzipped/FabricV9/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/California/unzipped/FabricV9/{ntia_secondary_filename}",
},
"IN": {
# DATASME-2098
"bsl_primary": f"{S3ROOT}/Indiana/unzipped/FabricV9/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Indiana/unzipped/FabricV9/{ntia_secondary_filename}",
},
# "GU": {
# "bsl_primary": f"{S3ROOT}/Guam/unzipped/FabricV9/{ntia_primary_filename}",
# # No secondary file received for Guam NTIA v9
# },
"MN": {
"bsl_primary": f"{S3ROOT}/Minnesota/unzipped/FabricV9/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Minnesota/unzipped/FabricV9/{ntia_secondary_filename}",
},
"UT": {
"bsl_primary": f"{S3ROOT}/Utah/unzipped/FabricV9/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/Utah/unzipped/FabricV9/{ntia_secondary_filename}",
},
"MP": {
"bsl_primary": f"{S3ROOT}/NorthernMarianaIslands/unzipped/FabricV9/{ntia_primary_filename}",
"bsl_secondary": f"{S3ROOT}/NorthernMarianaIslands/unzipped/FabricV9/{ntia_secondary_filename}",
},
}
# merge dictionary
all_fabric_mapping = {
**fcc_fabric_mapping,
**ntia_fabric_mapping,
}
return all_fabric_mapping
[docs]
@staticmethod
def get_fabric_s3_path(state: str, fabric_type: str, version: int) -> str:
"""
Get the s3 path for the fabric inventory files
:param state: state abbreviation in all caps
:param fabric_type: bsl_primary, nonbsl, bsl_secondary
:param version: 1-8
:return: the s3 path for the fabric inventory files or empty string if fabric_type doesn't exist
"""
if version == 1:
all_fabric = SBOUtil.get_s3_path_v1()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 2:
all_fabric = SBOUtil.get_s3_path_v2()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 3:
all_fabric = SBOUtil.get_s3_path_v3()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 4:
all_fabric = SBOUtil.get_s3_path_v4()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 5:
all_fabric = SBOUtil.get_s3_path_v5()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 6:
all_fabric = SBOUtil.get_s3_path_v6()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 7:
all_fabric = SBOUtil.get_s3_path_v7()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 8:
all_fabric = SBOUtil.get_s3_path_v8()
return all_fabric.get(state, {}).get(fabric_type, "")
elif version == 9:
all_fabric = SBOUtil.get_s3_path_v9()
return all_fabric.get(state, {}).get(fabric_type, "")
else:
raise ValueError("Version must be one of 1-9")
[docs]
@staticmethod
def get_all_state(fabric_type: str, version: int) -> list:
"""list all states that provide data to Ready
:param fabric_type: bsl_primary, nonbsl, bsl_secondary
:type fabric_type: str
:param version: fabric version 1-8
:type version: int
:return: a list of states' abbreviation that we have data for
:rtype: list
"""
if version == 1:
all_fabric = SBOUtil.get_s3_path_v1()
elif version == 2:
all_fabric = SBOUtil.get_s3_path_v2()
elif version == 3:
all_fabric = SBOUtil.get_s3_path_v3()
elif version == 4:
all_fabric = SBOUtil.get_s3_path_v4()
elif version == 5:
all_fabric = SBOUtil.get_s3_path_v5()
elif version == 6:
all_fabric = SBOUtil.get_s3_path_v6()
elif version == 7:
all_fabric = SBOUtil.get_s3_path_v7()
elif version == 8:
all_fabric = SBOUtil.get_s3_path_v8()
elif version == 9:
all_fabric = SBOUtil.get_s3_path_v9()
else:
raise ValueError("Version must be 1-9")
available_state_ls = [
state
for state in all_fabric.keys()
if fabric_type in all_fabric[state].keys()
]
return available_state_ls