mcp-openstack-ops 3.5.1__tar.gz → 3.5.2__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.
Files changed (161) hide show
  1. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.github/workflows/pypi-publish.yml +1 -1
  2. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/PKG-INFO +2 -2
  3. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/pyproject.toml +1 -1
  4. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/PKG-INFO +2 -2
  5. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/SOURCES.txt +2 -0
  6. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/requires.txt +1 -1
  7. mcp_openstack_ops-3.5.2/src/mcp_openstack_ops.egg-info/scm_file_list.json +155 -0
  8. mcp_openstack_ops-3.5.2/src/mcp_openstack_ops.egg-info/scm_version.json +8 -0
  9. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/uv.lock +67 -67
  10. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.env.example +0 -0
  11. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.env.test +0 -0
  12. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.github/FUNDING.yml +0 -0
  13. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.github/copilot-instructions.md +0 -0
  14. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.github/dependabot.yml +0 -0
  15. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.gitignore +0 -0
  16. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.gitleaks.toml +0 -0
  17. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.pre-commit-config.yaml +0 -0
  18. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/.python-version +0 -0
  19. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/Dockerfile.MCP-Server +0 -0
  20. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/Dockerfile.MCPO-Proxy +0 -0
  21. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/LICENSE +0 -0
  22. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/MANIFEST.in +0 -0
  23. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/README.md +0 -0
  24. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/build-mcp-server-docker-image.sh +0 -0
  25. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/build-mcpo-server-docker-image.sh +0 -0
  26. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/diagnose_openstack.py +0 -0
  27. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/docker-compose.yml +0 -0
  28. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/img/MCP-Workflow-of-Quickstart-Tutorial.png +0 -0
  29. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/img/screenshot-claude-desktop.png +0 -0
  30. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/img/screenshot-claude-desktop.png:Zone.Identifier +0 -0
  31. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/img/screenshot-example-cluster-status.png +0 -0
  32. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/img/screenshot-openstack-dashboard.png +0 -0
  33. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/main.py +0 -0
  34. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/mcp-config.json.http +0 -0
  35. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/mcp-config.json.multi-project +0 -0
  36. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/mcp-config.json.stdio +0 -0
  37. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/scripts/mcp-server-docker-cmd.sh +0 -0
  38. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/scripts/run-mcp-inspector-local.sh +0 -0
  39. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/scripts/run-mcp-inspector-pypi.sh +0 -0
  40. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/setup.cfg +0 -0
  41. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/__init__.py +0 -0
  42. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/__main__.py +0 -0
  43. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/connection.py +0 -0
  44. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/functions.py +0 -0
  45. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/mcp_main.py +0 -0
  46. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/prompt_template.md +0 -0
  47. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/__init__.py +0 -0
  48. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/compute.py +0 -0
  49. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/core.py +0 -0
  50. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/identity.py +0 -0
  51. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/image.py +0 -0
  52. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/__init__.py +0 -0
  53. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/amphorae.py +0 -0
  54. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/core.py +0 -0
  55. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/health_monitors.py +0 -0
  56. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/l7_policies.py +0 -0
  57. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/listeners.py +0 -0
  58. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/management.py +0 -0
  59. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/load_balancer/pools.py +0 -0
  60. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/monitoring.py +0 -0
  61. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/network.py +0 -0
  62. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/orchestration.py +0 -0
  63. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/services/storage.py +0 -0
  64. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/__init__.py +0 -0
  65. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_availability_zones.py +0 -0
  66. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_floating_ip_pools.py +0 -0
  67. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_floating_ips.py +0 -0
  68. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_heat_stacks.py +0 -0
  69. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_hypervisor_details.py +0 -0
  70. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_image_detail_list.py +0 -0
  71. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instance.py +0 -0
  72. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instance_by_name.py +0 -0
  73. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instance_details.py +0 -0
  74. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_instances_by_status.py +0 -0
  75. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_keypair_list.py +0 -0
  76. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py +0 -0
  77. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py +0 -0
  78. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_details.py +0 -0
  79. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_flavors.py +0 -0
  80. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py +0 -0
  81. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py +0 -0
  82. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py +0 -0
  83. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_list.py +0 -0
  84. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_listeners.py +0 -0
  85. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py +0 -0
  86. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_pools.py +0 -0
  87. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_providers.py +0 -0
  88. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_load_balancer_quotas.py +0 -0
  89. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_network_details.py +0 -0
  90. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_project_details.py +0 -0
  91. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_quota.py +0 -0
  92. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_resource_monitoring.py +0 -0
  93. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_role_assignments.py +0 -0
  94. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_routers.py +0 -0
  95. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_security_groups.py +0 -0
  96. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_server_events.py +0 -0
  97. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_server_groups.py +0 -0
  98. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_server_volumes.py +0 -0
  99. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_service_status.py +0 -0
  100. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_usage_statistics.py +0 -0
  101. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_user_list.py +0 -0
  102. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_volume_list.py +0 -0
  103. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_volume_snapshots.py +0 -0
  104. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/get_volume_types.py +0 -0
  105. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/search_instances.py +0 -0
  106. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_alarms.py +0 -0
  107. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_compute_agents.py +0 -0
  108. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_domains.py +0 -0
  109. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_flavor.py +0 -0
  110. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_floating_ip.py +0 -0
  111. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py +0 -0
  112. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_heat_stack.py +0 -0
  113. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_identity_groups.py +0 -0
  114. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image.py +0 -0
  115. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image_members.py +0 -0
  116. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image_metadata.py +0 -0
  117. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_image_visibility.py +0 -0
  118. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_instance.py +0 -0
  119. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_keypair.py +0 -0
  120. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer.py +0 -0
  121. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_amphora.py +0 -0
  122. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py +0 -0
  123. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_flavor.py +0 -0
  124. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py +0 -0
  125. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py +0 -0
  126. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py +0 -0
  127. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_listener.py +0 -0
  128. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_pool.py +0 -0
  129. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py +0 -0
  130. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_load_balancer_quota.py +0 -0
  131. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_metrics.py +0 -0
  132. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_network_agents.py +0 -0
  133. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_network_ports.py +0 -0
  134. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_network_qos_policies.py +0 -0
  135. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_networks.py +0 -0
  136. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_project.py +0 -0
  137. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_quota.py +0 -0
  138. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_roles.py +0 -0
  139. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_backup.py +0 -0
  140. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_dump.py +0 -0
  141. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_fixed_ip.py +0 -0
  142. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_floating_ip.py +0 -0
  143. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_group.py +0 -0
  144. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_migration.py +0 -0
  145. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_network.py +0 -0
  146. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_properties.py +0 -0
  147. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_security_group.py +0 -0
  148. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_server_volume.py +0 -0
  149. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_service_logs.py +0 -0
  150. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_services.py +0 -0
  151. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_snapshot.py +0 -0
  152. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_subnets.py +0 -0
  153. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume.py +0 -0
  154. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume_backups.py +0 -0
  155. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume_groups.py +0 -0
  156. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops/tools/set_volume_qos.py +0 -0
  157. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/dependency_links.txt +0 -0
  158. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/entry_points.txt +0 -0
  159. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/src/mcp_openstack_ops.egg-info/top_level.txt +0 -0
  160. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/test_compatibility.sh +0 -0
  161. {mcp_openstack_ops-3.5.1 → mcp_openstack_ops-3.5.2}/test_project_isolation.py +0 -0
@@ -15,7 +15,7 @@ jobs:
15
15
  build:
16
16
  runs-on: ubuntu-latest
17
17
  steps:
18
- - uses: actions/checkout@v6
18
+ - uses: actions/checkout@v7
19
19
  with:
20
20
  persist-credentials: false
21
21
  fetch-depth: 0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-openstack-ops
3
- Version: 3.5.1
3
+ Version: 3.5.2
4
4
  Summary: OpenStack operations automation MCP server
5
5
  Author-email: JungJungIn <call518@gmail.com>
6
6
  Requires-Python: >=3.12
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: fastmcp>=2.12.3
10
- Requires-Dist: openstacksdk<=4.11.0,>=4.1.0
10
+ Requires-Dist: openstacksdk<=4.17.0,>=4.1.0
11
11
  Requires-Dist: python-dotenv>=1.1.1
12
12
  Requires-Dist: setuptools-scm>=10.0.5
13
13
  Requires-Dist: pre-commit>=4.6.0
@@ -7,7 +7,7 @@ requires-python = ">=3.12"
7
7
  authors = [{ name = "JungJungIn", email = "call518@gmail.com" }]
8
8
  dependencies = [
9
9
  "fastmcp>=2.12.3",
10
- "openstacksdk>=4.1.0,<=4.11.0",
10
+ "openstacksdk>=4.1.0,<=4.17.0",
11
11
  "python-dotenv>=1.1.1",
12
12
  "setuptools-scm>=10.0.5",
13
13
  "pre-commit>=4.6.0",
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-openstack-ops
3
- Version: 3.5.1
3
+ Version: 3.5.2
4
4
  Summary: OpenStack operations automation MCP server
5
5
  Author-email: JungJungIn <call518@gmail.com>
6
6
  Requires-Python: >=3.12
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: fastmcp>=2.12.3
10
- Requires-Dist: openstacksdk<=4.11.0,>=4.1.0
10
+ Requires-Dist: openstacksdk<=4.17.0,>=4.1.0
11
11
  Requires-Dist: python-dotenv>=1.1.1
12
12
  Requires-Dist: setuptools-scm>=10.0.5
13
13
  Requires-Dist: pre-commit>=4.6.0
@@ -44,6 +44,8 @@ src/mcp_openstack_ops.egg-info/SOURCES.txt
44
44
  src/mcp_openstack_ops.egg-info/dependency_links.txt
45
45
  src/mcp_openstack_ops.egg-info/entry_points.txt
46
46
  src/mcp_openstack_ops.egg-info/requires.txt
47
+ src/mcp_openstack_ops.egg-info/scm_file_list.json
48
+ src/mcp_openstack_ops.egg-info/scm_version.json
47
49
  src/mcp_openstack_ops.egg-info/top_level.txt
48
50
  src/mcp_openstack_ops/services/__init__.py
49
51
  src/mcp_openstack_ops/services/compute.py
@@ -1,5 +1,5 @@
1
1
  fastmcp>=2.12.3
2
- openstacksdk<=4.11.0,>=4.1.0
2
+ openstacksdk<=4.17.0,>=4.1.0
3
3
  python-dotenv>=1.1.1
4
4
  setuptools-scm>=10.0.5
5
5
  pre-commit>=4.6.0
@@ -0,0 +1,155 @@
1
+ {
2
+ "files": [
3
+ ".pre-commit-config.yaml",
4
+ ".env.test",
5
+ "README.md",
6
+ "uv.lock",
7
+ "Dockerfile.MCPO-Proxy",
8
+ ".python-version",
9
+ "LICENSE",
10
+ "Dockerfile.MCP-Server",
11
+ "mcp-config.json.stdio",
12
+ "pyproject.toml",
13
+ "mcp-config.json.http",
14
+ "test_project_isolation.py",
15
+ "build-mcp-server-docker-image.sh",
16
+ "test_compatibility.sh",
17
+ "diagnose_openstack.py",
18
+ "mcp-config.json.multi-project",
19
+ "MANIFEST.in",
20
+ ".env.example",
21
+ "main.py",
22
+ ".gitleaks.toml",
23
+ ".gitignore",
24
+ "docker-compose.yml",
25
+ "build-mcpo-server-docker-image.sh",
26
+ "scripts/run-mcp-inspector-local.sh",
27
+ "scripts/run-mcp-inspector-pypi.sh",
28
+ "scripts/mcp-server-docker-cmd.sh",
29
+ "src/mcp_openstack_ops/__init__.py",
30
+ "src/mcp_openstack_ops/functions.py",
31
+ "src/mcp_openstack_ops/prompt_template.md",
32
+ "src/mcp_openstack_ops/connection.py",
33
+ "src/mcp_openstack_ops/mcp_main.py",
34
+ "src/mcp_openstack_ops/__main__.py",
35
+ "src/mcp_openstack_ops/services/monitoring.py",
36
+ "src/mcp_openstack_ops/services/network.py",
37
+ "src/mcp_openstack_ops/services/core.py",
38
+ "src/mcp_openstack_ops/services/__init__.py",
39
+ "src/mcp_openstack_ops/services/image.py",
40
+ "src/mcp_openstack_ops/services/compute.py",
41
+ "src/mcp_openstack_ops/services/storage.py",
42
+ "src/mcp_openstack_ops/services/orchestration.py",
43
+ "src/mcp_openstack_ops/services/identity.py",
44
+ "src/mcp_openstack_ops/services/load_balancer/core.py",
45
+ "src/mcp_openstack_ops/services/load_balancer/__init__.py",
46
+ "src/mcp_openstack_ops/services/load_balancer/management.py",
47
+ "src/mcp_openstack_ops/services/load_balancer/l7_policies.py",
48
+ "src/mcp_openstack_ops/services/load_balancer/listeners.py",
49
+ "src/mcp_openstack_ops/services/load_balancer/amphorae.py",
50
+ "src/mcp_openstack_ops/services/load_balancer/health_monitors.py",
51
+ "src/mcp_openstack_ops/services/load_balancer/pools.py",
52
+ "src/mcp_openstack_ops/tools/get_instance.py",
53
+ "src/mcp_openstack_ops/tools/get_floating_ips.py",
54
+ "src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py",
55
+ "src/mcp_openstack_ops/tools/set_service_logs.py",
56
+ "src/mcp_openstack_ops/tools/set_load_balancer_pool.py",
57
+ "src/mcp_openstack_ops/tools/set_server_group.py",
58
+ "src/mcp_openstack_ops/tools/set_network_qos_policies.py",
59
+ "src/mcp_openstack_ops/tools/set_quota.py",
60
+ "src/mcp_openstack_ops/tools/get_usage_statistics.py",
61
+ "src/mcp_openstack_ops/tools/set_network_agents.py",
62
+ "src/mcp_openstack_ops/tools/get_service_status.py",
63
+ "src/mcp_openstack_ops/tools/set_metrics.py",
64
+ "src/mcp_openstack_ops/tools/set_services.py",
65
+ "src/mcp_openstack_ops/tools/set_networks.py",
66
+ "src/mcp_openstack_ops/tools/__init__.py",
67
+ "src/mcp_openstack_ops/tools/search_instances.py",
68
+ "src/mcp_openstack_ops/tools/set_image_visibility.py",
69
+ "src/mcp_openstack_ops/tools/set_volume_qos.py",
70
+ "src/mcp_openstack_ops/tools/get_availability_zones.py",
71
+ "src/mcp_openstack_ops/tools/get_keypair_list.py",
72
+ "src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py",
73
+ "src/mcp_openstack_ops/tools/get_load_balancer_listeners.py",
74
+ "src/mcp_openstack_ops/tools/set_server_security_group.py",
75
+ "src/mcp_openstack_ops/tools/set_heat_stack.py",
76
+ "src/mcp_openstack_ops/tools/set_roles.py",
77
+ "src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py",
78
+ "src/mcp_openstack_ops/tools/set_image_metadata.py",
79
+ "src/mcp_openstack_ops/tools/get_routers.py",
80
+ "src/mcp_openstack_ops/tools/set_load_balancer.py",
81
+ "src/mcp_openstack_ops/tools/set_server_dump.py",
82
+ "src/mcp_openstack_ops/tools/set_server_properties.py",
83
+ "src/mcp_openstack_ops/tools/set_image_members.py",
84
+ "src/mcp_openstack_ops/tools/set_load_balancer_listener.py",
85
+ "src/mcp_openstack_ops/tools/set_snapshot.py",
86
+ "src/mcp_openstack_ops/tools/set_compute_agents.py",
87
+ "src/mcp_openstack_ops/tools/set_volume_groups.py",
88
+ "src/mcp_openstack_ops/tools/get_image_detail_list.py",
89
+ "src/mcp_openstack_ops/tools/get_role_assignments.py",
90
+ "src/mcp_openstack_ops/tools/set_server_fixed_ip.py",
91
+ "src/mcp_openstack_ops/tools/get_hypervisor_details.py",
92
+ "src/mcp_openstack_ops/tools/get_volume_list.py",
93
+ "src/mcp_openstack_ops/tools/get_heat_stacks.py",
94
+ "src/mcp_openstack_ops/tools/set_server_migration.py",
95
+ "src/mcp_openstack_ops/tools/get_instances_by_status.py",
96
+ "src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py",
97
+ "src/mcp_openstack_ops/tools/set_volume.py",
98
+ "src/mcp_openstack_ops/tools/set_floating_ip.py",
99
+ "src/mcp_openstack_ops/tools/set_volume_backups.py",
100
+ "src/mcp_openstack_ops/tools/get_quota.py",
101
+ "src/mcp_openstack_ops/tools/set_alarms.py",
102
+ "src/mcp_openstack_ops/tools/set_load_balancer_flavor.py",
103
+ "src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py",
104
+ "src/mcp_openstack_ops/tools/get_resource_monitoring.py",
105
+ "src/mcp_openstack_ops/tools/get_user_list.py",
106
+ "src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py",
107
+ "src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py",
108
+ "src/mcp_openstack_ops/tools/set_image.py",
109
+ "src/mcp_openstack_ops/tools/get_security_groups.py",
110
+ "src/mcp_openstack_ops/tools/get_load_balancer_quotas.py",
111
+ "src/mcp_openstack_ops/tools/set_server_network.py",
112
+ "src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py",
113
+ "src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py",
114
+ "src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py",
115
+ "src/mcp_openstack_ops/tools/set_server_volume.py",
116
+ "src/mcp_openstack_ops/tools/set_keypair.py",
117
+ "src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py",
118
+ "src/mcp_openstack_ops/tools/get_load_balancer_providers.py",
119
+ "src/mcp_openstack_ops/tools/get_server_volumes.py",
120
+ "src/mcp_openstack_ops/tools/set_project.py",
121
+ "src/mcp_openstack_ops/tools/get_server_events.py",
122
+ "src/mcp_openstack_ops/tools/set_domains.py",
123
+ "src/mcp_openstack_ops/tools/set_load_balancer_amphora.py",
124
+ "src/mcp_openstack_ops/tools/get_volume_types.py",
125
+ "src/mcp_openstack_ops/tools/set_instance.py",
126
+ "src/mcp_openstack_ops/tools/get_instance_details.py",
127
+ "src/mcp_openstack_ops/tools/get_load_balancer_pools.py",
128
+ "src/mcp_openstack_ops/tools/get_load_balancer_flavors.py",
129
+ "src/mcp_openstack_ops/tools/set_identity_groups.py",
130
+ "src/mcp_openstack_ops/tools/set_flavor.py",
131
+ "src/mcp_openstack_ops/tools/set_subnets.py",
132
+ "src/mcp_openstack_ops/tools/set_server_floating_ip.py",
133
+ "src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py",
134
+ "src/mcp_openstack_ops/tools/set_network_ports.py",
135
+ "src/mcp_openstack_ops/tools/get_instance_by_name.py",
136
+ "src/mcp_openstack_ops/tools/get_project_details.py",
137
+ "src/mcp_openstack_ops/tools/set_server_backup.py",
138
+ "src/mcp_openstack_ops/tools/get_network_details.py",
139
+ "src/mcp_openstack_ops/tools/get_load_balancer_list.py",
140
+ "src/mcp_openstack_ops/tools/set_load_balancer_quota.py",
141
+ "src/mcp_openstack_ops/tools/get_load_balancer_details.py",
142
+ "src/mcp_openstack_ops/tools/get_floating_ip_pools.py",
143
+ "src/mcp_openstack_ops/tools/get_volume_snapshots.py",
144
+ "src/mcp_openstack_ops/tools/get_server_groups.py",
145
+ "img/screenshot-example-cluster-status.png",
146
+ "img/screenshot-openstack-dashboard.png",
147
+ "img/MCP-Workflow-of-Quickstart-Tutorial.png",
148
+ "img/screenshot-claude-desktop.png",
149
+ "img/screenshot-claude-desktop.png:Zone.Identifier",
150
+ ".github/copilot-instructions.md",
151
+ ".github/dependabot.yml",
152
+ ".github/FUNDING.yml",
153
+ ".github/workflows/pypi-publish.yml"
154
+ ]
155
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "3.5.2",
3
+ "distance": 0,
4
+ "node": "g3f82bedc589a5c86a28e178e8b85f02234924a4e",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-07-04"
8
+ }
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 2
2
+ revision = 3
3
3
  requires-python = ">=3.12"
4
4
 
5
5
  [[package]]
@@ -47,14 +47,14 @@ wheels = [
47
47
 
48
48
  [[package]]
49
49
  name = "authlib"
50
- version = "1.6.11"
50
+ version = "1.6.12"
51
51
  source = { registry = "https://pypi.org/simple" }
52
52
  dependencies = [
53
53
  { name = "cryptography" },
54
54
  ]
55
- sdist = { url = "https://files.pythonhosted.org/packages/28/10/b325d58ffe86815b399334a101e63bc6fa4e1953921cb23703b48a0a0220/authlib-1.6.11.tar.gz", hash = "sha256:64db35b9b01aeccb4715a6c9a6613a06f2bd7be2ab9d2eb89edd1dfc7580a38f", size = 165359, upload-time = "2026-04-16T07:22:50.279Z" }
55
+ sdist = { url = "https://files.pythonhosted.org/packages/d3/30/6691fdc63b35f54a5a65e04fa1e59d827f4d4e8f4a39678ba7d3088ce0c8/authlib-1.6.12.tar.gz", hash = "sha256:0656d8482f28fc8221929d5f35b2bde5d13e10555ebc06b4561b0d622e83b1bd", size = 165368, upload-time = "2026-05-04T08:11:31.826Z" }
56
56
  wheels = [
57
- { url = "https://files.pythonhosted.org/packages/57/2f/55fca558f925a51db046e5b929deb317ddb05afed74b22d89f4eca578980/authlib-1.6.11-py2.py3-none-any.whl", hash = "sha256:c8687a9a26451c51a34a06fa17bb97cb15bba46a6a626755e2d7f50da8bff3e3", size = 244469, upload-time = "2026-04-16T07:22:48.413Z" },
57
+ { url = "https://files.pythonhosted.org/packages/cd/51/9b0b5cd4cf683a02db937a6f9bbebcdc9c56558a7bb3763ce7d3512103c3/authlib-1.6.12-py2.py3-none-any.whl", hash = "sha256:e9229ad7fde610b139dd12f5edbe97eab9ee78bfb85691247e767727850b99ab", size = 244473, upload-time = "2026-05-04T08:11:30.354Z" },
58
58
  ]
59
59
 
60
60
  [[package]]
@@ -251,55 +251,55 @@ wheels = [
251
251
 
252
252
  [[package]]
253
253
  name = "cryptography"
254
- version = "46.0.7"
254
+ version = "48.0.1"
255
255
  source = { registry = "https://pypi.org/simple" }
256
256
  dependencies = [
257
257
  { name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
258
258
  ]
259
- sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload-time = "2026-04-08T01:57:54.692Z" }
260
- wheels = [
261
- { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload-time = "2026-04-08T01:56:17.157Z" },
262
- { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload-time = "2026-04-08T01:56:19.36Z" },
263
- { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload-time = "2026-04-08T01:56:21.415Z" },
264
- { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload-time = "2026-04-08T01:56:23.539Z" },
265
- { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload-time = "2026-04-08T01:56:25.624Z" },
266
- { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload-time = "2026-04-08T01:56:27.309Z" },
267
- { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload-time = "2026-04-08T01:56:29.095Z" },
268
- { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload-time = "2026-04-08T01:56:30.928Z" },
269
- { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload-time = "2026-04-08T01:56:32.614Z" },
270
- { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload-time = "2026-04-08T01:56:34.306Z" },
271
- { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload-time = "2026-04-08T01:56:35.977Z" },
272
- { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload-time = "2026-04-08T01:56:38.034Z" },
273
- { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload-time = "2026-04-08T01:56:39.666Z" },
274
- { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload-time = "2026-04-08T01:56:41.893Z" },
275
- { url = "https://files.pythonhosted.org/packages/7b/56/15619b210e689c5403bb0540e4cb7dbf11a6bf42e483b7644e471a2812b3/cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842", size = 7119671, upload-time = "2026-04-08T01:56:44Z" },
276
- { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload-time = "2026-04-08T01:56:46.071Z" },
277
- { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload-time = "2026-04-08T01:56:47.718Z" },
278
- { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload-time = "2026-04-08T01:56:49.312Z" },
279
- { url = "https://files.pythonhosted.org/packages/50/46/cf71e26025c2e767c5609162c866a78e8a2915bbcfa408b7ca495c6140c4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022", size = 4905845, upload-time = "2026-04-08T01:56:50.916Z" },
280
- { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload-time = "2026-04-08T01:56:52.882Z" },
281
- { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload-time = "2026-04-08T01:56:54.597Z" },
282
- { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload-time = "2026-04-08T01:56:56.416Z" },
283
- { url = "https://files.pythonhosted.org/packages/41/3d/fe14df95a83319af25717677e956567a105bb6ab25641acaa093db79975d/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1", size = 4871079, upload-time = "2026-04-08T01:56:58.31Z" },
284
- { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload-time = "2026-04-08T01:57:00.508Z" },
285
- { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload-time = "2026-04-08T01:57:02.654Z" },
286
- { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload-time = "2026-04-08T01:57:04.592Z" },
287
- { url = "https://files.pythonhosted.org/packages/95/b6/3da51d48415bcb63b00dc17c2eff3a651b7c4fed484308d0f19b30e8cb2c/cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298", size = 3002227, upload-time = "2026-04-08T01:57:06.91Z" },
288
- { url = "https://files.pythonhosted.org/packages/32/a8/9f0e4ed57ec9cebe506e58db11ae472972ecb0c659e4d52bbaee80ca340a/cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb", size = 3475332, upload-time = "2026-04-08T01:57:08.807Z" },
289
- { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload-time = "2026-04-08T01:57:10.645Z" },
290
- { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload-time = "2026-04-08T01:57:12.885Z" },
291
- { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload-time = "2026-04-08T01:57:14.923Z" },
292
- { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload-time = "2026-04-08T01:57:16.638Z" },
293
- { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload-time = "2026-04-08T01:57:19.021Z" },
294
- { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload-time = "2026-04-08T01:57:21.185Z" },
295
- { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload-time = "2026-04-08T01:57:22.862Z" },
296
- { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload-time = "2026-04-08T01:57:24.814Z" },
297
- { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload-time = "2026-04-08T01:57:26.88Z" },
298
- { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload-time = "2026-04-08T01:57:29.068Z" },
299
- { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload-time = "2026-04-08T01:57:31.029Z" },
300
- { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload-time = "2026-04-08T01:57:33.144Z" },
301
- { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload-time = "2026-04-08T01:57:34.933Z" },
302
- { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload-time = "2026-04-08T01:57:36.714Z" },
259
+ sdist = { url = "https://files.pythonhosted.org/packages/12/45/870e7f4bef50e5f53b9f51d4428aee5290eedf58ba443f16b1ebb7ab8e66/cryptography-48.0.1.tar.gz", hash = "sha256:266f4ee051abb2f725b74ef8072b521ce1feacf685a3364fa6a6b45548db791a", size = 832989, upload-time = "2026-06-09T22:32:31.8Z" }
260
+ wheels = [
261
+ { url = "https://files.pythonhosted.org/packages/1b/bc/ee4137cbbe105652c0ee4252792b78fc8e7afa4b8e61d9d5dc05a7f45731/cryptography-48.0.1-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3e4a1a3232eef2e6c732827d5722db29a0cc8b27af2a4d865b094cf954be9ca1", size = 8008324, upload-time = "2026-06-09T22:31:00.702Z" },
262
+ { url = "https://files.pythonhosted.org/packages/d5/85/6379d42181bfc713094f081360fc5784d6c816b599d45e7f082502d173ce/cryptography-48.0.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:32143b24adb918f078134e1e230f1eb8cc04886b92c28b5f0041aaf3e5699225", size = 4696243, upload-time = "2026-06-09T22:32:33.446Z" },
263
+ { url = "https://files.pythonhosted.org/packages/9c/87/c85d147b53323c7eb4d850920c8901377323c2a0ff8d79c262d4fee89aa2/cryptography-48.0.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0d27a5696721ef7a672b8c810f6aded391058e0b9486e63e6d93baf765da691", size = 4713235, upload-time = "2026-06-09T22:31:40.141Z" },
264
+ { url = "https://files.pythonhosted.org/packages/79/58/67cbf8cf1ee7c54b439ca07bbecf8362c07afc11a3724fea70f745784add/cryptography-48.0.1-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:eb86ce1af36fe65041b6db9a8bb064ee621a7e5fded0f80d475ec243477cd242", size = 4702323, upload-time = "2026-06-09T22:31:42.191Z" },
265
+ { url = "https://files.pythonhosted.org/packages/89/c6/24266ac10c47f6cd2a865f4446062b466da1d1f10b27189eac00e61bf0c9/cryptography-48.0.1-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:b024e784ad6c077ee0147b35ea9cbfc1e34e1fd4c1dcca214c2794d73a12df08", size = 5300085, upload-time = "2026-06-09T22:31:58.703Z" },
266
+ { url = "https://files.pythonhosted.org/packages/d2/bb/cc4b78784f97efc8c5874c2a9743708d172be6663024b34a0467885ae0c8/cryptography-48.0.1-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3752f2dbc8f07a30aad2932c986cea495b03bb554887828225da104f732852b6", size = 4746137, upload-time = "2026-06-09T22:31:31.01Z" },
267
+ { url = "https://files.pythonhosted.org/packages/1f/52/0c44de3f5267f8fbe8e835138017522a333436166e406f0db9b9e6e3033f/cryptography-48.0.1-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:bd81490cd5801d755cf97bb68ac191f14b708470b1c7cf4580f669b9c9264cd8", size = 4333867, upload-time = "2026-06-09T22:32:28.096Z" },
268
+ { url = "https://files.pythonhosted.org/packages/9a/2e/772d7adbfa931537bc401640b7cac9976bff689bda187833e5d63b428e49/cryptography-48.0.1-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:66fd0771e7b9c6dcd44cf1120690d2338d16d72795cf40cae2786a39eba65429", size = 4701805, upload-time = "2026-06-09T22:31:38.284Z" },
269
+ { url = "https://files.pythonhosted.org/packages/f8/a3/b06844f303873493c963caf581c04df31c7035e0c1b0f02c4814d319ec80/cryptography-48.0.1-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:3fd2ca57062b241c856670b073487d2e86c4637937ca5601e48f97bf8e11fc8f", size = 5258461, upload-time = "2026-06-09T22:31:04.187Z" },
270
+ { url = "https://files.pythonhosted.org/packages/9f/13/8b765e2e12b07c74941caadb9d1c8fdc006c4dfbf2b8f2d610519758954d/cryptography-48.0.1-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:0ee6ea481db1ab889cba043ec1eda17bb9c1ea79db6722f779c3667f9f70322f", size = 4745488, upload-time = "2026-06-09T22:32:30.07Z" },
271
+ { url = "https://files.pythonhosted.org/packages/2e/aa/48972bce55049b32a94f4907eda4d75fa385aad8a39506cc2fc72196ecf0/cryptography-48.0.1-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f2ceef93cb096aa3c4cc4b5c94ca6131f9196d28c64d6111533402a9b2054d41", size = 4830256, upload-time = "2026-06-09T22:31:43.868Z" },
272
+ { url = "https://files.pythonhosted.org/packages/47/a2/e5079a032fb85cf6005046ca92bbd78b0c82dad2b5751ab8c311659da06f/cryptography-48.0.1-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9bd3f92d76217892b15df84ca256c2c113d386fdda7a7d8691aeeced976507c6", size = 4979117, upload-time = "2026-06-09T22:31:05.845Z" },
273
+ { url = "https://files.pythonhosted.org/packages/b7/a0/8f50cae9c74e718ed769d63ed5c74bd0ea830c9550a74629cebd1b9c7bc7/cryptography-48.0.1-cp311-abi3-win32.whl", hash = "sha256:b9a32b876490d66c8bcc9963ef220199569748434ab01a9d6aaeabf88e7f5158", size = 3304154, upload-time = "2026-06-09T22:32:16.845Z" },
274
+ { url = "https://files.pythonhosted.org/packages/c5/69/0572c77dbace6fef72f33755bd52ea399c71367250d366237f8691826b9e/cryptography-48.0.1-cp311-abi3-win_amd64.whl", hash = "sha256:39489bfca54c7a1f6b297efcd8bc608ab92d16c4ca631b0cad4da46724588b24", size = 3817138, upload-time = "2026-06-09T22:32:00.388Z" },
275
+ { url = "https://files.pythonhosted.org/packages/42/06/3e768b4c3bc78201583fa35a0e18f640dd782ff41afba88f8545481a8874/cryptography-48.0.1-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:f817adc181390bd54f2f700107a7419040fb7c1bdf2fc26f36551a06a68c3345", size = 7989830, upload-time = "2026-06-09T22:31:07.8Z" },
276
+ { url = "https://files.pythonhosted.org/packages/8a/13/6476736484b94041110c8340a3eb63962fea4975baea8cb4a512adb44d4d/cryptography-48.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d5d30989c6917b478b5817902e85fddaea2261efa8648383d965381ccb9e1ac4", size = 4689201, upload-time = "2026-06-09T22:31:09.745Z" },
277
+ { url = "https://files.pythonhosted.org/packages/79/62/65a87f34d2a431546e2509b85d55e8c90df86d668f6731da64d538512ac2/cryptography-48.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:df637c05205ea7c1d7fbcbe54bbfea648a52951155f997af13d895d0ecc96991", size = 4702822, upload-time = "2026-06-09T22:32:24.409Z" },
278
+ { url = "https://files.pythonhosted.org/packages/7f/59/810b5204b0a9b10f4b6bc06bd551a8b609803cd931806bc3b71884b225e5/cryptography-48.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:869c3b8a53bfe27147832df48b32adadf558249d50e76cb3769d40e986b13265", size = 4694875, upload-time = "2026-06-09T22:32:08.737Z" },
279
+ { url = "https://files.pythonhosted.org/packages/24/dc/d8ca05ffea724eec6d232ea6f18e74c269eb6bdfdcc9bfba689790d1325f/cryptography-48.0.1-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:e361afba8918070d376df76f408a4f67fec0ee9cff81a99e48fe9a233ef59e17", size = 5290385, upload-time = "2026-06-09T22:31:15.212Z" },
280
+ { url = "https://files.pythonhosted.org/packages/03/8c/3be6cb4da181f5bb6c19cf560c2359d60644a6b5fc5b57854e528f47b296/cryptography-48.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:d069066deead00ac7f090be101be875a06855908f7ec004c27b8fefb4acfb411", size = 4737082, upload-time = "2026-06-09T22:32:22.66Z" },
281
+ { url = "https://files.pythonhosted.org/packages/aa/f6/d5f60a5a1434dbfd949e227fd0065d194c7e6b6ac526b17f5c06152b8231/cryptography-48.0.1-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:09f73a725d582cef64b91281a322cd798d14a33b2b6f2b7ad9531dc336d84c02", size = 4325328, upload-time = "2026-06-09T22:32:10.777Z" },
282
+ { url = "https://files.pythonhosted.org/packages/17/b7/ba75dd947a14b6ad907b01ae8f6b5b348cdd1b48142f0063dee9e20c1d9d/cryptography-48.0.1-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:15254441469dd6bf027039453288e2072124f8b6603563f5d759e1c9b69273fa", size = 4694530, upload-time = "2026-06-09T22:31:53.105Z" },
283
+ { url = "https://files.pythonhosted.org/packages/62/29/50d6b9e8aff12d8b67afaeb3569335e32dc83a5723e3bbded24fdac9f809/cryptography-48.0.1-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:8ace4507d1e6533c125f4fac754f8bb8b6a74c08e92179dabd7e16571a3efbf3", size = 5245046, upload-time = "2026-06-09T22:31:25.774Z" },
284
+ { url = "https://files.pythonhosted.org/packages/9f/04/618f4115cfc0add0838c82507aa18a346089428da8653ad38b3ff36f5cb3/cryptography-48.0.1-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:b4e391975f038e66432328639620a4aff2d307513b004f1ca06d6225bced815c", size = 4736660, upload-time = "2026-06-09T22:32:12.676Z" },
285
+ { url = "https://files.pythonhosted.org/packages/24/9c/06e062462a0de28a3b3911322eded4c16deb9f441b1b7575d3dc59488ab5/cryptography-48.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42fcd8e26fe555d9b3577a135f5091fefa0aa4e99129c23fb56787a1bd4ada72", size = 4822229, upload-time = "2026-06-09T22:31:17.062Z" },
286
+ { url = "https://files.pythonhosted.org/packages/f4/be/0561971eaaee4b8a0e7d5113c536921063ab91aaf23278ac374eaf881e11/cryptography-48.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c1400da5e32a43253392277eac7490a60e497d810a63dd5608d71bbd7af507c9", size = 4966364, upload-time = "2026-06-09T22:31:32.842Z" },
287
+ { url = "https://files.pythonhosted.org/packages/a4/27/728c77876f12b000820b69ae490f3c4083775e79e07827e9e60be07ad209/cryptography-48.0.1-cp314-cp314t-win32.whl", hash = "sha256:0df56b056bc17c1b7d6821dfa65216e62bd232d8ab05eb3db44e71d235651471", size = 3278498, upload-time = "2026-06-09T22:31:29.154Z" },
288
+ { url = "https://files.pythonhosted.org/packages/06/e3/79a612c6d7b1e6ee0edd43633d53035bec2cfb78c82b76f7864f39e36f34/cryptography-48.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:9de21387aa95e2a895823d0745b430bed4f33503ba9ab5e0b5311f33e37d66d2", size = 3798790, upload-time = "2026-06-09T22:31:56.697Z" },
289
+ { url = "https://files.pythonhosted.org/packages/ca/6c/00fa2a95997164c8b2072ce327c23d4ab20809ccc323ea5fab91e53a4bba/cryptography-48.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:4fdc69f8e4316bcf0c8c8ec1f26f285d12e8142d88d96c876a59a03be3f6ae67", size = 7987408, upload-time = "2026-06-09T22:32:20.777Z" },
290
+ { url = "https://files.pythonhosted.org/packages/b0/d9/45f309a7e4e5f3f8f121d6d3be9e94024a7726ec598d6e08ae04edb2f04d/cryptography-48.0.1-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48fe40804d4caa2288f24e70ca8c64c42dd826da0ad7e4f1b41b2128d679e6c8", size = 4690196, upload-time = "2026-06-09T22:31:54.74Z" },
291
+ { url = "https://files.pythonhosted.org/packages/5f/9f/a1bc8bcc798811b8527eb374bbccf30a3f3e806829d967118222bf1125eb/cryptography-48.0.1-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:86be3b1b0b6bf09482fb50a979c508d2950ed95f5621ec77f4e385962006b83a", size = 4696782, upload-time = "2026-06-09T22:31:45.615Z" },
292
+ { url = "https://files.pythonhosted.org/packages/66/c2/81a4fb4e4373c500bb526bc337ac5719dd31dd15b970b84a238168c6aa08/cryptography-48.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4ab0a343c807bbcd90c971cd1ecf072937cd01847a9e002bef88fb47ac6be577", size = 4696618, upload-time = "2026-06-09T22:31:11.564Z" },
293
+ { url = "https://files.pythonhosted.org/packages/e5/0b/aa68b221dde92d09cb29a024ede17550ee21e77a404e59fc093c82bb51e1/cryptography-48.0.1-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:9621de99d2da096006b629979efd8ae7eb2d8b822488d0c89ee4000c306c59b1", size = 5289970, upload-time = "2026-06-09T22:31:20.368Z" },
294
+ { url = "https://files.pythonhosted.org/packages/78/13/fba657f958d2af66ea959a4ba01212632089249d34af1ae48054136344d7/cryptography-48.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:88c852a0ae366e262e5a1744b685e6a433dc8788dd2a277e418bf4904203609d", size = 4731873, upload-time = "2026-06-09T22:31:22.253Z" },
295
+ { url = "https://files.pythonhosted.org/packages/4c/4c/9a964756d24a26b3e34dfcb16f961b89838786e6700b635b0d1e3adff4b6/cryptography-48.0.1-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:43c5835e2cb98c8733d86f57d6fc879b613f5c3478607281c3e36daffc6dd8a6", size = 4330804, upload-time = "2026-06-09T22:31:36.56Z" },
296
+ { url = "https://files.pythonhosted.org/packages/4b/0f/a10f3a6eb12950a10e3a874070283aa2dd5875b2bfd15fad8a3e17b3f13e/cryptography-48.0.1-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:fe0180af5bf9236518a087e35bf2d9a347d5f5f51e63c579d683ddff424e3d46", size = 4696217, upload-time = "2026-06-09T22:31:13.351Z" },
297
+ { url = "https://files.pythonhosted.org/packages/f3/6f/5cd12f951165ea73ef85266775d97e4c763b2474ccfd816dd69d3a18d6f8/cryptography-48.0.1-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:b7a2d1a937a738a881737cec135a38bb61470589b17515b9f73f571d0ae10401", size = 5245252, upload-time = "2026-06-09T22:32:02.193Z" },
298
+ { url = "https://files.pythonhosted.org/packages/68/ab/8aaa12e4516ec4464033ab79b6f3b592bd5a92102467c4ace8a0d970203f/cryptography-48.0.1-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b74ca3b8e5ecdd833bf6a002ca41b4793bb27fb8f1c06ffaf2643c9e9140e31b", size = 4731388, upload-time = "2026-06-09T22:32:04.019Z" },
299
+ { url = "https://files.pythonhosted.org/packages/1b/24/50027ea4dca85ec1f40688f3c24fb32ccacd520583c9592c3cc95628e6fb/cryptography-48.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2c37f2461406063b417837f5f3daab668652acd82423efcd7f0a9f04be972de1", size = 4824186, upload-time = "2026-06-09T22:32:18.707Z" },
300
+ { url = "https://files.pythonhosted.org/packages/52/41/04cb5eb17085ade6f50cc611fb657df6a0f5885350de8764ece89c050197/cryptography-48.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:86fe77abb1bd87afb251d4d02ada7ecf53a32cee9b67d976abb2e45a13297475", size = 4964539, upload-time = "2026-06-09T22:31:18.793Z" },
301
+ { url = "https://files.pythonhosted.org/packages/36/bf/ed70785c496e89d7e73b7cda2d21f2447fd6d4e821714b8d04ff217fed92/cryptography-48.0.1-cp39-abi3-win32.whl", hash = "sha256:6b2c0c3e6ccf3ade7750f836ef3ee36eea250cc467d45c256895573ac08cc6f1", size = 3282307, upload-time = "2026-06-09T22:30:53.162Z" },
302
+ { url = "https://files.pythonhosted.org/packages/b3/ff/371ea7d252656ee1eb6d83eeeef3d1d0c6baf1d6497687d081ea03814670/cryptography-48.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:9a49ca6c81417f6a5edb50375a60cccdd70fa0a91a5211829dbea74eba94d2ac", size = 3793408, upload-time = "2026-06-09T22:32:15.191Z" },
303
303
  ]
304
304
 
305
305
  [[package]]
@@ -498,11 +498,11 @@ wheels = [
498
498
 
499
499
  [[package]]
500
500
  name = "idna"
501
- version = "3.11"
501
+ version = "3.15"
502
502
  source = { registry = "https://pypi.org/simple" }
503
- sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" }
503
+ sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" }
504
504
  wheels = [
505
- { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" },
505
+ { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" },
506
506
  ]
507
507
 
508
508
  [[package]]
@@ -1067,16 +1067,16 @@ wheels = [
1067
1067
 
1068
1068
  [[package]]
1069
1069
  name = "pydantic-settings"
1070
- version = "2.12.0"
1070
+ version = "2.14.2"
1071
1071
  source = { registry = "https://pypi.org/simple" }
1072
1072
  dependencies = [
1073
1073
  { name = "pydantic" },
1074
1074
  { name = "python-dotenv" },
1075
1075
  { name = "typing-inspection" },
1076
1076
  ]
1077
- sdist = { url = "https://files.pythonhosted.org/packages/43/4b/ac7e0aae12027748076d72a8764ff1c9d82ca75a7a52622e67ed3f765c54/pydantic_settings-2.12.0.tar.gz", hash = "sha256:005538ef951e3c2a68e1c08b292b5f2e71490def8589d4221b95dab00dafcfd0", size = 194184, upload-time = "2025-11-10T14:25:47.013Z" }
1077
+ sdist = { url = "https://files.pythonhosted.org/packages/5c/b5/8f48e906c3e0205276e8bd8cb7512217a87b2685304d64be27cad5b3019f/pydantic_settings-2.14.2.tar.gz", hash = "sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f", size = 237700, upload-time = "2026-06-19T13:44:56.324Z" }
1078
1078
  wheels = [
1079
- { url = "https://files.pythonhosted.org/packages/c1/60/5d4751ba3f4a40a6891f24eec885f51afd78d208498268c734e256fb13c4/pydantic_settings-2.12.0-py3-none-any.whl", hash = "sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809", size = 51880, upload-time = "2025-11-10T14:25:45.546Z" },
1079
+ { url = "https://files.pythonhosted.org/packages/77/c1/6e422f34e569cf8e18df68d1939c81c099d2b61e4f7d9621c8a77560799c/pydantic_settings-2.14.2-py3-none-any.whl", hash = "sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440", size = 61715, upload-time = "2026-06-19T13:44:55.02Z" },
1080
1080
  ]
1081
1081
 
1082
1082
  [[package]]
@@ -1090,11 +1090,11 @@ wheels = [
1090
1090
 
1091
1091
  [[package]]
1092
1092
  name = "pyjwt"
1093
- version = "2.12.0"
1093
+ version = "2.13.0"
1094
1094
  source = { registry = "https://pypi.org/simple" }
1095
- sdist = { url = "https://files.pythonhosted.org/packages/a8/10/e8192be5f38f3e8e7e046716de4cae33d56fd5ae08927a823bb916be36c1/pyjwt-2.12.0.tar.gz", hash = "sha256:2f62390b667cd8257de560b850bb5a883102a388829274147f1d724453f8fb02", size = 102511, upload-time = "2026-03-12T17:15:30.831Z" }
1095
+ sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" }
1096
1096
  wheels = [
1097
- { url = "https://files.pythonhosted.org/packages/15/70/70f895f404d363d291dcf62c12c85fdd47619ad9674ac0f53364d035925a/pyjwt-2.12.0-py3-none-any.whl", hash = "sha256:9bb459d1bdd0387967d287f5656bf7ec2b9a26645d1961628cda1764e087fd6e", size = 29700, upload-time = "2026-03-12T17:15:29.257Z" },
1097
+ { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" },
1098
1098
  ]
1099
1099
 
1100
1100
  [package.optional-dependencies]
@@ -1164,11 +1164,11 @@ wheels = [
1164
1164
 
1165
1165
  [[package]]
1166
1166
  name = "python-multipart"
1167
- version = "0.0.26"
1167
+ version = "0.0.31"
1168
1168
  source = { registry = "https://pypi.org/simple" }
1169
- sdist = { url = "https://files.pythonhosted.org/packages/88/71/b145a380824a960ebd60e1014256dbb7d2253f2316ff2d73dfd8928ec2c3/python_multipart-0.0.26.tar.gz", hash = "sha256:08fadc45918cd615e26846437f50c5d6d23304da32c341f289a617127b081f17", size = 43501, upload-time = "2026-04-10T14:09:59.473Z" }
1169
+ sdist = { url = "https://files.pythonhosted.org/packages/64/7e/9b35ad8f3d9ca680f7c87a88f19612fdd8da9796c4d3b46e560ac79dcc4a/python_multipart-0.0.31.tar.gz", hash = "sha256:fc631183bb13e56db3158a4909908dfb2e23565286744e798241e63750e5d680", size = 46689, upload-time = "2026-06-04T08:27:49.014Z" }
1170
1170
  wheels = [
1171
- { url = "https://files.pythonhosted.org/packages/9a/22/f1925cdda983ab66fc8ec6ec8014b959262747e58bdca26a4e3d1da29d56/python_multipart-0.0.26-py3-none-any.whl", hash = "sha256:c0b169f8c4484c13b0dcf2ef0ec3a4adb255c4b7d18d8e420477d2b1dd03f185", size = 28847, upload-time = "2026-04-10T14:09:58.131Z" },
1171
+ { url = "https://files.pythonhosted.org/packages/5e/1e/7f7f299527a5a8ad90acd5f2f78dfa6c8495c6301a3205106ea68a84de96/python_multipart-0.0.31-py3-none-any.whl", hash = "sha256:8408153d68a9773291fc1da39a8b85a50044bddbabd2dd72e9229776b7b15e28", size = 29996, upload-time = "2026-06-04T08:27:47.804Z" },
1172
1172
  ]
1173
1173
 
1174
1174
  [[package]]
@@ -1438,15 +1438,15 @@ wheels = [
1438
1438
 
1439
1439
  [[package]]
1440
1440
  name = "starlette"
1441
- version = "0.52.1"
1441
+ version = "1.3.1"
1442
1442
  source = { registry = "https://pypi.org/simple" }
1443
1443
  dependencies = [
1444
1444
  { name = "anyio" },
1445
1445
  { name = "typing-extensions", marker = "python_full_version < '3.13'" },
1446
1446
  ]
1447
- sdist = { url = "https://files.pythonhosted.org/packages/c4/68/79977123bb7be889ad680d79a40f339082c1978b5cfcf62c2d8d196873ac/starlette-0.52.1.tar.gz", hash = "sha256:834edd1b0a23167694292e94f597773bc3f89f362be6effee198165a35d62933", size = 2653702, upload-time = "2026-01-18T13:34:11.062Z" }
1447
+ sdist = { url = "https://files.pythonhosted.org/packages/eb/e3/7c1dc7381d9f8ab7d854328ebfa884e62cb3f3d8549ddfd37c7814f42afa/starlette-1.3.1.tar.gz", hash = "sha256:05d0213193f2fbaae60e2ecb593b4add4262ad4e46536b54abe36f11a71724e0", size = 2703240, upload-time = "2026-06-12T09:23:11.602Z" }
1448
1448
  wheels = [
1449
- { url = "https://files.pythonhosted.org/packages/81/0d/13d1d239a25cbfb19e740db83143e95c772a1fe10202dda4b76792b114dd/starlette-0.52.1-py3-none-any.whl", hash = "sha256:0029d43eb3d273bc4f83a08720b4912ea4b071087a3b48db01b7c839f7954d74", size = 74272, upload-time = "2026-01-18T13:34:09.188Z" },
1449
+ { url = "https://files.pythonhosted.org/packages/ec/bb/2799cc2ede3ed41131f8975621e7213dfc7ef4acbbaadfa440f32500c370/starlette-1.3.1-py3-none-any.whl", hash = "sha256:c7372aae11c3c3f26a42df7bd626cec2f47d03483d261d369516a615a53714c6", size = 73632, upload-time = "2026-06-12T09:23:10.017Z" },
1450
1450
  ]
1451
1451
 
1452
1452
  [[package]]
@@ -1490,11 +1490,11 @@ wheels = [
1490
1490
 
1491
1491
  [[package]]
1492
1492
  name = "urllib3"
1493
- version = "2.6.3"
1493
+ version = "2.7.0"
1494
1494
  source = { registry = "https://pypi.org/simple" }
1495
- sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" }
1495
+ sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" }
1496
1496
  wheels = [
1497
- { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" },
1497
+ { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" },
1498
1498
  ]
1499
1499
 
1500
1500
  [[package]]