oci 2.138.1__py3-none-any.whl → 2.139.0__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 (342) hide show
  1. oci/_vendor/idna/__init__.py +45 -2
  2. oci/_vendor/idna/codec.py +47 -43
  3. oci/_vendor/idna/compat.py +10 -7
  4. oci/_vendor/idna/core.py +210 -173
  5. oci/_vendor/idna/idnadata.py +3869 -1676
  6. oci/_vendor/idna/intranges.py +13 -9
  7. oci/_vendor/idna/package_data.py +2 -3
  8. oci/_vendor/idna/uts46data.py +8355 -8031
  9. oci/_vendor/urllib3/__init__.py +1 -1
  10. oci/_vendor/urllib3/_collections.py +19 -1
  11. oci/_vendor/urllib3/_version.py +2 -2
  12. oci/_vendor/urllib3/connection.py +8 -3
  13. oci/_vendor/urllib3/connectionpool.py +45 -13
  14. oci/_vendor/urllib3/contrib/__init__.py +1 -1
  15. oci/_vendor/urllib3/contrib/_appengine_environ.py +1 -1
  16. oci/_vendor/urllib3/contrib/_securetransport/__init__.py +1 -1
  17. oci/_vendor/urllib3/contrib/_securetransport/bindings.py +2 -2
  18. oci/_vendor/urllib3/contrib/_securetransport/low_level.py +1 -1
  19. oci/_vendor/urllib3/contrib/appengine.py +2 -2
  20. oci/_vendor/urllib3/contrib/ntlmpool.py +3 -3
  21. oci/_vendor/urllib3/contrib/pyopenssl.py +14 -7
  22. oci/_vendor/urllib3/contrib/securetransport.py +2 -4
  23. oci/_vendor/urllib3/contrib/socks.py +1 -1
  24. oci/_vendor/urllib3/exceptions.py +1 -1
  25. oci/_vendor/urllib3/fields.py +1 -1
  26. oci/_vendor/urllib3/filepost.py +1 -1
  27. oci/_vendor/urllib3/packages/__init__.py +2 -2
  28. oci/_vendor/urllib3/packages/backports/__init__.py +1 -1
  29. oci/_vendor/urllib3/packages/backports/makefile.py +1 -1
  30. oci/_vendor/urllib3/packages/backports/weakref_finalize.py +160 -0
  31. oci/_vendor/urllib3/packages/six.py +1 -2
  32. oci/_vendor/urllib3/poolmanager.py +7 -4
  33. oci/_vendor/urllib3/request.py +22 -1
  34. oci/_vendor/urllib3/response.py +65 -4
  35. oci/_vendor/urllib3/util/__init__.py +1 -1
  36. oci/_vendor/urllib3/util/connection.py +1 -1
  37. oci/_vendor/urllib3/util/proxy.py +1 -1
  38. oci/_vendor/urllib3/util/queue.py +1 -1
  39. oci/_vendor/urllib3/util/request.py +1 -1
  40. oci/_vendor/urllib3/util/response.py +1 -1
  41. oci/_vendor/urllib3/util/retry.py +5 -3
  42. oci/_vendor/urllib3/util/ssl_.py +14 -5
  43. oci/_vendor/urllib3/util/ssl_match_hostname.py +1 -1
  44. oci/_vendor/urllib3/util/ssltransport.py +1 -1
  45. oci/_vendor/urllib3/util/timeout.py +7 -4
  46. oci/_vendor/urllib3/util/url.py +8 -5
  47. oci/_vendor/urllib3/util/wait.py +1 -2
  48. oci/access_governance_cp/access_governance_cp_client.py +8 -8
  49. oci/adm/application_dependency_management_client.py +36 -36
  50. oci/ai_anomaly_detection/anomaly_detection_client.py +36 -36
  51. oci/ai_document/ai_service_document_client.py +26 -26
  52. oci/ai_language/ai_service_language_client.py +44 -44
  53. oci/ai_speech/ai_service_speech_client.py +19 -19
  54. oci/ai_vision/ai_service_vision_client.py +25 -25
  55. oci/analytics/analytics_client.py +24 -24
  56. oci/announcements_service/announcement_client.py +5 -5
  57. oci/announcements_service/announcement_subscription_client.py +9 -9
  58. oci/announcements_service/announcements_preferences_client.py +4 -4
  59. oci/announcements_service/service_client.py +1 -1
  60. oci/apigateway/api_gateway_client.py +21 -21
  61. oci/apigateway/deployment_client.py +6 -6
  62. oci/apigateway/gateway_client.py +6 -6
  63. oci/apigateway/subscribers_client.py +6 -6
  64. oci/apigateway/usage_plans_client.py +6 -6
  65. oci/apigateway/work_requests_client.py +5 -5
  66. oci/apm_config/config_client.py +9 -9
  67. oci/apm_control_plane/apm_domain_client.py +14 -14
  68. oci/apm_synthetics/apm_synthetic_client.py +28 -28
  69. oci/apm_traces/attributes_client.py +8 -8
  70. oci/apm_traces/query_client.py +2 -2
  71. oci/apm_traces/trace_client.py +4 -4
  72. oci/appmgmt_control/appmgmt_control_client.py +8 -8
  73. oci/artifacts/artifacts_client.py +32 -32
  74. oci/audit/audit_client.py +3 -3
  75. oci/autoscaling/auto_scaling_client.py +11 -11
  76. oci/bastion/bastion_client.py +15 -15
  77. oci/bds/bds_client.py +72 -72
  78. oci/blockchain/blockchain_platform_client.py +27 -27
  79. oci/budget/budget_client.py +10 -10
  80. oci/capacity_management/capacity_management_client.py +32 -32
  81. oci/certificates/certificates_client.py +5 -5
  82. oci/certificates_management/certificates_management_client.py +32 -32
  83. oci/cims/incident_client.py +13 -14
  84. oci/cims/models/__init__.py +4 -2
  85. oci/cims/models/cmos_user_group_info.py +103 -0
  86. oci/cims/models/create_incident.py +33 -2
  87. oci/cims/models/create_limit_item_details.py +2 -57
  88. oci/cims/models/create_user_details.py +4 -4
  89. oci/cims/models/incident.py +188 -0
  90. oci/cims/models/incident_resource_type.py +4 -4
  91. oci/cims/models/incident_summary.py +188 -0
  92. oci/cims/models/limit_item.py +2 -2
  93. oci/cims/models/{service_categories.py → services.py} +27 -27
  94. oci/cims/models/sub_categories.py +15 -15
  95. oci/cims/models/ticket.py +7 -3
  96. oci/cims/models/validation_response.py +33 -2
  97. oci/cloud_bridge/common_client.py +5 -5
  98. oci/cloud_bridge/discovery_client.py +15 -15
  99. oci/cloud_bridge/inventory_client.py +16 -16
  100. oci/cloud_bridge/ocb_agent_svc_client.py +22 -22
  101. oci/cloud_guard/cloud_guard_client.py +155 -155
  102. oci/cloud_migrations/migration_client.py +43 -43
  103. oci/cluster_placement_groups/cluster_placement_groups_cp_client.py +13 -13
  104. oci/compute_cloud_at_customer/compute_cloud_at_customer_client.py +12 -12
  105. oci/compute_instance_agent/compute_instance_agent_client.py +6 -6
  106. oci/compute_instance_agent/plugin_client.py +2 -2
  107. oci/compute_instance_agent/pluginconfig_client.py +1 -1
  108. oci/container_engine/container_engine_client.py +44 -44
  109. oci/container_instances/container_instance_client.py +18 -18
  110. oci/core/blockstorage_client.py +60 -60
  111. oci/core/compute_client.py +102 -102
  112. oci/core/compute_management_client.py +32 -32
  113. oci/core/virtual_network_client.py +247 -247
  114. oci/dashboard_service/dashboard_client.py +6 -6
  115. oci/dashboard_service/dashboard_group_client.py +6 -6
  116. oci/data_catalog/data_catalog_client.py +149 -149
  117. oci/data_flow/data_flow_client.py +44 -44
  118. oci/data_integration/data_integration_client.py +163 -163
  119. oci/data_labeling_service/data_labeling_management_client.py +17 -17
  120. oci/data_labeling_service_dataplane/data_labeling_client.py +15 -15
  121. oci/data_safe/data_safe_client.py +292 -292
  122. oci/data_science/data_science_client.py +92 -92
  123. oci/database/database_client.py +523 -398
  124. oci/database/database_client_composite_operations.py +88 -0
  125. oci/database/models/__init__.py +4 -0
  126. oci/database/models/autonomous_database.py +2 -2
  127. oci/database/models/autonomous_database_summary.py +2 -2
  128. oci/database/models/configure_exascale_exadata_infrastructure_details.py +72 -0
  129. oci/database/models/create_autonomous_database_base.py +2 -2
  130. oci/database/models/create_db_home_details.py +33 -2
  131. oci/database/models/create_db_home_from_backup_details.py +31 -0
  132. oci/database/models/create_db_home_from_database_details.py +31 -0
  133. oci/database/models/create_exascale_db_storage_vault_details.py +37 -2
  134. oci/database/models/create_pluggable_database_creation_type_details.py +2 -2
  135. oci/database/models/create_vm_cluster_details.py +37 -2
  136. oci/database/models/exadata_infrastructure.py +29 -2
  137. oci/database/models/exadata_infrastructure_summary.py +29 -2
  138. oci/database/models/exascale_config_details.py +103 -0
  139. oci/database/models/exascale_db_storage_vault.py +35 -0
  140. oci/database/models/exascale_db_storage_vault_summary.py +37 -2
  141. oci/database/models/update_autonomous_database_details.py +2 -2
  142. oci/database/models/vm_cluster.py +84 -2
  143. oci/database/models/vm_cluster_summary.py +84 -2
  144. oci/database_management/db_management_client.py +211 -211
  145. oci/database_management/diagnosability_client.py +4 -4
  146. oci/database_management/managed_my_sql_databases_client.py +7 -7
  147. oci/database_management/perfhub_client.py +1 -1
  148. oci/database_management/sql_tuning_client.py +17 -17
  149. oci/database_migration/database_migration_client.py +42 -42
  150. oci/database_tools/database_tools_client.py +23 -23
  151. oci/delegate_access_control/delegate_access_control_client.py +26 -26
  152. oci/delegate_access_control/work_request_client.py +4 -4
  153. oci/demand_signal/occ_demand_signal_client.py +7 -7
  154. oci/desktops/desktop_service_client.py +21 -21
  155. oci/devops/devops_client.py +141 -141
  156. oci/disaster_recovery/disaster_recovery_client.py +29 -29
  157. oci/dns/dns_client.py +54 -54
  158. oci/dts/appliance_export_job_client.py +6 -6
  159. oci/dts/shipping_vendors_client.py +1 -1
  160. oci/dts/transfer_appliance_client.py +8 -8
  161. oci/dts/transfer_appliance_entitlement_client.py +3 -3
  162. oci/dts/transfer_device_client.py +5 -5
  163. oci/dts/transfer_job_client.py +6 -6
  164. oci/dts/transfer_package_client.py +7 -7
  165. oci/em_warehouse/em_warehouse_client.py +13 -13
  166. oci/email/email_client.py +31 -31
  167. oci/email_data_plane/email_dp_client.py +1 -1
  168. oci/events/events_client.py +6 -6
  169. oci/file_storage/file_storage_client.py +68 -68
  170. oci/fleet_apps_management/fleet_apps_management_admin_client.py +25 -25
  171. oci/fleet_apps_management/fleet_apps_management_client.py +35 -35
  172. oci/fleet_apps_management/fleet_apps_management_maintenance_window_client.py +5 -5
  173. oci/fleet_apps_management/fleet_apps_management_operations_client.py +26 -26
  174. oci/fleet_apps_management/fleet_apps_management_runbooks_client.py +12 -12
  175. oci/fleet_software_update/fleet_software_update_client.py +46 -46
  176. oci/functions/functions_invoke_client.py +1 -1
  177. oci/functions/functions_management_client.py +16 -16
  178. oci/fusion_apps/fusion_applications_client.py +41 -41
  179. oci/generative_ai/generative_ai_client.py +22 -22
  180. oci/generative_ai_agent/generative_ai_agent_client.py +33 -33
  181. oci/generative_ai_agent_runtime/generative_ai_agent_runtime_client.py +5 -5
  182. oci/generative_ai_inference/generative_ai_inference_client.py +4 -4
  183. oci/generic_artifacts_content/generic_artifacts_content_client.py +3 -3
  184. oci/globally_distributed_database/sharded_database_service_client.py +30 -30
  185. oci/golden_gate/golden_gate_client.py +70 -70
  186. oci/governance_rules_control_plane/governance_rule_client.py +15 -15
  187. oci/governance_rules_control_plane/work_request_client.py +5 -5
  188. oci/healthchecks/health_checks_client.py +17 -17
  189. oci/identity/identity_client.py +145 -145
  190. oci/identity_data_plane/dataplane_client.py +2 -2
  191. oci/identity_domains/identity_domains_client.py +311 -311
  192. oci/integration/integration_instance_client.py +19 -19
  193. oci/jms/java_management_service_client.py +75 -75
  194. oci/jms_java_downloads/java_download_client.py +25 -25
  195. oci/key_management/ekm_client.py +5 -5
  196. oci/key_management/kms_crypto_client.py +6 -6
  197. oci/key_management/kms_hsm_cluster_client.py +12 -12
  198. oci/key_management/kms_management_client.py +21 -21
  199. oci/key_management/kms_vault_client.py +14 -14
  200. oci/license_manager/license_manager_client.py +18 -18
  201. oci/limits/limits_client.py +4 -4
  202. oci/limits/quotas_client.py +7 -7
  203. oci/load_balancer/load_balancer_client.py +61 -61
  204. oci/lockbox/lockbox_client.py +24 -24
  205. oci/log_analytics/log_analytics_client.py +193 -193
  206. oci/logging/logging_management_client.py +30 -30
  207. oci/loggingingestion/logging_client.py +1 -1
  208. oci/loggingsearch/log_search_client.py +1 -1
  209. oci/management_agent/management_agent_client.py +28 -28
  210. oci/management_dashboard/dashx_apis_client.py +14 -14
  211. oci/marketplace/account_client.py +2 -2
  212. oci/marketplace/marketplace_client.py +30 -30
  213. oci/marketplace_private_offer/attachment_client.py +5 -5
  214. oci/marketplace_private_offer/offer_client.py +6 -6
  215. oci/marketplace_publisher/attachment_client.py +5 -5
  216. oci/marketplace_publisher/marketplace_publisher_client.py +71 -71
  217. oci/marketplace_publisher/offer_client.py +6 -6
  218. oci/media_services/media_services_client.py +60 -60
  219. oci/media_services/media_stream_client.py +2 -2
  220. oci/monitoring/monitoring_client.py +18 -18
  221. oci/mysql/channels_client.py +7 -7
  222. oci/mysql/db_backups_client.py +7 -7
  223. oci/mysql/db_system_client.py +17 -17
  224. oci/mysql/mysqlaas_client.py +7 -7
  225. oci/mysql/replicas_client.py +5 -5
  226. oci/mysql/work_requests_client.py +4 -4
  227. oci/network_firewall/network_firewall_client.py +86 -86
  228. oci/network_load_balancer/network_load_balancer_client.py +34 -34
  229. oci/nosql/nosql_client.py +24 -24
  230. oci/object_storage/object_storage_client.py +153 -57
  231. oci/oce/oce_instance_client.py +10 -10
  232. oci/oci_control_center/occ_metrics_client.py +3 -3
  233. oci/ocvp/cluster_client.py +5 -5
  234. oci/ocvp/esxi_host_client.py +8 -8
  235. oci/ocvp/sddc_client.py +14 -14
  236. oci/ocvp/work_request_client.py +4 -4
  237. oci/oda/management_client.py +59 -59
  238. oci/oda/oda_client.py +17 -17
  239. oci/oda/odapackage_client.py +7 -7
  240. oci/onesubscription/billing_schedule_client.py +1 -1
  241. oci/onesubscription/commitment_client.py +2 -2
  242. oci/onesubscription/computed_usage_client.py +3 -3
  243. oci/onesubscription/invoice_summary_client.py +2 -2
  244. oci/onesubscription/organization_subscription_client.py +1 -1
  245. oci/onesubscription/ratecard_client.py +1 -1
  246. oci/onesubscription/subscribed_service_client.py +2 -2
  247. oci/onesubscription/subscription_client.py +1 -1
  248. oci/ons/notification_control_plane_client.py +6 -6
  249. oci/ons/notification_data_plane_client.py +10 -10
  250. oci/opa/opa_instance_client.py +13 -13
  251. oci/opensearch/opensearch_cluster_backup_client.py +4 -4
  252. oci/opensearch/opensearch_cluster_client.py +14 -14
  253. oci/operator_access_control/access_requests_client.py +10 -10
  254. oci/operator_access_control/operator_actions_client.py +2 -2
  255. oci/operator_access_control/operator_control_assignment_client.py +8 -8
  256. oci/operator_access_control/operator_control_client.py +6 -6
  257. oci/opsi/operations_insights_client.py +180 -180
  258. oci/optimizer/optimizer_client.py +26 -26
  259. oci/os_management/event_client.py +8 -8
  260. oci/os_management/os_management_client.py +69 -69
  261. oci/os_management_hub/event_client.py +8 -8
  262. oci/os_management_hub/lifecycle_environment_client.py +12 -12
  263. oci/os_management_hub/managed_instance_client.py +31 -31
  264. oci/os_management_hub/managed_instance_group_client.py +25 -25
  265. oci/os_management_hub/management_station_client.py +10 -10
  266. oci/os_management_hub/onboarding_client.py +6 -6
  267. oci/os_management_hub/reporting_managed_instance_client.py +3 -3
  268. oci/os_management_hub/scheduled_job_client.py +7 -7
  269. oci/os_management_hub/software_source_client.py +27 -27
  270. oci/os_management_hub/work_request_client.py +4 -4
  271. oci/osp_gateway/address_rule_service_client.py +1 -1
  272. oci/osp_gateway/address_service_client.py +2 -2
  273. oci/osp_gateway/invoice_service_client.py +5 -5
  274. oci/osp_gateway/subscription_service_client.py +5 -5
  275. oci/osub_billing_schedule/billing_schedule_client.py +1 -1
  276. oci/osub_organization_subscription/organization_subscription_client.py +1 -1
  277. oci/osub_subscription/commitment_client.py +2 -2
  278. oci/osub_subscription/ratecard_client.py +1 -1
  279. oci/osub_subscription/subscription_client.py +1 -1
  280. oci/osub_usage/computed_usage_client.py +3 -3
  281. oci/psql/models/connection_details.py +29 -2
  282. oci/psql/models/endpoint.py +1 -1
  283. oci/psql/models/network_details.py +33 -2
  284. oci/psql/models/update_network_details.py +33 -2
  285. oci/psql/postgresql_client.py +33 -33
  286. oci/queue/queue_admin_client.py +11 -11
  287. oci/queue/queue_client.py +8 -8
  288. oci/recovery/database_recovery_client.py +26 -26
  289. oci/redis/redis_cluster_client.py +12 -12
  290. oci/resource_manager/resource_manager_client.py +52 -52
  291. oci/resource_scheduler/schedule_client.py +13 -13
  292. oci/resource_search/resource_search_client.py +3 -3
  293. oci/rover/rover_bundle_client.py +8 -8
  294. oci/rover/rover_cluster_client.py +8 -8
  295. oci/rover/rover_entitlement_client.py +6 -6
  296. oci/rover/rover_node_client.py +15 -15
  297. oci/rover/shape_client.py +1 -1
  298. oci/rover/work_requests_client.py +5 -5
  299. oci/sch/connector_plugins_client.py +2 -2
  300. oci/sch/service_connector_client.py +12 -12
  301. oci/secrets/secrets_client.py +3 -3
  302. oci/security_attribute/security_attribute_client.py +18 -18
  303. oci/service_catalog/service_catalog_client.py +26 -26
  304. oci/service_manager_proxy/service_manager_proxy_client.py +2 -2
  305. oci/service_mesh/service_mesh_client.py +48 -48
  306. oci/stack_monitoring/stack_monitoring_client.py +71 -71
  307. oci/streaming/stream_admin_client.py +18 -18
  308. oci/streaming/stream_client.py +8 -8
  309. oci/tenant_manager_control_plane/domain_client.py +5 -5
  310. oci/tenant_manager_control_plane/domain_governance_client.py +5 -5
  311. oci/tenant_manager_control_plane/governance_client.py +2 -2
  312. oci/tenant_manager_control_plane/link_client.py +3 -3
  313. oci/tenant_manager_control_plane/orders_client.py +2 -2
  314. oci/tenant_manager_control_plane/organization_client.py +10 -10
  315. oci/tenant_manager_control_plane/recipient_invitation_client.py +5 -5
  316. oci/tenant_manager_control_plane/sender_invitation_client.py +5 -5
  317. oci/tenant_manager_control_plane/subscription_client.py +11 -11
  318. oci/tenant_manager_control_plane/work_request_client.py +4 -4
  319. oci/threat_intelligence/threatintel_client.py +5 -5
  320. oci/usage/resources_client.py +2 -2
  321. oci/usage/rewards_client.py +6 -6
  322. oci/usage/usagelimits_client.py +1 -1
  323. oci/usage_api/usageapi_client.py +33 -33
  324. oci/vault/vaults_client.py +13 -13
  325. oci/vbs_inst/vbs_instance_client.py +10 -10
  326. oci/version.py +1 -1
  327. oci/visual_builder/vb_instance_client.py +13 -13
  328. oci/vn_monitoring/vn_monitoring_client.py +12 -12
  329. oci/vulnerability_scanning/vulnerability_scanning_client.py +58 -58
  330. oci/waa/waa_client.py +13 -13
  331. oci/waa/work_request_client.py +4 -4
  332. oci/waas/redirect_client.py +6 -6
  333. oci/waas/waas_client.py +66 -66
  334. oci/waf/waf_client.py +24 -24
  335. oci/work_requests/work_request_client.py +4 -4
  336. oci/zpr/zpr_client.py +15 -15
  337. {oci-2.138.1.dist-info → oci-2.139.0.dist-info}/METADATA +1 -1
  338. {oci-2.138.1.dist-info → oci-2.139.0.dist-info}/RECORD +342 -338
  339. {oci-2.138.1.dist-info → oci-2.139.0.dist-info}/THIRD_PARTY_LICENSES.txt +1 -1
  340. {oci-2.138.1.dist-info → oci-2.139.0.dist-info}/LICENSE.txt +0 -0
  341. {oci-2.138.1.dist-info → oci-2.139.0.dist-info}/WHEEL +0 -0
  342. {oci-2.138.1.dist-info → oci-2.139.0.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,50 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
3
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
- # Copyright (c) 2013-2018, Kim Davies. All rights reserved.
4
+ # Copyright (c) 2013-2024, Kim Davies and contributors. All rights reserved.
5
5
 
6
+ from .core import (
7
+ IDNABidiError,
8
+ IDNAError,
9
+ InvalidCodepoint,
10
+ InvalidCodepointContext,
11
+ alabel,
12
+ check_bidi,
13
+ check_hyphen_ok,
14
+ check_initial_combiner,
15
+ check_label,
16
+ check_nfc,
17
+ decode,
18
+ encode,
19
+ ulabel,
20
+ uts46_remap,
21
+ valid_contextj,
22
+ valid_contexto,
23
+ valid_label_length,
24
+ valid_string_length,
25
+ )
26
+ from .intranges import intranges_contain
6
27
  from .package_data import __version__
7
- from .core import *
28
+
29
+ __all__ = [
30
+ "__version__",
31
+ "IDNABidiError",
32
+ "IDNAError",
33
+ "InvalidCodepoint",
34
+ "InvalidCodepointContext",
35
+ "alabel",
36
+ "check_bidi",
37
+ "check_hyphen_ok",
38
+ "check_initial_combiner",
39
+ "check_label",
40
+ "check_nfc",
41
+ "decode",
42
+ "encode",
43
+ "intranges_contain",
44
+ "ulabel",
45
+ "uts46_remap",
46
+ "valid_contextj",
47
+ "valid_contexto",
48
+ "valid_label_length",
49
+ "valid_string_length",
50
+ ]
oci/_vendor/idna/codec.py CHANGED
@@ -1,55 +1,56 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
3
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
- # Copyright (c) 2013-2018, Kim Davies. All rights reserved.
4
+ # Copyright (c) 2013-2024, Kim Davies and contributors. All rights reserved.
5
5
 
6
- from .core import encode, decode, alabel, ulabel, IDNAError
7
6
  import codecs
8
7
  import re
8
+ from typing import Any, Optional, Tuple
9
9
 
10
- _unicode_dots_re = re.compile(u'[\u002e\u3002\uff0e\uff61]')
10
+ from .core import IDNAError, alabel, decode, encode, ulabel
11
11
 
12
- class Codec(codecs.Codec):
12
+ _unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]")
13
13
 
14
- def encode(self, data, errors='strict'):
15
14
 
16
- if errors != 'strict':
17
- raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
15
+ class Codec(codecs.Codec):
16
+ def encode(self, data: str, errors: str = "strict") -> Tuple[bytes, int]:
17
+ if errors != "strict":
18
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
18
19
 
19
20
  if not data:
20
- return "", 0
21
+ return b"", 0
21
22
 
22
23
  return encode(data), len(data)
23
24
 
24
- def decode(self, data, errors='strict'):
25
-
26
- if errors != 'strict':
27
- raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
25
+ def decode(self, data: bytes, errors: str = "strict") -> Tuple[str, int]:
26
+ if errors != "strict":
27
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
28
28
 
29
29
  if not data:
30
- return u"", 0
30
+ return "", 0
31
31
 
32
32
  return decode(data), len(data)
33
33
 
34
+
34
35
  class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
35
- def _buffer_encode(self, data, errors, final):
36
- if errors != 'strict':
37
- raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
36
+ def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]:
37
+ if errors != "strict":
38
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
38
39
 
39
40
  if not data:
40
- return ("", 0)
41
+ return b"", 0
41
42
 
42
43
  labels = _unicode_dots_re.split(data)
43
- trailing_dot = u''
44
+ trailing_dot = b""
44
45
  if labels:
45
46
  if not labels[-1]:
46
- trailing_dot = '.'
47
+ trailing_dot = b"."
47
48
  del labels[-1]
48
49
  elif not final:
49
50
  # Keep potentially unfinished label until the next call
50
51
  del labels[-1]
51
52
  if labels:
52
- trailing_dot = '.'
53
+ trailing_dot = b"."
53
54
 
54
55
  result = []
55
56
  size = 0
@@ -60,37 +61,33 @@ class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
60
61
  size += len(label)
61
62
 
62
63
  # Join with U+002E
63
- result = ".".join(result) + trailing_dot
64
+ result_bytes = b".".join(result) + trailing_dot
64
65
  size += len(trailing_dot)
65
- return (result, size)
66
+ return result_bytes, size
67
+
66
68
 
67
69
  class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
68
- def _buffer_decode(self, data, errors, final):
69
- if errors != 'strict':
70
- raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
70
+ def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]:
71
+ if errors != "strict":
72
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
71
73
 
72
74
  if not data:
73
- return (u"", 0)
74
-
75
- # IDNA allows decoding to operate on Unicode strings, too.
76
- if isinstance(data, unicode):
77
- labels = _unicode_dots_re.split(data)
78
- else:
79
- # Must be ASCII string
80
- data = str(data)
81
- unicode(data, "ascii")
82
- labels = data.split(".")
83
-
84
- trailing_dot = u''
75
+ return ("", 0)
76
+
77
+ if not isinstance(data, str):
78
+ data = str(data, "ascii")
79
+
80
+ labels = _unicode_dots_re.split(data)
81
+ trailing_dot = ""
85
82
  if labels:
86
83
  if not labels[-1]:
87
- trailing_dot = u'.'
84
+ trailing_dot = "."
88
85
  del labels[-1]
89
86
  elif not final:
90
87
  # Keep potentially unfinished label until the next call
91
88
  del labels[-1]
92
89
  if labels:
93
- trailing_dot = u'.'
90
+ trailing_dot = "."
94
91
 
95
92
  result = []
96
93
  size = 0
@@ -100,20 +97,24 @@ class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
100
97
  size += 1
101
98
  size += len(label)
102
99
 
103
- result = u".".join(result) + trailing_dot
100
+ result_str = ".".join(result) + trailing_dot
104
101
  size += len(trailing_dot)
105
- return (result, size)
102
+ return (result_str, size)
106
103
 
107
104
 
108
105
  class StreamWriter(Codec, codecs.StreamWriter):
109
106
  pass
110
107
 
108
+
111
109
  class StreamReader(Codec, codecs.StreamReader):
112
110
  pass
113
111
 
114
- def getregentry():
112
+
113
+ def search_function(name: str) -> Optional[codecs.CodecInfo]:
114
+ if name != "idna2008":
115
+ return None
115
116
  return codecs.CodecInfo(
116
- name='idna',
117
+ name=name,
117
118
  encode=Codec().encode,
118
119
  decode=Codec().decode,
119
120
  incrementalencoder=IncrementalEncoder,
@@ -121,3 +122,6 @@ def getregentry():
121
122
  streamwriter=StreamWriter,
122
123
  streamreader=StreamReader,
123
124
  )
125
+
126
+
127
+ codecs.register(search_function)
@@ -1,17 +1,20 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
3
3
  # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
- # Copyright (c) 2013-2018, Kim Davies. All rights reserved.
4
+ # Copyright (c) 2013-2024, Kim Davies and contributors. All rights reserved.
5
5
 
6
- from .core import *
7
- from .codec import *
6
+ from typing import Any, Union
8
7
 
9
- def ToASCII(label):
8
+ from .core import decode, encode
9
+
10
+
11
+ def ToASCII(label: str) -> bytes:
10
12
  return encode(label)
11
13
 
12
- def ToUnicode(label):
14
+
15
+ def ToUnicode(label: Union[bytes, bytearray]) -> str:
13
16
  return decode(label)
14
17
 
15
- def nameprep(s):
16
- raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol")
17
18
 
19
+ def nameprep(s: Any) -> None:
20
+ raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol")