flashforge-python-api 1.3.5__tar.gz → 1.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1581) hide show
  1. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/CHANGELOG.md +30 -1
  2. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/CLAUDE.md +16 -1
  3. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/PKG-INFO +2 -2
  4. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/__init__.py +1 -1
  5. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/constants/commands.py +1 -1
  6. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/control.py +11 -14
  7. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/creator5_palette.py +3 -3
  8. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/files.py +3 -4
  9. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/info.py +24 -6
  10. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/job_control.py +96 -57
  11. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/temp_control.py +4 -4
  12. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/client.py +49 -30
  13. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/exceptions.py +1 -1
  14. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/models/machine_info.py +8 -3
  15. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/models/responses.py +17 -10
  16. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/pyproject.toml +1 -1
  17. flashforge_python_api-1.5.0/tests/test_command_serialization.py +247 -0
  18. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_creator5_job_control.py +80 -3
  19. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_machine_info_parity.py +49 -4
  20. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_temp_control_http.py +1 -1
  21. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.agent/rules/general-rules.md +0 -0
  22. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.claude/settings.local.json +0 -0
  23. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.github/workflows/publish.yml +0 -0
  24. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.github/workflows/test.yml +0 -0
  25. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.gitignore +0 -0
  26. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/agents/code-quality.md +0 -0
  27. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/agents/data-model-specialist.md +0 -0
  28. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/agents/devops-specialist.md +0 -0
  29. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/agents/engineer.md +0 -0
  30. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/agents/testing-specialist.md +0 -0
  31. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/bootstrap.json +0 -0
  32. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/best-practices/SKILL.md +0 -0
  33. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/best-practices/references/patterns-reference.md +0 -0
  34. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/best-practices/references/solid-examples.md +0 -0
  35. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/SKILL.md +0 -0
  36. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/_index.md +0 -0
  37. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/billing-and-usage.md +0 -0
  38. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/index.md +0 -0
  39. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/metrics.md +0 -0
  40. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/actions-runner-controller.md +0 -0
  41. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/github-hosted-runners.md +0 -0
  42. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/index.md +0 -0
  43. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/larger-runners.md +0 -0
  44. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/private-networking.md +0 -0
  45. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/runner-groups.md +0 -0
  46. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/runner-scale-sets.md +0 -0
  47. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/self-hosted-runners.md +0 -0
  48. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/runners/support-for-arc.md +0 -0
  49. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/artifact-attestations.md +0 -0
  50. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/compromised-runners.md +0 -0
  51. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/github_token.md +0 -0
  52. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/index.md +0 -0
  53. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/kubernetes-admissions-controller.md +0 -0
  54. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/openid-connect.md +0 -0
  55. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/script-injections.md +0 -0
  56. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/security/secrets.md +0 -0
  57. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/concurrency.md +0 -0
  58. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/contexts.md +0 -0
  59. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/custom-actions.md +0 -0
  60. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/dependency-caching.md +0 -0
  61. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/deployment-environments.md +0 -0
  62. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/expressions.md +0 -0
  63. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/index.md +0 -0
  64. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/notifications-for-workflow-runs.md +0 -0
  65. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/reusing-workflow-configurations.md +0 -0
  66. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/variables.md +0 -0
  67. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/workflow-artifacts.md +0 -0
  68. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/concepts/workflows-and-actions/workflows.md +0 -0
  69. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/get-started/actions-vs-apps.md +0 -0
  70. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/get-started/continuous-deployment.md +0 -0
  71. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/get-started/continuous-integration.md +0 -0
  72. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/get-started/index.md +0 -0
  73. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/get-started/quickstart.md +0 -0
  74. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/get-started/understand-github-actions.md +0 -0
  75. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/administer/index.md +0 -0
  76. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/administer/reuse-namespaces-on-ghecom.md +0 -0
  77. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/administer/view-metrics.md +0 -0
  78. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/create-a-cli-action.md +0 -0
  79. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/index.md +0 -0
  80. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/manage-custom-actions.md +0 -0
  81. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/publish-in-github-marketplace.md +0 -0
  82. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/release-and-maintain-actions.md +0 -0
  83. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/set-exit-codes.md +0 -0
  84. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/create-and-publish-actions/using-immutable-releases-and-tags-to-manage-your-actions-releases.md +0 -0
  85. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules.md +0 -0
  86. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/control-deployments.md +0 -0
  87. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/create-custom-protection-rules.md +0 -0
  88. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/index.md +0 -0
  89. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/manage-environments.md +0 -0
  90. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/review-deployments.md +0 -0
  91. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/configure-and-manage-deployments/view-deployment-history.md +0 -0
  92. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/amazon-elastic-container-service.md +0 -0
  93. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/azure-kubernetes-service.md +0 -0
  94. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/azure-static-web-app.md +0 -0
  95. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/docker-to-azure-app-service.md +0 -0
  96. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/google-kubernetes-engine.md +0 -0
  97. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/index.md +0 -0
  98. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/java-to-azure-app-service.md +0 -0
  99. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/net-to-azure-app-service.md +0 -0
  100. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/nodejs-to-azure-app-service.md +0 -0
  101. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/php-to-azure-app-service.md +0 -0
  102. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/python-to-azure-app-service.md +0 -0
  103. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/deploy-to-third-party-platforms/sign-xcode-applications.md +0 -0
  104. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/deploy/index.md +0 -0
  105. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/get-support.md +0 -0
  106. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/index.md +0 -0
  107. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/connect-to-a-private-network/connect-with-oidc.md +0 -0
  108. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/connect-to-a-private-network/connect-with-wireguard.md +0 -0
  109. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/connect-to-a-private-network/index.md +0 -0
  110. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/customize-runners.md +0 -0
  111. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/index.md +0 -0
  112. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/use-github-hosted-runners.md +0 -0
  113. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/github-hosted-runners/view-current-jobs.md +0 -0
  114. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/index.md +0 -0
  115. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/larger-runners/control-access.md +0 -0
  116. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/larger-runners/index.md +0 -0
  117. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/larger-runners/manage-larger-runners.md +0 -0
  118. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/larger-runners/use-custom-images.md +0 -0
  119. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/larger-runners/use-larger-runners.md +0 -0
  120. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/add-runners.md +0 -0
  121. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/apply-labels.md +0 -0
  122. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/configure-the-application.md +0 -0
  123. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/customize-containers.md +0 -0
  124. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/index.md +0 -0
  125. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/manage-access.md +0 -0
  126. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/monitor-and-troubleshoot.md +0 -0
  127. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/remove-runners.md +0 -0
  128. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/run-scripts.md +0 -0
  129. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/self-hosted-runners/use-in-a-workflow.md +0 -0
  130. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-runners/use-proxy-servers.md +0 -0
  131. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/approve-runs-from-forks.md +0 -0
  132. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/cancel-a-workflow-run.md +0 -0
  133. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/delete-a-workflow-run.md +0 -0
  134. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/disable-and-enable-workflows.md +0 -0
  135. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/download-workflow-artifacts.md +0 -0
  136. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/index.md +0 -0
  137. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/manage-caches.md +0 -0
  138. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/manually-run-a-workflow.md +0 -0
  139. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/re-run-workflows-and-jobs.md +0 -0
  140. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/remove-workflow-artifacts.md +0 -0
  141. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/manage-workflow-runs/skip-workflow-runs.md +0 -0
  142. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/add-a-status-badge.md +0 -0
  143. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/enable-debug-logging.md +0 -0
  144. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/index.md +0 -0
  145. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/use-the-visualization-graph.md +0 -0
  146. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/use-workflow-run-logs.md +0 -0
  147. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/view-job-condition-logs.md +0 -0
  148. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/view-job-execution-time.md +0 -0
  149. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/monitor-workflows/view-workflow-run-history.md +0 -0
  150. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/reuse-automations/create-workflow-templates.md +0 -0
  151. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/reuse-automations/index.md +0 -0
  152. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/reuse-automations/reuse-workflows.md +0 -0
  153. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/reuse-automations/share-across-private-repositories.md +0 -0
  154. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/reuse-automations/share-with-your-enterprise.md +0 -0
  155. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/reuse-automations/share-with-your-organization.md +0 -0
  156. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/index.md +0 -0
  157. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/index.md +0 -0
  158. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-aws.md +0 -0
  159. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-azure.md +0 -0
  160. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-cloud-providers.md +0 -0
  161. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-google-cloud-platform.md +0 -0
  162. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-hashicorp-vault.md +0 -0
  163. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-jfrog.md +0 -0
  164. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-octopus-deploy.md +0 -0
  165. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-in-pypi.md +0 -0
  166. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/security-harden-deployments/oidc-with-reusable-workflows.md +0 -0
  167. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/use-artifact-attestations/enforce-artifact-attestations.md +0 -0
  168. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/use-artifact-attestations/increase-security-rating.md +0 -0
  169. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/use-artifact-attestations/index.md +0 -0
  170. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/use-artifact-attestations/manage-attestations.md +0 -0
  171. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations.md +0 -0
  172. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/secure-your-work/use-artifact-attestations/verify-attestations-offline.md +0 -0
  173. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/troubleshoot-workflows.md +0 -0
  174. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/add-scripts.md +0 -0
  175. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/deploy-to-environment.md +0 -0
  176. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions.md +0 -0
  177. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/index.md +0 -0
  178. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/pass-job-outputs.md +0 -0
  179. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/run-job-variations.md +0 -0
  180. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/set-default-values-for-jobs.md +0 -0
  181. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/use-github-cli.md +0 -0
  182. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/use-jobs.md +0 -0
  183. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/use-secrets.md +0 -0
  184. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-what-workflows-do/use-variables.md +0 -0
  185. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-when-workflows-run/control-jobs-with-conditions.md +0 -0
  186. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency.md +0 -0
  187. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-when-workflows-run/index.md +0 -0
  188. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-when-workflows-run/trigger-a-workflow.md +0 -0
  189. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-where-workflows-run/choose-the-runner-for-a-job.md +0 -0
  190. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-where-workflows-run/index.md +0 -0
  191. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/choose-where-workflows-run/run-jobs-in-a-container.md +0 -0
  192. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/index.md +0 -0
  193. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/how-tos/write-workflows/use-workflow-templates.md +0 -0
  194. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/index.md +0 -0
  195. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/github-actions-importer/custom-transformers.md +0 -0
  196. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/github-actions-importer/index.md +0 -0
  197. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/github-actions-importer/supplemental-arguments-and-settings.md +0 -0
  198. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/index.md +0 -0
  199. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/limits.md +0 -0
  200. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/runners/github-hosted-runners.md +0 -0
  201. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/runners/index.md +0 -0
  202. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/runners/larger-runners.md +0 -0
  203. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/runners/self-hosted-runners.md +0 -0
  204. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/security/index.md +0 -0
  205. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/security/oidc.md +0 -0
  206. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/security/secrets.md +0 -0
  207. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/security/secure-use.md +0 -0
  208. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/contexts.md +0 -0
  209. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/dependency-caching.md +0 -0
  210. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/deployments-and-environments.md +0 -0
  211. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/dockerfile-support.md +0 -0
  212. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/events-that-trigger-workflows.md +0 -0
  213. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/expressions.md +0 -0
  214. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/index.md +0 -0
  215. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/metadata-syntax.md +0 -0
  216. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/reusing-workflow-configurations.md +0 -0
  217. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/variables.md +0 -0
  218. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/workflow-cancellation.md +0 -0
  219. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/workflow-commands.md +0 -0
  220. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/reference/workflows-and-actions/workflow-syntax.md +0 -0
  221. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/authenticate-with-github_token.md +0 -0
  222. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/go.md +0 -0
  223. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/index.md +0 -0
  224. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/java-with-ant.md +0 -0
  225. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/java-with-gradle.md +0 -0
  226. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/java-with-maven.md +0 -0
  227. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/net.md +0 -0
  228. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/nodejs.md +0 -0
  229. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/powershell.md +0 -0
  230. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/python.md +0 -0
  231. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/ruby.md +0 -0
  232. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/rust.md +0 -0
  233. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/swift.md +0 -0
  234. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/build-and-test-code/xamarin-apps.md +0 -0
  235. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/create-actions/create-a-composite-action.md +0 -0
  236. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/create-actions/create-a-javascript-action.md +0 -0
  237. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/create-actions/index.md +0 -0
  238. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/create-an-example-workflow.md +0 -0
  239. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/index.md +0 -0
  240. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/manage-your-work/add-comments-with-labels.md +0 -0
  241. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/manage-your-work/add-labels-to-issues.md +0 -0
  242. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/manage-your-work/close-inactive-issues.md +0 -0
  243. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/manage-your-work/index.md +0 -0
  244. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/manage-your-work/schedule-issue-creation.md +0 -0
  245. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/azure-devops-migration.md +0 -0
  246. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/bamboo-migration.md +0 -0
  247. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/bitbucket-pipelines-migration.md +0 -0
  248. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/circleci-migration.md +0 -0
  249. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/gitlab-migration.md +0 -0
  250. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/index.md +0 -0
  251. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/jenkins-migration.md +0 -0
  252. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/travis-ci-migration.md +0 -0
  253. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/automated-migrations/use-github-actions-importer.md +0 -0
  254. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/index.md +0 -0
  255. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/manual-migrations/index.md +0 -0
  256. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/manual-migrations/migrate-from-azure-pipelines.md +0 -0
  257. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/manual-migrations/migrate-from-circleci.md +0 -0
  258. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/manual-migrations/migrate-from-gitlab-cicd.md +0 -0
  259. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/manual-migrations/migrate-from-jenkins.md +0 -0
  260. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-actions/manual-migrations/migrate-from-travis-ci.md +0 -0
  261. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/migrate-to-github-runners.md +0 -0
  262. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/publish-packages/index.md +0 -0
  263. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/publish-packages/publish-docker-images.md +0 -0
  264. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/publish-packages/publish-java-packages-with-gradle.md +0 -0
  265. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/publish-packages/publish-java-packages-with-maven.md +0 -0
  266. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/publish-packages/publish-nodejs-packages.md +0 -0
  267. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/store-and-share-data.md +0 -0
  268. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-actions-runner-controller/authenticate-to-the-api.md +0 -0
  269. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-actions-runner-controller/deploy-runner-scale-sets.md +0 -0
  270. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-actions-runner-controller/index.md +0 -0
  271. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-actions-runner-controller/quickstart.md +0 -0
  272. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-actions-runner-controller/troubleshoot.md +0 -0
  273. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-actions-runner-controller/use-arc-in-a-workflow.md +0 -0
  274. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-containerized-services/create-a-docker-container-action.md +0 -0
  275. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-containerized-services/create-postgresql-service-containers.md +0 -0
  276. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-containerized-services/create-redis-service-containers.md +0 -0
  277. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-containerized-services/index.md +0 -0
  278. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/github-actions/references/tutorials/use-containerized-services/use-docker-service-containers.md +0 -0
  279. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/SKILL.md +0 -0
  280. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/additional_features.md +0 -0
  281. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/builtin_types.md +0 -0
  282. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/changelog.md +0 -0
  283. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/cheat_sheet_py3.md +0 -0
  284. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/class_basics.md +0 -0
  285. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/command_line.md +0 -0
  286. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/common_issues.md +0 -0
  287. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/config_file.md +0 -0
  288. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/duck_type_compatibility.md +0 -0
  289. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/dynamic_typing.md +0 -0
  290. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/error_code_list.md +0 -0
  291. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/error_code_list2.md +0 -0
  292. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/error_codes.md +0 -0
  293. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/existing_code.md +0 -0
  294. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/extending_mypy.md +0 -0
  295. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/faq.md +0 -0
  296. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/final_attrs.md +0 -0
  297. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/generics.md +0 -0
  298. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/getting_started.md +0 -0
  299. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/index.md +0 -0
  300. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/inline_config.md +0 -0
  301. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/installed_packages.md +0 -0
  302. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/kinds_of_types.md +0 -0
  303. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/literal_types.md +0 -0
  304. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/metaclasses.md +0 -0
  305. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/more_types.md +0 -0
  306. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/mypy_daemon.md +0 -0
  307. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/protocols.md +0 -0
  308. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/running_mypy.md +0 -0
  309. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/runtime_troubles.md +0 -0
  310. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/stubgen.md +0 -0
  311. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/stubs.md +0 -0
  312. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/stubtest.md +0 -0
  313. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/supported_python_features.md +0 -0
  314. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/type_inference_and_annotations.md +0 -0
  315. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/type_narrowing.md +0 -0
  316. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/references/typed_dict.md +0 -0
  317. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/scripts/clean_markdown.py +0 -0
  318. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/scripts/discover_pages.py +0 -0
  319. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/mypy/scripts/scrape_docs.py +0 -0
  320. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/SKILL.md +0 -0
  321. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/aliases/AliasChoices.md +0 -0
  322. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/aliases/AliasGenerator.md +0 -0
  323. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/aliases/AliasPath.md +0 -0
  324. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/base_model/BaseModel.md +0 -0
  325. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/base_model/create_model.md +0 -0
  326. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/config/ConfigDict.md +0 -0
  327. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/config/with_config.md +0 -0
  328. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/dataclasses/dataclass.md +0 -0
  329. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/dataclasses/is_pydantic_dataclass.md +0 -0
  330. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/dataclasses/rebuild_dataclass.md +0 -0
  331. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticErrorMixin.md +0 -0
  332. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticForbiddenQualifier.md +0 -0
  333. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticImportError.md +0 -0
  334. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticInvalidForJsonSchema.md +0 -0
  335. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticSchemaGenerationError.md +0 -0
  336. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticUndefinedAnnotation.md +0 -0
  337. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/errors/PydanticUserError.md +0 -0
  338. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/fields/ComputedFieldInfo.md +0 -0
  339. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/fields/Field.md +0 -0
  340. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/fields/FieldInfo.md +0 -0
  341. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/fields/ModelPrivateAttr.md +0 -0
  342. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/fields/PrivateAttr.md +0 -0
  343. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/fields/computed_field.md +0 -0
  344. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_serializers/PlainSerializer.md +0 -0
  345. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_serializers/SerializeAsAny.md +0 -0
  346. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_serializers/WrapSerializer.md +0 -0
  347. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_serializers/field_serializer.md +0 -0
  348. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_serializers/model_serializer.md +0 -0
  349. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/AfterValidator.md +0 -0
  350. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/BeforeValidator.md +0 -0
  351. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/FreeModelBeforeValidator.md +0 -0
  352. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/FreeModelBeforeValidatorWithoutInfo.md +0 -0
  353. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/InstanceOf.md +0 -0
  354. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/ModelBeforeValidator.md +0 -0
  355. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/ModelBeforeValidatorWithoutInfo.md +0 -0
  356. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/ModelWrapValidator.md +0 -0
  357. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/ModelWrapValidatorHandler.md +0 -0
  358. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/ModelWrapValidatorWithoutInfo.md +0 -0
  359. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/PlainValidator.md +0 -0
  360. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/SkipValidation.md +0 -0
  361. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/ValidateAs.md +0 -0
  362. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/WrapValidator.md +0 -0
  363. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/field_validator.md +0 -0
  364. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/functional_validators/model_validator.md +0 -0
  365. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/Examples.md +0 -0
  366. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/GenerateJsonSchema.md +0 -0
  367. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/PydanticJsonSchemaWarning.md +0 -0
  368. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/SkipJsonSchema.md +0 -0
  369. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/WithJsonSchema.md +0 -0
  370. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/model_json_schema.md +0 -0
  371. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/json_schema/models_json_schema.md +0 -0
  372. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/AmqpDsn.md +0 -0
  373. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/AnyHttpUrl.md +0 -0
  374. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/AnyUrl.md +0 -0
  375. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/AnyWebsocketUrl.md +0 -0
  376. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/ClickHouseDsn.md +0 -0
  377. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/CockroachDsn.md +0 -0
  378. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/EmailStr.md +0 -0
  379. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/FileUrl.md +0 -0
  380. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/FtpUrl.md +0 -0
  381. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/HttpUrl.md +0 -0
  382. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/IPvAnyAddress.md +0 -0
  383. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/IPvAnyInterface.md +0 -0
  384. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/IPvAnyNetwork.md +0 -0
  385. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/KafkaDsn.md +0 -0
  386. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/MariaDBDsn.md +0 -0
  387. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/MongoDsn.md +0 -0
  388. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/MySQLDsn.md +0 -0
  389. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/NameEmail.md +0 -0
  390. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/NatsDsn.md +0 -0
  391. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/PostgresDsn.md +0 -0
  392. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/RedisDsn.md +0 -0
  393. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/SnowflakeDsn.md +0 -0
  394. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/UrlConstraints.md +0 -0
  395. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/WebsocketUrl.md +0 -0
  396. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/import_email_validator.md +0 -0
  397. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/networks/validate_email.md +0 -0
  398. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/type_adapter/TypeAdapter.md +0 -0
  399. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/AllowInfNan.md +0 -0
  400. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/AwareDatetime.md +0 -0
  401. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Base64Encoder.md +0 -0
  402. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Base64UrlEncoder.md +0 -0
  403. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/ByteSize.md +0 -0
  404. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Discriminator.md +0 -0
  405. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/EncodedBytes.md +0 -0
  406. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/EncodedStr.md +0 -0
  407. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/EncoderProtocol.md +0 -0
  408. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/FailFast.md +0 -0
  409. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/FutureDate.md +0 -0
  410. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/FutureDatetime.md +0 -0
  411. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/GetPydanticSchema.md +0 -0
  412. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/ImportString.md +0 -0
  413. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Json.md +0 -0
  414. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/NaiveDatetime.md +0 -0
  415. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/PastDate.md +0 -0
  416. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/PastDatetime.md +0 -0
  417. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/PathType.md +0 -0
  418. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/PaymentCardBrand.md +0 -0
  419. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/PaymentCardNumber.md +0 -0
  420. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Secret.md +0 -0
  421. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/SecretBytes.md +0 -0
  422. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/SecretStr.md +0 -0
  423. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Strict.md +0 -0
  424. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/StringConstraints.md +0 -0
  425. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/Tag.md +0 -0
  426. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/UuidVersion.md +0 -0
  427. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/conbytes.md +0 -0
  428. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/condate.md +0 -0
  429. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/condecimal.md +0 -0
  430. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/confloat.md +0 -0
  431. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/confrozenset.md +0 -0
  432. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/conint.md +0 -0
  433. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/conlist.md +0 -0
  434. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/conset.md +0 -0
  435. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/types/constr.md +0 -0
  436. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/validate_call/validate_call.md +0 -0
  437. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/version/check_pydantic_core_version.md +0 -0
  438. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/version/parse_mypy_version.md +0 -0
  439. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/version/version_info.md +0 -0
  440. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/api/version/version_short.md +0 -0
  441. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/alias.md +0 -0
  442. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/config.md +0 -0
  443. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/conversion_table.md +0 -0
  444. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/dataclasses.md +0 -0
  445. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/experimental.md +0 -0
  446. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/fields.md +0 -0
  447. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/forward_annotations.md +0 -0
  448. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/json.md +0 -0
  449. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/json_schema.md +0 -0
  450. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/models.md +0 -0
  451. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/performance.md +0 -0
  452. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/pydantic_settings.md +0 -0
  453. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/serialization.md +0 -0
  454. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/strict_mode.md +0 -0
  455. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/type_adapter.md +0 -0
  456. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/types.md +0 -0
  457. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/unions.md +0 -0
  458. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/validation_decorator.md +0 -0
  459. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/concepts/validators.md +0 -0
  460. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/contributing.md +0 -0
  461. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/errors/errors.md +0 -0
  462. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/errors/usage_errors.md +0 -0
  463. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/errors/validation_errors.md +0 -0
  464. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/examples/custom_validators.md +0 -0
  465. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/examples/dynamic_models.md +0 -0
  466. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/examples/files.md +0 -0
  467. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/examples/orms.md +0 -0
  468. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/examples/queues.md +0 -0
  469. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/examples/requests.md +0 -0
  470. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/help_with_pydantic.md +0 -0
  471. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/index.md +0 -0
  472. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/install.md +0 -0
  473. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/integrations/linting.md +0 -0
  474. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/migration.md +0 -0
  475. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/version-policy.md +0 -0
  476. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pydantic-dev/references/why.md +0 -0
  477. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/SKILL.md +0 -0
  478. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/attic.md +0 -0
  479. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/customdirectory.md +0 -0
  480. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/markers.md +0 -0
  481. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/nonpython.md +0 -0
  482. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/parametrize.md +0 -0
  483. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/pythoncollection.md +0 -0
  484. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/reportingdemo.md +0 -0
  485. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/simple.md +0 -0
  486. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/example/special.md +0 -0
  487. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/anatomy.md +0 -0
  488. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/ci.md +0 -0
  489. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/fixtures.md +0 -0
  490. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/flaky.md +0 -0
  491. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/goodpractices.md +0 -0
  492. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/pythonpath.md +0 -0
  493. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/explanation/types.md +0 -0
  494. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/getting-started.md +0 -0
  495. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/assert.md +0 -0
  496. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/bash-completion.md +0 -0
  497. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/cache.md +0 -0
  498. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/capture-stdout-stderr.md +0 -0
  499. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/capture-warnings.md +0 -0
  500. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/doctest.md +0 -0
  501. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/existingtestsuite.md +0 -0
  502. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/failures.md +0 -0
  503. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/fixtures.md +0 -0
  504. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/logging.md +0 -0
  505. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/mark.md +0 -0
  506. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/monkeypatch.md +0 -0
  507. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/output.md +0 -0
  508. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/parametrize.md +0 -0
  509. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/plugins.md +0 -0
  510. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/skipping.md +0 -0
  511. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/subtests.md +0 -0
  512. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/tmp_path.md +0 -0
  513. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/unittest.md +0 -0
  514. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/usage.md +0 -0
  515. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/writing_hook_functions.md +0 -0
  516. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/writing_plugins.md +0 -0
  517. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/how-to/xunit_setup.md +0 -0
  518. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/reference/customize.md +0 -0
  519. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/reference/exit-codes.md +0 -0
  520. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/reference/fixtures.md +0 -0
  521. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/reference/plugin_list.md +0 -0
  522. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/pytest/references/reference/reference.md +0 -0
  523. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/SKILL.md +0 -0
  524. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/anti-patterns.md +0 -0
  525. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/async-patterns.md +0 -0
  526. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/clean-code.md +0 -0
  527. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/code-review.md +0 -0
  528. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/data-validation.md +0 -0
  529. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/error-handling.md +0 -0
  530. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/logging.md +0 -0
  531. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/performance.md +0 -0
  532. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/project-structure.md +0 -0
  533. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/security.md +0 -0
  534. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/testing.md +0 -0
  535. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/python-best-practices/references/type-hints.md +0 -0
  536. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/readme-generator/SKILL.md +0 -0
  537. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/readme-generator/references/badge-patterns.md +0 -0
  538. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/readme-generator/references/section-templates.md +0 -0
  539. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/readme-generator/scripts/package.py +0 -0
  540. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/readme-generator/scripts/validate_readme.py +0 -0
  541. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/SKILL.md +0 -0
  542. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/INDEX.md +0 -0
  543. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/configuration.md +0 -0
  544. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/contributing.md +0 -0
  545. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/editors/features.md +0 -0
  546. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/editors/migration.md +0 -0
  547. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/editors/overview.md +0 -0
  548. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/editors/settings.md +0 -0
  549. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/editors/setup.md +0 -0
  550. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/faq.md +0 -0
  551. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/formatter/black.md +0 -0
  552. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/formatter/overview.md +0 -0
  553. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/installation.md +0 -0
  554. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/integrations.md +0 -0
  555. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/linter.md +0 -0
  556. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/preview.md +0 -0
  557. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/ruff.md +0 -0
  558. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/abstract-base-class-without-abstract-method.md +0 -0
  559. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/access-annotations-from-class-dict.md +0 -0
  560. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/airflow-dag-no-schedule-argument.md +0 -0
  561. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/airflow-variable-name-task-id-mismatch.md +0 -0
  562. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/airflow3-moved-to-provider.md +0 -0
  563. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/airflow3-removal.md +0 -0
  564. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/airflow3-suggested-to-move-to-provider.md +0 -0
  565. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/airflow3-suggested-update.md +0 -0
  566. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ambiguous-class-name.md +0 -0
  567. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ambiguous-function-name.md +0 -0
  568. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ambiguous-unicode-character-comment.md +0 -0
  569. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ambiguous-unicode-character-docstring.md +0 -0
  570. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ambiguous-unicode-character-string.md +0 -0
  571. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ambiguous-variable-name.md +0 -0
  572. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/and-or-ternary.md +0 -0
  573. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/any-eq-ne-annotation.md +0 -0
  574. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/any-type.md +0 -0
  575. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/argument-default-in-stub.md +0 -0
  576. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assert-false.md +0 -0
  577. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assert-on-string-literal.md +0 -0
  578. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assert-raises-exception.md +0 -0
  579. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assert-tuple.md +0 -0
  580. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assert-with-print-message.md +0 -0
  581. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assert.md +0 -0
  582. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assignment-default-in-stub.md +0 -0
  583. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assignment-in-assert.md +0 -0
  584. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/assignment-to-os-environ.md +0 -0
  585. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/async-busy-wait.md +0 -0
  586. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/async-function-with-timeout.md +0 -0
  587. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/async-zero-sleep.md +0 -0
  588. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/asyncio-dangling-task.md +0 -0
  589. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/avoidable-escaped-quote.md +0 -0
  590. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/await-outside-async.md +0 -0
  591. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-dunder-method-name.md +0 -0
  592. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-exit-annotation.md +0 -0
  593. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-file-permissions.md +0 -0
  594. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-open-mode.md +0 -0
  595. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-quotes-docstring.md +0 -0
  596. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-quotes-inline-string.md +0 -0
  597. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-quotes-multiline-string.md +0 -0
  598. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-staticmethod-argument.md +0 -0
  599. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-str-strip-call.md +0 -0
  600. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-string-format-character.md +0 -0
  601. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-string-format-type.md +0 -0
  602. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-version-info-comparison.md +0 -0
  603. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bad-version-info-order.md +0 -0
  604. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/banned-api.md +0 -0
  605. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/banned-import-alias.md +0 -0
  606. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/banned-import-from.md +0 -0
  607. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/banned-module-level-imports.md +0 -0
  608. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bare-except.md +0 -0
  609. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/batched-without-explicit-strict.md +0 -0
  610. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bidirectional-unicode.md +0 -0
  611. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/binary-op-exception.md +0 -0
  612. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/bit-count.md +0 -0
  613. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-line-after-decorator.md +0 -0
  614. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-line-after-function.md +0 -0
  615. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-line-before-class.md +0 -0
  616. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-line-before-function.md +0 -0
  617. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-line-between-methods.md +0 -0
  618. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-line-with-whitespace.md +0 -0
  619. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-lines-after-function-or-class.md +0 -0
  620. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-lines-before-nested-definition.md +0 -0
  621. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-lines-between-header-and-content.md +0 -0
  622. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blank-lines-top-level.md +0 -0
  623. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blanket-noqa.md +0 -0
  624. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blanket-type-ignore.md +0 -0
  625. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blind-except.md +0 -0
  626. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blocking-http-call-httpx-in-async-function.md +0 -0
  627. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blocking-http-call-in-async-function.md +0 -0
  628. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blocking-input-in-async-function.md +0 -0
  629. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blocking-open-call-in-async-function.md +0 -0
  630. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blocking-path-method-in-async-function.md +0 -0
  631. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/blocking-sleep-in-async-function.md +0 -0
  632. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/boolean-chained-comparison.md +0 -0
  633. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/boolean-default-value-positional-argument.md +0 -0
  634. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/boolean-positional-value-in-call.md +0 -0
  635. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/boolean-type-hint-positional-argument.md +0 -0
  636. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/break-outside-loop.md +0 -0
  637. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/builtin-argument-shadowing.md +0 -0
  638. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/builtin-attribute-shadowing.md +0 -0
  639. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/builtin-import-shadowing.md +0 -0
  640. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/builtin-lambda-argument-shadowing.md +0 -0
  641. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/builtin-open.md +0 -0
  642. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/builtin-variable-shadowing.md +0 -0
  643. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/byte-string-usage.md +0 -0
  644. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/cached-instance-method.md +0 -0
  645. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-date-fromtimestamp.md +0 -0
  646. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-date-today.md +0 -0
  647. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-fromtimestamp.md +0 -0
  648. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-now-without-tzinfo.md +0 -0
  649. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-strptime-without-zone.md +0 -0
  650. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-today.md +0 -0
  651. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-utcfromtimestamp.md +0 -0
  652. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-utcnow.md +0 -0
  653. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-datetime-without-tzinfo.md +0 -0
  654. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/call-with-shell-equals-true.md +0 -0
  655. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/camelcase-imported-as-acronym.md +0 -0
  656. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/camelcase-imported-as-constant.md +0 -0
  657. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/camelcase-imported-as-lowercase.md +0 -0
  658. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/cancel-scope-no-checkpoint.md +0 -0
  659. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/check-and-remove-from-set.md +0 -0
  660. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/class-as-data-structure.md +0 -0
  661. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/class-with-mixed-type-vars.md +0 -0
  662. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/collapsible-else-if.md +0 -0
  663. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/collapsible-if.md +0 -0
  664. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/collection-literal-concatenation.md +0 -0
  665. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/collections-named-tuple.md +0 -0
  666. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/commented-out-code.md +0 -0
  667. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/compare-to-empty-string.md +0 -0
  668. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/compare-with-tuple.md +0 -0
  669. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/comparison-of-constant.md +0 -0
  670. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/comparison-with-itself.md +0 -0
  671. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/complex-assignment-in-stub.md +0 -0
  672. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/complex-if-statement-in-stub.md +0 -0
  673. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/complex-structure.md +0 -0
  674. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/constant-imported-as-non-constant.md +0 -0
  675. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/continue-in-finally.md +0 -0
  676. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/continue-outside-loop.md +0 -0
  677. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/convert-named-tuple-functional-to-class.md +0 -0
  678. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/convert-typed-dict-functional-to-class.md +0 -0
  679. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/create-subprocess-in-async-function.md +0 -0
  680. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/custom-type-var-for-self.md +0 -0
  681. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/dataclass-enum.md +0 -0
  682. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/datetime-min-max.md +0 -0
  683. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/datetime-timezone-utc.md +0 -0
  684. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/debugger.md +0 -0
  685. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/decimal-from-float-literal.md +0 -0
  686. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/default-except-not-last.md +0 -0
  687. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/default-factory-kwarg.md +0 -0
  688. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/delete-full-slice.md +0 -0
  689. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/deprecated-c-element-tree.md +0 -0
  690. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/deprecated-import.md +0 -0
  691. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/deprecated-log-warn.md +0 -0
  692. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/deprecated-mock-import.md +0 -0
  693. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/deprecated-unittest-alias.md +0 -0
  694. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/dict-get-with-none-default.md +0 -0
  695. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/dict-index-missing-items.md +0 -0
  696. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/dict-iter-missing-items.md +0 -0
  697. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/direct-logger-instantiation.md +0 -0
  698. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-all-with-model-form.md +0 -0
  699. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-exclude-with-model-form.md +0 -0
  700. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-extra.md +0 -0
  701. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-locals-in-render-function.md +0 -0
  702. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-model-without-dunder-str.md +0 -0
  703. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-non-leading-receiver-decorator.md +0 -0
  704. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-nullable-model-string-field.md +0 -0
  705. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-raw-sql.md +0 -0
  706. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/django-unordered-body-content-in-model.md +0 -0
  707. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/doc-line-too-long.md +0 -0
  708. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-extraneous-exception.md +0 -0
  709. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-extraneous-parameter.md +0 -0
  710. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-extraneous-returns.md +0 -0
  711. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-extraneous-yields.md +0 -0
  712. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-in-stub.md +0 -0
  713. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-missing-exception.md +0 -0
  714. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-missing-returns.md +0 -0
  715. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-missing-yields.md +0 -0
  716. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-starts-with-this.md +0 -0
  717. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/docstring-tab-indentation.md +0 -0
  718. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/dot-format-in-exception.md +0 -0
  719. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/double-negation.md +0 -0
  720. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/dunder-function-name.md +0 -0
  721. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-bases.md +0 -0
  722. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-class-field-definition.md +0 -0
  723. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-handler-exception.md +0 -0
  724. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-isinstance-call.md +0 -0
  725. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-literal-member.md +0 -0
  726. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-try-block-exception.md +0 -0
  727. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-union-member.md +0 -0
  728. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/duplicate-value.md +0 -0
  729. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ellipsis-in-non-empty-class-body.md +0 -0
  730. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/empty-comment.md +0 -0
  731. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/empty-docstring-section.md +0 -0
  732. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/empty-docstring.md +0 -0
  733. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/empty-method-without-abstract-decorator.md +0 -0
  734. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/empty-type-checking-block.md +0 -0
  735. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/enumerate-for-loop.md +0 -0
  736. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/eq-without-hash.md +0 -0
  737. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/error-instead-of-exception.md +0 -0
  738. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/error-suffix-on-exception-name.md +0 -0
  739. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/escape-sequence-in-docstring.md +0 -0
  740. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/eval.md +0 -0
  741. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/exc-info-outside-except-handler.md +0 -0
  742. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/except-with-empty-tuple.md +0 -0
  743. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/except-with-non-exception-classes.md +0 -0
  744. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/exception-without-exc-info.md +0 -0
  745. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/exec-builtin.md +0 -0
  746. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/explicit-f-string-type-conversion.md +0 -0
  747. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/explicit-string-concatenation.md +0 -0
  748. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/expr-and-false.md +0 -0
  749. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/expr-and-not-expr.md +0 -0
  750. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/expr-or-not-expr.md +0 -0
  751. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/expr-or-true.md +0 -0
  752. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/expressions-in-star-assignment.md +0 -0
  753. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/extraneous-parentheses.md +0 -0
  754. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/f-string-docstring.md +0 -0
  755. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/f-string-in-exception.md +0 -0
  756. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/f-string-in-get-text-func-call.md +0 -0
  757. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/f-string-missing-placeholders.md +0 -0
  758. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/f-string-number-format.md +0 -0
  759. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/f-string.md +0 -0
  760. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/falsy-dict-get-fallback.md +0 -0
  761. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/fast-api-non-annotated-dependency.md +0 -0
  762. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/fast-api-redundant-response-model.md +0 -0
  763. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/fast-api-unused-path-parameter.md +0 -0
  764. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/first-word-uncapitalized.md +0 -0
  765. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/flask-debug-true.md +0 -0
  766. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/for-loop-set-mutations.md +0 -0
  767. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/for-loop-writes.md +0 -0
  768. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/format-in-get-text-func-call.md +0 -0
  769. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/format-literals.md +0 -0
  770. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/forward-annotation-syntax-error.md +0 -0
  771. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/fromisoformat-replace-z.md +0 -0
  772. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/function-call-in-dataclass-default-argument.md +0 -0
  773. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/function-call-in-default-argument.md +0 -0
  774. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/function-uses-loop-variable.md +0 -0
  775. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/future-annotations-in-stub.md +0 -0
  776. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/future-feature-not-defined.md +0 -0
  777. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/future-required-type-annotation.md +0 -0
  778. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/future-rewritable-type-annotation.md +0 -0
  779. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/generator-return-from-iter-method.md +0 -0
  780. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/generic-not-last-base-class.md +0 -0
  781. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/get-attr-with-constant.md +0 -0
  782. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/glob.md +0 -0
  783. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/global-at-module-level.md +0 -0
  784. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/global-statement.md +0 -0
  785. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/global-variable-not-assigned.md +0 -0
  786. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-bind-all-interfaces.md +0 -0
  787. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-password-default.md +0 -0
  788. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-password-func-arg.md +0 -0
  789. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-password-string.md +0 -0
  790. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-sql-expression.md +0 -0
  791. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-string-charset.md +0 -0
  792. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hardcoded-temp-file.md +0 -0
  793. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hashlib-digest-hex.md +0 -0
  794. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/hashlib-insecure-hash-function.md +0 -0
  795. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-else-block-instead-of-dict-get.md +0 -0
  796. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-else-block-instead-of-dict-lookup.md +0 -0
  797. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-else-block-instead-of-if-exp.md +0 -0
  798. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-exp-instead-of-or-operator.md +0 -0
  799. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-expr-min-max.md +0 -0
  800. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-expr-with-false-true.md +0 -0
  801. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-expr-with-true-false.md +0 -0
  802. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-expr-with-twisted-arms.md +0 -0
  803. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-key-in-dict-del.md +0 -0
  804. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-stmt-min-max.md +0 -0
  805. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-tuple.md +0 -0
  806. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/if-with-same-arms.md +0 -0
  807. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-class-var-in-dataclass.md +0 -0
  808. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-cwd.md +0 -0
  809. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-namespace-package.md +0 -0
  810. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-optional.md +0 -0
  811. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-return-value.md +0 -0
  812. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-return.md +0 -0
  813. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/implicit-string-concatenation-in-collection-literal.md +0 -0
  814. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/import-outside-top-level.md +0 -0
  815. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/import-private-name.md +0 -0
  816. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/import-self.md +0 -0
  817. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/import-shadowed-by-loop-var.md +0 -0
  818. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/in-dict-keys.md +0 -0
  819. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/in-empty-collection.md +0 -0
  820. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/incorrect-blank-line-after-class.md +0 -0
  821. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/incorrect-blank-line-before-class.md +0 -0
  822. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/incorrect-dict-iterator.md +0 -0
  823. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/incorrectly-parenthesized-tuple-in-subscript.md +0 -0
  824. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/indentation-with-invalid-multiple-comment.md +0 -0
  825. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/indentation-with-invalid-multiple.md +0 -0
  826. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/indented-form-feed.md +0 -0
  827. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/int-on-sliced-str.md +0 -0
  828. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-all-format.md +0 -0
  829. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-all-object.md +0 -0
  830. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-argument-name.md +0 -0
  831. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-assert-message-literal-argument.md +0 -0
  832. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-bool-return-type.md +0 -0
  833. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-bytes-return-type.md +0 -0
  834. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-character-backspace.md +0 -0
  835. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-character-esc.md +0 -0
  836. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-character-nul.md +0 -0
  837. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-character-sub.md +0 -0
  838. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-character-zero-width-space.md +0 -0
  839. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-class-name.md +0 -0
  840. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-envvar-default.md +0 -0
  841. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-envvar-value.md +0 -0
  842. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-escape-sequence.md +0 -0
  843. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-first-argument-name-for-class-method.md +0 -0
  844. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-first-argument-name-for-method.md +0 -0
  845. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-formatter-suppression-comment.md +0 -0
  846. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-function-name.md +0 -0
  847. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-get-logger-argument.md +0 -0
  848. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-hash-return-type.md +0 -0
  849. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-index-return-type.md +0 -0
  850. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-index-type.md +0 -0
  851. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-length-return-type.md +0 -0
  852. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-mock-access.md +0 -0
  853. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-module-name.md +0 -0
  854. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-pathlib-with-suffix.md +0 -0
  855. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-print-syntax.md +0 -0
  856. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-pyproject-toml.md +0 -0
  857. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-rule-code.md +0 -0
  858. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-str-return-type.md +0 -0
  859. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-todo-capitalization.md +0 -0
  860. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/invalid-todo-tag.md +0 -0
  861. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/io-error.md +0 -0
  862. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/is-literal.md +0 -0
  863. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/isinstance-type-none.md +0 -0
  864. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/iter-method-return-iterable.md +0 -0
  865. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/iteration-over-set.md +0 -0
  866. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/jinja2-autoescape-false.md +0 -0
  867. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/jump-statement-in-finally.md +0 -0
  868. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/lambda-assignment.md +0 -0
  869. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/late-future-import.md +0 -0
  870. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/legacy-form-pytest-raises.md +0 -0
  871. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/len-test.md +0 -0
  872. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/line-contains-fixme.md +0 -0
  873. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/line-contains-hack.md +0 -0
  874. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/line-contains-todo.md +0 -0
  875. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/line-contains-xxx.md +0 -0
  876. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/line-too-long.md +0 -0
  877. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/list-reverse-copy.md +0 -0
  878. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/literal-membership.md +0 -0
  879. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/load-before-global-declaration.md +0 -0
  880. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/log-exception-outside-except-handler.md +0 -0
  881. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-config-insecure-listen.md +0 -0
  882. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-eager-conversion.md +0 -0
  883. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-exc-info.md +0 -0
  884. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-extra-attr-clash.md +0 -0
  885. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-f-string.md +0 -0
  886. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-percent-format.md +0 -0
  887. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-redundant-exc-info.md +0 -0
  888. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-string-concat.md +0 -0
  889. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-string-format.md +0 -0
  890. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-too-few-args.md +0 -0
  891. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-too-many-args.md +0 -0
  892. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/logging-warn.md +0 -0
  893. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/long-sleep-not-forever.md +0 -0
  894. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/loop-iterator-mutation.md +0 -0
  895. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/loop-variable-overrides-iterator.md +0 -0
  896. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/lowercase-imported-as-non-lowercase.md +0 -0
  897. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/lru-cache-with-maxsize-none.md +0 -0
  898. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/lru-cache-without-parameters.md +0 -0
  899. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/magic-value-comparison.md +0 -0
  900. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mako-templates.md +0 -0
  901. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/manual-dict-comprehension.md +0 -0
  902. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/manual-from-import.md +0 -0
  903. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/manual-list-comprehension.md +0 -0
  904. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/manual-list-copy.md +0 -0
  905. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/map-int-version-parsing.md +0 -0
  906. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/map-without-explicit-strict.md +0 -0
  907. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/math-constant.md +0 -0
  908. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/meta-class-abc-meta.md +0 -0
  909. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mismatched-section-underline-length.md +0 -0
  910. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/misplaced-bare-raise.md +0 -0
  911. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-blank-line-after-last-section.md +0 -0
  912. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-blank-line-after-summary.md +0 -0
  913. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-copyright-notice.md +0 -0
  914. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-dashed-underline-after-section.md +0 -0
  915. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-f-string-syntax.md +0 -0
  916. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-maxsplit-arg.md +0 -0
  917. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-new-line-after-section-name.md +0 -0
  918. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-newline-at-end-of-file.md +0 -0
  919. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-required-import.md +0 -0
  920. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-return-type-class-method.md +0 -0
  921. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-return-type-private-function.md +0 -0
  922. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-return-type-special-method.md +0 -0
  923. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-return-type-static-method.md +0 -0
  924. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-return-type-undocumented-public-function.md +0 -0
  925. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-section-name-colon.md +0 -0
  926. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-section-underline-after-name.md +0 -0
  927. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-space-after-todo-colon.md +0 -0
  928. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-terminal-punctuation.md +0 -0
  929. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-todo-author.md +0 -0
  930. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-todo-colon.md +0 -0
  931. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-todo-description.md +0 -0
  932. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-todo-link.md +0 -0
  933. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-trailing-comma.md +0 -0
  934. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-trailing-period.md +0 -0
  935. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-type-args.md +0 -0
  936. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-type-cls.md +0 -0
  937. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-type-function-argument.md +0 -0
  938. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-type-kwargs.md +0 -0
  939. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-type-self.md +0 -0
  940. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace-after-keyword.md +0 -0
  941. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace-around-arithmetic-operator.md +0 -0
  942. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace-around-bitwise-or-shift-operator.md +0 -0
  943. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace-around-modulo-operator.md +0 -0
  944. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace-around-operator.md +0 -0
  945. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace-around-parameter-equals.md +0 -0
  946. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/missing-whitespace.md +0 -0
  947. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mixed-case-variable-in-class-scope.md +0 -0
  948. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mixed-case-variable-in-global-scope.md +0 -0
  949. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mixed-spaces-and-tabs.md +0 -0
  950. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/modified-iterating-set.md +0 -0
  951. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/module-import-not-at-top-of-file.md +0 -0
  952. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multi-line-implicit-string-concatenation.md +0 -0
  953. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multi-line-summary-first-line.md +0 -0
  954. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multi-line-summary-second-line.md +0 -0
  955. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multi-value-repeated-key-literal.md +0 -0
  956. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multi-value-repeated-key-variable.md +0 -0
  957. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-imports-on-one-line.md +0 -0
  958. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-leading-hashes-for-block-comment.md +0 -0
  959. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-spaces-after-comma.md +0 -0
  960. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-spaces-after-keyword.md +0 -0
  961. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-spaces-after-operator.md +0 -0
  962. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-spaces-before-keyword.md +0 -0
  963. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-spaces-before-operator.md +0 -0
  964. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-starred-expressions.md +0 -0
  965. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-starts-ends-with.md +0 -0
  966. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-statements-on-one-line-colon.md +0 -0
  967. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-statements-on-one-line-semicolon.md +0 -0
  968. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/multiple-with-statements.md +0 -0
  969. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mutable-argument-default.md +0 -0
  970. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mutable-class-default.md +0 -0
  971. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mutable-contextvar-default.md +0 -0
  972. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mutable-dataclass-default.md +0 -0
  973. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/mutable-fromkeys-value.md +0 -0
  974. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/named-expr-without-context.md +0 -0
  975. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/nan-comparison.md +0 -0
  976. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/native-literals.md +0 -0
  977. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/needless-bool.md +0 -0
  978. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/needless-else.md +0 -0
  979. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/negate-equal-op.md +0 -0
  980. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/negate-not-equal-op.md +0 -0
  981. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/nested-min-max.md +0 -0
  982. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/never-union.md +0 -0
  983. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/new-line-after-last-paragraph.md +0 -0
  984. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-blank-line-after-section.md +0 -0
  985. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-blank-line-before-section.md +0 -0
  986. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-classmethod-decorator.md +0 -0
  987. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-explicit-stacklevel.md +0 -0
  988. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-indented-block-comment.md +0 -0
  989. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-indented-block.md +0 -0
  990. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-return-argument-annotation-in-stub.md +0 -0
  991. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-self-use.md +0 -0
  992. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-slots-in-namedtuple-subclass.md +0 -0
  993. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-slots-in-str-subclass.md +0 -0
  994. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-slots-in-tuple-subclass.md +0 -0
  995. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-space-after-block-comment.md +0 -0
  996. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-space-after-inline-comment.md +0 -0
  997. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/no-staticmethod-decorator.md +0 -0
  998. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-ascii-import-name.md +0 -0
  999. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-ascii-name.md +0 -0
  1000. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-augmented-assignment.md +0 -0
  1001. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-capitalized-section-name.md +0 -0
  1002. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-empty-stub-body.md +0 -0
  1003. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-imperative-mood.md +0 -0
  1004. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-lowercase-variable-in-function.md +0 -0
  1005. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-octal-permissions.md +0 -0
  1006. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep585-annotation.md +0 -0
  1007. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep604-annotation-optional.md +0 -0
  1008. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep604-annotation-union.md +0 -0
  1009. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep604-isinstance.md +0 -0
  1010. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep646-unpack.md +0 -0
  1011. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep695-generic-class.md +0 -0
  1012. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep695-generic-function.md +0 -0
  1013. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-pep695-type-alias.md +0 -0
  1014. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-self-return-type.md +0 -0
  1015. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-slot-assignment.md +0 -0
  1016. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/non-unique-enums.md +0 -0
  1017. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/none-comparison.md +0 -0
  1018. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/none-not-at-end-of-union.md +0 -0
  1019. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/nonlocal-and-global.md +0 -0
  1020. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/nonlocal-without-binding.md +0 -0
  1021. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/not-in-test.md +0 -0
  1022. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/not-is-test.md +0 -0
  1023. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/numeric-literal-too-long.md +0 -0
  1024. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/numpy-deprecated-function.md +0 -0
  1025. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/numpy-deprecated-type-alias.md +0 -0
  1026. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/numpy-legacy-random.md +0 -0
  1027. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/numpy2-deprecation.md +0 -0
  1028. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/open-alias.md +0 -0
  1029. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/open-file-with-context-handler.md +0 -0
  1030. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-chmod.md +0 -0
  1031. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-error-alias.md +0 -0
  1032. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-getcwd.md +0 -0
  1033. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-listdir.md +0 -0
  1034. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-makedirs.md +0 -0
  1035. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-mkdir.md +0 -0
  1036. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-abspath.md +0 -0
  1037. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-basename.md +0 -0
  1038. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-dirname.md +0 -0
  1039. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-exists.md +0 -0
  1040. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-expanduser.md +0 -0
  1041. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-getatime.md +0 -0
  1042. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-getctime.md +0 -0
  1043. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-getmtime.md +0 -0
  1044. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-getsize.md +0 -0
  1045. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-isabs.md +0 -0
  1046. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-isdir.md +0 -0
  1047. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-isfile.md +0 -0
  1048. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-islink.md +0 -0
  1049. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-join.md +0 -0
  1050. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-samefile.md +0 -0
  1051. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-path-splitext.md +0 -0
  1052. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-readlink.md +0 -0
  1053. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-remove.md +0 -0
  1054. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-rename.md +0 -0
  1055. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-replace.md +0 -0
  1056. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-rmdir.md +0 -0
  1057. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-sep-split.md +0 -0
  1058. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-stat.md +0 -0
  1059. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-symlink.md +0 -0
  1060. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/os-unlink.md +0 -0
  1061. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/outdated-version-block.md +0 -0
  1062. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/over-indentation.md +0 -0
  1063. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/over-indented.md +0 -0
  1064. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/overindented-section-underline.md +0 -0
  1065. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/overindented-section.md +0 -0
  1066. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/overload-with-docstring.md +0 -0
  1067. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/p-print.md +0 -0
  1068. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-df-variable-name.md +0 -0
  1069. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-nunique-constant-series-check.md +0 -0
  1070. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-at.md +0 -0
  1071. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-iat.md +0 -0
  1072. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-is-null.md +0 -0
  1073. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-ix.md +0 -0
  1074. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-not-null.md +0 -0
  1075. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-pivot-or-unstack.md +0 -0
  1076. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-read-table.md +0 -0
  1077. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-stack.md +0 -0
  1078. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-dot-values.md +0 -0
  1079. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-inplace-argument.md +0 -0
  1080. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pandas-use-of-pd-merge.md +0 -0
  1081. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/paramiko-call.md +0 -0
  1082. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/parenthesize-chained-operators.md +0 -0
  1083. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pass-in-class-body.md +0 -0
  1084. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pass-statement-stub-body.md +0 -0
  1085. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/patch-version-comparison.md +0 -0
  1086. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/path-constructor-current-directory.md +0 -0
  1087. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pep484-style-positional-only-parameter.md +0 -0
  1088. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-expected-mapping.md +0 -0
  1089. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-expected-sequence.md +0 -0
  1090. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-extra-named-arguments.md +0 -0
  1091. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-invalid-format.md +0 -0
  1092. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-missing-argument.md +0 -0
  1093. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-mixed-positional-and-named.md +0 -0
  1094. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-positional-count-mismatch.md +0 -0
  1095. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-star-requires-sequence.md +0 -0
  1096. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/percent-format-unsupported-format-character.md +0 -0
  1097. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/post-init-default.md +0 -0
  1098. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/potential-index-error.md +0 -0
  1099. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/print-empty-string.md +0 -0
  1100. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/print.md +0 -0
  1101. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/printf-in-get-text-func-call.md +0 -0
  1102. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/printf-string-formatting.md +0 -0
  1103. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/private-member-access.md +0 -0
  1104. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/private-type-parameter.md +0 -0
  1105. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/prohibited-trailing-comma.md +0 -0
  1106. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/property-with-parameters.md +0 -0
  1107. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/property-without-return.md +0 -0
  1108. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/py-path.md +0 -0
  1109. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-assert-always-false.md +0 -0
  1110. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-assert-in-except.md +0 -0
  1111. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-composite-assertion.md +0 -0
  1112. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-deprecated-yield-fixture.md +0 -0
  1113. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-duplicate-parametrize-test-cases.md +0 -0
  1114. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-erroneous-use-fixtures-on-fixture.md +0 -0
  1115. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-extraneous-scope-function.md +0 -0
  1116. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-fail-without-message.md +0 -0
  1117. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-fixture-finalizer-callback.md +0 -0
  1118. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-fixture-incorrect-parentheses-style.md +0 -0
  1119. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-fixture-param-without-value.md +0 -0
  1120. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-fixture-positional-args.md +0 -0
  1121. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-incorrect-fixture-name-underscore.md +0 -0
  1122. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-incorrect-mark-parentheses-style.md +0 -0
  1123. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-incorrect-pytest-import.md +0 -0
  1124. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-missing-fixture-name-underscore.md +0 -0
  1125. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-parameter-with-default-argument.md +0 -0
  1126. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-parametrize-names-wrong-type.md +0 -0
  1127. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-parametrize-values-wrong-type.md +0 -0
  1128. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-patch-with-lambda.md +0 -0
  1129. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-raises-ambiguous-pattern.md +0 -0
  1130. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-raises-too-broad.md +0 -0
  1131. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-raises-with-multiple-statements.md +0 -0
  1132. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-raises-without-exception.md +0 -0
  1133. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-unittest-assertion.md +0 -0
  1134. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-unittest-raises-assertion.md +0 -0
  1135. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-unnecessary-asyncio-mark-on-fixture.md +0 -0
  1136. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-use-fixtures-without-parameters.md +0 -0
  1137. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-useless-yield-fixture.md +0 -0
  1138. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-warns-too-broad.md +0 -0
  1139. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-warns-with-multiple-statements.md +0 -0
  1140. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/pytest-warns-without-warning.md +0 -0
  1141. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/quadratic-list-summation.md +0 -0
  1142. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/quoted-annotation-in-stub.md +0 -0
  1143. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/quoted-annotation.md +0 -0
  1144. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/quoted-type-alias.md +0 -0
  1145. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raise-literal.md +0 -0
  1146. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raise-not-implemented.md +0 -0
  1147. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raise-vanilla-args.md +0 -0
  1148. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raise-vanilla-class.md +0 -0
  1149. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raise-within-try.md +0 -0
  1150. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raise-without-from-inside-except.md +0 -0
  1151. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/raw-string-in-exception.md +0 -0
  1152. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/re-sub-positional-args.md +0 -0
  1153. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/read-whole-file.md +0 -0
  1154. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/readlines-in-for.md +0 -0
  1155. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redeclared-assigned-name.md +0 -0
  1156. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redefined-argument-from-local.md +0 -0
  1157. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redefined-loop-name.md +0 -0
  1158. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redefined-slots-in-subclass.md +0 -0
  1159. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redefined-while-unused.md +0 -0
  1160. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redirected-noqa.md +0 -0
  1161. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-backslash.md +0 -0
  1162. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-bool-literal.md +0 -0
  1163. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-final-literal.md +0 -0
  1164. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-literal-union.md +0 -0
  1165. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-log-base.md +0 -0
  1166. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-none-literal.md +0 -0
  1167. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-numeric-union.md +0 -0
  1168. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-open-modes.md +0 -0
  1169. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/redundant-tuple-in-exception-handler.md +0 -0
  1170. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/regex-flag-alias.md +0 -0
  1171. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/reimplemented-builtin.md +0 -0
  1172. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/reimplemented-container-builtin.md +0 -0
  1173. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/reimplemented-operator.md +0 -0
  1174. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/reimplemented-starmap.md +0 -0
  1175. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/relative-imports.md +0 -0
  1176. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/repeated-append.md +0 -0
  1177. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/repeated-equality-comparison.md +0 -0
  1178. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/repeated-global.md +0 -0
  1179. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/repeated-isinstance-calls.md +0 -0
  1180. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/repeated-keyword-argument.md +0 -0
  1181. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/replace-stdout-stderr.md +0 -0
  1182. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/replace-str-enum.md +0 -0
  1183. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/replace-universal-newlines.md +0 -0
  1184. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/request-with-no-cert-validation.md +0 -0
  1185. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/request-without-timeout.md +0 -0
  1186. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/reraise-no-cause.md +0 -0
  1187. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/return-in-generator.md +0 -0
  1188. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/return-in-init.md +0 -0
  1189. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/return-in-try-except-finally.md +0 -0
  1190. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/return-outside-function.md +0 -0
  1191. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/reuse-of-groupby-generator.md +0 -0
  1192. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/root-logger-call.md +0 -0
  1193. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ruff-static-key-dict-comprehension.md +0 -0
  1194. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ruff-unsafe-markup-use.md +0 -0
  1195. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/rules.md +0 -0
  1196. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/run-process-in-async-function.md +0 -0
  1197. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/runtime-cast-value.md +0 -0
  1198. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/runtime-import-in-type-checking-block.md +0 -0
  1199. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/runtime-string-union.md +0 -0
  1200. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/self-assigning-variable.md +0 -0
  1201. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/self-or-cls-assignment.md +0 -0
  1202. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/set-attr-with-constant.md +0 -0
  1203. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/shallow-copy-environ.md +0 -0
  1204. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/shebang-leading-whitespace.md +0 -0
  1205. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/shebang-missing-executable-file.md +0 -0
  1206. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/shebang-missing-python.md +0 -0
  1207. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/shebang-not-executable.md +0 -0
  1208. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/shebang-not-first-line.md +0 -0
  1209. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/signature-in-docstring.md +0 -0
  1210. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/single-item-membership-test.md +0 -0
  1211. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/single-line-implicit-string-concatenation.md +0 -0
  1212. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/single-string-slots.md +0 -0
  1213. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/singledispatch-method.md +0 -0
  1214. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/singledispatchmethod-function.md +0 -0
  1215. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/six-py3.md +0 -0
  1216. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/slice-copy.md +0 -0
  1217. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/slice-to-remove-prefix-or-suffix.md +0 -0
  1218. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/snake-case-type-alias.md +0 -0
  1219. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/snmp-insecure-version.md +0 -0
  1220. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/snmp-weak-cryptography.md +0 -0
  1221. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sorted-min-max.md +0 -0
  1222. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/split-static-string.md +0 -0
  1223. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ssh-no-host-key-verification.md +0 -0
  1224. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ssl-insecure-version.md +0 -0
  1225. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ssl-with-bad-defaults.md +0 -0
  1226. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/ssl-with-no-version.md +0 -0
  1227. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/star-arg-unpacking-after-keyword-arg.md +0 -0
  1228. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/starmap-zip.md +0 -0
  1229. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/start-process-with-a-shell.md +0 -0
  1230. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/start-process-with-no-shell.md +0 -0
  1231. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/start-process-with-partial-path.md +0 -0
  1232. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/static-join-to-f-string.md +0 -0
  1233. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/static-key-dict-comprehension.md +0 -0
  1234. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/stdlib-module-shadowing.md +0 -0
  1235. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/stop-iteration-return.md +0 -0
  1236. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/str-or-repr-defined-in-stub.md +0 -0
  1237. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/string-dot-format-extra-named-arguments.md +0 -0
  1238. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/string-dot-format-extra-positional-arguments.md +0 -0
  1239. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/string-dot-format-invalid-format.md +0 -0
  1240. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/string-dot-format-missing-arguments.md +0 -0
  1241. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/string-dot-format-mixing-automatic.md +0 -0
  1242. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/string-or-bytes-too-long.md +0 -0
  1243. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/strip-with-multi-characters.md +0 -0
  1244. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/stub-body-multiple-statements.md +0 -0
  1245. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/subclass-builtin.md +0 -0
  1246. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/subprocess-popen-preexec-fn.md +0 -0
  1247. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/subprocess-popen-with-shell-equals-true.md +0 -0
  1248. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/subprocess-run-without-check.md +0 -0
  1249. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/subprocess-without-shell-equals-true.md +0 -0
  1250. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/super-call-with-parameters.md +0 -0
  1251. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/super-without-brackets.md +0 -0
  1252. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/superfluous-else-break.md +0 -0
  1253. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/superfluous-else-continue.md +0 -0
  1254. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/superfluous-else-raise.md +0 -0
  1255. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/superfluous-else-return.md +0 -0
  1256. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suppressible-exception.md +0 -0
  1257. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/surrounding-whitespace.md +0 -0
  1258. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-eval-usage.md +0 -0
  1259. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-ftp-lib-usage.md +0 -0
  1260. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-ftplib-import.md +0 -0
  1261. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-httpoxy-import.md +0 -0
  1262. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-insecure-cipher-mode-usage.md +0 -0
  1263. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-insecure-cipher-usage.md +0 -0
  1264. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-insecure-hash-usage.md +0 -0
  1265. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-lxml-import.md +0 -0
  1266. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-mark-safe-usage.md +0 -0
  1267. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-marshal-usage.md +0 -0
  1268. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-mktemp-usage.md +0 -0
  1269. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-non-cryptographic-random-usage.md +0 -0
  1270. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-pickle-import.md +0 -0
  1271. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-pickle-usage.md +0 -0
  1272. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-pycrypto-import.md +0 -0
  1273. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-pyghmi-import.md +0 -0
  1274. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-subprocess-import.md +0 -0
  1275. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-telnet-usage.md +0 -0
  1276. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-telnetlib-import.md +0 -0
  1277. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-unverified-context-usage.md +0 -0
  1278. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-url-open-usage.md +0 -0
  1279. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-element-tree-usage.md +0 -0
  1280. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-etree-import.md +0 -0
  1281. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-expat-builder-usage.md +0 -0
  1282. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-expat-import.md +0 -0
  1283. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-expat-reader-usage.md +0 -0
  1284. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-mini-dom-usage.md +0 -0
  1285. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-minidom-import.md +0 -0
  1286. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-pull-dom-usage.md +0 -0
  1287. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-pulldom-import.md +0 -0
  1288. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-sax-import.md +0 -0
  1289. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xml-sax-usage.md +0 -0
  1290. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xmlc-element-tree-usage.md +0 -0
  1291. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xmle-tree-usage.md +0 -0
  1292. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/suspicious-xmlrpc-import.md +0 -0
  1293. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/syntax-error.md +0 -0
  1294. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-exit-alias.md +0 -0
  1295. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-cmp-str10.md +0 -0
  1296. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-cmp-str3.md +0 -0
  1297. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-info-minor-cmp-int.md +0 -0
  1298. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-info0-eq3.md +0 -0
  1299. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-info1-cmp-int.md +0 -0
  1300. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-slice1.md +0 -0
  1301. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version-slice3.md +0 -0
  1302. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version0.md +0 -0
  1303. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/sys-version2.md +0 -0
  1304. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/t-suffixed-type-alias.md +0 -0
  1305. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tab-after-comma.md +0 -0
  1306. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tab-after-keyword.md +0 -0
  1307. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tab-after-operator.md +0 -0
  1308. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tab-before-keyword.md +0 -0
  1309. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tab-before-operator.md +0 -0
  1310. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tab-indentation.md +0 -0
  1311. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/tarfile-unsafe-members.md +0 -0
  1312. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/timeout-error-alias.md +0 -0
  1313. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-few-spaces-before-inline-comment.md +0 -0
  1314. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-arguments.md +0 -0
  1315. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-blank-lines.md +0 -0
  1316. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-boolean-expressions.md +0 -0
  1317. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-branches.md +0 -0
  1318. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-locals.md +0 -0
  1319. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-nested-blocks.md +0 -0
  1320. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-newlines-at-end-of-file.md +0 -0
  1321. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-positional-arguments.md +0 -0
  1322. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-public-methods.md +0 -0
  1323. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-return-statements.md +0 -0
  1324. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/too-many-statements.md +0 -0
  1325. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/trailing-comma-on-bare-tuple.md +0 -0
  1326. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/trailing-whitespace.md +0 -0
  1327. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/trio-sync-call.md +0 -0
  1328. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/triple-single-quotes.md +0 -0
  1329. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/true-false-comparison.md +0 -0
  1330. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/try-consider-else.md +0 -0
  1331. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/try-except-continue.md +0 -0
  1332. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/try-except-in-loop.md +0 -0
  1333. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/try-except-pass.md +0 -0
  1334. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-alias-without-annotation.md +0 -0
  1335. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-bivariance.md +0 -0
  1336. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-check-without-type-error.md +0 -0
  1337. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-comment-in-stub.md +0 -0
  1338. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-comparison.md +0 -0
  1339. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-name-incorrect-variance.md +0 -0
  1340. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-none-comparison.md +0 -0
  1341. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-of-primitive.md +0 -0
  1342. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/type-param-name-mismatch.md +0 -0
  1343. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/typed-argument-default-in-stub.md +0 -0
  1344. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/typing-only-first-party-import.md +0 -0
  1345. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/typing-only-standard-library-import.md +0 -0
  1346. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/typing-only-third-party-import.md +0 -0
  1347. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/typing-text-str-alias.md +0 -0
  1348. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unaliased-collections-abc-set-import.md +0 -0
  1349. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unannotated-assignment-in-stub.md +0 -0
  1350. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unary-prefix-increment-decrement.md +0 -0
  1351. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unassigned-special-variable-in-stub.md +0 -0
  1352. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/uncapitalized-environment-variables.md +0 -0
  1353. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unconventional-import-alias.md +0 -0
  1354. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undefined-export.md +0 -0
  1355. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undefined-local-with-import-star-usage.md +0 -0
  1356. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undefined-local-with-import-star.md +0 -0
  1357. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undefined-local-with-nested-import-star-usage.md +0 -0
  1358. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undefined-local.md +0 -0
  1359. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undefined-name.md +0 -0
  1360. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/under-indentation.md +0 -0
  1361. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-magic-method.md +0 -0
  1362. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-param.md +0 -0
  1363. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-class.md +0 -0
  1364. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-function.md +0 -0
  1365. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-init.md +0 -0
  1366. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-method.md +0 -0
  1367. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-module.md +0 -0
  1368. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-nested-class.md +0 -0
  1369. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-public-package.md +0 -0
  1370. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/undocumented-warn.md +0 -0
  1371. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unexpected-indentation-comment.md +0 -0
  1372. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unexpected-indentation.md +0 -0
  1373. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unexpected-spaces-around-keyword-parameter-equals.md +0 -0
  1374. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unexpected-special-method-signature.md +0 -0
  1375. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unicode-kind-prefix.md +0 -0
  1376. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unintentional-type-annotation.md +0 -0
  1377. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unix-command-wildcard-injection.md +0 -0
  1378. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-assign.md +0 -0
  1379. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-builtin-import.md +0 -0
  1380. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-call-around-sorted.md +0 -0
  1381. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-cast-to-int.md +0 -0
  1382. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-class-parentheses.md +0 -0
  1383. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-collection-call.md +0 -0
  1384. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-comprehension-in-call.md +0 -0
  1385. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-comprehension.md +0 -0
  1386. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-default-type-args.md +0 -0
  1387. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-dict-comprehension-for-iterable.md +0 -0
  1388. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-dict-index-lookup.md +0 -0
  1389. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-dict-kwargs.md +0 -0
  1390. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-direct-lambda-call.md +0 -0
  1391. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-double-cast-or-process.md +0 -0
  1392. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-dunder-call.md +0 -0
  1393. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-empty-iterable-within-deque-call.md +0 -0
  1394. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-encode-utf8.md +0 -0
  1395. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-enumerate.md +0 -0
  1396. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-escaped-quote.md +0 -0
  1397. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-from-float.md +0 -0
  1398. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-future-import.md +0 -0
  1399. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-generator-dict.md +0 -0
  1400. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-generator-list.md +0 -0
  1401. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-generator-set.md +0 -0
  1402. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-iterable-allocation-for-first-element.md +0 -0
  1403. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-key-check.md +0 -0
  1404. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-lambda.md +0 -0
  1405. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-list-call.md +0 -0
  1406. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-list-cast.md +0 -0
  1407. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-list-comprehension-dict.md +0 -0
  1408. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-list-comprehension-set.md +0 -0
  1409. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-list-index-lookup.md +0 -0
  1410. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-literal-dict.md +0 -0
  1411. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-literal-set.md +0 -0
  1412. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-literal-union.md +0 -0
  1413. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-literal-within-dict-call.md +0 -0
  1414. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-literal-within-list-call.md +0 -0
  1415. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-literal-within-tuple-call.md +0 -0
  1416. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-map.md +0 -0
  1417. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-multiline-docstring.md +0 -0
  1418. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-nested-literal.md +0 -0
  1419. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-paren-on-raise-exception.md +0 -0
  1420. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-placeholder.md +0 -0
  1421. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-range-start.md +0 -0
  1422. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-regular-expression.md +0 -0
  1423. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-return-none.md +0 -0
  1424. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-round.md +0 -0
  1425. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-spread.md +0 -0
  1426. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-subscript-reversal.md +0 -0
  1427. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unnecessary-type-union.md +0 -0
  1428. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unpacked-list-comprehension.md +0 -0
  1429. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unprefixed-type-param.md +0 -0
  1430. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unquoted-type-alias.md +0 -0
  1431. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unraw-re-pattern.md +0 -0
  1432. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unrecognized-platform-check.md +0 -0
  1433. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unrecognized-platform-name.md +0 -0
  1434. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unrecognized-version-info-check.md +0 -0
  1435. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unreliable-callable-check.md +0 -0
  1436. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unsafe-markup-use.md +0 -0
  1437. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unsafe-yaml-load.md +0 -0
  1438. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unsorted-dunder-all.md +0 -0
  1439. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unsorted-dunder-slots.md +0 -0
  1440. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unsorted-imports.md +0 -0
  1441. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unspecified-encoding.md +0 -0
  1442. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unsupported-method-call-on-all.md +0 -0
  1443. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-annotation.md +0 -0
  1444. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-async.md +0 -0
  1445. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-class-method-argument.md +0 -0
  1446. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-function-argument.md +0 -0
  1447. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-import.md +0 -0
  1448. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-lambda-argument.md +0 -0
  1449. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-loop-control-variable.md +0 -0
  1450. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-method-argument.md +0 -0
  1451. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-noqa.md +0 -0
  1452. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-private-protocol.md +0 -0
  1453. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-private-type-alias.md +0 -0
  1454. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-private-type-var.md +0 -0
  1455. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-private-typed-dict.md +0 -0
  1456. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-static-method-argument.md +0 -0
  1457. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-unpacked-variable.md +0 -0
  1458. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/unused-variable.md +0 -0
  1459. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/used-dummy-variable.md +0 -0
  1460. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-class-metaclass-type.md +0 -0
  1461. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-comparison.md +0 -0
  1462. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-contextlib-suppress.md +0 -0
  1463. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-else-on-loop.md +0 -0
  1464. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-exception-statement.md +0 -0
  1465. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-expression.md +0 -0
  1466. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-if-else.md +0 -0
  1467. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-import-alias.md +0 -0
  1468. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-metaclass-type.md +0 -0
  1469. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-object-inheritance.md +0 -0
  1470. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-return.md +0 -0
  1471. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-semicolon.md +0 -0
  1472. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-try-except.md +0 -0
  1473. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/useless-with-lock.md +0 -0
  1474. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/utf8-encoding-declaration.md +0 -0
  1475. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/verbose-decimal-constructor.md +0 -0
  1476. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/verbose-log-message.md +0 -0
  1477. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/verbose-raise.md +0 -0
  1478. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/wait-for-process-in-async-function.md +0 -0
  1479. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/weak-cryptographic-key.md +0 -0
  1480. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/whitespace-after-decorator.md +0 -0
  1481. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/whitespace-after-open-bracket.md +0 -0
  1482. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/whitespace-before-close-bracket.md +0 -0
  1483. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/whitespace-before-parameters.md +0 -0
  1484. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/whitespace-before-punctuation.md +0 -0
  1485. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/write-whole-file.md +0 -0
  1486. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/wrong-tuple-length-version-comparison.md +0 -0
  1487. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/yield-from-in-async-function.md +0 -0
  1488. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/yield-in-for-loop.md +0 -0
  1489. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/yield-in-init.md +0 -0
  1490. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/yield-outside-function.md +0 -0
  1491. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/yoda-conditions.md +0 -0
  1492. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/zip-dict-keys-and-values.md +0 -0
  1493. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/zip-instead-of-pairwise.md +0 -0
  1494. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/rules/zip-without-explicit-strict.md +0 -0
  1495. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/settings.md +0 -0
  1496. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/tutorial.md +0 -0
  1497. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/references/versioning.md +0 -0
  1498. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/scripts/bulk_scrape_ruff.py +0 -0
  1499. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/scripts/discover_ruff_docs.py +0 -0
  1500. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/ruff-dev/scripts/scrape_ruff_docs.py +0 -0
  1501. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/sub-agent-creator/SKILL.md +0 -0
  1502. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/sub-agent-creator/references/agent-creation-prompt.md +0 -0
  1503. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/sub-agent-creator/references/sub-agents-docs.md +0 -0
  1504. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/.pi/skills/sub-agent-creator/scripts/validate_agent.py +0 -0
  1505. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/LICENSE +0 -0
  1506. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/README.md +0 -0
  1507. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/ai_specs/TEST_COVERAGE_SPEC.md +0 -0
  1508. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/README.md +0 -0
  1509. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/advanced.md +0 -0
  1510. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/api_reference.md +0 -0
  1511. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/client.md +0 -0
  1512. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/models.md +0 -0
  1513. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/parity.md +0 -0
  1514. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/docs/protocols.md +0 -0
  1515. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/advanced_tcp.py +0 -0
  1516. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/basic_connection.py +0 -0
  1517. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/discovery.py +0 -0
  1518. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/file_operations.py +0 -0
  1519. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/job_control.py +0 -0
  1520. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/led_control.py +0 -0
  1521. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/status_monitoring.py +0 -0
  1522. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/examples/temperature_control.py +0 -0
  1523. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/__init__.py +0 -0
  1524. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/constants/__init__.py +0 -0
  1525. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/constants/endpoints.py +0 -0
  1526. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/controls/__init__.py +0 -0
  1527. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/filament/__init__.py +0 -0
  1528. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/filament/filament.py +0 -0
  1529. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/misc/__init__.py +0 -0
  1530. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/misc/redaction.py +0 -0
  1531. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/misc/scientific_notation.py +0 -0
  1532. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/misc/temperature.py +0 -0
  1533. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/network/__init__.py +0 -0
  1534. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/network/fnet_code.py +0 -0
  1535. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/api/network/utils.py +0 -0
  1536. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/discovery/__init__.py +0 -0
  1537. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/discovery/discovery.py +0 -0
  1538. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/models/__init__.py +0 -0
  1539. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/__init__.py +0 -0
  1540. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/a3_client.py +0 -0
  1541. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/a4_client.py +0 -0
  1542. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/ff_client.py +0 -0
  1543. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/gcode/__init__.py +0 -0
  1544. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/gcode/a3_gcode_controller.py +0 -0
  1545. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/gcode/gcode_controller.py +0 -0
  1546. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/gcode/gcodes.py +0 -0
  1547. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/__init__.py +0 -0
  1548. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/endstop_status.py +0 -0
  1549. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/location_info.py +0 -0
  1550. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/print_status.py +0 -0
  1551. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/printer_info.py +0 -0
  1552. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/temp_info.py +0 -0
  1553. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/parsers/thumbnail_info.py +0 -0
  1554. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/flashforge/tcp/tcp_client.py +0 -0
  1555. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/__init__.py +0 -0
  1556. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/conftest.py +0 -0
  1557. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/fixtures/printer_responses.py +0 -0
  1558. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/printer_config.py +0 -0
  1559. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/run_tests.py +0 -0
  1560. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_5m_pro_live_integration.py +0 -0
  1561. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_a3_client.py +0 -0
  1562. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_a4_client.py +0 -0
  1563. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_ad5x_job_control.py +0 -0
  1564. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_ad5x_live_integration.py +0 -0
  1565. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_ad5x_models.py +0 -0
  1566. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_additional_parsers.py +0 -0
  1567. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_client.py +0 -0
  1568. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_control.py +0 -0
  1569. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_creator5_palette.py +0 -0
  1570. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_discovery.py +0 -0
  1571. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_files.py +0 -0
  1572. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_http_only_guard.py +0 -0
  1573. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_info.py +0 -0
  1574. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_job_control.py +0 -0
  1575. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_logging.py +0 -0
  1576. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_network_utils.py +0 -0
  1577. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_parsers.py +0 -0
  1578. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_response_leniency.py +0 -0
  1579. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_tcp_client.py +0 -0
  1580. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_temp_control.py +0 -0
  1581. {flashforge_python_api-1.3.5 → flashforge_python_api-1.5.0}/tests/test_utility_classes.py +0 -0
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ## [1.5.0] - 2026-09-26
11
+
12
+ ### Added
13
+
14
+ - **`Creator5UploadParams.material_mappings`.** The Creator 5 firmware reads a base64 `materialMappings` upload header, the same format as the AD5X, and applies it when the upload starts the print (confirmed by firmware analysis of 1.9.6 and 1.9.8, Creator 5 and Creator 5 Pro). `upload_file_creator5` now sends the header when `start_print` is true and the mappings are valid. With `start_print` false the mappings are not sent and a warning is logged: the firmware keeps upload mappings in memory until the next print ends, so they would apply to a later, unrelated print. The recommended flow is unchanged: upload without starting, then call `start_creator5_job` with the mappings.
15
+
16
+ ### Changed
17
+
18
+ - **Creator 5 documentation corrected.** The firmware only logs `useMatlStation` and `gcodeToolCnt` on upload. `/printGcode` applies mappings to any file on the printer, not only the last upload. Without mappings, each tool prints from the slot with the slicer's filament number (filament 1 prints from slot 1), whatever is loaded there, so send a mapping for every tool, including a single-tool print. Mappings take effect only for a `.3mf` file.
19
+
20
+ ### Fixed
21
+
22
+ - **Concurrent commands no longer interleave on the printer's HTTP API.** The Python port had no serialization on its command paths, so two commands sent at the same moment (say a light toggle racing a pause) could overlap in flight, and the printer — which handles one command at a time — could drop or mis-acknowledge one. Every command-submission POST (`/control`, `/product`, `/printGcode`) now holds one FIFO lock, so commands run one at a time, in the order callers sent them. Uploads (`/uploadGcode`) and read/poll requests (`/detail`, `/gcodeList`, `/gcodeThumb`, camera probes) stay outside the lock on purpose: an upload can run for minutes, and a pause or stop must never queue behind one. A command sent after a failing one still goes through; the lock releases on error. Matches the parallel fix in `ff-5mp-api-ts`. No public API changed.
23
+
24
+ ## [1.4.0] - 2026-08-10
25
+
26
+ ### Fixed
27
+
28
+ - **`completion_time` no longer recedes while a print is paused.** It was derived as `datetime.now() + estimated_time` on every parse, which is only stable while the firmware is counting `estimatedTime` down. It isn't: the field freezes the moment the print stops advancing, so with the second term fixed and the first still moving, the derived timestamp stepped forward one minute per minute — after an hour of a clog pause it claimed the print would finish an hour later than it had when the pause began, and it never stopped receding. `completion_time` is now `None` unless `machine_state` is `PRINTING` — `HEATING` is excluded for the same reason as the paused states, since the pre-print warmup does not advance the job either and drifts identically, just for minutes rather than hours. Found while checking whether the Creator 5 Pro clog fix in 1.3.5 left the ETA sensible; the same derivation exists in `ff-5mp-api-ts` and in four display sites across FlashForgeUI-Electron and FlashForgeWebUI, all fixed alongside. It originates in the C# `ff-5mp-api` (`MachineInfo.cs:210`), which every port inherited it from.
29
+
30
+ ### Changed
31
+
32
+ - **BREAKING: `FFMachineInfo.completion_time` is now `datetime | None`** (was `datetime`, defaulting to `datetime.now()`). Consumers that read it without a `None` check need one. `print_eta` and `estimated_time` are unchanged and stay correct in every state — the remaining *duration* was never wrong, only its conversion to an absolute timestamp. Prefer them where a duration will do.
33
+
8
34
  ## [1.3.5] - 2026-08-08
9
35
 
10
36
  ### Fixed
@@ -235,7 +261,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
235
261
  - Type hints for all public APIs
236
262
  - Inline code documentation
237
263
 
238
- [Unreleased]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.3...HEAD
264
+ [Unreleased]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.4.0...HEAD
265
+ [1.4.0]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.5...v1.4.0
266
+ [1.3.5]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.4...v1.3.5
267
+ [1.3.4]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.3...v1.3.4
239
268
  [1.3.3]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.2...v1.3.3
240
269
  [1.3.2]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.1...v1.3.2
241
270
  [1.3.1]: https://github.com/GhostTypes/ff-5mp-api-py/compare/v1.3.0...v1.3.1
@@ -207,7 +207,8 @@ twine check dist/*
207
207
  ```
208
208
 
209
209
  **Version Management**:
210
- - Current version: **1.3.3** (as of 2026-07-26)
210
+ - Current version: **1.4.0** (as of 2026-08-10)
211
+ - Two files carry the version and both must be bumped together: `pyproject.toml` (`version = `) and `flashforge/__init__.py` (`__version__ = `). The publish workflow validates only the first, so a mismatched `__version__` ships silently.
211
212
  - Package name: `flashforge-python-api`
212
213
  - PyPI: https://pypi.org/project/flashforge-python-api/
213
214
  - Build system: Hatchling (defined in `pyproject.toml`)
@@ -312,6 +313,20 @@ TCP `M115` remains available for older printers that actually serve it, and its
312
313
 
313
314
  > Known gap: `client.initialize()` → `init_control()` (`client.py:262`) and `get_temperatures()` (`client.py:531`) call the TCP client unguarded and would hang on a Creator 5. Neither is used by `ff-5mp-hass`. Gate them before calling either from new code.
314
315
 
316
+ ### Derived Timestamps Are Gated on an Advancing Print
317
+
318
+ `_ADVANCING_STATES` in `api/controls/info.py` contains `MachineState.PRINTING` and nothing else. `FFMachineInfo.completion_time` is `datetime | None` (nullable as of 1.4.0) and is derived only inside that set.
319
+
320
+ `datetime.now() + estimated_time` only holds still while the firmware counts `estimated_time` down. It freezes that field the moment the print stops advancing, so with one term fixed and the clock still moving the timestamp walks forward a minute per minute — after an hour of a clog pause it claimed the print would finish an hour later than it had when the pause began, and it never stopped receding. **`HEATING` is deliberately excluded**: the pre-print warmup does not advance the job either and drifts identically, just for minutes rather than hours. Do not widen this set to "fix" a `None` during a pause — the `None` is the fix.
321
+
322
+ `print_eta` and `estimated_time` are ungated and stay correct in every state; the remaining *duration* was never wrong, only its conversion to an absolute timestamp. Prefer them where a duration will do. The bad derivation originates in the C# `ff-5mp-api` (`MachineInfo.cs:210`) that every port inherited; the same gate now exists in `ff-5mp-api-ts`, `ff-5mp-hass`, FlashForgeUI-Electron, and FlashForgeWebUI.
323
+
324
+ ### Status Mapping: Reuse an Existing MachineState, Don't Add One
325
+
326
+ Firmware sends statuses the documentation does not list. `"pause"` (Creator 5 Pro, firmware 1.9.4 — not the documented `"paused"`) maps to `PAUSED`, and `"downloading"` maps to `BUSY`, both added in 1.3.5. The `"pause"` case matters disproportionately because the printer pauses *itself* on a detected clog, so an unmapped value blanked the state at exactly the moment the user needed to know why the print stopped.
327
+
328
+ **Map a new status onto an existing `MachineState` member rather than adding one.** A consumer that pins the enum to a fixed list breaks when a member appears; reusing one cannot break anyone. (`ff-5mp-hass` is not such a consumer — its `device_class=ENUM` sensor derives `options` from `MachineState` itself — but other downstreams are.) A dedicated `DOWNLOADING` state is a feature discussion, not a patch-release bugfix. Keep `"paused"` mapped alongside `"pause"`: firmware reporting one is no reason to drop the other.
329
+
315
330
  ### Error Handling
316
331
  - HTTP errors: Wrapped in aiohttp exceptions
317
332
  - TCP errors: Socket timeouts, connection refused
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: flashforge-python-api
3
- Version: 1.3.5
3
+ Version: 1.5.0
4
4
  Summary: A comprehensive Python library for controlling FlashForge 3D printers
5
5
  Project-URL: Homepage, https://github.com/GhostTypes/ff-5mp-api-py
6
6
  Project-URL: Documentation, https://github.com/GhostTypes/ff-5mp-api-py#readme
@@ -128,7 +128,7 @@ from .tcp import (
128
128
  )
129
129
 
130
130
  FiveMClient = FlashForgeClient
131
- __version__ = "1.3.5"
131
+ __version__ = "1.5.0"
132
132
  __author__ = "FlashForge Python API Contributors"
133
133
  __email__ = "notghosttypes@gmail.com"
134
134
  __description__ = "Python library for controlling FlashForge 3D printers"
@@ -11,5 +11,5 @@ class Commands:
11
11
  TEMP_CONTROL_CMD = "temperatureCtl_cmd"
12
12
  # AD5X + Creator 5 material-station slot metadata (name + color). Filament
13
13
  # load/unload (`ms_cmd`) stays AD5X-only — the Creator 5 firmware has no
14
- # `ms_cmd` (confirmed via Ghidra RE).
14
+ # `ms_cmd` (verified in the firmware).
15
15
  MATERIAL_STATION_CONFIG_CMD = "msConfig_cmd"
@@ -237,8 +237,8 @@ class Control:
237
237
  This information is shown on the printer UI and used for print validation; it
238
238
  does not move any filament. Available on the AD5X and the Creator 5 / Creator 5 Pro.
239
239
 
240
- The ``msConfig_cmd`` handler is firmware-confirmed present on the Creator 5
241
- (Ghidra RE of ``firmwareExe`` 1.9.2). The Creator 5 has no removable IFS; it
240
+ The ``msConfig_cmd`` handler is confirmed present on the Creator 5
241
+ (verified in firmware 1.9.2). The Creator 5 has no removable IFS; it
242
242
  surfaces its 4 tool heads as the 4 "slots", so this sets per-tool material
243
243
  metadata. Both models share the same ``OrcaServer`` command path and wire
244
244
  format. Note that **filament load/unload (``slotAction`` / ``ms_cmd``)
@@ -303,24 +303,21 @@ class Control:
303
303
  logger.debug("Sending control command %s with args %s", command, args)
304
304
 
305
305
  try:
306
- await self.client.is_http_client_busy()
307
-
308
306
  session = await self.client.get_http_session()
309
- async with session.post(
310
- self.client.get_endpoint(Endpoints.CONTROL),
311
- json=payload,
312
- headers={"Content-Type": "application/json"},
313
- ) as response:
314
- data = await json_from_response(response)
315
- logger.debug("Control command %s reply: %s", command, data)
307
+ async with self.client.command_lock:
308
+ async with session.post(
309
+ self.client.get_endpoint(Endpoints.CONTROL),
310
+ json=payload,
311
+ headers={"Content-Type": "application/json"},
312
+ ) as response:
313
+ data = await json_from_response(response)
314
+ logger.debug("Control command %s reply: %s", command, data)
316
315
 
317
- return NetworkUtils.is_ok(data)
316
+ return NetworkUtils.is_ok(data)
318
317
 
319
318
  except Exception as e:
320
319
  logger.warning("Error in send_control_command (%s): %s", command, e)
321
320
  return False
322
- finally:
323
- self.client.release_http_client()
324
321
 
325
322
  async def send_job_control_cmd(self, command: str) -> bool:
326
323
  """
@@ -4,8 +4,8 @@ palette and perceptual nearest-color snapping.
4
4
 
5
5
  The Creator 5 ``msConfig_cmd`` only renders a color icon when the ``rgb`` field is
6
6
  an EXACT, case-sensitive, byte-for-byte match against one of the firmware's 24
7
- built-in palette strings (compared via ``std::operator==`` in ``firmwareExe``
8
- 1.9.2). A non-match leaves the slot's color index at 0 (White). These values
7
+ built-in palette strings (verified in firmware 1.9.2). A non-match leaves the
8
+ slot's color index at 0 (White). These values
9
9
  DIFFER from the AD5X palette (e.g. Blue is ``#4CAAF8`` here vs ``#45A8F9`` on the
10
10
  AD5X), so callers must snap against THIS list specifically.
11
11
 
@@ -43,7 +43,7 @@ class Creator5PaletteColor:
43
43
  """Wire value sent to the printer, always uppercase ``#RRGGBB``."""
44
44
 
45
45
 
46
- #: The firmware's 24-entry UI palette (firmwareExe 1.9.2, Ghidra-confirmed).
46
+ #: The firmware's 24-entry UI palette (verified in firmware 1.9.2).
47
47
  #: Index 0 (White) is also what the firmware falls back to on a no-match.
48
48
  CREATOR5_PALETTE: tuple[Creator5PaletteColor, ...] = (
49
49
  Creator5PaletteColor(0, "White", "#FFFFFF"),
@@ -78,10 +78,9 @@ class Files:
78
78
 
79
79
  The Creator 5 is the surprise there, and it is firmware, not a parsing gap:
80
80
  it is a newer printer than the AD5X but reports less (confirmed against a
81
- Creator 5 Pro, 2026-08-05). Do not describe this method as "AD5X and newer" -
82
- that phrasing cost a downstream integration three releases of chasing a bug
83
- that was never in the code. Callers that need per-tool data on a Creator 5
84
- must parse the 3mf themselves at upload time.
81
+ live Creator 5 Pro, 2026-08-05). Do not describe this method as "AD5X and
82
+ newer" - only the AD5X answers with `gcodeListDetail`. Callers that need
83
+ per-tool data on a Creator 5 must parse the 3mf themselves at upload time.
85
84
 
86
85
  Returns:
87
86
  A list of FFGcodeFileEntry objects. Returns an empty list if the request fails or an error occurs.
@@ -46,6 +46,19 @@ PID_MODEL_NAMES: dict[int, str] = {
46
46
  }
47
47
 
48
48
 
49
+ # The one state in which the firmware actually counts `estimatedTime` down.
50
+ # Outside it the field freezes at its last value while the wall clock keeps
51
+ # moving, so `now() + estimatedTime` walks forward one minute per minute instead
52
+ # of holding still - a paused print appears to recede forever. The duration
53
+ # stays correct throughout; only its conversion to an absolute timestamp is
54
+ # invalid, which is why `print_eta` is ungated and `completion_time` is not.
55
+ #
56
+ # HEATING is deliberately excluded. The pre-print warmup does not advance the
57
+ # job either, so the same drift applies - it just lasts minutes rather than
58
+ # hours, which is why it is easy to miss.
59
+ _ADVANCING_STATES = frozenset({MachineState.PRINTING})
60
+
61
+
49
62
  class MachineInfoParser:
50
63
  """
51
64
  Transforms printer detail data from the API response format into a structured FFMachineInfo object.
@@ -75,7 +88,14 @@ class MachineInfoParser:
75
88
  formatted_run_time = MachineInfoParser._format_time_from_seconds(
76
89
  getattr(detail, "print_duration", 0) or 0
77
90
  )
78
- completion_time = datetime.now() + timedelta(seconds=estimated_time)
91
+ machine_state = MachineInfoParser._get_machine_state(
92
+ getattr(detail, "status", "") or ""
93
+ )
94
+ completion_time = (
95
+ datetime.now() + timedelta(seconds=estimated_time)
96
+ if machine_state in _ADVANCING_STATES
97
+ else None
98
+ )
79
99
 
80
100
  total_minutes = getattr(detail, "cumulative_print_time", 0) or 0
81
101
  hours = total_minutes // 60
@@ -255,9 +275,7 @@ class MachineInfoParser:
255
275
  print_speed_adjust=getattr(detail, "print_speed_adjust", 0) or 0,
256
276
  filament_type=getattr(detail, "right_filament_type", "") or "",
257
277
  # Machine state
258
- machine_state=MachineInfoParser._get_machine_state(
259
- getattr(detail, "status", "") or ""
260
- ),
278
+ machine_state=machine_state,
261
279
  status=getattr(detail, "status", "") or "",
262
280
  total_print_layers=getattr(detail, "target_print_layer", 0) or 0,
263
281
  tvoc=getattr(detail, "tvoc", 0) or 0,
@@ -386,7 +404,7 @@ class Info:
386
404
  if machine_info is None:
387
405
  # We validated the payload but could not build our own model from
388
406
  # it - that is a bug on our side, not an unreachable printer, and
389
- # reporting it as the latter is what issue #18 was about.
407
+ # reporting it as the latter is what ff-5mp-hass#18 was about.
390
408
  raise FlashForgeResponseError(
391
409
  "The /detail payload was read but could not be converted into machine info",
392
410
  endpoint=Endpoints.DETAIL,
@@ -444,7 +462,7 @@ class Info:
444
462
  This exists so callers can inspect identity fields - above all `pid` -
445
463
  without first having to successfully validate the ~50 unrelated fields
446
464
  in the payload. A supported printer must never be rejected because of a
447
- field that has nothing to do with whether it is supported (issue #18).
465
+ field that has nothing to do with whether it is supported (ff-5mp-hass#18).
448
466
 
449
467
  Returns:
450
468
  The decoded response body, or None if the printer could not be
@@ -253,16 +253,17 @@ class JobControl:
253
253
 
254
254
  try:
255
255
  session = await self.client.get_http_session()
256
- async with session.post(
257
- self.client.get_endpoint(Endpoints.GCODE_PRINT),
258
- json=payload,
259
- headers={"Content-Type": "application/json"},
260
- ) as response:
261
- if response.status != 200:
262
- return False
256
+ async with self.client.command_lock:
257
+ async with session.post(
258
+ self.client.get_endpoint(Endpoints.GCODE_PRINT),
259
+ json=payload,
260
+ headers={"Content-Type": "application/json"},
261
+ ) as response:
262
+ if response.status != 200:
263
+ return False
263
264
 
264
- result = await json_from_response(response)
265
- return NetworkUtils.is_ok(result)
265
+ result = await json_from_response(response)
266
+ return NetworkUtils.is_ok(result)
266
267
 
267
268
  except Exception as error:
268
269
  logger.warning("print_local_file error: %s", error)
@@ -422,16 +423,17 @@ class JobControl:
422
423
 
423
424
  try:
424
425
  session = await self.client.get_http_session()
425
- async with session.post(
426
- self.client.get_endpoint(Endpoints.GCODE_PRINT),
427
- json=payload,
428
- headers={"Content-Type": "application/json"},
429
- ) as response:
430
- if response.status != 200:
431
- return False
426
+ async with self.client.command_lock:
427
+ async with session.post(
428
+ self.client.get_endpoint(Endpoints.GCODE_PRINT),
429
+ json=payload,
430
+ headers={"Content-Type": "application/json"},
431
+ ) as response:
432
+ if response.status != 200:
433
+ return False
432
434
 
433
- result = await json_from_response(response)
434
- return NetworkUtils.is_ok(result)
435
+ result = await json_from_response(response)
436
+ return NetworkUtils.is_ok(result)
435
437
 
436
438
  except Exception as error:
437
439
  logger.warning("AD5X multi-color job error: %s", error)
@@ -474,40 +476,59 @@ class JobControl:
474
476
 
475
477
  try:
476
478
  session = await self.client.get_http_session()
477
- async with session.post(
478
- self.client.get_endpoint(Endpoints.GCODE_PRINT),
479
- json=payload,
480
- headers={"Content-Type": "application/json"},
481
- ) as response:
482
- if response.status != 200:
483
- return False
479
+ async with self.client.command_lock:
480
+ async with session.post(
481
+ self.client.get_endpoint(Endpoints.GCODE_PRINT),
482
+ json=payload,
483
+ headers={"Content-Type": "application/json"},
484
+ ) as response:
485
+ if response.status != 200:
486
+ return False
484
487
 
485
- result = await json_from_response(response)
486
- return NetworkUtils.is_ok(result)
488
+ result = await json_from_response(response)
489
+ return NetworkUtils.is_ok(result)
487
490
 
488
491
  except Exception as error:
489
492
  logger.warning("AD5X single-color job error: %s", error)
490
493
  raise error
491
494
 
492
495
  # --- Creator 5 / Creator 5 Pro ---
493
- # The Creator 5 splits the material-station workflow across two requests,
494
- # unlike the AD5X (which maps materials at upload time). On the C5:
495
- # 1. Upload the file (POST /uploadGcode). The firmware reads `useMatlStation`
496
- # and `gcodeToolCnt` here to register the file as a multi-tool job. There
497
- # is NO `firstLayerInspection` header (the field doesn't exist on the
498
- # C5), and the booleans are checked as the string "true"/"false".
499
- # 2. Start the print (POST /printGcode) with the per-tool
500
- # `materialMappings`. See start_creator5_job.
496
+ # The Creator 5 firmware applies material mappings in two places:
497
+ # - POST /printGcode reads `materialMappings` for any file already on the
498
+ # printer (see start_creator5_job). This is the recommended path: upload
499
+ # with start_print=False, then start with the mappings.
500
+ # - POST /uploadGcode also reads a base64 `materialMappings` header, the
501
+ # same format as the AD5X, and applies it when `printNow` is true.
502
+ # The firmware only logs `useMatlStation` and `gcodeToolCnt` on upload; they
503
+ # have no effect. There is NO `firstLayerInspection` header (the field doesn't
504
+ # exist on the C5), and the booleans are checked as the string "true"/"false".
505
+ #
506
+ # Mappings only take effect for a .3mf file. Without mappings, tool N prints
507
+ # from the slot with the slicer's filament number (filament 1 -> slot 1),
508
+ # whatever is loaded there. Send a mapping for every tool, including a
509
+ # single-tool print.
501
510
 
502
511
  async def upload_file_creator5(self, params: Creator5UploadParams) -> bool:
503
512
  """
504
513
  Uploads a file (.gcode or .3mf) to a Creator 5 / Creator 5 Pro via
505
514
  ``POST /uploadGcode``, with the C5-specific material-station headers.
506
515
 
507
- Unlike :meth:`upload_file_ad5x` this sends no ``firstLayerInspection``
508
- header (the C5 has no such field) and no ``materialMappings`` header (the
509
- C5 maps materials at print-start, not upload). Booleans are sent as the
510
- string "true"/"false".
516
+ Recommended flow: upload with ``start_print=False``, then call
517
+ :meth:`start_creator5_job` with a mapping for every tool. To start in one
518
+ request instead, pass ``material_mappings`` with ``start_print=True``: the
519
+ firmware reads them from a base64 ``materialMappings`` header, like the
520
+ AD5X.
521
+
522
+ ``material_mappings`` is sent only when ``start_print`` is true. The
523
+ firmware keeps upload mappings in memory until the next print ends, so
524
+ mappings on an upload that does not start would apply to a later,
525
+ unrelated print.
526
+
527
+ ``useMatlStation`` and ``gcodeToolCnt`` are sent for parity with
528
+ FlashForge's own clients; the firmware only logs them. Unlike
529
+ :meth:`upload_file_ad5x` this sends no ``firstLayerInspection`` header
530
+ (the C5 has no such field). Booleans are sent as the string
531
+ "true"/"false".
511
532
 
512
533
  Args:
513
534
  params: Creator 5 upload parameters.
@@ -537,8 +558,7 @@ class JobControl:
537
558
 
538
559
  try:
539
560
  # C5 upload headers. No firstLayerInspection (absent on the C5);
540
- # booleans sent as "true"/"false" (firmware checks for "true"); no
541
- # materialMappings header (C5 maps at print-start, not upload).
561
+ # booleans sent as "true"/"false" (firmware checks for "true").
542
562
  custom_headers = {
543
563
  "serialNumber": self.client.serial_number,
544
564
  "checkCode": self.client.check_code,
@@ -552,6 +572,20 @@ class JobControl:
552
572
  "Expect": "100-continue",
553
573
  }
554
574
 
575
+ mappings = params.material_mappings or []
576
+ if mappings:
577
+ if not params.start_print:
578
+ logger.warning(
579
+ "upload_file_creator5: material_mappings ignored because start_print "
580
+ "is False; pass them to start_creator5_job instead."
581
+ )
582
+ else:
583
+ if not self._validate_creator5_material_mappings(mappings):
584
+ return False
585
+ custom_headers["materialMappings"] = self._encode_material_mappings_to_base64(
586
+ mappings
587
+ )
588
+
555
589
  logger.debug("Creator 5 upload request headers: %s", redact_mapping(custom_headers))
556
590
 
557
591
  # Create multipart form data
@@ -600,13 +634,17 @@ class JobControl:
600
634
  """
601
635
  Starts a local print on a Creator 5 / Creator 5 Pro via ``POST /printGcode``.
602
636
 
603
- This is the Creator 5's print-start material-matching command (distinct
604
- from the AD5X, which maps materials at upload time). The file must already
605
- be on the printer. Provide ``material_mappings`` for a multi-tool print, or
606
- omit them for a single-tool print. Sends only the fields the Creator 5
607
- firmware reads: NO ``useMatlStation`` / ``gcodeToolCnt`` (those live on the
608
- upload) and NO ``firstLayerInspection`` (doesn't exist on the C5).
609
- ``flowCalibration`` and ``timeLapseVideo`` are always present (default False).
637
+ This is the Creator 5's print-start material-matching command. The file
638
+ must already be on the printer; it can be a file uploaded long before, not
639
+ only the last upload. Sends only the fields the Creator 5 firmware reads:
640
+ NO ``useMatlStation`` / ``gcodeToolCnt`` and NO ``firstLayerInspection``
641
+ (doesn't exist on the C5). ``flowCalibration`` and ``timeLapseVideo`` are
642
+ always present (default False).
643
+
644
+ Provide a mapping for every tool, including a single-tool print. Without
645
+ mappings the firmware prints each tool from the slot with the slicer's
646
+ filament number (filament 1 -> slot 1), whatever is loaded there.
647
+ Mappings take effect only for a .3mf file.
610
648
 
611
649
  Args:
612
650
  params: File name, leveling flag, and optional flags / material mappings.
@@ -653,16 +691,17 @@ class JobControl:
653
691
 
654
692
  try:
655
693
  session = await self.client.get_http_session()
656
- async with session.post(
657
- self.client.get_endpoint(Endpoints.GCODE_PRINT),
658
- json=payload,
659
- headers={"Content-Type": "application/json"},
660
- ) as response:
661
- if response.status != 200:
662
- return False
694
+ async with self.client.command_lock:
695
+ async with session.post(
696
+ self.client.get_endpoint(Endpoints.GCODE_PRINT),
697
+ json=payload,
698
+ headers={"Content-Type": "application/json"},
699
+ ) as response:
700
+ if response.status != 200:
701
+ return False
663
702
 
664
- result = await json_from_response(response)
665
- return NetworkUtils.is_ok(result)
703
+ result = await json_from_response(response)
704
+ return NetworkUtils.is_ok(result)
666
705
 
667
706
  except Exception as error:
668
707
  logger.warning("Creator 5 job error: %s", error)
@@ -27,12 +27,12 @@ TEMP_OFF = -100
27
27
  # Value that turns a tool/nozzle OFF inside the `nozzles` array. Unlike the scalar
28
28
  # heater fields (which accept TEMP_OFF = -100), the Creator 5 firmware's
29
29
  # per-nozzle parser only treats a literal 0 as "off" — it ignores -100 in the
30
- # `nozzles` array and the tool keeps heating. (Firmware-confirmed via tester
31
- # report; this is the v1.6.1 nozzle-off bugfix.)
30
+ # `nozzles` array and the tool keeps heating (observed on live hardware;
31
+ # this is the v1.6.1 nozzle-off bugfix).
32
32
  NOZZLE_OFF = 0
33
33
  # Number of tool/nozzle entries the Creator 5 firmware requires in the
34
34
  # `nozzles` array. The firmware ignores the array unless its length is exactly
35
- # this (confirmed via Ghidra: `size() == 4` check in the temp parser).
35
+ # this (verified in the firmware).
36
36
  NOZZLE_COUNT = 4
37
37
 
38
38
 
@@ -188,7 +188,7 @@ class TempControl:
188
188
  """
189
189
  if self.client.http_only:
190
190
  # Creator 5 tools are driven ONLY via the `nozzles` array — the
191
- # firmware's doTemperatureControl handler never reads
191
+ # firmware's temperature-control handler never reads
192
192
  # rightNozzle/leftNozzle. Target the primary tool (T0): the active
193
193
  # tool isn't reliably known over HTTP, so callers that need a
194
194
  # specific tool should use set_tool_temp(index, temp).
@@ -75,6 +75,15 @@ class FlashForgeClient:
75
75
  self._http_client_event = asyncio.Event()
76
76
  self._http_client_event.set() # Not busy initially
77
77
 
78
+ # FIFO mutex for command submission. asyncio.Lock hands the lock to
79
+ # waiters in the order they asked for it. So command POSTs run one at
80
+ # a time, in submission order. Scope: command POSTs only (/control,
81
+ # /product, /printGcode). File uploads (/uploadGcode) and read/poll
82
+ # POSTs (/detail, /gcodeList, /gcodeThumb) stay outside the lock. An
83
+ # upload can run for minutes; pause and stop must never queue behind
84
+ # one.
85
+ self._command_lock = asyncio.Lock()
86
+
78
87
  # TCP client setup
79
88
  tcp_options = None
80
89
  if options and options.tcp_port is not None:
@@ -202,6 +211,19 @@ class FlashForgeClient:
202
211
  self._http_session = aiohttp.ClientSession(timeout=timeout, headers={"Accept": "*/*"})
203
212
  return self._http_session
204
213
 
214
+ @property
215
+ def command_lock(self) -> asyncio.Lock:
216
+ """
217
+ The FIFO lock that serializes command-submission HTTP POSTs.
218
+
219
+ Command POSTs (/control, /product, /printGcode) hold this lock while
220
+ the request is in flight. asyncio.Lock serves waiters in arrival order,
221
+ so concurrent commands run one at a time, first come first served.
222
+ Uploads and read/poll requests never take this lock. So a long upload
223
+ cannot delay a pause or stop command.
224
+ """
225
+ return self._command_lock
226
+
205
227
  async def initialize(self) -> bool:
206
228
  """
207
229
  Initializes the FlashForgeClient and verifies the connection to the printer.
@@ -442,43 +464,42 @@ class FlashForgeClient:
442
464
  """
443
465
  Sends a product command to the printer to retrieve control states.
444
466
 
445
- This method sets the http_client_busy flag while the request is in progress.
467
+ This method holds the command lock while the request is in progress.
446
468
 
447
469
  Returns:
448
470
  True if the product command is sent successfully and valid data is received,
449
471
  False otherwise
450
472
  """
451
- self._http_client_busy = True
452
-
453
473
  payload = {"serialNumber": self.serial_number, "checkCode": self.check_code}
454
474
 
455
475
  try:
456
476
  session = await self._ensure_http_session()
457
- async with session.post(
458
- self.get_endpoint(Endpoints.PRODUCT),
459
- json=payload,
460
- headers={"Content-Type": "application/json"},
461
- ) as response:
462
- if response.status != 200:
463
- return False
464
-
465
- data = await json_from_response(response)
466
-
467
- # Validate response structure
468
- if not NetworkUtils.is_ok(data):
469
- return False
470
-
471
- # Parse product response and set control states
472
- product_response = ProductResponse(**data)
473
- if product_response and product_response.product:
474
- product = product_response.product
475
- self.product_info = product
476
- self._detected_led_control = product.lightCtrlState != 0
477
- self._detected_filtration_control = not (
478
- product.internalFanCtrlState == 0 or product.externalFanCtrlState == 0
479
- )
480
- self._apply_feature_overrides()
481
- return True
477
+ async with self._command_lock:
478
+ async with session.post(
479
+ self.get_endpoint(Endpoints.PRODUCT),
480
+ json=payload,
481
+ headers={"Content-Type": "application/json"},
482
+ ) as response:
483
+ if response.status != 200:
484
+ return False
485
+
486
+ data = await json_from_response(response)
487
+
488
+ # Validate response structure
489
+ if not NetworkUtils.is_ok(data):
490
+ return False
491
+
492
+ # Parse product response and set control states
493
+ product_response = ProductResponse(**data)
494
+ if product_response and product_response.product:
495
+ product = product_response.product
496
+ self.product_info = product
497
+ self._detected_led_control = product.lightCtrlState != 0
498
+ self._detected_filtration_control = not (
499
+ product.internalFanCtrlState == 0 or product.externalFanCtrlState == 0
500
+ )
501
+ self._apply_feature_overrides()
502
+ return True
482
503
 
483
504
  except ValidationError as error:
484
505
  # Distinct from a rejected check code, and it must not read as one:
@@ -496,8 +517,6 @@ class FlashForgeClient:
496
517
  except Exception as error:
497
518
  logger.warning("Error in send_product_command: %s", error)
498
519
  return False
499
- finally:
500
- self._http_client_busy = False
501
520
 
502
521
  return False
503
522
 
@@ -15,7 +15,7 @@ class FlashForgeResponseError(FlashForgeError):
15
15
 
16
16
  This is deliberately distinct from a ``None`` return, which every HTTP
17
17
  control method uses for "could not reach the printer / the printer refused
18
- us". Collapsing the two is what made issue #18 take three releases to
18
+ us". Collapsing the two is what made ff-5mp-hass#18 take three releases to
19
19
  diagnose: a Creator 5 reporting ``chamberTemp: -108`` (the firmware's "no
20
20
  chamber sensor" sentinel) surfaced in Home Assistant as ``cannot_connect``,
21
21
  pointing the user at their network for a schema problem.