bb-integrations-library 3.0.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. bb_integrations_lib/__init__.py +0 -0
  2. bb_integrations_lib/converters/__init__.py +0 -0
  3. bb_integrations_lib/gravitate/__init__.py +0 -0
  4. bb_integrations_lib/gravitate/base_api.py +20 -0
  5. bb_integrations_lib/gravitate/model.py +29 -0
  6. bb_integrations_lib/gravitate/pe_api.py +122 -0
  7. bb_integrations_lib/gravitate/rita_api.py +552 -0
  8. bb_integrations_lib/gravitate/sd_api.py +572 -0
  9. bb_integrations_lib/gravitate/testing/TTE/sd/models.py +1398 -0
  10. bb_integrations_lib/gravitate/testing/TTE/sd/tests/test_models.py +2987 -0
  11. bb_integrations_lib/gravitate/testing/__init__.py +0 -0
  12. bb_integrations_lib/gravitate/testing/builder.py +55 -0
  13. bb_integrations_lib/gravitate/testing/openapi.py +70 -0
  14. bb_integrations_lib/gravitate/testing/util.py +274 -0
  15. bb_integrations_lib/mappers/__init__.py +0 -0
  16. bb_integrations_lib/mappers/prices/__init__.py +0 -0
  17. bb_integrations_lib/mappers/prices/model.py +106 -0
  18. bb_integrations_lib/mappers/prices/price_mapper.py +127 -0
  19. bb_integrations_lib/mappers/prices/protocol.py +20 -0
  20. bb_integrations_lib/mappers/prices/util.py +61 -0
  21. bb_integrations_lib/mappers/rita_mapper.py +523 -0
  22. bb_integrations_lib/models/__init__.py +0 -0
  23. bb_integrations_lib/models/dtn_supplier_invoice.py +487 -0
  24. bb_integrations_lib/models/enums.py +28 -0
  25. bb_integrations_lib/models/pipeline_structs.py +76 -0
  26. bb_integrations_lib/models/probe/probe_event.py +20 -0
  27. bb_integrations_lib/models/probe/request_data.py +431 -0
  28. bb_integrations_lib/models/probe/resume_token.py +7 -0
  29. bb_integrations_lib/models/rita/audit.py +113 -0
  30. bb_integrations_lib/models/rita/auth.py +30 -0
  31. bb_integrations_lib/models/rita/bucket.py +17 -0
  32. bb_integrations_lib/models/rita/config.py +188 -0
  33. bb_integrations_lib/models/rita/constants.py +19 -0
  34. bb_integrations_lib/models/rita/crossroads_entities.py +293 -0
  35. bb_integrations_lib/models/rita/crossroads_mapping.py +428 -0
  36. bb_integrations_lib/models/rita/crossroads_monitoring.py +78 -0
  37. bb_integrations_lib/models/rita/crossroads_network.py +41 -0
  38. bb_integrations_lib/models/rita/crossroads_rules.py +80 -0
  39. bb_integrations_lib/models/rita/email.py +39 -0
  40. bb_integrations_lib/models/rita/issue.py +63 -0
  41. bb_integrations_lib/models/rita/mapping.py +227 -0
  42. bb_integrations_lib/models/rita/probe.py +58 -0
  43. bb_integrations_lib/models/rita/reference_data.py +110 -0
  44. bb_integrations_lib/models/rita/source_system.py +9 -0
  45. bb_integrations_lib/models/rita/workers.py +76 -0
  46. bb_integrations_lib/models/sd/bols_and_drops.py +241 -0
  47. bb_integrations_lib/models/sd/get_order.py +301 -0
  48. bb_integrations_lib/models/sd/orders.py +18 -0
  49. bb_integrations_lib/models/sd_api.py +115 -0
  50. bb_integrations_lib/pipelines/__init__.py +0 -0
  51. bb_integrations_lib/pipelines/parsers/__init__.py +0 -0
  52. bb_integrations_lib/pipelines/parsers/distribution_report/__init__.py +0 -0
  53. bb_integrations_lib/pipelines/parsers/distribution_report/order_by_site_product_parser.py +50 -0
  54. bb_integrations_lib/pipelines/parsers/distribution_report/tank_configs_parser.py +47 -0
  55. bb_integrations_lib/pipelines/parsers/dtn/__init__.py +0 -0
  56. bb_integrations_lib/pipelines/parsers/dtn/dtn_price_parser.py +102 -0
  57. bb_integrations_lib/pipelines/parsers/dtn/model.py +79 -0
  58. bb_integrations_lib/pipelines/parsers/price_engine/__init__.py +0 -0
  59. bb_integrations_lib/pipelines/parsers/price_engine/parse_accessorials_prices_parser.py +67 -0
  60. bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/__init__.py +0 -0
  61. bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/price_merge_parser.py +111 -0
  62. bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/price_sync_parser.py +107 -0
  63. bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/shared.py +81 -0
  64. bb_integrations_lib/pipelines/parsers/tank_reading_parser.py +155 -0
  65. bb_integrations_lib/pipelines/parsers/tank_sales_parser.py +144 -0
  66. bb_integrations_lib/pipelines/shared/__init__.py +0 -0
  67. bb_integrations_lib/pipelines/shared/allocation_matching.py +227 -0
  68. bb_integrations_lib/pipelines/shared/bol_allocation.py +2793 -0
  69. bb_integrations_lib/pipelines/steps/__init__.py +0 -0
  70. bb_integrations_lib/pipelines/steps/create_accessorials_step.py +80 -0
  71. bb_integrations_lib/pipelines/steps/distribution_report/__init__.py +0 -0
  72. bb_integrations_lib/pipelines/steps/distribution_report/distribution_report_datafram_to_raw_data.py +33 -0
  73. bb_integrations_lib/pipelines/steps/distribution_report/get_model_history_step.py +50 -0
  74. bb_integrations_lib/pipelines/steps/distribution_report/get_order_by_site_product_step.py +62 -0
  75. bb_integrations_lib/pipelines/steps/distribution_report/get_tank_configs_step.py +40 -0
  76. bb_integrations_lib/pipelines/steps/distribution_report/join_distribution_order_dos_step.py +85 -0
  77. bb_integrations_lib/pipelines/steps/distribution_report/upload_distribution_report_datafram_to_big_query.py +47 -0
  78. bb_integrations_lib/pipelines/steps/echo_step.py +14 -0
  79. bb_integrations_lib/pipelines/steps/export_dataframe_to_rawdata_step.py +28 -0
  80. bb_integrations_lib/pipelines/steps/exporting/__init__.py +0 -0
  81. bb_integrations_lib/pipelines/steps/exporting/bbd_export_payroll_file_step.py +107 -0
  82. bb_integrations_lib/pipelines/steps/exporting/bbd_export_readings_step.py +236 -0
  83. bb_integrations_lib/pipelines/steps/exporting/cargas_wholesale_bundle_upload_step.py +33 -0
  84. bb_integrations_lib/pipelines/steps/exporting/dataframe_flat_file_export.py +29 -0
  85. bb_integrations_lib/pipelines/steps/exporting/gcs_bucket_export_file_step.py +34 -0
  86. bb_integrations_lib/pipelines/steps/exporting/keyvu_export_step.py +356 -0
  87. bb_integrations_lib/pipelines/steps/exporting/pe_price_export_step.py +238 -0
  88. bb_integrations_lib/pipelines/steps/exporting/platform_science_order_sync_step.py +500 -0
  89. bb_integrations_lib/pipelines/steps/exporting/save_rawdata_to_disk.py +15 -0
  90. bb_integrations_lib/pipelines/steps/exporting/sftp_export_file_step.py +60 -0
  91. bb_integrations_lib/pipelines/steps/exporting/sftp_export_many_files_step.py +23 -0
  92. bb_integrations_lib/pipelines/steps/exporting/update_exported_orders_table_step.py +64 -0
  93. bb_integrations_lib/pipelines/steps/filter_step.py +22 -0
  94. bb_integrations_lib/pipelines/steps/get_latest_sync_date.py +34 -0
  95. bb_integrations_lib/pipelines/steps/importing/bbd_import_payroll_step.py +30 -0
  96. bb_integrations_lib/pipelines/steps/importing/get_order_numbers_to_export_step.py +138 -0
  97. bb_integrations_lib/pipelines/steps/importing/load_file_to_dataframe_step.py +46 -0
  98. bb_integrations_lib/pipelines/steps/importing/load_imap_attachment_step.py +172 -0
  99. bb_integrations_lib/pipelines/steps/importing/pe_bulk_sync_price_structure_step.py +68 -0
  100. bb_integrations_lib/pipelines/steps/importing/pe_price_merge_step.py +86 -0
  101. bb_integrations_lib/pipelines/steps/importing/sftp_file_config_step.py +124 -0
  102. bb_integrations_lib/pipelines/steps/importing/test_exact_file_match.py +57 -0
  103. bb_integrations_lib/pipelines/steps/null_step.py +15 -0
  104. bb_integrations_lib/pipelines/steps/pe_integration_job_step.py +32 -0
  105. bb_integrations_lib/pipelines/steps/processing/__init__.py +0 -0
  106. bb_integrations_lib/pipelines/steps/processing/archive_gcs_step.py +76 -0
  107. bb_integrations_lib/pipelines/steps/processing/archive_sftp_step.py +48 -0
  108. bb_integrations_lib/pipelines/steps/processing/bbd_format_tank_readings_step.py +492 -0
  109. bb_integrations_lib/pipelines/steps/processing/bbd_upload_prices_step.py +54 -0
  110. bb_integrations_lib/pipelines/steps/processing/bbd_upload_tank_sales_step.py +124 -0
  111. bb_integrations_lib/pipelines/steps/processing/bbd_upload_tankreading_step.py +80 -0
  112. bb_integrations_lib/pipelines/steps/processing/convert_bbd_order_to_cargas_step.py +226 -0
  113. bb_integrations_lib/pipelines/steps/processing/delete_sftp_step.py +33 -0
  114. bb_integrations_lib/pipelines/steps/processing/dtn/__init__.py +2 -0
  115. bb_integrations_lib/pipelines/steps/processing/dtn/convert_dtn_invoice_to_sd_model.py +145 -0
  116. bb_integrations_lib/pipelines/steps/processing/dtn/parse_dtn_invoice_step.py +38 -0
  117. bb_integrations_lib/pipelines/steps/processing/file_config_parser_step.py +720 -0
  118. bb_integrations_lib/pipelines/steps/processing/file_config_parser_step_v2.py +418 -0
  119. bb_integrations_lib/pipelines/steps/processing/get_sd_price_price_request.py +105 -0
  120. bb_integrations_lib/pipelines/steps/processing/keyvu_upload_deliveryplan_step.py +39 -0
  121. bb_integrations_lib/pipelines/steps/processing/mark_orders_exported_in_bbd_step.py +185 -0
  122. bb_integrations_lib/pipelines/steps/processing/pe_price_rows_processing_step.py +174 -0
  123. bb_integrations_lib/pipelines/steps/processing/send_process_report_step.py +47 -0
  124. bb_integrations_lib/pipelines/steps/processing/sftp_renamer_step.py +61 -0
  125. bb_integrations_lib/pipelines/steps/processing/tank_reading_touchup_steps.py +75 -0
  126. bb_integrations_lib/pipelines/steps/processing/upload_supplier_invoice_step.py +16 -0
  127. bb_integrations_lib/pipelines/steps/send_attached_in_rita_email_step.py +44 -0
  128. bb_integrations_lib/pipelines/steps/send_rita_email_step.py +34 -0
  129. bb_integrations_lib/pipelines/steps/sleep_step.py +24 -0
  130. bb_integrations_lib/pipelines/wrappers/__init__.py +0 -0
  131. bb_integrations_lib/pipelines/wrappers/accessorials_transformation.py +104 -0
  132. bb_integrations_lib/pipelines/wrappers/distribution_report.py +191 -0
  133. bb_integrations_lib/pipelines/wrappers/export_tank_readings.py +237 -0
  134. bb_integrations_lib/pipelines/wrappers/import_tank_readings.py +192 -0
  135. bb_integrations_lib/pipelines/wrappers/wrapper.py +81 -0
  136. bb_integrations_lib/protocols/__init__.py +0 -0
  137. bb_integrations_lib/protocols/flat_file.py +210 -0
  138. bb_integrations_lib/protocols/gravitate_client.py +104 -0
  139. bb_integrations_lib/protocols/pipelines.py +697 -0
  140. bb_integrations_lib/provider/__init__.py +0 -0
  141. bb_integrations_lib/provider/api/__init__.py +0 -0
  142. bb_integrations_lib/provider/api/cargas/__init__.py +0 -0
  143. bb_integrations_lib/provider/api/cargas/client.py +43 -0
  144. bb_integrations_lib/provider/api/cargas/model.py +49 -0
  145. bb_integrations_lib/provider/api/cargas/protocol.py +23 -0
  146. bb_integrations_lib/provider/api/dtn/__init__.py +0 -0
  147. bb_integrations_lib/provider/api/dtn/client.py +128 -0
  148. bb_integrations_lib/provider/api/dtn/protocol.py +9 -0
  149. bb_integrations_lib/provider/api/keyvu/__init__.py +0 -0
  150. bb_integrations_lib/provider/api/keyvu/client.py +30 -0
  151. bb_integrations_lib/provider/api/keyvu/model.py +149 -0
  152. bb_integrations_lib/provider/api/macropoint/__init__.py +0 -0
  153. bb_integrations_lib/provider/api/macropoint/client.py +28 -0
  154. bb_integrations_lib/provider/api/macropoint/model.py +40 -0
  155. bb_integrations_lib/provider/api/pc_miler/__init__.py +0 -0
  156. bb_integrations_lib/provider/api/pc_miler/client.py +130 -0
  157. bb_integrations_lib/provider/api/pc_miler/model.py +6 -0
  158. bb_integrations_lib/provider/api/pc_miler/web_services_apis.py +131 -0
  159. bb_integrations_lib/provider/api/platform_science/__init__.py +0 -0
  160. bb_integrations_lib/provider/api/platform_science/client.py +147 -0
  161. bb_integrations_lib/provider/api/platform_science/model.py +82 -0
  162. bb_integrations_lib/provider/api/quicktrip/__init__.py +0 -0
  163. bb_integrations_lib/provider/api/quicktrip/client.py +52 -0
  164. bb_integrations_lib/provider/api/telapoint/__init__.py +0 -0
  165. bb_integrations_lib/provider/api/telapoint/client.py +68 -0
  166. bb_integrations_lib/provider/api/telapoint/model.py +178 -0
  167. bb_integrations_lib/provider/api/warren_rogers/__init__.py +0 -0
  168. bb_integrations_lib/provider/api/warren_rogers/client.py +207 -0
  169. bb_integrations_lib/provider/aws/__init__.py +0 -0
  170. bb_integrations_lib/provider/aws/s3/__init__.py +0 -0
  171. bb_integrations_lib/provider/aws/s3/client.py +126 -0
  172. bb_integrations_lib/provider/ftp/__init__.py +0 -0
  173. bb_integrations_lib/provider/ftp/client.py +140 -0
  174. bb_integrations_lib/provider/ftp/interface.py +273 -0
  175. bb_integrations_lib/provider/ftp/model.py +76 -0
  176. bb_integrations_lib/provider/imap/__init__.py +0 -0
  177. bb_integrations_lib/provider/imap/client.py +228 -0
  178. bb_integrations_lib/provider/imap/model.py +3 -0
  179. bb_integrations_lib/provider/sqlserver/__init__.py +0 -0
  180. bb_integrations_lib/provider/sqlserver/client.py +106 -0
  181. bb_integrations_lib/secrets/__init__.py +4 -0
  182. bb_integrations_lib/secrets/adapters.py +98 -0
  183. bb_integrations_lib/secrets/credential_models.py +222 -0
  184. bb_integrations_lib/secrets/factory.py +85 -0
  185. bb_integrations_lib/secrets/providers.py +160 -0
  186. bb_integrations_lib/shared/__init__.py +0 -0
  187. bb_integrations_lib/shared/exceptions.py +25 -0
  188. bb_integrations_lib/shared/model.py +1039 -0
  189. bb_integrations_lib/shared/shared_enums.py +510 -0
  190. bb_integrations_lib/storage/README.md +236 -0
  191. bb_integrations_lib/storage/__init__.py +0 -0
  192. bb_integrations_lib/storage/aws/__init__.py +0 -0
  193. bb_integrations_lib/storage/aws/s3.py +8 -0
  194. bb_integrations_lib/storage/defaults.py +72 -0
  195. bb_integrations_lib/storage/gcs/__init__.py +0 -0
  196. bb_integrations_lib/storage/gcs/client.py +8 -0
  197. bb_integrations_lib/storage/gcsmanager/__init__.py +0 -0
  198. bb_integrations_lib/storage/gcsmanager/client.py +8 -0
  199. bb_integrations_lib/storage/setup.py +29 -0
  200. bb_integrations_lib/util/__init__.py +0 -0
  201. bb_integrations_lib/util/cache/__init__.py +0 -0
  202. bb_integrations_lib/util/cache/custom_ttl_cache.py +75 -0
  203. bb_integrations_lib/util/cache/protocol.py +9 -0
  204. bb_integrations_lib/util/config/__init__.py +0 -0
  205. bb_integrations_lib/util/config/manager.py +391 -0
  206. bb_integrations_lib/util/config/model.py +41 -0
  207. bb_integrations_lib/util/exception_logger/__init__.py +0 -0
  208. bb_integrations_lib/util/exception_logger/exception_logger.py +146 -0
  209. bb_integrations_lib/util/exception_logger/test.py +114 -0
  210. bb_integrations_lib/util/utils.py +364 -0
  211. bb_integrations_lib/workers/__init__.py +0 -0
  212. bb_integrations_lib/workers/groups.py +13 -0
  213. bb_integrations_lib/workers/rpc_worker.py +50 -0
  214. bb_integrations_lib/workers/topics.py +20 -0
  215. bb_integrations_library-3.0.11.dist-info/METADATA +59 -0
  216. bb_integrations_library-3.0.11.dist-info/RECORD +217 -0
  217. bb_integrations_library-3.0.11.dist-info/WHEEL +4 -0
@@ -0,0 +1,510 @@
1
+ from enum import Enum
2
+
3
+
4
+ class TimezoneEnum(str, Enum):
5
+ utc: str = "UTC"
6
+ abidjan: str = "Africa/Abidjan"
7
+ accra: str = "Africa/Accra"
8
+ addis_ababa: str = "Africa/Addis_Ababa"
9
+ algiers: str = "Africa/Algiers"
10
+ asmara: str = "Africa/Asmara"
11
+ bamako: str = "Africa/Bamako"
12
+ bangui: str = "Africa/Bangui"
13
+ banjul: str = "Africa/Banjul"
14
+ bissau: str = "Africa/Bissau"
15
+ blantyre: str = "Africa/Blantyre"
16
+ brazzaville: str = "Africa/Brazzaville"
17
+ bujumbura: str = "Africa/Bujumbura"
18
+ cairo: str = "Africa/Cairo"
19
+ casablanca: str = "Africa/Casablanca"
20
+ ceuta: str = "Africa/Ceuta"
21
+ conakry: str = "Africa/Conakry"
22
+ dakar: str = "Africa/Dakar"
23
+ dar_es_salaam: str = "Africa/Dar_es_Salaam"
24
+ djibouti: str = "Africa/Djibouti"
25
+ douala: str = "Africa/Douala"
26
+ el_aaiun: str = "Africa/El_Aaiun"
27
+ freetown: str = "Africa/Freetown"
28
+ gaborone: str = "Africa/Gaborone"
29
+ harare: str = "Africa/Harare"
30
+ johannesburg: str = "Africa/Johannesburg"
31
+ juba: str = "Africa/Juba"
32
+ kampala: str = "Africa/Kampala"
33
+ khartoum: str = "Africa/Khartoum"
34
+ kigali: str = "Africa/Kigali"
35
+ kinshasa: str = "Africa/Kinshasa"
36
+ lagos: str = "Africa/Lagos"
37
+ libreville: str = "Africa/Libreville"
38
+ lome: str = "Africa/Lome"
39
+ luanda: str = "Africa/Luanda"
40
+ lubumbashi: str = "Africa/Lubumbashi"
41
+ lusaka: str = "Africa/Lusaka"
42
+ malabo: str = "Africa/Malabo"
43
+ maputo: str = "Africa/Maputo"
44
+ maseru: str = "Africa/Maseru"
45
+ mbabane: str = "Africa/Mbabane"
46
+ mogadishu: str = "Africa/Mogadishu"
47
+ monrovia: str = "Africa/Monrovia"
48
+ nairobi: str = "Africa/Nairobi"
49
+ ndjamena: str = "Africa/Ndjamena"
50
+ niamey: str = "Africa/Niamey"
51
+ nouakchott: str = "Africa/Nouakchott"
52
+ ouagadougou: str = "Africa/Ouagadougou"
53
+ porto_novo: str = "Africa/Porto-Novo"
54
+ sao_tome: str = "Africa/Sao_Tome"
55
+ tripoli: str = "Africa/Tripoli"
56
+ tunis: str = "Africa/Tunis"
57
+ windhoek: str = "Africa/Windhoek"
58
+ adak: str = "America/Adak"
59
+ anchorage: str = "America/Anchorage"
60
+ anguilla: str = "America/Anguilla"
61
+ antigua: str = "America/Antigua"
62
+ aruba: str = "America/Aruba"
63
+ araguaina: str = "America/Araguaina"
64
+ buenos_aires: str = "America/Argentina/Buenos_Aires"
65
+ catamarca: str = "America/Argentina/Catamarca"
66
+ cordoba: str = "America/Argentina/Cordoba"
67
+ jujuy: str = "America/Argentina/Jujuy"
68
+ la_rioja: str = "America/Argentina/La_Rioja"
69
+ mendoza: str = "America/Argentina/Mendoza"
70
+ rio_gallegos: str = "America/Argentina/Rio_Gallegos"
71
+ salta: str = "America/Argentina/Salta"
72
+ san_juan: str = "America/Argentina/San_Juan"
73
+ san_luis: str = "America/Argentina/San_Luis"
74
+ tucuman: str = "America/Argentina/Tucuman"
75
+ ushuaia: str = "America/Argentina/Ushuaia"
76
+ asuncion: str = "America/Asuncion"
77
+ atikokan: str = "America/Atikokan"
78
+ bahia: str = "America/Bahia"
79
+ bahia_banderas: str = "America/Bahia_Banderas"
80
+ barbados: str = "America/Barbados"
81
+ belem: str = "America/Belem"
82
+ belize: str = "America/Belize"
83
+ blanc_sablon: str = "America/Blanc-Sablon"
84
+ boa_vista: str = "America/Boa_Vista"
85
+ bogota: str = "America/Bogota"
86
+ boise: str = "America/Boise"
87
+ cambridge_bay: str = "America/Cambridge_Bay"
88
+ campo_grande: str = "America/Campo_Grande"
89
+ cancun: str = "America/Cancun"
90
+ caracas: str = "America/Caracas"
91
+ cayenne: str = "America/Cayenne"
92
+ cayman: str = "America/Cayman"
93
+ chicago: str = "America/Chicago"
94
+ chihuahua: str = "America/Chihuahua"
95
+ costa_rica: str = "America/Costa_Rica"
96
+ creston: str = "America/Creston"
97
+ cuiaba: str = "America/Cuiaba"
98
+ curacao: str = "America/Curacao"
99
+ danmarkshavn: str = "America/Danmarkshavn"
100
+ dawson: str = "America/Dawson"
101
+ dawson_creek: str = "America/Dawson_Creek"
102
+ denver: str = "America/Denver"
103
+ detroit: str = "America/Detroit"
104
+ dominica: str = "America/Dominica"
105
+ edmonton: str = "America/Edmonton"
106
+ eirunepe: str = "America/Eirunepe"
107
+ el_salvador: str = "America/El_Salvador"
108
+ fort_nelson: str = "America/Fort_Nelson"
109
+ fortaleza: str = "America/Fortaleza"
110
+ glace_bay: str = "America/Glace_Bay"
111
+ goose_bay: str = "America/Goose_Bay"
112
+ grand_turk: str = "America/Grand_Turk"
113
+ grenada: str = "America/Grenada"
114
+ guadeloupe: str = "America/Guadeloupe"
115
+ guatemala: str = "America/Guatemala"
116
+ guayaquil: str = "America/Guayaquil"
117
+ guyana: str = "America/Guyana"
118
+ halifax: str = "America/Halifax"
119
+ havana: str = "America/Havana"
120
+ hermosillo: str = "America/Hermosillo"
121
+ indianapolis: str = "America/Indiana/Indianapolis"
122
+ knox: str = "America/Indiana/Knox"
123
+ marengo: str = "America/Indiana/Marengo"
124
+ petersburg: str = "America/Indiana/Petersburg"
125
+ tell_city: str = "America/Indiana/Tell_City"
126
+ vevay: str = "America/Indiana/Vevay"
127
+ vincennes: str = "America/Indiana/Vincennes"
128
+ winamac: str = "America/Indiana/Winamac"
129
+ inuvik: str = "America/Inuvik"
130
+ iqaluit: str = "America/Iqaluit"
131
+ jamaica: str = "America/Jamaica"
132
+ juneau: str = "America/Juneau"
133
+ louisville: str = "America/Kentucky/Louisville"
134
+ monticello: str = "America/Kentucky/Monticello"
135
+ kralendijk: str = "America/Kralendijk"
136
+ la_paz: str = "America/La_Paz"
137
+ lima: str = "America/Lima"
138
+ los_angeles: str = "America/Los_Angeles"
139
+ lower_princes: str = "America/Lower_Princes"
140
+ maceio: str = "America/Maceio"
141
+ managua: str = "America/Managua"
142
+ manaus: str = "America/Manaus"
143
+ marigot: str = "America/Marigot"
144
+ martinique: str = "America/Martinique"
145
+ matamoros: str = "America/Matamoros"
146
+ mazatlan: str = "America/Mazatlan"
147
+ miquelon: str = "America/Miquelon"
148
+ menominee: str = "America/Menominee"
149
+ merida: str = "America/Merida"
150
+ metlakatla: str = "America/Metlakatla"
151
+ mexico_city: str = "America/Mexico_City"
152
+ moncton: str = "America/Moncton"
153
+ monterrey: str = "America/Monterrey"
154
+ montevideo: str = "America/Montevideo"
155
+ montserrat: str = "America/Montserrat"
156
+ nassau: str = "America/Nassau"
157
+ new_york: str = "America/New_York"
158
+ nome: str = "America/Nome"
159
+ noronha: str = "America/Noronha"
160
+ beulah: str = "America/North_Dakota/Beulah"
161
+ center: str = "America/North_Dakota/Center"
162
+ new_salem: str = "America/North_Dakota/New_Salem"
163
+ nuuk: str = "America/Nuuk"
164
+ ojinaga: str = "America/Ojinaga"
165
+ panama: str = "America/Panama"
166
+ pangnirtung: str = "America/Pangnirtung"
167
+ paramaribo: str = "America/Paramaribo"
168
+ phoenix: str = "America/Phoenix"
169
+ port_au_prince: str = "America/Port-au-Prince"
170
+ port_of_spain: str = "America/Port_of_Spain"
171
+ porto_velho: str = "America/Porto_Velho"
172
+ puerto_rico: str = "America/Puerto_Rico"
173
+ punta_arenas: str = "America/Punta_Arenas"
174
+ rankin_inlet: str = "America/Rankin_Inlet"
175
+ recife: str = "America/Recife"
176
+ regina: str = "America/Regina"
177
+ resolute: str = "America/Resolute"
178
+ rio_branco: str = "America/Rio_Branco"
179
+ santarem: str = "America/Santarem"
180
+ santiago: str = "America/Santiago"
181
+ santo_domingo: str = "America/Santo_Domingo"
182
+ sao_paulo: str = "America/Sao_Paulo"
183
+ scoresbysund: str = "America/Scoresbysund"
184
+ sitka: str = "America/Sitka"
185
+ st_barthelemy: str = "America/St_Barthelemy"
186
+ st_johns: str = "America/St_Johns"
187
+ st_kitts: str = "America/St_Kitts"
188
+ st_lucia: str = "America/St_Lucia"
189
+ st_thomas: str = "America/St_Thomas"
190
+ st_vincent: str = "America/St_Vincent"
191
+ swift_current: str = "America/Swift_Current"
192
+ tegucigalpa: str = "America/Tegucigalpa"
193
+ thule: str = "America/Thule"
194
+ tijuana: str = "America/Tijuana"
195
+ toronto: str = "America/Toronto"
196
+ tortola: str = "America/Tortola"
197
+ vancouver: str = "America/Vancouver"
198
+ whitehorse: str = "America/Whitehorse"
199
+ winnipeg: str = "America/Winnipeg"
200
+ yakutat: str = "America/Yakutat"
201
+ yellowknife: str = "America/Yellowknife"
202
+ casey: str = "Antarctica/Casey"
203
+ davis: str = "Antarctica/Davis"
204
+ dumontdurville: str = "Antarctica/DumontDUrville"
205
+ macquarie: str = "Antarctica/Macquarie"
206
+ mawson: str = "Antarctica/Mawson"
207
+ mcmurdo: str = "Antarctica/McMurdo"
208
+ palmer: str = "Antarctica/Palmer"
209
+ rothera: str = "Antarctica/Rothera"
210
+ syowa: str = "Antarctica/Syowa"
211
+ troll: str = "Antarctica/Troll"
212
+ vostok: str = "Antarctica/Vostok"
213
+ longyearbyen: str = "Arctic/Longyearbyen"
214
+ aden: str = "Asia/Aden"
215
+ almaty: str = "Asia/Almaty"
216
+ amman: str = "Asia/Amman"
217
+ anadyr: str = "Asia/Anadyr"
218
+ aqtau: str = "Asia/Aqtau"
219
+ aqtobe: str = "Asia/Aqtobe"
220
+ ashgabat: str = "Asia/Ashgabat"
221
+ atyrau: str = "Asia/Atyrau"
222
+ baghdad: str = "Asia/Baghdad"
223
+ bahrain: str = "Asia/Bahrain"
224
+ baku: str = "Asia/Baku"
225
+ bangkok: str = "Asia/Bangkok"
226
+ barnaul: str = "Asia/Barnaul"
227
+ beirut: str = "Asia/Beirut"
228
+ bishkek: str = "Asia/Bishkek"
229
+ brunei: str = "Asia/Brunei"
230
+ chita: str = "Asia/Chita"
231
+ choibalsan: str = "Asia/Choibalsan"
232
+ colombo: str = "Asia/Colombo"
233
+ damascus: str = "Asia/Damascus"
234
+ dhaka: str = "Asia/Dhaka"
235
+ dili: str = "Asia/Dili"
236
+ dubai: str = "Asia/Dubai"
237
+ dushanbe: str = "Asia/Dushanbe"
238
+ famagusta: str = "Asia/Famagusta"
239
+ gaza: str = "Asia/Gaza"
240
+ hebron: str = "Asia/Hebron"
241
+ ho_chi_minh: str = "Asia/Ho_Chi_Minh"
242
+ hong_kong: str = "Asia/Hong_Kong"
243
+ hovd: str = "Asia/Hovd"
244
+ irkutsk: str = "Asia/Irkutsk"
245
+ jakarta: str = "Asia/Jakarta"
246
+ jayapura: str = "Asia/Jayapura"
247
+ jerusalem: str = "Asia/Jerusalem"
248
+ kabul: str = "Asia/Kabul"
249
+ kamchatka: str = "Asia/Kamchatka"
250
+ karachi: str = "Asia/Karachi"
251
+ kathmandu: str = "Asia/Kathmandu"
252
+ khandyga: str = "Asia/Khandyga"
253
+ kolkata: str = "Asia/Kolkata"
254
+ krasnoyarsk: str = "Asia/Krasnoyarsk"
255
+ kuala_lumpur: str = "Asia/Kuala_Lumpur"
256
+ kuching: str = "Asia/Kuching"
257
+ kuwait: str = "Asia/Kuwait"
258
+ macau: str = "Asia/Macau"
259
+ magadan: str = "Asia/Magadan"
260
+ makassar: str = "Asia/Makassar"
261
+ manila: str = "Asia/Manila"
262
+ muscat: str = "Asia/Muscat"
263
+ nicosia: str = "Asia/Nicosia"
264
+ novokuznetsk: str = "Asia/Novokuznetsk"
265
+ novosibirsk: str = "Asia/Novosibirsk"
266
+ omsk: str = "Asia/Omsk"
267
+ oral: str = "Asia/Oral"
268
+ phnom_penh: str = "Asia/Phnom_Penh"
269
+ pontianak: str = "Asia/Pontianak"
270
+ pyongyang: str = "Asia/Pyongyang"
271
+ qatar: str = "Asia/Qatar"
272
+ qostanay: str = "Asia/Qostanay"
273
+ qyzylorda: str = "Asia/Qyzylorda"
274
+ riyadh: str = "Asia/Riyadh"
275
+ samarkand: str = "Asia/Samarkand"
276
+ sakhalin: str = "Asia/Sakhalin"
277
+ seoul: str = "Asia/Seoul"
278
+ shanghai: str = "Asia/Shanghai"
279
+ singapore: str = "Asia/Singapore"
280
+ srednekolymsk: str = "Asia/Srednekolymsk"
281
+ taipei: str = "Asia/Taipei"
282
+ tashkent: str = "Asia/Tashkent"
283
+ tbilisi: str = "Asia/Tbilisi"
284
+ tehran: str = "Asia/Tehran"
285
+ thimphu: str = "Asia/Thimphu"
286
+ tokyo: str = "Asia/Tokyo"
287
+ tomsk: str = "Asia/Tomsk"
288
+ ulaanbaatar: str = "Asia/Ulaanbaatar"
289
+ urumqi: str = "Asia/Urumqi"
290
+ ust_nera: str = "Asia/Ust-Nera"
291
+ vientiane: str = "Asia/Vientiane"
292
+ vladivostok: str = "Asia/Vladivostok"
293
+ yakutsk: str = "Asia/Yakutsk"
294
+ yangon: str = "Asia/Yangon"
295
+ yekaterinburg: str = "Asia/Yekaterinburg"
296
+ yerevan: str = "Asia/Yerevan"
297
+ azores: str = "Atlantic/Azores"
298
+ bermuda: str = "Atlantic/Bermuda"
299
+ canary: str = "Atlantic/Canary"
300
+ cape_verde: str = "Atlantic/Cape_Verde"
301
+ faroe: str = "Atlantic/Faroe"
302
+ madeira: str = "Atlantic/Madeira"
303
+ reykjavik: str = "Atlantic/Reykjavik"
304
+ south_georgia: str = "Atlantic/South_Georgia"
305
+ st_helena: str = "Atlantic/St_Helena"
306
+ stanley: str = "Atlantic/Stanley"
307
+ adelaide: str = "Australia/Adelaide"
308
+ brisbane: str = "Australia/Brisbane"
309
+ broken_hill: str = "Australia/Broken_Hill"
310
+ darwin: str = "Australia/Darwin"
311
+ eucla: str = "Australia/Eucla"
312
+ hobart: str = "Australia/Hobart"
313
+ lindeman: str = "Australia/Lindeman"
314
+ lord_howe: str = "Australia/Lord_Howe"
315
+ melbourne: str = "Australia/Melbourne"
316
+ perth: str = "Australia/Perth"
317
+ sydney: str = "Australia/Sydney"
318
+ e_utc: str = "Etc/UTC"
319
+ amsterdam: str = "Europe/Amsterdam"
320
+ andorra: str = "Europe/Andorra"
321
+ astrakhan: str = "Europe/Astrakhan"
322
+ athens: str = "Europe/Athens"
323
+ belgrade: str = "Europe/Belgrade"
324
+ berlin: str = "Europe/Berlin"
325
+ bratislava: str = "Europe/Bratislava"
326
+ brussels: str = "Europe/Brussels"
327
+ bucharest: str = "Europe/Bucharest"
328
+ budapest: str = "Europe/Budapest"
329
+ busingen: str = "Europe/Busingen"
330
+ chisinau: str = "Europe/Chisinau"
331
+ copenhagen: str = "Europe/Copenhagen"
332
+ dublin: str = "Europe/Dublin"
333
+ gibraltar: str = "Europe/Gibraltar"
334
+ guernsey: str = "Europe/Guernsey"
335
+ helsinki: str = "Europe/Helsinki"
336
+ isle_of_man: str = "Europe/Isle_of_Man"
337
+ istanbul: str = "Europe/Istanbul"
338
+ jersey: str = "Europe/Jersey"
339
+ kaliningrad: str = "Europe/Kaliningrad"
340
+ kyiv: str = "Europe/Kyiv"
341
+ kirov: str = "Europe/Kirov"
342
+ lisbon: str = "Europe/Lisbon"
343
+ ljubljana: str = "Europe/Ljubljana"
344
+ london: str = "Europe/London"
345
+ luxembourg: str = "Europe/Luxembourg"
346
+ madrid: str = "Europe/Madrid"
347
+ malta: str = "Europe/Malta"
348
+ mariehamn: str = "Europe/Mariehamn"
349
+ minsk: str = "Europe/Minsk"
350
+ monaco: str = "Europe/Monaco"
351
+ moscow: str = "Europe/Moscow"
352
+ oslo: str = "Europe/Oslo"
353
+ paris: str = "Europe/Paris"
354
+ podgorica: str = "Europe/Podgorica"
355
+ prague: str = "Europe/Prague"
356
+ riga: str = "Europe/Riga"
357
+ rome: str = "Europe/Rome"
358
+ samara: str = "Europe/Samara"
359
+ san_marino: str = "Europe/San_Marino"
360
+ sarajevo: str = "Europe/Sarajevo"
361
+ saratov: str = "Europe/Saratov"
362
+ simferopol: str = "Europe/Simferopol"
363
+ skopje: str = "Europe/Skopje"
364
+ sofia: str = "Europe/Sofia"
365
+ stockholm: str = "Europe/Stockholm"
366
+ tallinn: str = "Europe/Tallinn"
367
+ tirane: str = "Europe/Tirane"
368
+ ulyanovsk: str = "Europe/Ulyanovsk"
369
+ vaduz: str = "Europe/Vaduz"
370
+ vatican: str = "Europe/Vatican"
371
+ vienna: str = "Europe/Vienna"
372
+ vilnius: str = "Europe/Vilnius"
373
+ volgograd: str = "Europe/Volgograd"
374
+ warsaw: str = "Europe/Warsaw"
375
+ zagreb: str = "Europe/Zagreb"
376
+ zurich: str = "Europe/Zurich"
377
+ antananarivo: str = "Indian/Antananarivo"
378
+ chagos: str = "Indian/Chagos"
379
+ christmas: str = "Indian/Christmas"
380
+ cocos: str = "Indian/Cocos"
381
+ comoro: str = "Indian/Comoro"
382
+ kerguelen: str = "Indian/Kerguelen"
383
+ mahe: str = "Indian/Mahe"
384
+ maldives: str = "Indian/Maldives"
385
+ mauritius: str = "Indian/Mauritius"
386
+ mayotte: str = "Indian/Mayotte"
387
+ reunion: str = "Indian/Reunion"
388
+ apia: str = "Pacific/Apia"
389
+ auckland: str = "Pacific/Auckland"
390
+ bougainville: str = "Pacific/Bougainville"
391
+ chatham: str = "Pacific/Chatham"
392
+ chuuk: str = "Pacific/Chuuk"
393
+ easter: str = "Pacific/Easter"
394
+ efate: str = "Pacific/Efate"
395
+ fakaofo: str = "Pacific/Fakaofo"
396
+ fiji: str = "Pacific/Fiji"
397
+ funafuti: str = "Pacific/Funafuti"
398
+ galapagos: str = "Pacific/Galapagos"
399
+ gambier: str = "Pacific/Gambier"
400
+ guadalcanal: str = "Pacific/Guadalcanal"
401
+ guam: str = "Pacific/Guam"
402
+ honolulu: str = "Pacific/Honolulu"
403
+ kanton: str = "Pacific/Kanton"
404
+ kiritimati: str = "Pacific/Kiritimati"
405
+ kosrae: str = "Pacific/Kosrae"
406
+ kwajalein: str = "Pacific/Kwajalein"
407
+ majuro: str = "Pacific/Majuro"
408
+ marquesas: str = "Pacific/Marquesas"
409
+ midway: str = "Pacific/Midway"
410
+ nauru: str = "Pacific/Nauru"
411
+ niue: str = "Pacific/Niue"
412
+ norfolk: str = "Pacific/Norfolk"
413
+ noumea: str = "Pacific/Noumea"
414
+ pago_pago: str = "Pacific/Pago_Pago"
415
+ palau: str = "Pacific/Palau"
416
+ pitcairn: str = "Pacific/Pitcairn"
417
+ pohnpei: str = "Pacific/Pohnpei"
418
+ port_moresby: str = "Pacific/Port_Moresby"
419
+ rarotonga: str = "Pacific/Rarotonga"
420
+ saipan: str = "Pacific/Saipan"
421
+ tahiti: str = "Pacific/Tahiti"
422
+ tarawa: str = "Pacific/Tarawa"
423
+ tongatapu: str = "Pacific/Tongatapu"
424
+ wake: str = "Pacific/Wake"
425
+ wallis: str = "Pacific/Wallis"
426
+ gmt_m_12: str = "Etc/GMT-12"
427
+ gmt_m_11: str = "Etc/GMT-11"
428
+ gmt_m_10: str = "Etc/GMT-10"
429
+ gmt_m_9: str = "Etc/GMT-9"
430
+ gmt_m_8: str = "Etc/GMT-8"
431
+ gmt_m_7: str = "Etc/GMT-7"
432
+ gmt_m_6: str = "Etc/GMT-6"
433
+ gmt_m_5: str = "Etc/GMT-5"
434
+ gmt_m_4: str = "Etc/GMT-4"
435
+ gmt_m_3: str = "Etc/GMT-3"
436
+ gmt_m_2: str = "Etc/GMT-2"
437
+ gmt_m_1: str = "Etc/GMT-1"
438
+ gmt: str = "Etc/GMT"
439
+ gmt_p_1: str = "Etc/GMT+1"
440
+ gmt_p_2: str = "Etc/GMT+2"
441
+ gmt_p_3: str = "Etc/GMT+3"
442
+ gmt_p_4: str = "Etc/GMT+4"
443
+ gmt_p_5: str = "Etc/GMT+5"
444
+ gmt_p_6: str = "Etc/GMT+6"
445
+ gmt_p_7: str = "Etc/GMT+7"
446
+ gmt_p_8: str = "Etc/GMT+8"
447
+ gmt_p_9: str = "Etc/GMT+9"
448
+ gmt_p_10: str = "Etc/GMT+10"
449
+ gmt_p_11: str = "Etc/GMT+11"
450
+ gmt_p_12: str = "Etc/GMT+12"
451
+
452
+ # aliases we allow
453
+ alaska: str = "US/Alaska"
454
+ aleutian: str = "US/Aleutian"
455
+ arizona: str = "US/Arizona"
456
+ central: str = "US/Central"
457
+ east_indiana: str = "US/East-Indiana"
458
+ eastern: str = "US/Eastern"
459
+ hawaii: str = "US/Hawaii"
460
+ indiana_starke: str = "US/Indiana-Starke"
461
+ michigan: str = "US/Michigan"
462
+ mountain: str = "US/Mountain"
463
+ pacific: str = "US/Pacific"
464
+ samoa: str = "US/Samoa"
465
+
466
+
467
+ def timezone_to_canonical_name(timezone: TimezoneEnum):
468
+ if timezone == TimezoneEnum.alaska:
469
+ return TimezoneEnum.anchorage
470
+ if timezone == TimezoneEnum.aleutian:
471
+ return TimezoneEnum.adak
472
+ if timezone == TimezoneEnum.arizona:
473
+ return TimezoneEnum.phoenix
474
+ if timezone == TimezoneEnum.central:
475
+ return TimezoneEnum.chicago
476
+ if timezone == TimezoneEnum.east_indiana:
477
+ return TimezoneEnum.indianapolis
478
+ if timezone == TimezoneEnum.eastern:
479
+ return TimezoneEnum.new_york
480
+ if timezone == TimezoneEnum.hawaii:
481
+ return TimezoneEnum.honolulu
482
+ if timezone == TimezoneEnum.indiana_starke:
483
+ return TimezoneEnum.knox
484
+ if timezone == TimezoneEnum.michigan:
485
+ return TimezoneEnum.detroit
486
+ if timezone == TimezoneEnum.mountain:
487
+ return TimezoneEnum.denver
488
+ if timezone == TimezoneEnum.pacific:
489
+ return TimezoneEnum.los_angeles
490
+ if timezone == TimezoneEnum.samoa:
491
+ return TimezoneEnum.pago
492
+ return timezone
493
+
494
+ class PriceType(str, Enum):
495
+ rack = "rack"
496
+ contract = "contract"
497
+ index = "index"
498
+ inventory = "inventory"
499
+ spot = "spot"
500
+
501
+ @classmethod
502
+ def list_of_values(cls):
503
+ return [v.value for v in cls.__members__.values()]
504
+
505
+ @classmethod
506
+ def string_of_values(cls):
507
+ return ",".join([v.value for v in cls.__members__.values()])
508
+
509
+ def __str__(self):
510
+ return self.value