infuse-iot 0.1.0__tar.gz
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.
- infuse_iot-0.1.0/LICENSE.md +105 -0
- infuse_iot-0.1.0/PKG-INFO +104 -0
- infuse_iot-0.1.0/README.md +70 -0
- infuse_iot-0.1.0/pyproject.toml +56 -0
- infuse_iot-0.1.0/setup.cfg +4 -0
- infuse_iot-0.1.0/src/infuse_iot/__init__.py +6 -0
- infuse_iot-0.1.0/src/infuse_iot/__main__.py +5 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/__init__.py +8 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/board/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/board/create_board.py +166 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/board/get_board_by_id.py +154 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/board/get_boards.py +161 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/board/get_devices_by_board_id.py +195 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/coap/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/coap/get_coap_file_stats.py +159 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/coap/get_coap_files.py +167 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/default/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/default/get_health.py +122 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/add_kv_definitions.py +169 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/add_rpc_definitions.py +169 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/add_tdf_definitions.py +169 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/get_kv_definitions_by_version.py +159 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/get_latest_kv_definitions.py +135 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/get_latest_rpc_definitions.py +135 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/get_latest_tdf_definitions.py +135 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/get_rpc_definitions_by_version.py +159 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/defs/get_tdf_definitions_by_version.py +159 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/create_device.py +166 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_by_device_id.py +153 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_by_id.py +154 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_by_soc_and_mcu_id.py +166 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_last_route_by_device_id.py +153 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_logger_state_by_device_id_and_index.py +166 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_state_by_device_id.py +153 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_device_state_by_id.py +154 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_devices.py +195 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_devices_and_states.py +195 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/get_last_routes_for_devices.py +165 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/update_device_by_id.py +177 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/device/update_device_state_by_id.py +177 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/key/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/key/derive_device_key.py +177 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/key/get_public_key.py +122 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/key/get_shared_secret.py +155 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/organisation/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/organisation/create_organisation.py +163 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/organisation/get_all_organisations.py +136 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/organisation/get_organisation_by_id.py +154 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/rpc/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/rpc/get_rp_cs.py +301 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/rpc/get_rpc_by_id.py +160 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/api/rpc/send_rpc.py +173 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/client.py +268 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/errors.py +16 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/__init__.py +157 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/algorithm.py +67 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/application_version.py +84 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/board.py +142 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/bt_le_route.py +69 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/bt_le_route_type.py +10 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/coap_file_stats.py +75 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/coap_files_list.py +59 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/created_board_properties.py +78 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/created_device_properties.py +78 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/created_organisation_properties.py +78 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/created_rpc_message.py +79 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_enum_definition.py +89 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_enum_value.py +75 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_field_conversion.py +86 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_field_conversion_int.py +9 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_field_definition.py +127 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_field_display.py +86 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_field_display_fmt.py +9 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_kv.py +75 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_kv_definition.py +145 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_kv_definitions.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_kv_response.py +83 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_kv_structs.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc.py +85 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc_command.py +142 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc_command_default_auth.py +9 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc_commands.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc_enums.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc_response.py +83 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_rpc_structs.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_struct_definition.py +81 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_tdf.py +75 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_tdf_definition.py +89 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_tdf_definitions.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_tdf_response.py +83 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/definitions_tdf_structs.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/derive_device_key_body.py +92 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device.py +154 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_and_state.py +164 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_id_field.py +60 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_logger_state.py +111 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_metadata.py +49 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_metadata_update.py +77 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_metadata_update_operation.py +9 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_state.py +149 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/device_update.py +72 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/downlink_message.py +203 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/downlink_message_status.py +10 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/downlink_route.py +162 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/error.py +67 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/forwarded_downlink_route.py +81 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/forwarded_uplink_route.py +89 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/get_last_routes_for_devices_body.py +60 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/health_check.py +59 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/interface_data.py +59 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/key.py +59 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/key_interface.py +11 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/metadata_field.py +75 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/new_board.py +116 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/new_device.py +128 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/new_device_state.py +102 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/new_organisation.py +59 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/new_rpc_message.py +85 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/new_rpc_req.py +120 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/organisation.py +86 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/route_type.py +14 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/rpc_message.py +103 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/rpc_params.py +50 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/rpc_req.py +138 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/rpc_req_data_header.py +67 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/rpc_rsp.py +105 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/security_state.py +99 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/udp_downlink_route.py +59 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/udp_uplink_route.py +69 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/uplink_route.py +162 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/models/uplink_route_and_device_id.py +74 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/py.typed +1 -0
- infuse_iot-0.1.0/src/infuse_iot/api_client/types.py +46 -0
- infuse_iot-0.1.0/src/infuse_iot/app/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/app/main.py +92 -0
- infuse_iot-0.1.0/src/infuse_iot/commands.py +86 -0
- infuse_iot-0.1.0/src/infuse_iot/common.py +36 -0
- infuse_iot-0.1.0/src/infuse_iot/credentials.py +89 -0
- infuse_iot-0.1.0/src/infuse_iot/database.py +221 -0
- infuse_iot-0.1.0/src/infuse_iot/definitions/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/definitions/kv.py +21 -0
- infuse_iot-0.1.0/src/infuse_iot/definitions/rpc.py +9 -0
- infuse_iot-0.1.0/src/infuse_iot/definitions/tdf.py +27 -0
- infuse_iot-0.1.0/src/infuse_iot/diff.py +1072 -0
- infuse_iot-0.1.0/src/infuse_iot/epacket/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/epacket/common.py +15 -0
- infuse_iot-0.1.0/src/infuse_iot/epacket/interface.py +122 -0
- infuse_iot-0.1.0/src/infuse_iot/epacket/packet.py +529 -0
- infuse_iot-0.1.0/src/infuse_iot/generated/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/generated/kv_definitions.py +476 -0
- infuse_iot-0.1.0/src/infuse_iot/generated/rpc_definitions.py +1073 -0
- infuse_iot-0.1.0/src/infuse_iot/generated/tdf_base.py +134 -0
- infuse_iot-0.1.0/src/infuse_iot/generated/tdf_definitions.py +1543 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc.py +54 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_client.py +218 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/application_info.py +37 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/bt_connect_infuse.py +71 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/bt_disconnect.py +46 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/bt_file_copy_coap.py +120 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/bt_mcumgr_reboot.py +51 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/coap_download.py +149 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/data_logger_erase.py +41 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/data_logger_read.py +74 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/data_logger_state.py +67 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/fault.py +77 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/file_write_basic.py +117 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/gravity_reference_update.py +35 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/heap_stats.py +45 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/infuse_states_query.py +32 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/infuse_states_update.py +42 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/kv_bt_peer.py +69 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/kv_read.py +105 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/kv_reflect_crcs.py +40 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/kv_write.py +86 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/last_reboot.py +38 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/lte_at_cmd.py +37 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/lte_modem_info.py +67 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/lte_pdp_ctx.py +75 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/lte_state.py +136 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/reboot.py +27 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/security_state.py +104 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/sym_read.py +163 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/time_get.py +39 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/time_set.py +29 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/wifi_configure.py +94 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/wifi_scan.py +82 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/wifi_state.py +127 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/zbus_channel_state.py +136 -0
- infuse_iot-0.1.0/src/infuse_iot/rpc_wrappers/zperf_upload.py +123 -0
- infuse_iot-0.1.0/src/infuse_iot/serial_comms.py +193 -0
- infuse_iot-0.1.0/src/infuse_iot/socket_comms.py +348 -0
- infuse_iot-0.1.0/src/infuse_iot/tdf.py +259 -0
- infuse_iot-0.1.0/src/infuse_iot/time.py +57 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/bt_log.py +76 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/cloud.py +237 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/credentials.py +49 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/csv_annotate.py +118 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/csv_plot.py +46 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/data_logger_sync.py +202 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/gateway.py +491 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/localhost.py +240 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/native_bt.py +265 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/ota_upgrade.py +300 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/provision.py +177 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/rpc.py +124 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/rpc_cloud.py +123 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/serial_throughput.py +101 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/tdf_csv.py +95 -0
- infuse_iot-0.1.0/src/infuse_iot/tools/tdf_list.py +98 -0
- infuse_iot-0.1.0/src/infuse_iot/util/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/util/argparse.py +78 -0
- infuse_iot-0.1.0/src/infuse_iot/util/console.py +86 -0
- infuse_iot-0.1.0/src/infuse_iot/util/crypto.py +28 -0
- infuse_iot-0.1.0/src/infuse_iot/util/ctypes.py +87 -0
- infuse_iot-0.1.0/src/infuse_iot/util/elftools.py +207 -0
- infuse_iot-0.1.0/src/infuse_iot/util/internal.py +34 -0
- infuse_iot-0.1.0/src/infuse_iot/util/os.py +12 -0
- infuse_iot-0.1.0/src/infuse_iot/util/soc/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/util/soc/nrf.py +167 -0
- infuse_iot-0.1.0/src/infuse_iot/util/soc/soc.py +33 -0
- infuse_iot-0.1.0/src/infuse_iot/util/soc/stm.py +188 -0
- infuse_iot-0.1.0/src/infuse_iot/util/threading.py +30 -0
- infuse_iot-0.1.0/src/infuse_iot/util/time.py +28 -0
- infuse_iot-0.1.0/src/infuse_iot/version.py +10 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/__init__.py +1 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/errno.py +99 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/hci.py +89 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/lte.py +401 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/net.py +44 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/net_if.py +37 -0
- infuse_iot-0.1.0/src/infuse_iot/zephyr/wifi.py +94 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/PKG-INFO +104 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/SOURCES.txt +245 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/dependency_links.txt +1 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/entry_points.txt +2 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/not-zip-safe +1 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/requires.txt +17 -0
- infuse_iot-0.1.0/src/infuse_iot.egg-info/top_level.txt +1 -0
- infuse_iot-0.1.0/tests/test_credentials.py +44 -0
- infuse_iot-0.1.0/tests/test_custom_tools.py +36 -0
- infuse_iot-0.1.0/tests/test_help.py +16 -0
- infuse_iot-0.1.0/tests/test_main.py +20 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Functional Source License, Version 1.1, ALv2 Future License
|
|
2
|
+
|
|
3
|
+
## Abbreviation
|
|
4
|
+
|
|
5
|
+
FSL-1.1-ALv2
|
|
6
|
+
|
|
7
|
+
## Notice
|
|
8
|
+
|
|
9
|
+
Copyright 2025 Embeint Holdings Pty Ltd
|
|
10
|
+
|
|
11
|
+
## Terms and Conditions
|
|
12
|
+
|
|
13
|
+
### Licensor ("We")
|
|
14
|
+
|
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
|
16
|
+
|
|
17
|
+
### The Software
|
|
18
|
+
|
|
19
|
+
The "Software" is each version of the software that we make available under
|
|
20
|
+
these Terms and Conditions, as indicated by our inclusion of these Terms and
|
|
21
|
+
Conditions with the Software.
|
|
22
|
+
|
|
23
|
+
### License Grant
|
|
24
|
+
|
|
25
|
+
Subject to your compliance with this License Grant and the Patents,
|
|
26
|
+
Redistribution and Trademark clauses below, we hereby grant you the right to
|
|
27
|
+
use, copy, modify, create derivative works, publicly perform, publicly display
|
|
28
|
+
and redistribute the Software for any Permitted Purpose identified below.
|
|
29
|
+
|
|
30
|
+
### Permitted Purpose
|
|
31
|
+
|
|
32
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
|
|
33
|
+
means making the Software available to others in a commercial product or
|
|
34
|
+
service that:
|
|
35
|
+
|
|
36
|
+
1. substitutes for the Software;
|
|
37
|
+
|
|
38
|
+
2. substitutes for any other product or service we offer using the Software
|
|
39
|
+
that exists as of the date we make the Software available; or
|
|
40
|
+
|
|
41
|
+
3. offers the same or substantially similar functionality as the Software.
|
|
42
|
+
|
|
43
|
+
Permitted Purposes specifically include using the Software:
|
|
44
|
+
|
|
45
|
+
1. for your internal use and access;
|
|
46
|
+
|
|
47
|
+
2. for non-commercial education;
|
|
48
|
+
|
|
49
|
+
3. for non-commercial research; and
|
|
50
|
+
|
|
51
|
+
4. in connection with professional services that you provide to a licensee
|
|
52
|
+
using the Software in accordance with these Terms and Conditions.
|
|
53
|
+
|
|
54
|
+
### Patents
|
|
55
|
+
|
|
56
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our
|
|
57
|
+
patents, the license grant above includes a license under our patents. If you
|
|
58
|
+
make a claim against any party that the Software infringes or contributes to
|
|
59
|
+
the infringement of any patent, then your patent license to the Software ends
|
|
60
|
+
immediately.
|
|
61
|
+
|
|
62
|
+
### Redistribution
|
|
63
|
+
|
|
64
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of
|
|
65
|
+
the Software.
|
|
66
|
+
|
|
67
|
+
If you redistribute any copies, modifications or derivatives of the Software,
|
|
68
|
+
you must include a copy of or a link to these Terms and Conditions and not
|
|
69
|
+
remove any copyright notices provided in or with the Software.
|
|
70
|
+
|
|
71
|
+
### Disclaimer
|
|
72
|
+
|
|
73
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
|
|
74
|
+
IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
|
|
75
|
+
PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
|
76
|
+
|
|
77
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
|
|
78
|
+
SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
|
|
79
|
+
EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
|
80
|
+
|
|
81
|
+
### Trademarks
|
|
82
|
+
|
|
83
|
+
Except for displaying the License Details and identifying us as the origin of
|
|
84
|
+
the Software, you have no right under these Terms and Conditions to use our
|
|
85
|
+
trademarks, trade names, service marks or product names.
|
|
86
|
+
|
|
87
|
+
## Grant of Future License
|
|
88
|
+
|
|
89
|
+
We hereby irrevocably grant you an additional license to use the Software under
|
|
90
|
+
the Apache License, Version 2.0 that is effective on the second anniversary of
|
|
91
|
+
the date we make the Software available. On or after that date, you may use the
|
|
92
|
+
Software under the Apache License, Version 2.0, in which case the following
|
|
93
|
+
will apply:
|
|
94
|
+
|
|
95
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
96
|
+
this file except in compliance with the License.
|
|
97
|
+
|
|
98
|
+
You may obtain a copy of the License at
|
|
99
|
+
|
|
100
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
101
|
+
|
|
102
|
+
Unless required by applicable law or agreed to in writing, software distributed
|
|
103
|
+
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
104
|
+
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
105
|
+
specific language governing permissions and limitations under the License.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: infuse_iot
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Infuse-IoT Platform python package
|
|
5
|
+
Author-email: Embeint Holdings Pty Ltd <support@embeint.com>
|
|
6
|
+
License-Expression: LicenseRef-FSL-1.1-ALv2
|
|
7
|
+
Project-URL: Homepage, https://github.com/Embeint/python-tools
|
|
8
|
+
Project-URL: Issues, https://github.com/Embeint/python-tools/issues
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
11
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
12
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE.md
|
|
16
|
+
Requires-Dist: argcomplete
|
|
17
|
+
Requires-Dist: aiohttp
|
|
18
|
+
Requires-Dist: attrs
|
|
19
|
+
Requires-Dist: bleak
|
|
20
|
+
Requires-Dist: cryptography
|
|
21
|
+
Requires-Dist: colorama
|
|
22
|
+
Requires-Dist: httpx
|
|
23
|
+
Requires-Dist: pylink-square
|
|
24
|
+
Requires-Dist: pyserial
|
|
25
|
+
Requires-Dist: python-dateutil
|
|
26
|
+
Requires-Dist: rich
|
|
27
|
+
Requires-Dist: simple-term-menu
|
|
28
|
+
Requires-Dist: tabulate
|
|
29
|
+
Requires-Dist: keyring
|
|
30
|
+
Requires-Dist: pyocd
|
|
31
|
+
Requires-Dist: pyyaml
|
|
32
|
+
Requires-Dist: paho-mqtt
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# Infuse-IoT Python Tools
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
Clone source code from Github and install as a local pip package.
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
git clone git@github.com:Embeint/python-tools.git
|
|
43
|
+
pip install -e python-tools
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Register Autocomplete
|
|
47
|
+
|
|
48
|
+
To register for autocompletion (tab complete).
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
autoload -Uz compinit
|
|
52
|
+
compinit
|
|
53
|
+
eval "$(register-python-argcomplete infuse)"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
> infuse --help
|
|
60
|
+
usage: infuse [-h] [--version] <command> ...
|
|
61
|
+
|
|
62
|
+
options:
|
|
63
|
+
-h, --help show this help message and exit
|
|
64
|
+
--version show program's version number and exit
|
|
65
|
+
|
|
66
|
+
commands:
|
|
67
|
+
<command>
|
|
68
|
+
bt_log Connect to remote Bluetooth device serial logs
|
|
69
|
+
cloud Infuse-IoT cloud interaction
|
|
70
|
+
credentials Manage Infuse-IoT credentials
|
|
71
|
+
csv_annotate Annotate CSV data
|
|
72
|
+
csv_plot Plot CSV data
|
|
73
|
+
gateway Connect to a local gateway device
|
|
74
|
+
localhost Run a local server for TDF viewing
|
|
75
|
+
native_bt Native Bluetooth gateway
|
|
76
|
+
ota_upgrade Automatically OTA upgrade observed devices
|
|
77
|
+
provision Provision device on Infuse Cloud
|
|
78
|
+
rpc Run remote procedure calls on devices
|
|
79
|
+
rpc_cloud Manage remote procedure calls through Infuse-IoT cloud
|
|
80
|
+
serial_throughput
|
|
81
|
+
Test serial throughput to local gateway
|
|
82
|
+
tdf_csv Save received TDFs in CSV files
|
|
83
|
+
tdf_list Display received TDFs in a list
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Credential Storage
|
|
87
|
+
|
|
88
|
+
Under linux, the preferred credential storage provider for the python ``keyring``
|
|
89
|
+
package is provided by ``gnome-keyring``. The available backends can be listed with
|
|
90
|
+
``keyring --list-backends``.
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
sudo apt install gnome-keyring
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### WSL Issues
|
|
97
|
+
|
|
98
|
+
Under WSL, they keyring has been observed to consistently raise
|
|
99
|
+
``secretstorage.exceptions.PromptDismissedException: Prompt dismissed``.
|
|
100
|
+
This can be resolved by adding the following to ``~/.bashrc`` and reloading
|
|
101
|
+
the terminal.
|
|
102
|
+
```
|
|
103
|
+
dbus-update-activation-environment --all > /dev/null 2>&1
|
|
104
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Infuse-IoT Python Tools
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
Clone source code from Github and install as a local pip package.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
git clone git@github.com:Embeint/python-tools.git
|
|
9
|
+
pip install -e python-tools
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Register Autocomplete
|
|
13
|
+
|
|
14
|
+
To register for autocompletion (tab complete).
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
autoload -Uz compinit
|
|
18
|
+
compinit
|
|
19
|
+
eval "$(register-python-argcomplete infuse)"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
> infuse --help
|
|
26
|
+
usage: infuse [-h] [--version] <command> ...
|
|
27
|
+
|
|
28
|
+
options:
|
|
29
|
+
-h, --help show this help message and exit
|
|
30
|
+
--version show program's version number and exit
|
|
31
|
+
|
|
32
|
+
commands:
|
|
33
|
+
<command>
|
|
34
|
+
bt_log Connect to remote Bluetooth device serial logs
|
|
35
|
+
cloud Infuse-IoT cloud interaction
|
|
36
|
+
credentials Manage Infuse-IoT credentials
|
|
37
|
+
csv_annotate Annotate CSV data
|
|
38
|
+
csv_plot Plot CSV data
|
|
39
|
+
gateway Connect to a local gateway device
|
|
40
|
+
localhost Run a local server for TDF viewing
|
|
41
|
+
native_bt Native Bluetooth gateway
|
|
42
|
+
ota_upgrade Automatically OTA upgrade observed devices
|
|
43
|
+
provision Provision device on Infuse Cloud
|
|
44
|
+
rpc Run remote procedure calls on devices
|
|
45
|
+
rpc_cloud Manage remote procedure calls through Infuse-IoT cloud
|
|
46
|
+
serial_throughput
|
|
47
|
+
Test serial throughput to local gateway
|
|
48
|
+
tdf_csv Save received TDFs in CSV files
|
|
49
|
+
tdf_list Display received TDFs in a list
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Credential Storage
|
|
53
|
+
|
|
54
|
+
Under linux, the preferred credential storage provider for the python ``keyring``
|
|
55
|
+
package is provided by ``gnome-keyring``. The available backends can be listed with
|
|
56
|
+
``keyring --list-backends``.
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
sudo apt install gnome-keyring
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### WSL Issues
|
|
63
|
+
|
|
64
|
+
Under WSL, they keyring has been observed to consistently raise
|
|
65
|
+
``secretstorage.exceptions.PromptDismissedException: Prompt dismissed``.
|
|
66
|
+
This can be resolved by adding the following to ``~/.bashrc`` and reloading
|
|
67
|
+
the terminal.
|
|
68
|
+
```
|
|
69
|
+
dbus-update-activation-environment --all > /dev/null 2>&1
|
|
70
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.2"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "infuse_iot"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
authors = [{name = "Embeint Holdings Pty Ltd", email = "support@embeint.com"}]
|
|
9
|
+
description = "Infuse-IoT Platform python package"
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Programming Language :: Python :: 3",
|
|
12
|
+
"Operating System :: POSIX :: Linux",
|
|
13
|
+
"Operating System :: MacOS :: MacOS X",
|
|
14
|
+
"Operating System :: Microsoft :: Windows",
|
|
15
|
+
]
|
|
16
|
+
requires-python = ">=3.10"
|
|
17
|
+
dependencies = [
|
|
18
|
+
"argcomplete",
|
|
19
|
+
"aiohttp",
|
|
20
|
+
"attrs",
|
|
21
|
+
"bleak",
|
|
22
|
+
"cryptography",
|
|
23
|
+
"colorama",
|
|
24
|
+
"httpx",
|
|
25
|
+
"pylink-square",
|
|
26
|
+
"pyserial",
|
|
27
|
+
"python-dateutil",
|
|
28
|
+
"rich",
|
|
29
|
+
"simple-term-menu",
|
|
30
|
+
"tabulate",
|
|
31
|
+
"keyring",
|
|
32
|
+
"pyocd",
|
|
33
|
+
"pyyaml",
|
|
34
|
+
"paho-mqtt",
|
|
35
|
+
]
|
|
36
|
+
license = "LicenseRef-FSL-1.1-ALv2"
|
|
37
|
+
|
|
38
|
+
[project.readme]
|
|
39
|
+
file = "README.md"
|
|
40
|
+
content-type = "text/markdown"
|
|
41
|
+
|
|
42
|
+
[project.scripts]
|
|
43
|
+
infuse = "infuse_iot.app.main:main"
|
|
44
|
+
|
|
45
|
+
[project.urls]
|
|
46
|
+
Homepage = "https://github.com/Embeint/python-tools"
|
|
47
|
+
Issues = "https://github.com/Embeint/python-tools/issues"
|
|
48
|
+
|
|
49
|
+
[tool.setuptools]
|
|
50
|
+
package-dir = {"" = "src"}
|
|
51
|
+
zip-safe = false
|
|
52
|
+
include-package-data = true
|
|
53
|
+
|
|
54
|
+
[tool.setuptools.packages.find]
|
|
55
|
+
where = ["src"]
|
|
56
|
+
namespaces = false
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Contains methods for accessing the API"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Contains endpoint functions for accessing the API"""
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union, cast
|
|
3
|
+
|
|
4
|
+
import httpx
|
|
5
|
+
|
|
6
|
+
from ... import errors
|
|
7
|
+
from ...client import AuthenticatedClient, Client
|
|
8
|
+
from ...models.board import Board
|
|
9
|
+
from ...models.new_board import NewBoard
|
|
10
|
+
from ...types import Response
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _get_kwargs(
|
|
14
|
+
*,
|
|
15
|
+
body: NewBoard,
|
|
16
|
+
) -> dict[str, Any]:
|
|
17
|
+
headers: dict[str, Any] = {}
|
|
18
|
+
|
|
19
|
+
_kwargs: dict[str, Any] = {
|
|
20
|
+
"method": "post",
|
|
21
|
+
"url": "/board",
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
_body = body.to_dict()
|
|
25
|
+
|
|
26
|
+
_kwargs["json"] = _body
|
|
27
|
+
headers["Content-Type"] = "application/json"
|
|
28
|
+
|
|
29
|
+
_kwargs["headers"] = headers
|
|
30
|
+
return _kwargs
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _parse_response(
|
|
34
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
35
|
+
) -> Optional[Union[Any, Board]]:
|
|
36
|
+
if response.status_code == 201:
|
|
37
|
+
response_201 = Board.from_dict(response.json())
|
|
38
|
+
|
|
39
|
+
return response_201
|
|
40
|
+
if response.status_code == 409:
|
|
41
|
+
response_409 = cast(Any, None)
|
|
42
|
+
return response_409
|
|
43
|
+
if response.status_code == 422:
|
|
44
|
+
response_422 = cast(Any, None)
|
|
45
|
+
return response_422
|
|
46
|
+
if client.raise_on_unexpected_status:
|
|
47
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
48
|
+
else:
|
|
49
|
+
return None
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _build_response(
|
|
53
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
54
|
+
) -> Response[Union[Any, Board]]:
|
|
55
|
+
return Response(
|
|
56
|
+
status_code=HTTPStatus(response.status_code),
|
|
57
|
+
content=response.content,
|
|
58
|
+
headers=response.headers,
|
|
59
|
+
parsed=_parse_response(client=client, response=response),
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def sync_detailed(
|
|
64
|
+
*,
|
|
65
|
+
client: Union[AuthenticatedClient, Client],
|
|
66
|
+
body: NewBoard,
|
|
67
|
+
) -> Response[Union[Any, Board]]:
|
|
68
|
+
"""Create a new board
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
body (NewBoard):
|
|
72
|
+
|
|
73
|
+
Raises:
|
|
74
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
75
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
76
|
+
|
|
77
|
+
Returns:
|
|
78
|
+
Response[Union[Any, Board]]
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
kwargs = _get_kwargs(
|
|
82
|
+
body=body,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
response = client.get_httpx_client().request(
|
|
86
|
+
**kwargs,
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
return _build_response(client=client, response=response)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def sync(
|
|
93
|
+
*,
|
|
94
|
+
client: Union[AuthenticatedClient, Client],
|
|
95
|
+
body: NewBoard,
|
|
96
|
+
) -> Optional[Union[Any, Board]]:
|
|
97
|
+
"""Create a new board
|
|
98
|
+
|
|
99
|
+
Args:
|
|
100
|
+
body (NewBoard):
|
|
101
|
+
|
|
102
|
+
Raises:
|
|
103
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
104
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
Union[Any, Board]
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
return sync_detailed(
|
|
111
|
+
client=client,
|
|
112
|
+
body=body,
|
|
113
|
+
).parsed
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
async def asyncio_detailed(
|
|
117
|
+
*,
|
|
118
|
+
client: Union[AuthenticatedClient, Client],
|
|
119
|
+
body: NewBoard,
|
|
120
|
+
) -> Response[Union[Any, Board]]:
|
|
121
|
+
"""Create a new board
|
|
122
|
+
|
|
123
|
+
Args:
|
|
124
|
+
body (NewBoard):
|
|
125
|
+
|
|
126
|
+
Raises:
|
|
127
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
128
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
Response[Union[Any, Board]]
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
kwargs = _get_kwargs(
|
|
135
|
+
body=body,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
139
|
+
|
|
140
|
+
return _build_response(client=client, response=response)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
async def asyncio(
|
|
144
|
+
*,
|
|
145
|
+
client: Union[AuthenticatedClient, Client],
|
|
146
|
+
body: NewBoard,
|
|
147
|
+
) -> Optional[Union[Any, Board]]:
|
|
148
|
+
"""Create a new board
|
|
149
|
+
|
|
150
|
+
Args:
|
|
151
|
+
body (NewBoard):
|
|
152
|
+
|
|
153
|
+
Raises:
|
|
154
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
155
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
156
|
+
|
|
157
|
+
Returns:
|
|
158
|
+
Union[Any, Board]
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
return (
|
|
162
|
+
await asyncio_detailed(
|
|
163
|
+
client=client,
|
|
164
|
+
body=body,
|
|
165
|
+
)
|
|
166
|
+
).parsed
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union, cast
|
|
3
|
+
from uuid import UUID
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ... import errors
|
|
8
|
+
from ...client import AuthenticatedClient, Client
|
|
9
|
+
from ...models.board import Board
|
|
10
|
+
from ...types import Response
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _get_kwargs(
|
|
14
|
+
id: UUID,
|
|
15
|
+
) -> dict[str, Any]:
|
|
16
|
+
_kwargs: dict[str, Any] = {
|
|
17
|
+
"method": "get",
|
|
18
|
+
"url": f"/board/id/{id}",
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return _kwargs
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _parse_response(
|
|
25
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
26
|
+
) -> Optional[Union[Any, Board]]:
|
|
27
|
+
if response.status_code == 200:
|
|
28
|
+
response_200 = Board.from_dict(response.json())
|
|
29
|
+
|
|
30
|
+
return response_200
|
|
31
|
+
if response.status_code == 404:
|
|
32
|
+
response_404 = cast(Any, None)
|
|
33
|
+
return response_404
|
|
34
|
+
if client.raise_on_unexpected_status:
|
|
35
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
36
|
+
else:
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _build_response(
|
|
41
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
42
|
+
) -> Response[Union[Any, Board]]:
|
|
43
|
+
return Response(
|
|
44
|
+
status_code=HTTPStatus(response.status_code),
|
|
45
|
+
content=response.content,
|
|
46
|
+
headers=response.headers,
|
|
47
|
+
parsed=_parse_response(client=client, response=response),
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def sync_detailed(
|
|
52
|
+
id: UUID,
|
|
53
|
+
*,
|
|
54
|
+
client: Union[AuthenticatedClient, Client],
|
|
55
|
+
) -> Response[Union[Any, Board]]:
|
|
56
|
+
"""Get a board by ID
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
id (UUID):
|
|
60
|
+
|
|
61
|
+
Raises:
|
|
62
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
63
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Response[Union[Any, Board]]
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
kwargs = _get_kwargs(
|
|
70
|
+
id=id,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
response = client.get_httpx_client().request(
|
|
74
|
+
**kwargs,
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
return _build_response(client=client, response=response)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def sync(
|
|
81
|
+
id: UUID,
|
|
82
|
+
*,
|
|
83
|
+
client: Union[AuthenticatedClient, Client],
|
|
84
|
+
) -> Optional[Union[Any, Board]]:
|
|
85
|
+
"""Get a board by ID
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
id (UUID):
|
|
89
|
+
|
|
90
|
+
Raises:
|
|
91
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
92
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
Union[Any, Board]
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
return sync_detailed(
|
|
99
|
+
id=id,
|
|
100
|
+
client=client,
|
|
101
|
+
).parsed
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
async def asyncio_detailed(
|
|
105
|
+
id: UUID,
|
|
106
|
+
*,
|
|
107
|
+
client: Union[AuthenticatedClient, Client],
|
|
108
|
+
) -> Response[Union[Any, Board]]:
|
|
109
|
+
"""Get a board by ID
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
id (UUID):
|
|
113
|
+
|
|
114
|
+
Raises:
|
|
115
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
116
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
Response[Union[Any, Board]]
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
kwargs = _get_kwargs(
|
|
123
|
+
id=id,
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
127
|
+
|
|
128
|
+
return _build_response(client=client, response=response)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
async def asyncio(
|
|
132
|
+
id: UUID,
|
|
133
|
+
*,
|
|
134
|
+
client: Union[AuthenticatedClient, Client],
|
|
135
|
+
) -> Optional[Union[Any, Board]]:
|
|
136
|
+
"""Get a board by ID
|
|
137
|
+
|
|
138
|
+
Args:
|
|
139
|
+
id (UUID):
|
|
140
|
+
|
|
141
|
+
Raises:
|
|
142
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
143
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
144
|
+
|
|
145
|
+
Returns:
|
|
146
|
+
Union[Any, Board]
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
await asyncio_detailed(
|
|
151
|
+
id=id,
|
|
152
|
+
client=client,
|
|
153
|
+
)
|
|
154
|
+
).parsed
|