energy-reports-pkg 0.6.14__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.
- energy_reports_pkg-0.6.14.dist-info/METADATA +10 -0
- energy_reports_pkg-0.6.14.dist-info/RECORD +221 -0
- energy_reports_pkg-0.6.14.dist-info/WHEEL +5 -0
- energy_reports_pkg-0.6.14.dist-info/top_level.txt +1 -0
- mindsett_energy_reports_pkg/config/__init__.py +6 -0
- mindsett_energy_reports_pkg/config/email/__init__.py +37 -0
- mindsett_energy_reports_pkg/config/monday/__init__.py +8 -0
- mindsett_energy_reports_pkg/config/monday/auth/__init__.py +7 -0
- mindsett_energy_reports_pkg/config/monday/columns_concerned/__init__.py +22 -0
- mindsett_energy_reports_pkg/config/postgresdb/__init__.py +33 -0
- mindsett_energy_reports_pkg/config/postgresdb/table/__init__.py +2 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_building/__init__.py +1 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_building_total/__init__.py +1 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_cache/__init__.py +30 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_iot/__init__.py +1 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_mailing/__init__.py +15 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_meta/__init__.py +2 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_occupancy/__init__.py +3 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_on_off/__init__.py +2 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_org/__init__.py +1 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_price/__init__.py +2 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_schedule/__init__.py +1 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_sqm/__init__.py +2 -0
- mindsett_energy_reports_pkg/config/postgresdb/table_timezone/__init__.py +2 -0
- mindsett_energy_reports_pkg/config/sharepoint/__init__.py +12 -0
- mindsett_energy_reports_pkg/config/sharepoint/excel/__init__.py +5 -0
- mindsett_energy_reports_pkg/config/sharepoint/excel/columns_concerned/__init__.py +7 -0
- mindsett_energy_reports_pkg/config/smtp/__init__.py +10 -0
- mindsett_energy_reports_pkg/jobs/databricks_job.py +31 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/DataProcessor/__init__.py +14 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/DataProcessor/launchInteractiveProcess.py +6 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorBoardColumnNotMatch/__init__.py +6 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorBoardNotFound/__init__.py +5 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorException/__init__.py +4 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorNoColumInBoard/__init__.py +5 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorNoGroupsInBoard/__init__.py +5 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorNoItemInGroup/__init__.py +6 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/MondayProcessorPageNotSupported/__init__.py +7 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/MondayProcessorExceptions_/__init__.py +8 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/__init__.py +40 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchBoardById.py +13 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchBoardLogsById.py +33 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchColumnValueByGroup.py +103 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchGroups.py +19 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchPrismConf.py +10 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchPrismConfByBoard.py +83 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_fetchPrismConfByGroup.py +89 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_searchColumnIdsByName.py +23 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_searchConfColumnIds.py +30 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/_searchConfColumnIdsMatch.py +20 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/__init__.py +11 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/boards/__init__.py +12 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/boards/groups/__init__.py +11 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/boards/groups/items_page/__init__.py +10 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/boards/groups/items_page/items/__init__.py +12 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/boards/groups/items_page/items/column_values/__init__.py +10 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/dev/graphql_query/boards/groups/items_page/items/column_values/column/__init__.py +2 -0
- mindsett_energy_reports_pkg/libs/MondayProcessor/launchInteractiveProcess.py +7 -0
- mindsett_energy_reports_pkg/libs/__init__.py +4 -0
- mindsett_energy_reports_pkg/libs/cache_return/__init__.py +47 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/__init__.py +29 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/load_cf_from_db/__init__.py +17 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/__init__.py +52 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/cache_cf_to_db/__init__.py +11 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/cache_cf_to_db/append_df_to_table/__init__.py +29 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/cache_cf_to_db/empty_table/__init__.py +11 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/extract_contacts/__init__.py +57 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/extract_contacts/get_mailing_list/__init__.py +25 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/extract_contacts/load_mailing_list/__init__.py +50 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/extract_contacts/load_mailing_list/columns_concerned/__init__.py +22 -0
- mindsett_energy_reports_pkg/libs/fetch_monday_info/sync_with_monday/get_last_update_time/__init__.py +26 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/__init__.py +27 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/load_cf_from_db/__init__.py +17 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/__init__.py +28 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/cache_cf_to_db/__init__.py +11 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/cache_cf_to_db/append_df_to_table/__init__.py +29 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/cache_cf_to_db/empty_table/__init__.py +11 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/__init__.py +13 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/format_contacts/__init__.py +57 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/format_contacts/columns_concerned/__init__.py +8 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/format_contacts/extract_id/# __init__.py +11 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/format_contacts/extract_id/__init__.py +19 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/format_contacts/get_mailing_list/__init__.py +10 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/format_contacts/uuid_for_nona/__init__.py +12 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/load_mailing_list/__init__.py +30 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/load_mailing_list/get_excel_file_from_link/__init__.py +30 -0
- mindsett_energy_reports_pkg/libs/fetch_sharepoint_info/sync_with_sharepoint/extract_contacts/load_mailing_list/load_excel_as_df/__init__.py +45 -0
- mindsett_energy_reports_pkg/libs/generate_dag_id/__init__.py +20 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/__init__.py +42 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/__version__.py +8 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_airflow/__init__.py +47 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_json/__init__.py +25 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_json/get_credential_url/__init__.py +17 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_json/get_credential_url/databricks/__init__.py +10 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_json/get_credential_url/local/__init__.py +13 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_synapse/__init__.py +15 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_synapse/connect_lake_and_fetch_json/__init__.py +19 -0
- mindsett_energy_reports_pkg/libs/get_conn_by_id/get_conn_by_id_synapse/datalake/__init__.py +7 -0
- mindsett_energy_reports_pkg/mdl/__init__.py +2 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/ClientSite/__init__.py +119 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/ClientSite/get_end_time/__init__.py +8 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/ClientSite/get_period_range/__init__.py +8 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/ClientSite/get_schedule_records/__init__.py +34 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/ClientSite/get_start_time/__init__.py +6 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/ClientSite/get_start_time_co2_barchart/__init__.py +7 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/__init__.py +93 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/email_report/__init__.py +47 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/__init__.py +75 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/apply_price_from_db/__init__.py +13 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/apply_price_from_db/load_energy_price/__init__.py +14 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/attach_id_to_buildings/__init__.py +24 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/attach_id_to_buildings/load_building/__init__.py +19 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/attach_id_to_buildings/load_org/__init__.py +13 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/check_and_keep_valid/__init__.py +36 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/load_sqm/__init__.py +11 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/load_config/load_timezone/__init__.py +11 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/__init__.py +43 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/__init__.py +47 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/__init__.py +40 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/__init__.py +71 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/plot_temperature_graph/__init__.py +35 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/plot_the_legend/__init__.py +26 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/setup_x_tick_lim/__init__.py +26 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/setup_x_tick_lim/generate_day_code/__init__.py +18 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/setup_x_tick_lim/generate_day_code/generate_day_code_list/__init__.py +38 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/setup_y_label_and_get_pos_bot_range/__init__.py +40 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/setup_y_label_and_get_pos_bot_range/get_pos_bot_and_ylim/__init__.py +30 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/plot_shifted_daily_barchart_with_temp/setup_y_tick_lim_label_zero_line/__init__.py +23 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/preprocessing_for_barchart/__init__.py +21 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/preprocessing_for_barchart/groupby_date_and_ooh_current_period/__init__.py +39 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/preprocessing_for_barchart/patch_missing_columns_for_ooh_and_sign/__init__.py +18 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_daily_barchart_with_temp/preprocessing_for_barchart/patch_missing_dates/__init__.py +28 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_energy_meter_with_benchmarking/__init__.py +42 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_energy_meter_with_benchmarking/energy_meter_with_benchmarking/__init__.py +66 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_energy_meter_with_benchmarking/energy_meter_with_benchmarking/benchmarking_design/__init__.py +194 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_energy_meter_with_benchmarking/energy_meter_with_benchmarking/benchmarking_design/ruler_anno_shink_cf/__init__.py +24 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_energy_meter_with_benchmarking/energy_meter_with_benchmarking/energy_meter_design/__init__.py +233 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_energy_meter_with_benchmarking/preprocessing_for_energy_meter_with_benchmarking/__init__.py +23 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_insight_statements/__init__.py +42 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_insight_statements/insight_statements/__init__.py +41 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_insight_statements/insight_statements/statement_for_avg_action_time/__init__.py +61 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_insight_statements/insight_statements/statement_for_biggest_ooh/__init__.py +31 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_insight_statements/insight_statements/statement_for_total_ooh/__init__.py +18 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_insight_statements/preprocessing_for_statement/__init__.py +85 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/__init__.py +29 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/plot_shifted_period_barchart/__init__.py +49 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/plot_shifted_period_barchart/set_x_label_prepare_xtick/__init__.py +24 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/plot_shifted_period_barchart/set_x_tick_and_lim/__init__.py +26 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/plot_shifted_period_barchart/setup_y_tick_lim_label_zero_line/__init__.py +31 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/preprocessing_for_period_barchart/__init__.py +43 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_period_barchart/preprocessing_for_period_barchart/patch_missing_ooh_periods_sign/__init__.py +23 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/__init__.py +56 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/__init__.py +109 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/colors/__init__.py +28 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/hatches/__init__.py +2 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_centre_pct/__init__.py +28 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_phase_balance/__init__.py +42 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_phase_balance/get_phase_markers/__init__.py +28 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_phase_balance/get_tick_values/__init__.py +44 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_phase_balance/plot_phase_balance_part/__init__.py +108 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_phase_balance/plot_phase_balance_part/ruler_anno_shink_cf/__init__.py +29 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_phase_balance/plot_phase_balance_part/ruler_symbol_cf/__init__.py +35 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_ring/__init__.py +87 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_ring/adjust_gap_for_visibility/__init__.py +19 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_ring/adjust_to_inner_ring/__init__.py +32 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_ring/adjust_values_for_better_visibility/__init__.py +27 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_ring/annotate_pct_on_pies/__init__.py +21 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/plot_ring/generate_pct_fmt/__init__.py +8 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/__init__.py +36 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/generate_legend_labels/__init__.py +50 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/generate_legend_labels/get_formatted_arrow/__init__.py +18 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/generate_legend_labels/get_formatted_name/__init__.py +14 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/generate_legend_labels/get_formatted_pct/__init__.py +44 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/generate_legend_labels/get_formatted_sum/__init__.py +31 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/plot_adaptive_ring_with_phase/show_legend/get_legend_handles/__init__.py +22 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_phases/__init__.py +37 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/__init__.py +26 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/group_and_pivot/__init__.py +24 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/transform_asset_stats_for_adaptive_piechart/__init__.py +30 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/transform_asset_stats_for_adaptive_piechart/get_change_pct_and_sort_and_trim_cols/__init__.py +34 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/transform_asset_stats_for_adaptive_piechart/get_entries_to_display/__init__.py +34 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/transform_asset_stats_for_adaptive_piechart/get_rank_overall_protect/__init__.py +14 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/transform_asset_stats_for_adaptive_piechart/get_subgroup_sum_and_rank/__init__.py +22 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_components/generate_piechart_with_phase/preprocessing_for_piechart/transform_asset_stats_for_adaptive_piechart/get_sum_for_curr_and_prev/__init__.py +20 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_report/PDF/__init__.py +44 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_report/PDF/write_multicell_with_styles.py +30 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/generate_report/__init__.py +162 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/__init__.py +78 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/__init__.py +32 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/import_data_with_meta_postgres/__init__.py +47 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/import_data_with_meta_postgres/load_iot_data/__init__.py +28 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/import_data_with_meta_postgres/load_iot_data/load_iot_data_partition/__init__.py +24 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/import_data_with_meta_postgres/load_metadata/__init__.py +34 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/import_data_with_meta_postgres/load_metadata/get_meta_statement/__init__.py +32 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/load_source_data/query_building_total/__init__.py +40 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/refine_group_name/__init__.py +20 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/refine_group_name/exchange_group_name_column/__init__.py +10 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/prepare_report/preparing_source_data/validate_data_not_empty/__init__.py +9 -0
- mindsett_energy_reports_pkg/mdl/prepare_and_email_reports/select_sites_and_emails/__init__.py +19 -0
- mindsett_energy_reports_pkg/mdl/utils_/__init__.py +17 -0
- mindsett_energy_reports_pkg/mdl/utils_/cache_df_to_db/__init__.py +11 -0
- mindsett_energy_reports_pkg/mdl/utils_/cache_df_to_db/append_df_to_table/__init__.py +29 -0
- mindsett_energy_reports_pkg/mdl/utils_/cache_df_to_db/empty_table/__init__.py +11 -0
- mindsett_energy_reports_pkg/mdl/utils_/cache_obj/__init__.py +50 -0
- mindsett_energy_reports_pkg/mdl/utils_/color_dict/__init__.py +13 -0
- mindsett_energy_reports_pkg/mdl/utils_/delete_files_in_directory/__init__.py +15 -0
- mindsett_energy_reports_pkg/mdl/utils_/enriching_time_features/__init__.py +66 -0
- mindsett_energy_reports_pkg/mdl/utils_/enriching_time_features/__version__.py +4 -0
- mindsett_energy_reports_pkg/mdl/utils_/generate_time_partition_list/__init__.py +14 -0
- mindsett_energy_reports_pkg/mdl/utils_/get_group_with_others/__init__.py +7 -0
- mindsett_energy_reports_pkg/mdl/utils_/get_pos_bot_range_unit_format/__init__.py +37 -0
- mindsett_energy_reports_pkg/mdl/utils_/get_pos_bot_range_unit_format/get_pos_bot_and_ylim/__init__.py +31 -0
- mindsett_energy_reports_pkg/mdl/utils_/modify_group_names/__init__.py +17 -0
- mindsett_energy_reports_pkg/mdl/utils_/patch_missing_periods/__init__.py +34 -0
- mindsett_energy_reports_pkg/mdl/utils_/plot_stacked_barchart/__init__.py +50 -0
- mindsett_energy_reports_pkg/mdl/utils_/send_email/__init__.py +73 -0
- mindsett_energy_reports_pkg/mdl/utils_/setup_table/__init__.py +40 -0
- mindsett_energy_reports_pkg/mdl/utils_/setup_table/check_table_existence/__init__.py +25 -0
- mindsett_energy_reports_pkg/mdl/utils_/setup_table/create_new_schema/__init__.py +8 -0
- mindsett_energy_reports_pkg/mdl/utils_/setup_table/create_table/__init__.py +73 -0
- mindsett_energy_reports_pkg/mdl/utils_/setup_table/empty_table/__init__.py +11 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
from .MondayProcessorException import MondayProcessorException
|
3
|
+
from .MondayProcessorBoardNotFound import MondayProcessorBoardNotFound
|
4
|
+
from .MondayProcessorNoColumInBoard import MondayProcessorNoColumInBoard
|
5
|
+
from .MondayProcessorNoGroupsInBoard import MondayProcessorNoGroupsInBoard
|
6
|
+
from .MondayProcessorNoItemInGroup import MondayProcessorNoItemInGroup
|
7
|
+
from .MondayProcessorBoardColumnNotMatch import MondayProcessorBoardColumnNotMatch
|
8
|
+
from .MondayProcessorPageNotSupported import MondayProcessorPageNotSupported
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
#author: Xiao Wang
|
4
|
+
# x.wang@cloudfmgroup.com
|
5
|
+
# Created: 05/04/2023
|
6
|
+
|
7
|
+
from .DataProcessor import DataProcessor
|
8
|
+
from monday import MondayClient
|
9
|
+
|
10
|
+
class MondayProcessor(DataProcessor):
|
11
|
+
|
12
|
+
from .launchInteractiveProcess import launchInteractiveProcess
|
13
|
+
from ._fetchBoardById import _fetchBoardById
|
14
|
+
from ._fetchBoardLogsById import _fetchBoardLogsById
|
15
|
+
from ._fetchGroups import _fetchGroups
|
16
|
+
from ._fetchPrismConf import _fetchPrismConf
|
17
|
+
from ._fetchPrismConfByBoard import _fetchPrismConfByBoard
|
18
|
+
from ._fetchPrismConfByGroup import _fetchPrismConfByGroup
|
19
|
+
from ._fetchColumnValueByGroup import _fetchColumnValueByGroup
|
20
|
+
from ._searchConfColumnIds import _searchConfColumnIds
|
21
|
+
from ._searchColumnIdsByName import _searchColumnIdsByName
|
22
|
+
from ._searchConfColumnIdsMatch import _searchConfColumnIdsMatch
|
23
|
+
|
24
|
+
def __init__(self, MONDAY_TOKEN) -> None:
|
25
|
+
super().__init__()
|
26
|
+
self._token = MONDAY_TOKEN
|
27
|
+
self.monday = MondayClient(self._token)
|
28
|
+
|
29
|
+
|
30
|
+
if __name__ == "__main__":
|
31
|
+
|
32
|
+
mp = MondayProcessor()
|
33
|
+
# mp._fetchBoardById(4246692749)
|
34
|
+
# mp._fetchPrismConfByGroup(board_id=4246692749, groupId="topics", columns=["ct_type", "color", "prism_channel_no_9", "status1" ])
|
35
|
+
ConfColumnIds = mp._searchConfColumnIds(4246692749)
|
36
|
+
mp._fetchPrismConfByGroup(board_id=4246692749, groupId="topics", columns=ConfColumnIds)
|
37
|
+
# mp._fetchGroups(4246692749)
|
38
|
+
# mp._fetchPrismConf(4246692749)
|
39
|
+
# df = mp.launchInteractiveProcess(4246692749)
|
40
|
+
# print(df)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import requests
|
2
|
+
|
3
|
+
def _fetchBoardById(self, board_id:int):
|
4
|
+
headers = {"Authorization": self._token,
|
5
|
+
"API-Version": '2024-01'}
|
6
|
+
data = {"query": f'''query {{
|
7
|
+
boards (ids:{board_id}){{
|
8
|
+
id
|
9
|
+
name
|
10
|
+
}}
|
11
|
+
}}'''}
|
12
|
+
r = requests.post('https://api.monday.com/v2', headers=headers, data=data)
|
13
|
+
return r.json()
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import requests
|
2
|
+
|
3
|
+
# def _fetchBoardLogsById(self, board_id:int):
|
4
|
+
# headers = {"Authorization": self._token}
|
5
|
+
# data = {"query": f'''query {{
|
6
|
+
# boards (ids:{board_id}){
|
7
|
+
# activity_logs (limit: 10) {
|
8
|
+
# id
|
9
|
+
# name
|
10
|
+
# }}
|
11
|
+
# }}'''}
|
12
|
+
# r = requests.post('https://api.monday.com/v2', headers=headers, data=data)
|
13
|
+
# return r.json()
|
14
|
+
|
15
|
+
def _fetchBoardLogsById(self, board_id, limit=1):
|
16
|
+
headers = {"Authorization": self._token,
|
17
|
+
"API-Version": '2024-01'}
|
18
|
+
data = {"query": f'''query {{
|
19
|
+
boards (ids:{board_id}){{
|
20
|
+
activity_logs (limit: {limit}) {{
|
21
|
+
id
|
22
|
+
event
|
23
|
+
created_at
|
24
|
+
}}
|
25
|
+
}}
|
26
|
+
}}'''}
|
27
|
+
r = requests.post('https://api.monday.com/v2', headers=headers, json=data)
|
28
|
+
|
29
|
+
data = r.json()
|
30
|
+
if 'data' not in data:
|
31
|
+
print(data)
|
32
|
+
|
33
|
+
return data
|
@@ -0,0 +1,103 @@
|
|
1
|
+
from typing import List
|
2
|
+
import requests
|
3
|
+
|
4
|
+
|
5
|
+
from .MondayProcessorExceptions_ import (
|
6
|
+
MondayProcessorBoardNotFound,
|
7
|
+
MondayProcessorNoColumInBoard,
|
8
|
+
MondayProcessorNoItemInGroup,
|
9
|
+
MondayProcessorPageNotSupported
|
10
|
+
)
|
11
|
+
|
12
|
+
def _fetchColumnValueByGroup(self, board_id:int, groupId:str, columns:List[str]):
|
13
|
+
|
14
|
+
column_ids = []
|
15
|
+
|
16
|
+
for column_name in columns:
|
17
|
+
for column_id in self._searchColumnIdsByName(board_id, column_name=column_name):
|
18
|
+
column_ids.append(column_id)
|
19
|
+
|
20
|
+
columns_str = '["' + '","'.join(column_ids) + '"]'
|
21
|
+
# columns_index = ["ct", "phase", "channel", "sn", "powerSupplyPhase"]
|
22
|
+
# columnsDict = dict(zip(columns,columns_index))
|
23
|
+
headers = {"Authorization": self._token,
|
24
|
+
"API-Version": '2024-01'}
|
25
|
+
data = {"query": f'''query {{
|
26
|
+
boards (ids:{board_id}){{
|
27
|
+
id
|
28
|
+
name
|
29
|
+
groups(ids:"{groupId}"){{
|
30
|
+
id
|
31
|
+
items_page(limit:500){{
|
32
|
+
cursor
|
33
|
+
items{{
|
34
|
+
id
|
35
|
+
name
|
36
|
+
column_values(ids:{columns_str}){{
|
37
|
+
column{{
|
38
|
+
title
|
39
|
+
}}
|
40
|
+
type
|
41
|
+
text
|
42
|
+
... on BoardRelationValue {{
|
43
|
+
display_value
|
44
|
+
}}
|
45
|
+
... on LinkValue {{
|
46
|
+
url_text
|
47
|
+
}}
|
48
|
+
... on CheckboxValue {{
|
49
|
+
checked
|
50
|
+
}}
|
51
|
+
}}
|
52
|
+
}}
|
53
|
+
}}
|
54
|
+
|
55
|
+
}}
|
56
|
+
}}
|
57
|
+
}}'''}
|
58
|
+
r = requests.post('https://api.monday.com/v2', headers=headers, json=data)
|
59
|
+
data = r.json()
|
60
|
+
if 'data' not in data:
|
61
|
+
print(data)
|
62
|
+
# print(data)
|
63
|
+
boards = data['data']['boards']
|
64
|
+
if(len(boards) <1):
|
65
|
+
raise MondayProcessorBoardNotFound(f"Monday board id ({board_id}) not found when perform MondayProcessor._searchConfColumnIds")
|
66
|
+
groups = boards[0]['groups']
|
67
|
+
if(len(groups) < 1):
|
68
|
+
raise MondayProcessorNoColumInBoard(f"No column in board {board_id}")
|
69
|
+
items_page = groups[0]['items_page']
|
70
|
+
if items_page['cursor'] is not None:
|
71
|
+
raise MondayProcessorPageNotSupported(f"The items on page exceeded the limit 500, board {board_id}, group {groupId}!")
|
72
|
+
|
73
|
+
items = items_page['items']
|
74
|
+
if(len(items) < 1):
|
75
|
+
raise MondayProcessorNoItemInGroup(f"No column in board {board_id}, group {groupId}")
|
76
|
+
|
77
|
+
ret = []
|
78
|
+
for item in items:
|
79
|
+
# print('item:', item)
|
80
|
+
tmpDict = {}
|
81
|
+
if 'Name' in columns:
|
82
|
+
tmpDict['Name'] = item['name']
|
83
|
+
for v in item["column_values"]:
|
84
|
+
|
85
|
+
if v["type"] == 'board_relation':
|
86
|
+
tmpDict[v['column']["title"]] = v["display_value"]
|
87
|
+
elif v["type"] == "link":
|
88
|
+
tmpDict[v['column']["title"]] = v["url_text"]
|
89
|
+
elif v["type"] == "checkbox":
|
90
|
+
tmpDict[v['column']["title"]] = v["checked"]
|
91
|
+
else:
|
92
|
+
tmpDict[v['column']["title"]] = v["text"]
|
93
|
+
# key = v["id"]
|
94
|
+
# ai = v["additional_info"]
|
95
|
+
# tmpDict[key]= None if ai== None else json.loads(ai)["label"]
|
96
|
+
# try:
|
97
|
+
# ch = tmpDict["channel"]
|
98
|
+
# chN = int(ch)
|
99
|
+
# tmpDict["channel"] = chN
|
100
|
+
# except:
|
101
|
+
# tmpDict["channel"] = None
|
102
|
+
ret.append(tmpDict)
|
103
|
+
return ret
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from typing import List
|
2
|
+
|
3
|
+
from .MondayProcessorExceptions_ import (
|
4
|
+
MondayProcessorBoardNotFound,
|
5
|
+
MondayProcessorNoColumInBoard
|
6
|
+
)
|
7
|
+
|
8
|
+
def _fetchGroups(self, board_id:int) -> List[str]:
|
9
|
+
data = self.monday.groups.get_groups_by_board(board_ids=board_id)
|
10
|
+
boards = data['data']['boards']
|
11
|
+
if(len(boards) <1):
|
12
|
+
raise MondayProcessorBoardNotFound(f"Monday board id ({board_id}) not found when perform MondayProcessor._searchConfColumnIds")
|
13
|
+
groups = boards[0]['groups']
|
14
|
+
if(len(groups) < 1):
|
15
|
+
raise MondayProcessorNoColumInBoard(f"No column in board {board_id}")
|
16
|
+
ret = {x["id"]:x["title"] for x in groups}
|
17
|
+
# print(groups)
|
18
|
+
# print(ret)
|
19
|
+
return ret
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from typing import List
|
2
|
+
|
3
|
+
def _fetchPrismConf(self, board_id:int)->List[dict]:
|
4
|
+
confColumnIds = self._searchConfColumnIds(board_id=board_id)
|
5
|
+
groupIds = self._fetchGroups(board_id=board_id)
|
6
|
+
ret = []
|
7
|
+
for gId in groupIds:
|
8
|
+
items = self._fetchPrismConfByGroup(board_id=board_id, groupId=gId, columns=confColumnIds)
|
9
|
+
ret.extend(items)
|
10
|
+
return ret
|
@@ -0,0 +1,83 @@
|
|
1
|
+
|
2
|
+
from typing import List
|
3
|
+
import requests
|
4
|
+
|
5
|
+
from .MondayProcessorExceptions_ import (
|
6
|
+
MondayProcessorBoardNotFound,
|
7
|
+
MondayProcessorNoColumInBoard,
|
8
|
+
MondayProcessorNoItemInGroup
|
9
|
+
)
|
10
|
+
|
11
|
+
|
12
|
+
def _fetchPrismConfByBoard(self, board_id:int, columns:List[str]):
|
13
|
+
|
14
|
+
column_ids = []
|
15
|
+
|
16
|
+
for column_name in columns:
|
17
|
+
for column_id in self._searchColumnIdsByName(board_id, column_name=column_name):
|
18
|
+
column_ids.append(column_id)
|
19
|
+
|
20
|
+
columns_str = '["' + '","'.join(column_ids) + '"]'
|
21
|
+
columns_index = ["ct", "phase", "channel", "sn", "powerSupplyPhase"]
|
22
|
+
columnsDict = dict(zip(columns,columns_index))
|
23
|
+
headers = {"Authorization": self._token,
|
24
|
+
"API-Version": '2024-01'}
|
25
|
+
data = {"query": f'''query {{
|
26
|
+
boards (ids:{board_id}){{
|
27
|
+
id
|
28
|
+
name
|
29
|
+
groups(){{
|
30
|
+
id
|
31
|
+
title
|
32
|
+
items_page(limit:500) {{
|
33
|
+
cursor
|
34
|
+
items{{
|
35
|
+
id
|
36
|
+
name
|
37
|
+
column_values(ids:{columns_str}){{
|
38
|
+
column{{title}}
|
39
|
+
text
|
40
|
+
}}
|
41
|
+
}}
|
42
|
+
}}
|
43
|
+
|
44
|
+
}}
|
45
|
+
}}
|
46
|
+
}}'''}
|
47
|
+
r = requests.post('https://api.monday.com/v2', headers=headers, json=data)
|
48
|
+
data = r.json()
|
49
|
+
if 'data' not in data:
|
50
|
+
print(data)
|
51
|
+
boards = data['data']['boards']
|
52
|
+
if(len(boards) <1):
|
53
|
+
raise MondayProcessorBoardNotFound(f"Monday board id ({board_id}) not found when perform MondayProcessor._searchConfColumnIds")
|
54
|
+
groups = boards[0]['groups']
|
55
|
+
if(len(groups) < 1):
|
56
|
+
raise MondayProcessorNoColumInBoard(f"No column in board {board_id}")
|
57
|
+
|
58
|
+
ret = []
|
59
|
+
for group in groups:
|
60
|
+
groupId = group['id']
|
61
|
+
items = group['items_page']['items']
|
62
|
+
if(len(items) < 1):
|
63
|
+
raise MondayProcessorNoItemInGroup(f"No column in board {board_id}, group {groupId}")
|
64
|
+
|
65
|
+
for item in items:
|
66
|
+
print('item:', item)
|
67
|
+
tmpDict = {}
|
68
|
+
if 'Name' in columns:
|
69
|
+
tmpDict['Name'] = item['name']
|
70
|
+
tmpDict['building_name'] = group["title"]
|
71
|
+
for v in item["column_values"]:
|
72
|
+
tmpDict[v["column"]["title"]] = v["text"]
|
73
|
+
# key = v["id"]
|
74
|
+
# ai = v["additional_info"]
|
75
|
+
# tmpDict[key]= None if ai== None else json.loads(ai)["label"]
|
76
|
+
# try:
|
77
|
+
# ch = tmpDict["channel"]
|
78
|
+
# chN = int(ch)
|
79
|
+
# tmpDict["channel"] = chN
|
80
|
+
# except:
|
81
|
+
# tmpDict["channel"] = None
|
82
|
+
ret.append(tmpDict)
|
83
|
+
return ret
|
@@ -0,0 +1,89 @@
|
|
1
|
+
from typing import List
|
2
|
+
import requests
|
3
|
+
|
4
|
+
|
5
|
+
from .MondayProcessorExceptions_ import (
|
6
|
+
MondayProcessorBoardNotFound,
|
7
|
+
MondayProcessorNoColumInBoard,
|
8
|
+
MondayProcessorNoItemInGroup,
|
9
|
+
MondayProcessorPageNotSupported
|
10
|
+
)
|
11
|
+
|
12
|
+
def _fetchPrismConfByGroup(self, board_id:int, groupId:str, columns:List[str]):
|
13
|
+
|
14
|
+
column_ids = []
|
15
|
+
|
16
|
+
for column_name in columns:
|
17
|
+
for column_id in self._searchColumnIdsByName(board_id, column_name=column_name):
|
18
|
+
column_ids.append(column_id)
|
19
|
+
|
20
|
+
columns_str = '["' + '","'.join(column_ids) + '"]'
|
21
|
+
columns_index = ["ct", "phase", "channel", "sn", "powerSupplyPhase"]
|
22
|
+
columnsDict = dict(zip(columns,columns_index))
|
23
|
+
headers = {"Authorization": self._token,
|
24
|
+
# "Content-Type": 'application/json',
|
25
|
+
"API-Version": '2024-01'}
|
26
|
+
|
27
|
+
graphql_query = f'''query {{
|
28
|
+
boards (ids:{board_id}){{
|
29
|
+
id
|
30
|
+
name
|
31
|
+
groups(ids:"{groupId}"){{
|
32
|
+
id
|
33
|
+
items_page(limit:500){{
|
34
|
+
cursor
|
35
|
+
items{{
|
36
|
+
id
|
37
|
+
name
|
38
|
+
column_values(ids:{columns_str}){{
|
39
|
+
column{{
|
40
|
+
title
|
41
|
+
}}
|
42
|
+
text
|
43
|
+
}}
|
44
|
+
}}
|
45
|
+
}}
|
46
|
+
|
47
|
+
}}
|
48
|
+
}}
|
49
|
+
}}'''
|
50
|
+
|
51
|
+
data = {"query": graphql_query}
|
52
|
+
|
53
|
+
r = requests.post('https://api.monday.com/v2', headers=headers, json=data)
|
54
|
+
data = r.json()
|
55
|
+
if 'data' not in data:
|
56
|
+
print(data)
|
57
|
+
boards = data['data']['boards']
|
58
|
+
if(len(boards) <1):
|
59
|
+
raise MondayProcessorBoardNotFound(f"Monday board id ({board_id}) not found when perform MondayProcessor._searchConfColumnIds")
|
60
|
+
groups = boards[0]['groups']
|
61
|
+
if(len(groups) < 1):
|
62
|
+
raise MondayProcessorNoColumInBoard(f"No column in board {board_id}")
|
63
|
+
items_page = groups[0]['items_page']
|
64
|
+
if items_page['cursor'] is not None:
|
65
|
+
raise MondayProcessorPageNotSupported(f"The items on page exceeded the limit 500, board {board_id}, group {groupId}!")
|
66
|
+
|
67
|
+
items = items_page['items']
|
68
|
+
if(len(items) < 1):
|
69
|
+
raise MondayProcessorNoItemInGroup(f"No column in board {board_id}, group {groupId}")
|
70
|
+
|
71
|
+
ret = []
|
72
|
+
for item in items:
|
73
|
+
# print('item:', item)
|
74
|
+
tmpDict = {}
|
75
|
+
if 'Name' in columns:
|
76
|
+
tmpDict['Name'] = item['name']
|
77
|
+
for v in item["column_values"]:
|
78
|
+
tmpDict[v['column']["title"]] = v["text"]
|
79
|
+
# key = v["id"]
|
80
|
+
# ai = v["additional_info"]
|
81
|
+
# tmpDict[key]= None if ai== None else json.loads(ai)["label"]
|
82
|
+
# try:
|
83
|
+
# ch = tmpDict["channel"]
|
84
|
+
# chN = int(ch)
|
85
|
+
# tmpDict["channel"] = chN
|
86
|
+
# except:
|
87
|
+
# tmpDict["channel"] = None
|
88
|
+
ret.append(tmpDict)
|
89
|
+
return ret
|
@@ -0,0 +1,23 @@
|
|
1
|
+
from typing import List
|
2
|
+
|
3
|
+
from .MondayProcessorExceptions_ import (
|
4
|
+
MondayProcessorBoardNotFound,
|
5
|
+
MondayProcessorNoColumInBoard,
|
6
|
+
MondayProcessorBoardColumnNotMatch
|
7
|
+
)
|
8
|
+
|
9
|
+
def _searchColumnIdsByName(self, board_id:int, column_name:str) -> List[str]:
|
10
|
+
data = self.monday.boards.fetch_columns_by_board_id(board_ids=board_id)
|
11
|
+
boards = data['data']['boards']
|
12
|
+
if(len(boards) <1):
|
13
|
+
raise MondayProcessorBoardNotFound(f"Monday board id ({board_id}) not found when perform MondayProcessor._searchConfColumnIds")
|
14
|
+
columns = boards[0]['columns']
|
15
|
+
if(len(columns) < 1):
|
16
|
+
raise MondayProcessorNoColumInBoard(f"No column in board {board_id}")
|
17
|
+
# = boards[0][groups]
|
18
|
+
# print("columns: ", columns)
|
19
|
+
ColumnId = self._searchConfColumnIdsMatch(columns=columns,includeList=[column_name])
|
20
|
+
if (ColumnId == None): raise MondayProcessorBoardColumnNotMatch("cannot find a column with this name")
|
21
|
+
|
22
|
+
ret = [ColumnId]
|
23
|
+
return ret
|
@@ -0,0 +1,30 @@
|
|
1
|
+
from typing import List
|
2
|
+
|
3
|
+
from .MondayProcessorExceptions_ import (
|
4
|
+
MondayProcessorBoardNotFound,
|
5
|
+
MondayProcessorNoColumInBoard,
|
6
|
+
MondayProcessorBoardColumnNotMatch
|
7
|
+
)
|
8
|
+
|
9
|
+
def _searchConfColumnIds(self, board_id:int) -> List[str]:
|
10
|
+
data = self.monday.boards.fetch_columns_by_board_id(board_ids=board_id)
|
11
|
+
boards = data['data']['boards']
|
12
|
+
if(len(boards) <1):
|
13
|
+
raise MondayProcessorBoardNotFound(f"Monday board id ({board_id}) not found when perform MondayProcessor._searchConfColumnIds")
|
14
|
+
columns = boards[0]['columns']
|
15
|
+
if(len(columns) < 1):
|
16
|
+
raise MondayProcessorNoColumInBoard(f"No column in board {board_id}")
|
17
|
+
# = boards[0][groups]
|
18
|
+
ctColumnId = self._searchConfColumnIdsMatch(columns=columns,includeList=["ct","type"])
|
19
|
+
if (ctColumnId == None): raise MondayProcessorBoardColumnNotMatch("cannot find CT type column")
|
20
|
+
phaseColumnId = self._searchConfColumnIdsMatch(columns=columns,includeList=["L1","L2","L3"], excludeList=["supply"])
|
21
|
+
if (phaseColumnId == None): raise MondayProcessorBoardColumnNotMatch("cannot find circuit phase column")
|
22
|
+
channelColumnId = self._searchConfColumnIdsMatch(columns=columns,includeList=["channel","no"])
|
23
|
+
if (channelColumnId == None): raise MondayProcessorBoardColumnNotMatch("cannot find PRISM channel column")
|
24
|
+
snColumnId = self._searchConfColumnIdsMatch(columns=columns,includeList=["ID","PRISM"])
|
25
|
+
if (snColumnId == None): raise MondayProcessorBoardColumnNotMatch("cannot find PRISM SN column")
|
26
|
+
powerSupplyPhaseColumnId = self._searchConfColumnIdsMatch(columns=columns,includeList=["PRISM","supply","phase"])
|
27
|
+
if (powerSupplyPhaseColumnId == None): raise MondayProcessorBoardColumnNotMatch("cannot find PRISM power supply phase column")
|
28
|
+
|
29
|
+
ret = [ctColumnId, phaseColumnId, channelColumnId, snColumnId, powerSupplyPhaseColumnId]
|
30
|
+
return ret
|
@@ -0,0 +1,20 @@
|
|
1
|
+
from typing import List, Union
|
2
|
+
|
3
|
+
def _searchConfColumnIdsMatch(self, columns, includeList:List[str], excludeList:List[str] = [])-> Union[str,None]:
|
4
|
+
for c in columns:
|
5
|
+
title:str = c["title"]
|
6
|
+
id = c["id"]
|
7
|
+
flag = True
|
8
|
+
for item in includeList:
|
9
|
+
if item.lower() not in title.lower():
|
10
|
+
flag = False
|
11
|
+
break
|
12
|
+
if(not flag): continue
|
13
|
+
flag = True
|
14
|
+
for item in excludeList:
|
15
|
+
if item.lower() in title.lower():
|
16
|
+
flag = False
|
17
|
+
break
|
18
|
+
if(not flag): continue
|
19
|
+
return id
|
20
|
+
return None
|
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
import functools
|
3
|
+
import pandas as pd
|
4
|
+
import os
|
5
|
+
import pickle
|
6
|
+
|
7
|
+
# note: this function require the cached module function names to be unique
|
8
|
+
# note: this function can be only applied to functions returning dataframe now
|
9
|
+
|
10
|
+
def cache_return(_func=None):
|
11
|
+
def decorator(func):
|
12
|
+
func_name = func.__name__
|
13
|
+
@functools.wraps(func)
|
14
|
+
def wrapper(*args, **kwargs):
|
15
|
+
|
16
|
+
caching = kwargs.pop('caching', False)
|
17
|
+
flushing = kwargs.pop('flushing', False)
|
18
|
+
cache_path = kwargs.pop('cache_path', './_cache_')
|
19
|
+
|
20
|
+
if caching:
|
21
|
+
if not os.path.exists(cache_path):
|
22
|
+
os.makedirs(cache_path)
|
23
|
+
|
24
|
+
# dir_path = os.path.dirname(os.path.realpath(__file__))
|
25
|
+
pkl_path = f'{cache_path}/{func_name}.pkl'
|
26
|
+
if os.path.exists(pkl_path) and not flushing:
|
27
|
+
with open(pkl_path, 'rb') as file:
|
28
|
+
df_value = pd.compat.pickle_compat.load(file)
|
29
|
+
# df_value = pickle.load(file)
|
30
|
+
|
31
|
+
print(f'[INFO]: the value of function [{func_name}] has been obtained from {cache_path}!')
|
32
|
+
return df_value
|
33
|
+
|
34
|
+
df_value = func(*args, **kwargs)
|
35
|
+
|
36
|
+
if caching:
|
37
|
+
with open(pkl_path, 'wb') as file:
|
38
|
+
pickle.dump(df_value, file)
|
39
|
+
print(f'[INFO]: the value of function [{func_name}] has been cached under {cache_path}!')
|
40
|
+
|
41
|
+
return df_value
|
42
|
+
return wrapper
|
43
|
+
|
44
|
+
if _func is None:
|
45
|
+
return decorator
|
46
|
+
else:
|
47
|
+
return decorator(_func)
|