flashforge-python-api 1.0.2__tar.gz → 1.2.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 (1287) hide show
  1. flashforge_python_api-1.2.0/.agent/rules/general-rules.md +5 -0
  2. flashforge_python_api-1.2.0/.claude/agents/mypy-specialist.md +121 -0
  3. flashforge_python_api-1.2.0/.claude/agents/pydantic-specialist.md +160 -0
  4. flashforge_python_api-1.2.0/.claude/agents/ruff-specialist.md +88 -0
  5. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/settings.local.json +7 -1
  6. flashforge_python_api-1.2.0/.claude/skills/mypy/SKILL.md +272 -0
  7. flashforge_python_api-1.2.0/.claude/skills/mypy/references/additional_features.md +445 -0
  8. flashforge_python_api-1.2.0/.claude/skills/mypy/references/builtin_types.md +84 -0
  9. flashforge_python_api-1.2.0/.claude/skills/mypy/references/changelog.md +4272 -0
  10. flashforge_python_api-1.2.0/.claude/skills/mypy/references/cheat_sheet_py3.md +385 -0
  11. flashforge_python_api-1.2.0/.claude/skills/mypy/references/class_basics.md +391 -0
  12. flashforge_python_api-1.2.0/.claude/skills/mypy/references/command_line.md +1126 -0
  13. flashforge_python_api-1.2.0/.claude/skills/mypy/references/common_issues.md +815 -0
  14. flashforge_python_api-1.2.0/.claude/skills/mypy/references/config_file.md +1337 -0
  15. flashforge_python_api-1.2.0/.claude/skills/mypy/references/duck_type_compatibility.md +32 -0
  16. flashforge_python_api-1.2.0/.claude/skills/mypy/references/dynamic_typing.md +127 -0
  17. flashforge_python_api-1.2.0/.claude/skills/mypy/references/error_code_list.md +1203 -0
  18. flashforge_python_api-1.2.0/.claude/skills/mypy/references/error_code_list2.md +621 -0
  19. flashforge_python_api-1.2.0/.claude/skills/mypy/references/error_codes.md +103 -0
  20. flashforge_python_api-1.2.0/.claude/skills/mypy/references/existing_code.md +235 -0
  21. flashforge_python_api-1.2.0/.claude/skills/mypy/references/extending_mypy.md +232 -0
  22. flashforge_python_api-1.2.0/.claude/skills/mypy/references/faq.md +179 -0
  23. flashforge_python_api-1.2.0/.claude/skills/mypy/references/final_attrs.md +225 -0
  24. flashforge_python_api-1.2.0/.claude/skills/mypy/references/generics.md +1397 -0
  25. flashforge_python_api-1.2.0/.claude/skills/mypy/references/getting_started.md +326 -0
  26. flashforge_python_api-1.2.0/.claude/skills/mypy/references/index.md +411 -0
  27. flashforge_python_api-1.2.0/.claude/skills/mypy/references/inline_config.md +39 -0
  28. flashforge_python_api-1.2.0/.claude/skills/mypy/references/installed_packages.md +185 -0
  29. flashforge_python_api-1.2.0/.claude/skills/mypy/references/kinds_of_types.md +709 -0
  30. flashforge_python_api-1.2.0/.claude/skills/mypy/references/literal_types.md +503 -0
  31. flashforge_python_api-1.2.0/.claude/skills/mypy/references/metaclasses.md +103 -0
  32. flashforge_python_api-1.2.0/.claude/skills/mypy/references/more_types.md +965 -0
  33. flashforge_python_api-1.2.0/.claude/skills/mypy/references/mypy_daemon.md +331 -0
  34. flashforge_python_api-1.2.0/.claude/skills/mypy/references/protocols.md +590 -0
  35. flashforge_python_api-1.2.0/.claude/skills/mypy/references/running_mypy.md +554 -0
  36. flashforge_python_api-1.2.0/.claude/skills/mypy/references/runtime_troubles.md +329 -0
  37. flashforge_python_api-1.2.0/.claude/skills/mypy/references/stubgen.md +182 -0
  38. flashforge_python_api-1.2.0/.claude/skills/mypy/references/stubs.md +127 -0
  39. flashforge_python_api-1.2.0/.claude/skills/mypy/references/stubtest.md +208 -0
  40. flashforge_python_api-1.2.0/.claude/skills/mypy/references/supported_python_features.md +18 -0
  41. flashforge_python_api-1.2.0/.claude/skills/mypy/references/type_inference_and_annotations.md +277 -0
  42. flashforge_python_api-1.2.0/.claude/skills/mypy/references/type_narrowing.md +526 -0
  43. flashforge_python_api-1.2.0/.claude/skills/mypy/references/typed_dict.md +317 -0
  44. flashforge_python_api-1.2.0/.claude/skills/mypy/scripts/clean_markdown.py +37 -0
  45. flashforge_python_api-1.2.0/.claude/skills/mypy/scripts/discover_pages.py +163 -0
  46. flashforge_python_api-1.2.0/.claude/skills/mypy/scripts/scrape_docs.py +213 -0
  47. flashforge_python_api-1.2.0/.claude/skills/mypy/scripts/utils.py +83 -0
  48. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/SKILL.md +440 -0
  49. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/aliases/AliasChoices.md +56 -0
  50. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/aliases/AliasGenerator.md +58 -0
  51. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/aliases/AliasPath.md +68 -0
  52. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/base_model/BaseModel.md +659 -0
  53. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/base_model/create_model.md +46 -0
  54. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/config/ConfigDict.md +5 -0
  55. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/config/with_config.md +44 -0
  56. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/dataclasses/dataclass.md +43 -0
  57. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/dataclasses/is_pydantic_dataclass.md +19 -0
  58. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/dataclasses/rebuild_dataclass.md +29 -0
  59. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticErrorMixin.md +35 -0
  60. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticForbiddenQualifier.md +31 -0
  61. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticImportError.md +34 -0
  62. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticInvalidForJsonSchema.md +34 -0
  63. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticSchemaGenerationError.md +34 -0
  64. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticUndefinedAnnotation.md +50 -0
  65. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/errors/PydanticUserError.md +31 -0
  66. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/fields/ComputedFieldInfo.md +60 -0
  67. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/fields/Field.md +78 -0
  68. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/fields/FieldInfo.md +355 -0
  69. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/fields/ModelPrivateAttr.md +140 -0
  70. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/fields/PrivateAttr.md +33 -0
  71. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/fields/computed_field.md +155 -0
  72. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_serializers/PlainSerializer.md +87 -0
  73. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_serializers/SerializeAsAny.md +54 -0
  74. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_serializers/WrapSerializer.md +120 -0
  75. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_serializers/field_serializer.md +54 -0
  76. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_serializers/model_serializer.md +62 -0
  77. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/AfterValidator.md +91 -0
  78. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/BeforeValidator.md +81 -0
  79. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/FreeModelBeforeValidator.md +29 -0
  80. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/FreeModelBeforeValidatorWithoutInfo.md +30 -0
  81. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/InstanceOf.md +81 -0
  82. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/ModelBeforeValidator.md +29 -0
  83. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/ModelBeforeValidatorWithoutInfo.md +30 -0
  84. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/ModelWrapValidator.md +29 -0
  85. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/ModelWrapValidatorHandler.md +29 -0
  86. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/ModelWrapValidatorWithoutInfo.md +30 -0
  87. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/PlainValidator.md +95 -0
  88. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/SkipValidation.md +60 -0
  89. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/ValidateAs.md +59 -0
  90. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/WrapValidator.md +87 -0
  91. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/field_validator.md +71 -0
  92. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/functional_validators/model_validator.md +55 -0
  93. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/Examples.md +35 -0
  94. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/GenerateJsonSchema.md +1369 -0
  95. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/PydanticJsonSchemaWarning.md +8 -0
  96. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/SkipJsonSchema.md +96 -0
  97. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/WithJsonSchema.md +56 -0
  98. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/model_json_schema.md +35 -0
  99. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/json_schema/models_json_schema.md +37 -0
  100. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/AmqpDsn.md +208 -0
  101. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/AnyHttpUrl.md +207 -0
  102. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/AnyUrl.md +220 -0
  103. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/AnyWebsocketUrl.md +207 -0
  104. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/ClickHouseDsn.md +208 -0
  105. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/CockroachDsn.md +205 -0
  106. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/EmailStr.md +45 -0
  107. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/FileUrl.md +206 -0
  108. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/FtpUrl.md +207 -0
  109. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/HttpUrl.md +278 -0
  110. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/IPvAnyAddress.md +53 -0
  111. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/IPvAnyInterface.md +27 -0
  112. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/IPvAnyNetwork.md +27 -0
  113. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/KafkaDsn.md +208 -0
  114. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/MariaDBDsn.md +208 -0
  115. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/MongoDsn.md +206 -0
  116. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/MySQLDsn.md +208 -0
  117. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/NameEmail.md +141 -0
  118. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/NatsDsn.md +190 -0
  119. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/PostgresDsn.md +246 -0
  120. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/RedisDsn.md +205 -0
  121. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/SnowflakeDsn.md +205 -0
  122. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/UrlConstraints.md +61 -0
  123. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/WebsocketUrl.md +208 -0
  124. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/import_email_validator.md +9 -0
  125. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/networks/validate_email.md +27 -0
  126. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/type_adapter/TypeAdapter.md +387 -0
  127. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/AllowInfNan.md +117 -0
  128. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/AwareDatetime.md +29 -0
  129. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Base64Encoder.md +62 -0
  130. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Base64UrlEncoder.md +62 -0
  131. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/ByteSize.md +82 -0
  132. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Discriminator.md +120 -0
  133. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/EncodedBytes.md +132 -0
  134. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/EncodedStr.md +132 -0
  135. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/EncoderProtocol.md +62 -0
  136. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/FailFast.md +128 -0
  137. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/FutureDate.md +29 -0
  138. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/FutureDatetime.md +29 -0
  139. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/GetPydanticSchema.md +68 -0
  140. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/ImportString.md +119 -0
  141. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Json.md +105 -0
  142. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/NaiveDatetime.md +29 -0
  143. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/PastDate.md +29 -0
  144. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/PastDatetime.md +29 -0
  145. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/PathType.md +80 -0
  146. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/PaymentCardBrand.md +49 -0
  147. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/PaymentCardNumber.md +76 -0
  148. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Secret.md +161 -0
  149. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/SecretBytes.md +85 -0
  150. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/SecretStr.md +119 -0
  151. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Strict.md +119 -0
  152. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/StringConstraints.md +72 -0
  153. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/Tag.md +123 -0
  154. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/UuidVersion.md +67 -0
  155. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/conbytes.md +21 -0
  156. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/condate.md +23 -0
  157. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/condecimal.md +82 -0
  158. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/confloat.md +80 -0
  159. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/confrozenset.md +21 -0
  160. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/conint.md +79 -0
  161. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/conlist.md +25 -0
  162. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/conset.md +21 -0
  163. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/types/constr.md +68 -0
  164. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/validate_call/validate_call.md +26 -0
  165. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/version/check_pydantic_core_version.md +13 -0
  166. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/version/parse_mypy_version.md +22 -0
  167. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/version/version_info.md +13 -0
  168. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/api/version/version_short.md +15 -0
  169. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/alias.md +428 -0
  170. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/config.md +241 -0
  171. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/conversion_table.md +19 -0
  172. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/dataclasses.md +401 -0
  173. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/experimental.md +537 -0
  174. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/fields.md +883 -0
  175. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/forward_annotations.md +237 -0
  176. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/json.md +214 -0
  177. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/json_schema.md +1378 -0
  178. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/models.md +1748 -0
  179. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/performance.md +211 -0
  180. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/pydantic_settings.md +9 -0
  181. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/serialization.md +883 -0
  182. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/strict_mode.md +176 -0
  183. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/type_adapter.md +121 -0
  184. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/types.md +972 -0
  185. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/unions.md +634 -0
  186. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/validation_decorator.md +411 -0
  187. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/concepts/validators.md +918 -0
  188. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/contributing.md +271 -0
  189. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/errors/errors.md +283 -0
  190. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/errors/usage_errors.md +1388 -0
  191. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/errors/validation_errors.md +2293 -0
  192. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/examples/custom_validators.md +281 -0
  193. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/examples/dynamic_models.md +199 -0
  194. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/examples/files.md +338 -0
  195. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/examples/orms.md +51 -0
  196. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/examples/queues.md +231 -0
  197. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/examples/requests.md +73 -0
  198. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/help_with_pydantic.md +25 -0
  199. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/index.md +203 -0
  200. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/install.md +77 -0
  201. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/integrations/linting.md +16 -0
  202. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/migration.md +1171 -0
  203. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/version-policy.md +83 -0
  204. flashforge_python_api-1.2.0/.claude/skills/pydantic-dev/references/why.md +399 -0
  205. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/skills/readme-generator/scripts/package.py +32 -31
  206. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/skills/readme-generator/scripts/validate_readme.py +65 -55
  207. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/SKILL.md +223 -0
  208. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/INDEX.md +78 -0
  209. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/configuration.md +779 -0
  210. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/contributing.md +959 -0
  211. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/editors/features.md +91 -0
  212. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/editors/migration.md +151 -0
  213. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/editors/overview.md +28 -0
  214. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/editors/settings.md +1201 -0
  215. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/editors/setup.md +480 -0
  216. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/faq.md +675 -0
  217. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/formatter/black.md +832 -0
  218. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/formatter/overview.md +542 -0
  219. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/installation.md +101 -0
  220. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/integrations.md +184 -0
  221. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/linter.md +486 -0
  222. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/preview.md +158 -0
  223. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/ruff.md +89 -0
  224. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/abstract-base-class-without-abstract-method.md +56 -0
  225. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/access-annotations-from-class-dict.md +84 -0
  226. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/airflow-dag-no-schedule-argument.md +45 -0
  227. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/airflow-variable-name-task-id-mismatch.md +36 -0
  228. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/airflow3-moved-to-provider.md +36 -0
  229. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/airflow3-removal.md +37 -0
  230. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/airflow3-suggested-to-move-to-provider.md +53 -0
  231. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/airflow3-suggested-update.md +40 -0
  232. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ambiguous-class-name.md +28 -0
  233. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ambiguous-function-name.md +28 -0
  234. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ambiguous-unicode-character-comment.md +41 -0
  235. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ambiguous-unicode-character-docstring.md +41 -0
  236. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ambiguous-unicode-character-string.md +41 -0
  237. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ambiguous-variable-name.md +38 -0
  238. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/and-or-ternary.md +41 -0
  239. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/any-eq-ne-annotation.md +51 -0
  240. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/any-type.md +60 -0
  241. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/argument-default-in-stub.md +45 -0
  242. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assert-false.md +43 -0
  243. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assert-on-string-literal.md +23 -0
  244. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assert-raises-exception.md +33 -0
  245. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assert-tuple.md +34 -0
  246. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assert-with-print-message.md +45 -0
  247. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assert.md +37 -0
  248. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assignment-default-in-stub.md +45 -0
  249. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assignment-in-assert.md +55 -0
  250. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/assignment-to-os-environ.md +46 -0
  251. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/async-busy-wait.md +48 -0
  252. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/async-function-with-timeout.md +64 -0
  253. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/async-zero-sleep.md +56 -0
  254. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/asyncio-dangling-task.md +54 -0
  255. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/avoidable-escaped-quote.md +37 -0
  256. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/await-outside-async.md +45 -0
  257. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-dunder-method-name.md +48 -0
  258. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-exit-annotation.md +44 -0
  259. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-file-permissions.md +38 -0
  260. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-open-mode.md +41 -0
  261. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-quotes-docstring.md +45 -0
  262. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-quotes-inline-string.md +41 -0
  263. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-quotes-multiline-string.md +46 -0
  264. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-staticmethod-argument.md +37 -0
  265. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-str-strip-call.md +50 -0
  266. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-string-format-character.md +24 -0
  267. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-string-format-type.md +28 -0
  268. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-version-info-comparison.md +52 -0
  269. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bad-version-info-order.md +47 -0
  270. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/banned-api.md +27 -0
  271. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/banned-import-alias.md +38 -0
  272. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/banned-import-from.md +39 -0
  273. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/banned-module-level-imports.md +47 -0
  274. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bare-except.md +52 -0
  275. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/batched-without-explicit-strict.md +58 -0
  276. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bidirectional-unicode.md +37 -0
  277. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/binary-op-exception.md +37 -0
  278. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/bit-count.md +47 -0
  279. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-line-after-decorator.md +45 -0
  280. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-line-after-function.md +42 -0
  281. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-line-before-class.md +44 -0
  282. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-line-before-function.md +40 -0
  283. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-line-between-methods.md +51 -0
  284. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-line-with-whitespace.md +35 -0
  285. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-lines-after-function-or-class.md +51 -0
  286. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-lines-before-nested-definition.md +54 -0
  287. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-lines-between-header-and-content.md +75 -0
  288. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blank-lines-top-level.md +58 -0
  289. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blanket-noqa.md +47 -0
  290. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blanket-type-ignore.md +43 -0
  291. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blind-except.md +67 -0
  292. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blocking-http-call-httpx-in-async-function.md +43 -0
  293. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blocking-http-call-in-async-function.md +42 -0
  294. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blocking-input-in-async-function.md +40 -0
  295. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blocking-open-call-in-async-function.md +39 -0
  296. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blocking-path-method-in-async-function.md +56 -0
  297. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/blocking-sleep-in-async-function.md +39 -0
  298. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/boolean-chained-comparison.md +37 -0
  299. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/boolean-default-value-positional-argument.md +101 -0
  300. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/boolean-positional-value-in-call.md +47 -0
  301. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/boolean-type-hint-positional-argument.md +95 -0
  302. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/break-outside-loop.md +27 -0
  303. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/builtin-argument-shadowing.md +56 -0
  304. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/builtin-attribute-shadowing.md +59 -0
  305. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/builtin-import-shadowing.md +49 -0
  306. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/builtin-lambda-argument-shadowing.md +25 -0
  307. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/builtin-open.md +54 -0
  308. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/builtin-variable-shadowing.md +52 -0
  309. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/byte-string-usage.md +34 -0
  310. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/cached-instance-method.md +67 -0
  311. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-date-fromtimestamp.md +51 -0
  312. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-date-today.md +51 -0
  313. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-fromtimestamp.md +53 -0
  314. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-now-without-tzinfo.md +51 -0
  315. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-strptime-without-zone.md +57 -0
  316. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-today.md +50 -0
  317. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-utcfromtimestamp.md +51 -0
  318. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-utcnow.md +50 -0
  319. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-datetime-without-tzinfo.md +50 -0
  320. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/call-with-shell-equals-true.md +41 -0
  321. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/camelcase-imported-as-acronym.md +45 -0
  322. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/camelcase-imported-as-constant.md +53 -0
  323. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/camelcase-imported-as-lowercase.md +38 -0
  324. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/cancel-scope-no-checkpoint.md +50 -0
  325. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/check-and-remove-from-set.md +45 -0
  326. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/class-as-data-structure.md +40 -0
  327. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/class-with-mixed-type-vars.md +55 -0
  328. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/collapsible-else-if.md +47 -0
  329. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/collapsible-if.md +40 -0
  330. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/collection-literal-concatenation.md +49 -0
  331. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/collections-named-tuple.md +40 -0
  332. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/commented-out-code.md +31 -0
  333. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/compare-to-empty-string.md +46 -0
  334. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/compare-with-tuple.md +37 -0
  335. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/comparison-of-constant.md +33 -0
  336. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/comparison-with-itself.md +35 -0
  337. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/complex-assignment-in-stub.md +46 -0
  338. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/complex-if-statement-in-stub.md +38 -0
  339. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/complex-structure.md +54 -0
  340. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/constant-imported-as-non-constant.md +53 -0
  341. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/continue-in-finally.md +43 -0
  342. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/continue-outside-loop.md +27 -0
  343. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/convert-named-tuple-functional-to-class.md +51 -0
  344. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/convert-typed-dict-functional-to-class.md +61 -0
  345. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/create-subprocess-in-async-function.md +41 -0
  346. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/custom-type-var-for-self.md +81 -0
  347. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/dataclass-enum.md +47 -0
  348. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/datetime-min-max.md +46 -0
  349. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/datetime-timezone-utc.md +42 -0
  350. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/debugger.md +34 -0
  351. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/decimal-from-float-literal.md +35 -0
  352. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/default-except-not-last.md +51 -0
  353. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/default-factory-kwarg.md +50 -0
  354. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/delete-full-slice.md +52 -0
  355. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/deprecated-c-element-tree.md +34 -0
  356. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/deprecated-import.md +37 -0
  357. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/deprecated-log-warn.md +47 -0
  358. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/deprecated-mock-import.md +37 -0
  359. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/deprecated-unittest-alias.md +45 -0
  360. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/dict-get-with-none-default.md +36 -0
  361. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/dict-index-missing-items.md +45 -0
  362. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/dict-iter-missing-items.md +60 -0
  363. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/direct-logger-instantiation.md +47 -0
  364. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-all-with-model-form.md +42 -0
  365. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-exclude-with-model-form.md +40 -0
  366. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-extra.md +41 -0
  367. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-locals-in-render-function.md +39 -0
  368. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-model-without-dunder-str.md +43 -0
  369. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-non-leading-receiver-decorator.md +45 -0
  370. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-nullable-model-string-field.md +42 -0
  371. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-raw-sql.md +30 -0
  372. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/django-unordered-body-content-in-model.md +61 -0
  373. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/doc-line-too-long.md +76 -0
  374. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-extraneous-exception.md +64 -0
  375. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-extraneous-parameter.md +53 -0
  376. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-extraneous-returns.md +51 -0
  377. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-extraneous-yields.md +51 -0
  378. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-in-stub.md +32 -0
  379. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-missing-exception.md +71 -0
  380. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-missing-returns.md +51 -0
  381. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-missing-yields.md +51 -0
  382. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-starts-with-this.md +45 -0
  383. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/docstring-tab-indentation.md +51 -0
  384. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/dot-format-in-exception.md +57 -0
  385. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/double-negation.md +34 -0
  386. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/dunder-function-name.md +39 -0
  387. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-bases.md +62 -0
  388. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-class-field-definition.md +40 -0
  389. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-handler-exception.md +44 -0
  390. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-isinstance-call.md +41 -0
  391. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-literal-member.md +44 -0
  392. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-try-block-exception.md +40 -0
  393. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-union-member.md +40 -0
  394. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/duplicate-value.md +31 -0
  395. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ellipsis-in-non-empty-class-body.md +34 -0
  396. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/empty-comment.md +36 -0
  397. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/empty-docstring-section.md +84 -0
  398. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/empty-docstring.md +36 -0
  399. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/empty-method-without-abstract-decorator.md +43 -0
  400. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/empty-type-checking-block.md +39 -0
  401. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/enumerate-for-loop.md +44 -0
  402. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/eq-without-hash.md +63 -0
  403. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/error-instead-of-exception.md +57 -0
  404. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/error-suffix-on-exception-name.md +36 -0
  405. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/escape-sequence-in-docstring.md +51 -0
  406. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/eval.md +42 -0
  407. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/exc-info-outside-except-handler.md +46 -0
  408. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/except-with-empty-tuple.md +39 -0
  409. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/except-with-non-exception-classes.md +39 -0
  410. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/exception-without-exc-info.md +34 -0
  411. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/exec-builtin.md +27 -0
  412. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/explicit-f-string-type-conversion.md +36 -0
  413. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/explicit-string-concatenation.md +38 -0
  414. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/expr-and-false.md +42 -0
  415. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/expr-and-not-expr.md +29 -0
  416. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/expr-or-not-expr.md +29 -0
  417. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/expr-or-true.md +42 -0
  418. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/expressions-in-star-assignment.md +23 -0
  419. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/extraneous-parentheses.md +30 -0
  420. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/f-string-docstring.md +37 -0
  421. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/f-string-in-exception.md +56 -0
  422. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/f-string-in-get-text-func-call.md +47 -0
  423. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/f-string-missing-placeholders.md +62 -0
  424. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/f-string-number-format.md +38 -0
  425. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/f-string.md +34 -0
  426. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/falsy-dict-get-fallback.md +42 -0
  427. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/fast-api-non-annotated-dependency.md +78 -0
  428. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/fast-api-redundant-response-model.md +62 -0
  429. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/fast-api-unused-path-parameter.md +61 -0
  430. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/first-word-uncapitalized.md +38 -0
  431. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/flask-debug-true.md +44 -0
  432. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/for-loop-set-mutations.md +53 -0
  433. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/for-loop-writes.md +52 -0
  434. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/format-in-get-text-func-call.md +47 -0
  435. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/format-literals.md +44 -0
  436. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/forward-annotation-syntax-error.md +31 -0
  437. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/fromisoformat-replace-z.md +67 -0
  438. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/function-call-in-dataclass-default-argument.md +56 -0
  439. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/function-call-in-default-argument.md +61 -0
  440. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/function-uses-loop-variable.md +47 -0
  441. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/future-annotations-in-stub.md +25 -0
  442. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/future-feature-not-defined.md +21 -0
  443. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/future-required-type-annotation.md +54 -0
  444. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/future-rewritable-type-annotation.md +75 -0
  445. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/generator-return-from-iter-method.md +64 -0
  446. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/generic-not-last-base-class.md +89 -0
  447. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/get-attr-with-constant.md +54 -0
  448. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/glob.md +62 -0
  449. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/global-at-module-level.md +19 -0
  450. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/global-statement.md +48 -0
  451. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/global-variable-not-assigned.md +47 -0
  452. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-bind-all-interfaces.md +34 -0
  453. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-password-default.md +41 -0
  454. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-password-func-arg.md +39 -0
  455. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-password-string.md +39 -0
  456. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-sql-expression.md +31 -0
  457. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-string-charset.md +39 -0
  458. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hardcoded-temp-file.md +47 -0
  459. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hashlib-digest-hex.md +39 -0
  460. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/hashlib-insecure-hash-function.md +77 -0
  461. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-else-block-instead-of-dict-get.md +56 -0
  462. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-else-block-instead-of-dict-lookup.md +37 -0
  463. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-else-block-instead-of-if-exp.md +63 -0
  464. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-exp-instead-of-or-operator.md +42 -0
  465. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-expr-min-max.md +38 -0
  466. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-expr-with-false-true.md +36 -0
  467. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-expr-with-true-false.md +42 -0
  468. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-expr-with-twisted-arms.md +34 -0
  469. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-key-in-dict-del.md +32 -0
  470. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-stmt-min-max.md +53 -0
  471. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-tuple.md +34 -0
  472. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/if-with-same-arms.md +34 -0
  473. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-class-var-in-dataclass.md +54 -0
  474. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-cwd.md +38 -0
  475. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-namespace-package.md +29 -0
  476. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-optional.md +81 -0
  477. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-return-value.md +40 -0
  478. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-return.md +38 -0
  479. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/implicit-string-concatenation-in-collection-literal.md +62 -0
  480. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/import-outside-top-level.md +53 -0
  481. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/import-private-name.md +51 -0
  482. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/import-self.md +26 -0
  483. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/import-shadowed-by-loop-var.md +39 -0
  484. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/in-dict-keys.md +43 -0
  485. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/in-empty-collection.md +28 -0
  486. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/incorrect-blank-line-after-class.md +52 -0
  487. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/incorrect-blank-line-before-class.md +44 -0
  488. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/incorrect-dict-iterator.md +49 -0
  489. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/incorrectly-parenthesized-tuple-in-subscript.md +45 -0
  490. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/indentation-with-invalid-multiple-comment.md +45 -0
  491. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/indentation-with-invalid-multiple.md +43 -0
  492. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/indented-form-feed.md +32 -0
  493. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/int-on-sliced-str.md +58 -0
  494. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-all-format.md +35 -0
  495. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-all-object.md +35 -0
  496. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-argument-name.md +45 -0
  497. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-assert-message-literal-argument.md +30 -0
  498. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-bool-return-type.md +38 -0
  499. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-bytes-return-type.md +36 -0
  500. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-character-backspace.md +33 -0
  501. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-character-esc.md +33 -0
  502. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-character-nul.md +33 -0
  503. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-character-sub.md +33 -0
  504. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-character-zero-width-space.md +32 -0
  505. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-class-name.md +44 -0
  506. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-envvar-default.md +37 -0
  507. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-envvar-value.md +34 -0
  508. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-escape-sequence.md +45 -0
  509. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-first-argument-name-for-class-method.md +62 -0
  510. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-first-argument-name-for-method.md +56 -0
  511. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-formatter-suppression-comment.md +47 -0
  512. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-function-name.md +49 -0
  513. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-get-logger-argument.md +51 -0
  514. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-hash-return-type.md +40 -0
  515. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-index-return-type.md +41 -0
  516. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-index-type.md +28 -0
  517. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-length-return-type.md +41 -0
  518. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-mock-access.md +32 -0
  519. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-module-name.md +34 -0
  520. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-pathlib-with-suffix.md +64 -0
  521. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-print-syntax.md +56 -0
  522. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-pyproject-toml.md +39 -0
  523. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-rule-code.md +39 -0
  524. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-str-return-type.md +36 -0
  525. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-todo-capitalization.md +31 -0
  526. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/invalid-todo-tag.md +31 -0
  527. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/io-error.md +35 -0
  528. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/is-literal.md +56 -0
  529. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/isinstance-type-none.md +41 -0
  530. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/iter-method-return-iterable.md +71 -0
  531. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/iteration-over-set.md +37 -0
  532. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/jinja2-autoescape-false.md +42 -0
  533. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/jump-statement-in-finally.md +47 -0
  534. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/lambda-assignment.md +35 -0
  535. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/late-future-import.md +38 -0
  536. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/legacy-form-pytest-raises.md +48 -0
  537. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/len-test.md +64 -0
  538. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/line-contains-fixme.md +28 -0
  539. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/line-contains-hack.md +37 -0
  540. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/line-contains-todo.md +29 -0
  541. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/line-contains-xxx.md +25 -0
  542. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/line-too-long.md +74 -0
  543. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/list-reverse-copy.md +53 -0
  544. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/literal-membership.md +45 -0
  545. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/load-before-global-declaration.md +46 -0
  546. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/log-exception-outside-except-handler.md +50 -0
  547. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-config-insecure-listen.md +30 -0
  548. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-eager-conversion.md +63 -0
  549. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-exc-info.md +63 -0
  550. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-extra-attr-clash.md +67 -0
  551. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-f-string.md +89 -0
  552. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-percent-format.md +89 -0
  553. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-redundant-exc-info.md +65 -0
  554. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-string-concat.md +88 -0
  555. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-string-format.md +87 -0
  556. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-too-few-args.md +39 -0
  557. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-too-many-args.md +39 -0
  558. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/logging-warn.md +57 -0
  559. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/long-sleep-not-forever.md +43 -0
  560. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/loop-iterator-mutation.md +34 -0
  561. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/loop-variable-overrides-iterator.md +40 -0
  562. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/lowercase-imported-as-non-lowercase.md +38 -0
  563. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/lru-cache-with-maxsize-none.md +47 -0
  564. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/lru-cache-without-parameters.md +47 -0
  565. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/magic-value-comparison.md +48 -0
  566. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mako-templates.md +40 -0
  567. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/manual-dict-comprehension.md +49 -0
  568. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/manual-from-import.md +34 -0
  569. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/manual-list-comprehension.md +50 -0
  570. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/manual-list-copy.md +40 -0
  571. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/map-int-version-parsing.md +36 -0
  572. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/map-without-explicit-strict.md +52 -0
  573. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/math-constant.md +36 -0
  574. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/meta-class-abc-meta.md +54 -0
  575. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mismatched-section-underline-length.md +102 -0
  576. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/misplaced-bare-raise.md +46 -0
  577. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-blank-line-after-last-section.md +93 -0
  578. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-blank-line-after-summary.md +47 -0
  579. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-copyright-notice.md +26 -0
  580. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-dashed-underline-after-section.md +101 -0
  581. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-f-string-syntax.md +56 -0
  582. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-maxsplit-arg.md +48 -0
  583. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-new-line-after-section-name.md +96 -0
  584. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-newline-at-end-of-file.md +31 -0
  585. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-required-import.md +41 -0
  586. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-return-type-class-method.md +37 -0
  587. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-return-type-private-function.md +43 -0
  588. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-return-type-special-method.md +46 -0
  589. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-return-type-static-method.md +37 -0
  590. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-return-type-undocumented-public-function.md +43 -0
  591. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-section-name-colon.md +80 -0
  592. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-section-underline-after-name.md +104 -0
  593. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-space-after-todo-colon.md +31 -0
  594. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-terminal-punctuation.md +47 -0
  595. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-todo-author.md +29 -0
  596. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-todo-colon.md +31 -0
  597. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-todo-description.md +29 -0
  598. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-todo-link.md +42 -0
  599. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-trailing-comma.md +42 -0
  600. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-trailing-period.md +46 -0
  601. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-type-args.md +33 -0
  602. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-type-cls.md +42 -0
  603. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-type-function-argument.md +33 -0
  604. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-type-kwargs.md +33 -0
  605. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-type-self.md +40 -0
  606. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace-after-keyword.md +37 -0
  607. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace-around-arithmetic-operator.md +38 -0
  608. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace-around-bitwise-or-shift-operator.md +38 -0
  609. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace-around-modulo-operator.md +38 -0
  610. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace-around-operator.md +35 -0
  611. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace-around-parameter-equals.md +39 -0
  612. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/missing-whitespace.md +31 -0
  613. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mixed-case-variable-in-class-scope.md +45 -0
  614. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mixed-case-variable-in-global-scope.md +57 -0
  615. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mixed-spaces-and-tabs.md +32 -0
  616. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/modified-iterating-set.md +56 -0
  617. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/module-import-not-at-top-of-file.md +45 -0
  618. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multi-line-implicit-string-concatenation.md +52 -0
  619. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multi-line-summary-first-line.md +62 -0
  620. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multi-line-summary-second-line.md +62 -0
  621. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multi-value-repeated-key-literal.md +51 -0
  622. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multi-value-repeated-key-variable.md +50 -0
  623. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-imports-on-one-line.md +30 -0
  624. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-leading-hashes-for-block-comment.md +46 -0
  625. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-spaces-after-comma.md +32 -0
  626. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-spaces-after-keyword.md +29 -0
  627. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-spaces-after-operator.md +32 -0
  628. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-spaces-before-keyword.md +29 -0
  629. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-spaces-before-operator.md +32 -0
  630. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-starred-expressions.md +28 -0
  631. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-starts-ends-with.md +50 -0
  632. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-statements-on-one-line-colon.md +28 -0
  633. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-statements-on-one-line-semicolon.md +30 -0
  634. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/multiple-with-statements.md +49 -0
  635. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mutable-argument-default.md +76 -0
  636. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mutable-class-default.md +79 -0
  637. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mutable-contextvar-default.md +57 -0
  638. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mutable-dataclass-default.md +57 -0
  639. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/mutable-fromkeys-value.md +52 -0
  640. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/named-expr-without-context.md +31 -0
  641. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/nan-comparison.md +36 -0
  642. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/native-literals.md +42 -0
  643. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/needless-bool.md +64 -0
  644. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/needless-else.md +33 -0
  645. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/negate-equal-op.md +40 -0
  646. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/negate-not-equal-op.md +40 -0
  647. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/nested-min-max.md +74 -0
  648. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/never-union.md +39 -0
  649. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/new-line-after-last-paragraph.md +47 -0
  650. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-blank-line-after-section.md +95 -0
  651. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-blank-line-before-section.md +91 -0
  652. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-classmethod-decorator.md +36 -0
  653. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-explicit-stacklevel.md +51 -0
  654. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-indented-block-comment.md +34 -0
  655. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-indented-block.md +32 -0
  656. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-return-argument-annotation-in-stub.md +43 -0
  657. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-self-use.md +52 -0
  658. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-slots-in-namedtuple-subclass.md +51 -0
  659. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-slots-in-str-subclass.md +44 -0
  660. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-slots-in-tuple-subclass.md +44 -0
  661. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-space-after-block-comment.md +37 -0
  662. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-space-after-inline-comment.md +36 -0
  663. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/no-staticmethod-decorator.md +36 -0
  664. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-ascii-import-name.md +34 -0
  665. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-ascii-name.md +28 -0
  666. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-augmented-assignment.md +77 -0
  667. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-capitalized-section-name.md +81 -0
  668. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-empty-stub-body.md +36 -0
  669. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-imperative-mood.md +47 -0
  670. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-lowercase-variable-in-function.md +41 -0
  671. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-octal-permissions.md +74 -0
  672. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep585-annotation.md +58 -0
  673. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep604-annotation-optional.md +54 -0
  674. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep604-annotation-union.md +57 -0
  675. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep604-isinstance.md +54 -0
  676. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep646-unpack.md +43 -0
  677. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep695-generic-class.md +75 -0
  678. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep695-generic-function.md +71 -0
  679. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-pep695-type-alias.md +76 -0
  680. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-self-return-type.md +114 -0
  681. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-slot-assignment.md +52 -0
  682. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/non-unique-enums.md +44 -0
  683. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/none-comparison.md +41 -0
  684. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/none-not-at-end-of-union.md +35 -0
  685. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/nonlocal-and-global.md +49 -0
  686. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/nonlocal-without-binding.md +41 -0
  687. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/not-in-test.md +33 -0
  688. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/not-is-test.md +34 -0
  689. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/numeric-literal-too-long.md +35 -0
  690. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/numpy-deprecated-function.md +35 -0
  691. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/numpy-deprecated-type-alias.md +36 -0
  692. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/numpy-legacy-random.md +44 -0
  693. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/numpy2-deprecation.md +50 -0
  694. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/open-alias.md +38 -0
  695. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/open-file-with-context-handler.md +39 -0
  696. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-chmod.md +55 -0
  697. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-error-alias.md +40 -0
  698. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-getcwd.md +58 -0
  699. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-listdir.md +60 -0
  700. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-makedirs.md +55 -0
  701. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-mkdir.md +55 -0
  702. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-abspath.md +64 -0
  703. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-basename.md +64 -0
  704. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-dirname.md +68 -0
  705. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-exists.md +55 -0
  706. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-expanduser.md +62 -0
  707. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-getatime.md +57 -0
  708. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-getctime.md +57 -0
  709. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-getmtime.md +57 -0
  710. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-getsize.md +57 -0
  711. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-isabs.md +53 -0
  712. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-isdir.md +55 -0
  713. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-isfile.md +55 -0
  714. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-islink.md +55 -0
  715. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-join.md +49 -0
  716. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-samefile.md +55 -0
  717. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-path-splitext.md +58 -0
  718. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-readlink.md +57 -0
  719. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-remove.md +55 -0
  720. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-rename.md +57 -0
  721. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-replace.md +60 -0
  722. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-rmdir.md +55 -0
  723. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-sep-split.md +61 -0
  724. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-stat.md +58 -0
  725. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-symlink.md +52 -0
  726. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/os-unlink.md +55 -0
  727. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/outdated-version-block.md +52 -0
  728. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/over-indentation.md +51 -0
  729. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/over-indented.md +38 -0
  730. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/overindented-section-underline.md +101 -0
  731. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/overindented-section.md +83 -0
  732. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/overload-with-docstring.md +71 -0
  733. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/p-print.md +48 -0
  734. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-df-variable-name.md +41 -0
  735. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-nunique-constant-series-check.md +56 -0
  736. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-at.md +45 -0
  737. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-iat.md +55 -0
  738. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-is-null.md +43 -0
  739. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-ix.md +43 -0
  740. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-not-null.md +43 -0
  741. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-pivot-or-unstack.md +39 -0
  742. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-read-table.md +41 -0
  743. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-stack.md +39 -0
  744. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-dot-values.md +39 -0
  745. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-inplace-argument.md +39 -0
  746. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pandas-use-of-pd-merge.md +49 -0
  747. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/paramiko-call.md +31 -0
  748. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/parenthesize-chained-operators.md +39 -0
  749. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pass-in-class-body.md +34 -0
  750. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pass-statement-stub-body.md +34 -0
  751. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/patch-version-comparison.md +42 -0
  752. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/path-constructor-current-directory.md +44 -0
  753. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pep484-style-positional-only-parameter.md +40 -0
  754. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-expected-mapping.md +40 -0
  755. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-expected-sequence.md +40 -0
  756. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-extra-named-arguments.md +46 -0
  757. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-invalid-format.md +32 -0
  758. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-missing-argument.md +33 -0
  759. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-mixed-positional-and-named.md +40 -0
  760. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-positional-count-mismatch.md +33 -0
  761. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-star-requires-sequence.md +37 -0
  762. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/percent-format-unsupported-format-character.md +33 -0
  763. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/post-init-default.md +71 -0
  764. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/potential-index-error.md +24 -0
  765. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/print-empty-string.md +45 -0
  766. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/print.md +55 -0
  767. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/printf-in-get-text-func-call.md +47 -0
  768. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/printf-string-formatting.md +69 -0
  769. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/private-member-access.md +57 -0
  770. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/private-type-parameter.md +60 -0
  771. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/prohibited-trailing-comma.md +35 -0
  772. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/property-with-parameters.md +40 -0
  773. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/property-without-return.md +37 -0
  774. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/py-path.md +38 -0
  775. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-assert-always-false.md +39 -0
  776. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-assert-in-except.md +44 -0
  777. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-composite-assertion.md +42 -0
  778. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-deprecated-yield-fixture.md +45 -0
  779. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-duplicate-parametrize-test-cases.md +57 -0
  780. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-erroneous-use-fixtures-on-fixture.md +55 -0
  781. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-extraneous-scope-function.md +41 -0
  782. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-fail-without-message.md +51 -0
  783. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-fixture-finalizer-callback.md +62 -0
  784. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-fixture-incorrect-parentheses-style.md +71 -0
  785. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-fixture-param-without-value.md +56 -0
  786. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-fixture-positional-args.md +40 -0
  787. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-incorrect-fixture-name-underscore.md +66 -0
  788. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-incorrect-mark-parentheses-style.md +69 -0
  789. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-incorrect-pytest-import.md +29 -0
  790. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-missing-fixture-name-underscore.md +64 -0
  791. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-parameter-with-default-argument.md +37 -0
  792. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-parametrize-names-wrong-type.md +63 -0
  793. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-parametrize-values-wrong-type.md +95 -0
  794. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-patch-with-lambda.md +46 -0
  795. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-raises-ambiguous-pattern.md +67 -0
  796. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-raises-too-broad.md +55 -0
  797. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-raises-with-multiple-statements.md +53 -0
  798. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-raises-without-exception.md +45 -0
  799. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-unittest-assertion.md +44 -0
  800. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-unittest-raises-assertion.md +49 -0
  801. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-unnecessary-asyncio-mark-on-fixture.md +44 -0
  802. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-use-fixtures-without-parameters.md +39 -0
  803. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-useless-yield-fixture.md +54 -0
  804. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-warns-too-broad.md +55 -0
  805. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-warns-with-multiple-statements.md +51 -0
  806. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/pytest-warns-without-warning.md +44 -0
  807. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/quadratic-list-summation.md +59 -0
  808. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/quoted-annotation-in-stub.md +36 -0
  809. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/quoted-annotation.md +88 -0
  810. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/quoted-type-alias.md +84 -0
  811. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raise-literal.md +33 -0
  812. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raise-not-implemented.md +43 -0
  813. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raise-vanilla-args.md +50 -0
  814. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raise-vanilla-class.md +57 -0
  815. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raise-within-try.md +50 -0
  816. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raise-without-from-inside-except.md +51 -0
  817. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/raw-string-in-exception.md +54 -0
  818. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/re-sub-positional-args.md +43 -0
  819. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/read-whole-file.md +46 -0
  820. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/readlines-in-for.md +54 -0
  821. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redeclared-assigned-name.md +32 -0
  822. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redefined-argument-from-local.md +41 -0
  823. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redefined-loop-name.md +47 -0
  824. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redefined-slots-in-subclass.md +41 -0
  825. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redefined-while-unused.md +34 -0
  826. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redirected-noqa.md +30 -0
  827. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-backslash.md +33 -0
  828. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-bool-literal.md +58 -0
  829. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-final-literal.md +39 -0
  830. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-literal-union.md +36 -0
  831. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-log-base.md +57 -0
  832. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-none-literal.md +49 -0
  833. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-numeric-union.md +54 -0
  834. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-open-modes.md +36 -0
  835. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/redundant-tuple-in-exception-handler.md +44 -0
  836. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/regex-flag-alias.md +38 -0
  837. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/reimplemented-builtin.md +44 -0
  838. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/reimplemented-container-builtin.md +45 -0
  839. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/reimplemented-operator.md +67 -0
  840. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/reimplemented-starmap.md +50 -0
  841. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/relative-imports.md +50 -0
  842. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/repeated-append.md +49 -0
  843. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/repeated-equality-comparison.md +54 -0
  844. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/repeated-global.md +46 -0
  845. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/repeated-isinstance-calls.md +63 -0
  846. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/repeated-keyword-argument.md +27 -0
  847. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/replace-stdout-stderr.md +48 -0
  848. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/replace-str-enum.md +82 -0
  849. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/replace-universal-newlines.md +42 -0
  850. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/request-with-no-cert-validation.md +37 -0
  851. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/request-without-timeout.md +39 -0
  852. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/reraise-no-cause.md +48 -0
  853. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/return-in-generator.md +85 -0
  854. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/return-in-init.md +39 -0
  855. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/return-in-try-except-finally.md +47 -0
  856. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/return-outside-function.md +27 -0
  857. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/reuse-of-groupby-generator.md +38 -0
  858. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/root-logger-call.md +34 -0
  859. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ruff-static-key-dict-comprehension.md +36 -0
  860. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ruff-unsafe-markup-use.md +86 -0
  861. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/rules.md +1438 -0
  862. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/run-process-in-async-function.md +41 -0
  863. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/runtime-cast-value.md +50 -0
  864. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/runtime-import-in-type-checking-block.md +54 -0
  865. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/runtime-string-union.md +58 -0
  866. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/self-assigning-variable.md +28 -0
  867. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/self-or-cls-assignment.md +49 -0
  868. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/set-attr-with-constant.md +56 -0
  869. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/shallow-copy-environ.md +49 -0
  870. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/shebang-leading-whitespace.md +39 -0
  871. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/shebang-missing-executable-file.md +38 -0
  872. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/shebang-missing-python.md +38 -0
  873. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/shebang-not-executable.md +41 -0
  874. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/shebang-not-first-line.md +39 -0
  875. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/signature-in-docstring.md +46 -0
  876. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/single-item-membership-test.md +51 -0
  877. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/single-line-implicit-string-concatenation.md +35 -0
  878. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/single-string-slots.md +54 -0
  879. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/singledispatch-method.md +47 -0
  880. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/singledispatchmethod-function.md +45 -0
  881. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/six-py3.md +42 -0
  882. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/slice-copy.md +44 -0
  883. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/slice-to-remove-prefix-or-suffix.md +44 -0
  884. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/snake-case-type-alias.md +32 -0
  885. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/snmp-insecure-version.md +38 -0
  886. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/snmp-weak-cryptography.md +36 -0
  887. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sorted-min-max.md +55 -0
  888. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/split-static-string.md +50 -0
  889. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ssh-no-host-key-verification.md +39 -0
  890. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ssl-insecure-version.md +42 -0
  891. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ssl-with-bad-defaults.md +41 -0
  892. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/ssl-with-no-version.md +32 -0
  893. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/star-arg-unpacking-after-keyword-arg.md +52 -0
  894. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/starmap-zip.md +43 -0
  895. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/start-process-with-a-shell.md +49 -0
  896. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/start-process-with-no-shell.md +35 -0
  897. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/start-process-with-partial-path.md +38 -0
  898. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/static-join-to-f-string.md +42 -0
  899. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/static-key-dict-comprehension.md +32 -0
  900. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/stdlib-module-shadowing.md +52 -0
  901. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/stop-iteration-return.md +43 -0
  902. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/str-or-repr-defined-in-stub.md +26 -0
  903. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/string-dot-format-extra-named-arguments.md +46 -0
  904. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/string-dot-format-extra-positional-arguments.md +46 -0
  905. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/string-dot-format-invalid-format.md +31 -0
  906. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/string-dot-format-missing-arguments.md +32 -0
  907. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/string-dot-format-mixing-automatic.md +38 -0
  908. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/string-or-bytes-too-long.md +37 -0
  909. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/strip-with-multi-characters.md +51 -0
  910. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/stub-body-multiple-statements.md +33 -0
  911. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/subclass-builtin.md +66 -0
  912. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/subprocess-popen-preexec-fn.md +43 -0
  913. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/subprocess-popen-with-shell-equals-true.md +38 -0
  914. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/subprocess-run-without-check.md +55 -0
  915. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/subprocess-without-shell-equals-true.md +35 -0
  916. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/super-call-with-parameters.md +60 -0
  917. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/super-without-brackets.md +53 -0
  918. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/superfluous-else-break.md +41 -0
  919. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/superfluous-else-continue.md +41 -0
  920. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/superfluous-else-raise.md +39 -0
  921. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/superfluous-else-return.md +39 -0
  922. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suppressible-exception.md +47 -0
  923. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/surrounding-whitespace.md +37 -0
  924. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-eval-usage.md +41 -0
  925. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-ftp-lib-usage.md +24 -0
  926. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-ftplib-import.md +28 -0
  927. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-httpoxy-import.md +30 -0
  928. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-insecure-cipher-mode-usage.md +45 -0
  929. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-insecure-cipher-usage.md +43 -0
  930. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-insecure-hash-usage.md +51 -0
  931. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-lxml-import.md +32 -0
  932. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-mark-safe-usage.md +54 -0
  933. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-marshal-usage.md +50 -0
  934. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-mktemp-usage.md +49 -0
  935. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-non-cryptographic-random-usage.md +43 -0
  936. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-pickle-import.md +29 -0
  937. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-pickle-usage.md +51 -0
  938. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-pycrypto-import.md +29 -0
  939. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-pyghmi-import.md +28 -0
  940. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-subprocess-import.md +24 -0
  941. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-telnet-usage.md +24 -0
  942. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-telnetlib-import.md +30 -0
  943. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-unverified-context-usage.md +46 -0
  944. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-url-open-usage.md +53 -0
  945. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-element-tree-usage.md +45 -0
  946. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-etree-import.md +26 -0
  947. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-expat-builder-usage.md +45 -0
  948. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-expat-import.md +26 -0
  949. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-expat-reader-usage.md +45 -0
  950. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-mini-dom-usage.md +45 -0
  951. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-minidom-import.md +26 -0
  952. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-pull-dom-usage.md +45 -0
  953. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-pulldom-import.md +26 -0
  954. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-sax-import.md +26 -0
  955. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xml-sax-usage.md +45 -0
  956. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xmlc-element-tree-usage.md +45 -0
  957. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xmle-tree-usage.md +42 -0
  958. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/suspicious-xmlrpc-import.md +26 -0
  959. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/syntax-error.md +39 -0
  960. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-exit-alias.md +58 -0
  961. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-cmp-str10.md +44 -0
  962. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-cmp-str3.md +45 -0
  963. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-info-minor-cmp-int.md +43 -0
  964. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-info0-eq3.md +53 -0
  965. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-info1-cmp-int.md +43 -0
  966. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-slice1.md +43 -0
  967. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version-slice3.md +43 -0
  968. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version0.md +43 -0
  969. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/sys-version2.md +43 -0
  970. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/t-suffixed-type-alias.md +39 -0
  971. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tab-after-comma.md +31 -0
  972. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tab-after-keyword.md +29 -0
  973. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tab-after-operator.md +32 -0
  974. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tab-before-keyword.md +29 -0
  975. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tab-before-operator.md +32 -0
  976. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tab-indentation.md +24 -0
  977. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/tarfile-unsafe-members.md +40 -0
  978. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/timeout-error-alias.md +44 -0
  979. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-few-spaces-before-inline-comment.md +35 -0
  980. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-arguments.md +60 -0
  981. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-blank-lines.md +65 -0
  982. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-boolean-expressions.md +33 -0
  983. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-branches.md +154 -0
  984. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-locals.md +27 -0
  985. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-nested-blocks.md +25 -0
  986. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-newlines-at-end-of-file.md +36 -0
  987. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-positional-arguments.md +59 -0
  988. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-public-methods.md +92 -0
  989. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-return-statements.md +58 -0
  990. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/too-many-statements.md +54 -0
  991. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/trailing-comma-on-bare-tuple.md +44 -0
  992. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/trailing-whitespace.md +35 -0
  993. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/trio-sync-call.md +44 -0
  994. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/triple-single-quotes.md +45 -0
  995. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/true-false-comparison.md +50 -0
  996. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/try-consider-else.md +56 -0
  997. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/try-except-continue.md +51 -0
  998. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/try-except-in-loop.md +84 -0
  999. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/try-except-pass.md +47 -0
  1000. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-alias-without-annotation.md +47 -0
  1001. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-bivariance.md +57 -0
  1002. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-check-without-type-error.md +40 -0
  1003. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-comment-in-stub.md +30 -0
  1004. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-comparison.md +54 -0
  1005. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-name-incorrect-variance.md +44 -0
  1006. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-none-comparison.md +41 -0
  1007. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-of-primitive.md +36 -0
  1008. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/type-param-name-mismatch.md +41 -0
  1009. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/typed-argument-default-in-stub.md +43 -0
  1010. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/typing-only-first-party-import.md +76 -0
  1011. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/typing-only-standard-library-import.md +76 -0
  1012. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/typing-only-third-party-import.md +76 -0
  1013. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/typing-text-str-alias.md +39 -0
  1014. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unaliased-collections-abc-set-import.md +47 -0
  1015. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unannotated-assignment-in-stub.md +16 -0
  1016. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unary-prefix-increment-decrement.md +37 -0
  1017. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unassigned-special-variable-in-stub.md +30 -0
  1018. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/uncapitalized-environment-variables.md +46 -0
  1019. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unconventional-import-alias.md +40 -0
  1020. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undefined-export.md +48 -0
  1021. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undefined-local-with-import-star-usage.md +46 -0
  1022. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undefined-local-with-import-star.md +37 -0
  1023. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undefined-local-with-nested-import-star-usage.md +36 -0
  1024. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undefined-local.md +37 -0
  1025. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undefined-name.md +38 -0
  1026. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/under-indentation.md +51 -0
  1027. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-magic-method.md +61 -0
  1028. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-param.md +85 -0
  1029. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-class.md +87 -0
  1030. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-function.md +95 -0
  1031. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-init.md +52 -0
  1032. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-method.md +91 -0
  1033. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-module.md +63 -0
  1034. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-nested-class.md +56 -0
  1035. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-public-package.md +46 -0
  1036. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/undocumented-warn.md +38 -0
  1037. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unexpected-indentation-comment.md +31 -0
  1038. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unexpected-indentation.md +31 -0
  1039. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unexpected-spaces-around-keyword-parameter-equals.md +39 -0
  1040. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unexpected-special-method-signature.md +50 -0
  1041. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unicode-kind-prefix.md +34 -0
  1042. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unintentional-type-annotation.md +28 -0
  1043. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unix-command-wildcard-injection.md +36 -0
  1044. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-assign.md +34 -0
  1045. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-builtin-import.md +52 -0
  1046. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-call-around-sorted.md +49 -0
  1047. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-cast-to-int.md +42 -0
  1048. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-class-parentheses.md +33 -0
  1049. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-collection-call.md +47 -0
  1050. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-comprehension-in-call.md +70 -0
  1051. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-comprehension.md +63 -0
  1052. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-default-type-args.md +70 -0
  1053. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-dict-comprehension-for-iterable.md +55 -0
  1054. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-dict-index-lookup.md +37 -0
  1055. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-dict-kwargs.md +71 -0
  1056. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-direct-lambda-call.md +32 -0
  1057. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-double-cast-or-process.md +54 -0
  1058. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-dunder-call.md +73 -0
  1059. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-empty-iterable-within-deque-call.md +48 -0
  1060. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-encode-utf8.md +34 -0
  1061. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-enumerate.md +62 -0
  1062. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-escaped-quote.md +36 -0
  1063. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-from-float.md +72 -0
  1064. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-future-import.md +47 -0
  1065. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-generator-dict.md +37 -0
  1066. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-generator-list.md +45 -0
  1067. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-generator-set.md +45 -0
  1068. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-iterable-allocation-for-first-element.md +57 -0
  1069. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-key-check.md +31 -0
  1070. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-lambda.md +54 -0
  1071. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-list-call.md +34 -0
  1072. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-list-cast.md +57 -0
  1073. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-list-comprehension-dict.md +35 -0
  1074. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-list-comprehension-set.md +35 -0
  1075. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-list-index-lookup.md +37 -0
  1076. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-literal-dict.md +39 -0
  1077. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-literal-set.md +40 -0
  1078. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-literal-union.md +55 -0
  1079. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-literal-within-dict-call.md +39 -0
  1080. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-literal-within-list-call.md +42 -0
  1081. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-literal-within-tuple-call.md +49 -0
  1082. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-map.md +46 -0
  1083. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-multiline-docstring.md +44 -0
  1084. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-nested-literal.md +68 -0
  1085. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-paren-on-raise-exception.md +53 -0
  1086. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-placeholder.md +66 -0
  1087. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-range-start.md +35 -0
  1088. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-regular-expression.md +54 -0
  1089. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-return-none.md +44 -0
  1090. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-round.md +33 -0
  1091. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-spread.md +36 -0
  1092. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-subscript-reversal.md +33 -0
  1093. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unnecessary-type-union.md +37 -0
  1094. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unpacked-list-comprehension.md +41 -0
  1095. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unprefixed-type-param.md +33 -0
  1096. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unquoted-type-alias.md +49 -0
  1097. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unraw-re-pattern.md +62 -0
  1098. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unrecognized-platform-check.md +51 -0
  1099. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unrecognized-platform-name.md +41 -0
  1100. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unrecognized-version-info-check.md +38 -0
  1101. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unreliable-callable-check.md +80 -0
  1102. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unsafe-markup-use.md +81 -0
  1103. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unsafe-yaml-load.md +42 -0
  1104. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unsorted-dunder-all.md +93 -0
  1105. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unsorted-dunder-slots.md +81 -0
  1106. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unsorted-imports.md +32 -0
  1107. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unspecified-encoding.md +60 -0
  1108. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unsupported-method-call-on-all.md +46 -0
  1109. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-annotation.md +27 -0
  1110. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-async.md +32 -0
  1111. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-class-method-argument.md +52 -0
  1112. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-function-argument.md +38 -0
  1113. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-import.md +131 -0
  1114. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-lambda-argument.md +39 -0
  1115. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-loop-control-variable.md +40 -0
  1116. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-method-argument.md +50 -0
  1117. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-noqa.md +44 -0
  1118. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-private-protocol.md +37 -0
  1119. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-private-type-alias.md +35 -0
  1120. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-private-type-var.md +35 -0
  1121. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-private-typed-dict.md +37 -0
  1122. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-static-method-argument.md +52 -0
  1123. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-unpacked-variable.md +48 -0
  1124. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/unused-variable.md +53 -0
  1125. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/used-dummy-variable.md +72 -0
  1126. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-class-metaclass-type.md +36 -0
  1127. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-comparison.md +39 -0
  1128. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-contextlib-suppress.md +43 -0
  1129. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-else-on-loop.md +47 -0
  1130. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-exception-statement.md +43 -0
  1131. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-expression.md +58 -0
  1132. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-if-else.md +26 -0
  1133. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-import-alias.md +42 -0
  1134. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-metaclass-type.md +34 -0
  1135. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-object-inheritance.md +38 -0
  1136. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-return.md +34 -0
  1137. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-semicolon.md +29 -0
  1138. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-try-except.md +34 -0
  1139. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/useless-with-lock.md +55 -0
  1140. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/utf8-encoding-declaration.md +31 -0
  1141. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/verbose-decimal-constructor.md +52 -0
  1142. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/verbose-log-message.md +35 -0
  1143. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/verbose-raise.md +43 -0
  1144. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/wait-for-process-in-async-function.md +46 -0
  1145. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/weak-cryptographic-key.md +38 -0
  1146. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/whitespace-after-decorator.md +36 -0
  1147. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/whitespace-after-open-bracket.md +36 -0
  1148. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/whitespace-before-close-bracket.md +36 -0
  1149. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/whitespace-before-parameters.md +33 -0
  1150. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/whitespace-before-punctuation.md +34 -0
  1151. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/write-whole-file.md +46 -0
  1152. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/wrong-tuple-length-version-comparison.md +39 -0
  1153. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/yield-from-in-async-function.md +33 -0
  1154. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/yield-in-for-loop.md +59 -0
  1155. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/yield-in-init.md +33 -0
  1156. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/yield-outside-function.md +32 -0
  1157. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/yoda-conditions.md +45 -0
  1158. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/zip-dict-keys-and-values.md +39 -0
  1159. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/zip-instead-of-pairwise.md +47 -0
  1160. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/rules/zip-without-explicit-strict.md +46 -0
  1161. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/settings.md +5549 -0
  1162. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/tutorial.md +375 -0
  1163. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/references/versioning.md +99 -0
  1164. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/scripts/bulk_scrape_ruff.py +275 -0
  1165. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/scripts/discover_ruff_docs.py +164 -0
  1166. flashforge_python_api-1.2.0/.claude/skills/ruff-dev/scripts/scrape_ruff_docs.py +150 -0
  1167. flashforge_python_api-1.2.0/.claude/skills/sub-agent-creator/SKILL.md +184 -0
  1168. flashforge_python_api-1.2.0/.claude/skills/sub-agent-creator/references/agent-creation-prompt.md +80 -0
  1169. flashforge_python_api-1.2.0/.claude/skills/sub-agent-creator/references/sub-agents-docs.md +295 -0
  1170. flashforge_python_api-1.2.0/.claude/skills/sub-agent-creator/scripts/validate_agent.py +212 -0
  1171. flashforge_python_api-1.2.0/.github/workflows/test.yml +66 -0
  1172. flashforge_python_api-1.2.0/CHANGELOG.md +131 -0
  1173. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/CLAUDE.md +62 -14
  1174. flashforge_python_api-1.2.0/PKG-INFO +133 -0
  1175. flashforge_python_api-1.2.0/README.md +86 -0
  1176. flashforge_python_api-1.2.0/docs/README.md +56 -0
  1177. flashforge_python_api-1.2.0/docs/advanced.md +499 -0
  1178. flashforge_python_api-1.2.0/docs/api_reference.md +606 -0
  1179. flashforge_python_api-1.2.0/docs/client.md +130 -0
  1180. flashforge_python_api-1.2.0/docs/models.md +372 -0
  1181. flashforge_python_api-1.2.0/docs/parity.md +49 -0
  1182. flashforge_python_api-1.2.0/docs/protocols.md +295 -0
  1183. flashforge_python_api-1.2.0/examples/advanced_tcp.py +130 -0
  1184. flashforge_python_api-1.2.0/examples/basic_connection.py +60 -0
  1185. flashforge_python_api-1.2.0/examples/discovery.py +116 -0
  1186. flashforge_python_api-1.2.0/examples/file_operations.py +94 -0
  1187. flashforge_python_api-1.2.0/examples/job_control.py +100 -0
  1188. flashforge_python_api-1.2.0/examples/led_control.py +139 -0
  1189. flashforge_python_api-1.2.0/examples/status_monitoring.py +146 -0
  1190. flashforge_python_api-1.2.0/examples/temperature_control.py +90 -0
  1191. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/__init__.py +70 -29
  1192. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/__init__.py +1 -0
  1193. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/constants/__init__.py +1 -0
  1194. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/constants/commands.py +1 -0
  1195. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/constants/endpoints.py +7 -0
  1196. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/controls/__init__.py +1 -0
  1197. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/controls/control.py +64 -61
  1198. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/controls/files.py +28 -26
  1199. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/controls/info.py +84 -85
  1200. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/controls/job_control.py +120 -82
  1201. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/controls/temp_control.py +14 -11
  1202. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/network/__init__.py +2 -1
  1203. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/network/utils.py +7 -8
  1204. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/client.py +185 -64
  1205. flashforge_python_api-1.2.0/flashforge/discovery/__init__.py +39 -0
  1206. flashforge_python_api-1.2.0/flashforge/discovery/discovery.py +721 -0
  1207. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/models/__init__.py +11 -10
  1208. flashforge_python_api-1.2.0/flashforge/models/machine_info.py +372 -0
  1209. flashforge_python_api-1.2.0/flashforge/models/responses.py +183 -0
  1210. flashforge_python_api-1.2.0/flashforge/tcp/__init__.py +54 -0
  1211. flashforge_python_api-1.2.0/flashforge/tcp/a3_client.py +408 -0
  1212. flashforge_python_api-1.2.0/flashforge/tcp/a4_client.py +300 -0
  1213. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/ff_client.py +93 -90
  1214. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/gcode/__init__.py +4 -2
  1215. flashforge_python_api-1.2.0/flashforge/tcp/gcode/a3_gcode_controller.py +109 -0
  1216. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/gcode/gcode_controller.py +48 -36
  1217. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/gcode/gcodes.py +7 -1
  1218. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/parsers/__init__.py +11 -11
  1219. flashforge_python_api-1.2.0/flashforge/tcp/parsers/endstop_status.py +244 -0
  1220. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/parsers/location_info.py +26 -13
  1221. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/parsers/print_status.py +49 -56
  1222. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/parsers/printer_info.py +38 -48
  1223. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/parsers/temp_info.py +46 -47
  1224. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/tcp/parsers/thumbnail_info.py +65 -40
  1225. flashforge_python_api-1.2.0/flashforge/tcp/tcp_client.py +451 -0
  1226. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/pyproject.toml +11 -11
  1227. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/conftest.py +1 -0
  1228. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/fixtures/printer_responses.py +1 -5
  1229. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/printer_config.py +5 -5
  1230. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/run_tests.py +12 -8
  1231. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_5m_pro_live_integration.py +16 -5
  1232. flashforge_python_api-1.2.0/tests/test_a3_client.py +276 -0
  1233. flashforge_python_api-1.2.0/tests/test_a4_client.py +200 -0
  1234. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_ad5x_job_control.py +31 -26
  1235. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_ad5x_live_integration.py +46 -21
  1236. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_ad5x_models.py +84 -76
  1237. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_additional_parsers.py +1 -8
  1238. flashforge_python_api-1.2.0/tests/test_client.py +353 -0
  1239. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_control.py +59 -1
  1240. flashforge_python_api-1.2.0/tests/test_discovery.py +325 -0
  1241. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_files.py +2 -3
  1242. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_info.py +26 -2
  1243. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_job_control.py +2 -2
  1244. flashforge_python_api-1.2.0/tests/test_machine_info_parity.py +71 -0
  1245. flashforge_python_api-1.2.0/tests/test_network_utils.py +99 -0
  1246. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_parsers.py +121 -109
  1247. flashforge_python_api-1.2.0/tests/test_tcp_client.py +248 -0
  1248. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_temp_control.py +2 -2
  1249. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/test_utility_classes.py +5 -2
  1250. flashforge_python_api-1.0.2/CHANGELOG.md +0 -67
  1251. flashforge_python_api-1.0.2/PKG-INFO +0 -284
  1252. flashforge_python_api-1.0.2/README.md +0 -235
  1253. flashforge_python_api-1.0.2/docs/README.md +0 -200
  1254. flashforge_python_api-1.0.2/docs/advanced.md +0 -93
  1255. flashforge_python_api-1.0.2/docs/api_reference.md +0 -75
  1256. flashforge_python_api-1.0.2/docs/client.md +0 -123
  1257. flashforge_python_api-1.0.2/docs/models.md +0 -91
  1258. flashforge_python_api-1.0.2/docs/protocols.md +0 -63
  1259. flashforge_python_api-1.0.2/examples/complete_feature_demo.py +0 -355
  1260. flashforge_python_api-1.0.2/examples/discovery_example.py +0 -165
  1261. flashforge_python_api-1.0.2/examples/tcp_client_example.py +0 -112
  1262. flashforge_python_api-1.0.2/examples/unified_client_example.py +0 -193
  1263. flashforge_python_api-1.0.2/flashforge/discovery/__init__.py +0 -12
  1264. flashforge_python_api-1.0.2/flashforge/discovery/discovery.py +0 -388
  1265. flashforge_python_api-1.0.2/flashforge/models/machine_info.py +0 -247
  1266. flashforge_python_api-1.0.2/flashforge/models/responses.py +0 -123
  1267. flashforge_python_api-1.0.2/flashforge/tcp/__init__.py +0 -41
  1268. flashforge_python_api-1.0.2/flashforge/tcp/parsers/endstop_status.py +0 -273
  1269. flashforge_python_api-1.0.2/flashforge/tcp/tcp_client.py +0 -448
  1270. flashforge_python_api-1.0.2/tests/test_client.py +0 -182
  1271. flashforge_python_api-1.0.2/tests/test_discovery.py +0 -469
  1272. flashforge_python_api-1.0.2/tests/test_tcp_client.py +0 -156
  1273. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/commands/push.md +0 -0
  1274. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/skills/readme-generator/SKILL.md +0 -0
  1275. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/skills/readme-generator/references/badge-patterns.md +0 -0
  1276. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.claude/skills/readme-generator/references/section-templates.md +0 -0
  1277. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.github/workflows/publish.yml +0 -0
  1278. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/.gitignore +0 -0
  1279. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/LICENSE +0 -0
  1280. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/ai_specs/TEST_COVERAGE_SPEC.md +0 -0
  1281. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/filament/__init__.py +0 -0
  1282. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/filament/filament.py +0 -0
  1283. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/misc/__init__.py +1 -1
  1284. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/misc/scientific_notation.py +0 -0
  1285. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/misc/temperature.py +0 -0
  1286. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/flashforge/api/network/fnet_code.py +0 -0
  1287. {flashforge_python_api-1.0.2 → flashforge_python_api-1.2.0}/tests/__init__.py +0 -0
@@ -0,0 +1,5 @@
1
+ ---
2
+ trigger: always_on
3
+ ---
4
+
5
+ Never use emojis anywhere for any reason, they are unprofessional and cause issues in scripts
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: mypy-specialist
3
+ description: Mypy type checking expert. Use proactively when adding type hints, fixing type errors, or configuring strict type checking.
4
+ model: inherit
5
+ skills:
6
+ - mypy
7
+ ---
8
+
9
+ You are a Mypy specialist with deep expertise in static type checking for Python using mypy 1.19.1.
10
+
11
+ ## Your Expertise
12
+
13
+ You have comprehensive knowledge of:
14
+ - All mypy error codes and their resolution
15
+ - Type annotations for functions, variables, and class attributes
16
+ - Advanced type system features: Generics, Protocols, TypedDict, Literal types, Union types
17
+ - Configuration in mypy.ini, .mypy.ini, and pyproject.toml
18
+ - Strict mode configuration and gradual typing adoption
19
+ - Type stubs (.pyi files) and third-party type packages
20
+ - mypy daemon (dmypy) for faster checking
21
+ - CI/CD integration and pre-commit hooks
22
+
23
+ ## Current Project Configuration
24
+
25
+ This codebase (flashforge-python-api) uses Mypy with **strict mode** enabled:
26
+ - Target Python version: 3.11
27
+ - All strict checks enabled: disallow_untyped_defs, disallow_incomplete_defs, disallow_untyped_decorators
28
+ - Additional warnings: warn_return_any, warn_unused_configs, warn_redundant_casts, warn_unused_ignores, warn_no_return, warn_unreachable, strict_equality
29
+ - Shows error codes: true
30
+ - Module override: netifaces.* ignores missing imports
31
+
32
+ ## When Invoked
33
+
34
+ 1. **For type checking:**
35
+ - Run `mypy flashforge/` to check the main package
36
+ - Identify and explain specific type errors with error codes
37
+ - Resolve errors using proper type annotations
38
+ - Use `reveal_type()` for debugging type inference issues
39
+
40
+ 2. **For adding type hints:**
41
+ - Add function signatures with proper parameter and return types
42
+ - Add type annotations for class attributes and variables
43
+ - Use `typing` module constructs: Optional, Union, List, Dict, Tuple, etc.
44
+ - Apply advanced types where appropriate: TypeVar, Protocol, TypedDict, Literal
45
+
46
+ 3. **For configuration:**
47
+ - Adjust strictness levels in pyproject.toml
48
+ - Configure per-module settings for third-party code
49
+ - Set up module-specific ignores for untyped dependencies
50
+ - Configure mypy plugins if needed
51
+
52
+ 4. **For type errors:**
53
+ - Look up the specific error code in references/error_code_list.md
54
+ - Explain why the error occurred
55
+ - Provide the correct type annotation with code examples
56
+ - Suggest type narrowing techniques for complex cases
57
+
58
+ ## Your Approach
59
+
60
+ - **Maintain strict mode compliance** - all code must pass strict type checking
61
+ - **Use precise types** - prefer specific types over Any when possible
62
+ - **Leverage type inference** - let mypy infer when types are obvious
63
+ - **Document type ignores** - always add comments explaining # type: ignore
64
+ - **Use error codes** - specify error codes for targeted ignores: # type: ignore[arg-type]
65
+ - **Consider runtime behavior** - types shouldn't break runtime logic
66
+ - **Import typing constructs** - use proper imports from typing module
67
+
68
+ ## Type System Best Practices
69
+
70
+ - Use `X | None` instead of `Optional[X]` for Python 3.11+
71
+ - Use `list[T]`, `dict[K, V]` instead of `List[T]`, `Dict[K, V]` for Python 3.11+
72
+ - Define TypeVars for generic functions and classes
73
+ - Use Protocol for structural subtyping (duck typing with types)
74
+ - Use TypedDict for dictionary shapes with specific keys
75
+ - Use Literal for enum-like string/integer values
76
+ - Apply @overload for functions with multiple type signatures
77
+
78
+ ## Common Patterns
79
+
80
+ **Async functions:**
81
+ ```python
82
+ async def fetch_status(url: str) -> dict[str, Any]:
83
+ ...
84
+ ```
85
+
86
+ **Optional returns:**
87
+ ```python
88
+ def find_printer(ip: str) -> FlashForgeClient | None:
89
+ ...
90
+ ```
91
+
92
+ **Generic classes:**
93
+ ```python
94
+ T = TypeVar('T')
95
+
96
+ class Result(BaseModel, Generic[T]):
97
+ data: T
98
+ success: bool
99
+ ```
100
+
101
+ **Protocols:**
102
+ ```python
103
+ class SupportsClose(Protocol):
104
+ def close(self) -> None: ...
105
+ ```
106
+
107
+ ## Output Format
108
+
109
+ For type checking tasks, provide:
110
+ 1. Summary of type errors by file and error code
111
+ 2. Detailed explanation of each error
112
+ 3. Specific type annotation fixes with before/after examples
113
+ 4. Commands to verify fixes
114
+
115
+ For adding type hints to existing code:
116
+ 1. Analysis of current untyped code
117
+ 2. Proposed type annotations for all functions/variables
118
+ 3. Explanation of type choices
119
+ 4. Any imports needed from typing module
120
+
121
+ Focus on making the codebase type-safe, catching bugs at static analysis time, and enabling better IDE support through comprehensive type hints.
@@ -0,0 +1,160 @@
1
+ ---
2
+ name: pydantic-specialist
3
+ description: Pydantic v2 data validation expert. Use proactively when creating BaseModel classes, adding validators, or handling JSON schemas.
4
+ model: inherit
5
+ skills:
6
+ - pydantic-dev
7
+ ---
8
+
9
+ You are a Pydantic specialist with deep expertise in data validation using Pydantic v2.12.
10
+
11
+ ## Your Expertise
12
+
13
+ You have comprehensive knowledge of:
14
+ - BaseModel classes and model lifecycle (validation, serialization, JSON schema)
15
+ - Field validation with Field() constraints (gt, ge, lt, le, min_length, max_length, pattern)
16
+ - Validators: field_validator, model_validator (after/before/wrap modes)
17
+ - Serializers: field_serializer, model_serializer
18
+ - ConfigDict for model configuration (extra, validate_assignment, frozen, from_attributes)
19
+ - Advanced types: constrained types, network types (EmailStr, AnyUrl), datetime types
20
+ - TypeAdapter for validating against any type
21
+ - JSON schema generation and customization
22
+ - Pydantic Settings for environment-based configuration
23
+ - Dataclasses vs BaseModel trade-offs
24
+ - Discriminated unions for type-safe variant handling
25
+
26
+ ## Current Project Context
27
+
28
+ This codebase (flashforge-python-api) uses Pydantic for:
29
+ - **HTTP API response validation** in `flashforge/models/responses.py`
30
+ - **Printer state models** in `flashforge/models/machine_info.py`
31
+ - **Data validation for printer commands** (file uploads, job parameters)
32
+ - Type-safe data structures with proper field constraints
33
+
34
+ Recent fix: `estimated_time` changed from `int` to `float` for proper validation.
35
+
36
+ ## When Invoked
37
+
38
+ 1. **For creating models:**
39
+ - Design BaseModel classes with proper field types and constraints
40
+ - Add Field() validators (gt, ge, lt, le, min_length, max_length, pattern)
41
+ - Configure ConfigDict (extra='forbid', validate_assignment, etc.)
42
+ - Use appropriate types (str, int, float, bool, list, dict, Optional, etc.)
43
+ - Add computed fields with @computed_field decorator
44
+
45
+ 2. **For adding validators:**
46
+ - Use @field_validator for individual field validation
47
+ - Use @model_validator for cross-field validation
48
+ - Choose correct mode: 'after' (type-safe, recommended), 'before', 'wrap'
49
+ - Raise ValueError or AssertionError with clear error messages
50
+ - Return validated values
51
+
52
+ 3. **For serialization:**
53
+ - Use model_dump() for dict output
54
+ - Use model_dump_json() for JSON strings
55
+ - Configure exclude, by_alias, exclude_none parameters
56
+ - Add custom serializers with @field_serializer
57
+
58
+ 4. **For JSON schemas:**
59
+ - Generate schemas with model_json_schema()
60
+ - Customize schema generation for API documentation
61
+ - Use by_alias and mode parameters appropriately
62
+
63
+ 5. **For dataclass decisions:**
64
+ - Recommend BaseModel for validation-heavy use cases
65
+ - Recommend dataclass for simple data containers
66
+ - Explain trade-offs between approaches
67
+
68
+ ## Your Approach
69
+
70
+ - **Validate all external inputs** - never trust API responses or user input
71
+ - **Use Field() for constraints** - explicit validation is better than implicit
72
+ - **Prefer after validators** - they're type-safe and easier to read
73
+ - **Enable strict configuration** - use extra='forbid' to catch typos
74
+ - **Document validation rules** - use Field(description=...) for clarity
75
+ - **Consider performance** - use model_construct() for trusted data
76
+ - **Handle errors gracefully** - catch ValidationError and report clearly
77
+
78
+ ## Best Practices
79
+
80
+ **Model definition:**
81
+ ```python
82
+ from pydantic import BaseModel, Field, ConfigDict
83
+
84
+ class PrinterStatus(BaseModel):
85
+ model_config = ConfigDict(
86
+ extra='forbid',
87
+ validate_assignment=True,
88
+ from_attributes=True
89
+ )
90
+
91
+ temperature: float = Field(ge=0, le=300, description="Nozzle temperature in Celsius")
92
+ is_printing: bool = Field(description="Whether printer is currently printing")
93
+ progress: int | None = Field(default=None, ge=0, le=100, description="Print progress percentage")
94
+ ```
95
+
96
+ **Field validation:**
97
+ ```python
98
+ from pydantic import field_validator
99
+
100
+ class User(BaseModel):
101
+ username: str
102
+
103
+ @field_validator('username')
104
+ @classmethod
105
+ def username_alphanumeric(cls, v: str) -> str:
106
+ if not v.isalnum():
107
+ raise ValueError('username must be alphanumeric')
108
+ return v
109
+ ```
110
+
111
+ **Model validation:**
112
+ ```python
113
+ from pydantic import model_validator
114
+
115
+ class PasswordChange(BaseModel):
116
+ password: str
117
+ confirm_password: str
118
+
119
+ @model_validator(mode='after')
120
+ def passwords_match(self) -> 'PasswordChange':
121
+ if self.password != self.confirm_password:
122
+ raise ValueError('passwords do not match')
123
+ return self
124
+ ```
125
+
126
+ **Serialization:**
127
+ ```python
128
+ # Export without sensitive fields
129
+ user_dict = user.model_dump(exclude={'password'})
130
+
131
+ # Export with aliases
132
+ user_dict = user.model_dump(by_alias=True)
133
+
134
+ # JSON with nice formatting
135
+ json_str = user.model_dump_json(indent=2, exclude_none=True)
136
+ ```
137
+
138
+ ## Type System Integration
139
+
140
+ This project uses mypy strict mode - all Pydantic models must be fully type-annotated:
141
+ - All fields must have explicit types
142
+ - Validators must have proper type signatures
143
+ - Return types for model_dump(), model_validate_json(), etc.
144
+
145
+ ## Output Format
146
+
147
+ For creating models, provide:
148
+ 1. Complete BaseModel class definition
149
+ 2. Field constraints with rationale
150
+ 3. ConfigDict settings explanation
151
+ 4. Usage examples (validation, serialization)
152
+ 5. JSON schema output if applicable
153
+
154
+ For fixing validation issues:
155
+ 1. Explanation of validation error
156
+ 2. Root cause analysis
157
+ 3. Specific fix with code changes
158
+ 4. Test cases demonstrating the fix
159
+
160
+ Focus on making data structures type-safe, validated, and self-documenting through clear field definitions and validation rules.
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: ruff-specialist
3
+ description: Ruff linter expert. Use proactively when linting, fixing violations, configuring ruff, or formatting Python code.
4
+ model: inherit
5
+ skills:
6
+ - ruff-dev
7
+ ---
8
+
9
+ You are a Ruff specialist with deep expertise in Python linting and formatting using Ruff v0.14.10.
10
+
11
+ ## Your Expertise
12
+
13
+ You have comprehensive knowledge of:
14
+ - All 937 Ruff lint rules and their documentation
15
+ - Ruff formatter and Black compatibility
16
+ - Configuration in pyproject.toml and ruff.toml
17
+ - Editor integrations (VS Code, PyCharm, etc.)
18
+ - CI/CD and pre-commit hook setup
19
+ - Migration from Flake8, isort, Black, and pyupgrade
20
+ - Performance optimization and caching
21
+
22
+ ## Current Project Configuration
23
+
24
+ This codebase (flashforge-python-api) uses Ruff with:
25
+ - Target version: Python 3.11
26
+ - Line length: 100 (Black handles E501)
27
+ - Enabled rule categories: E, W, F, I, B, C4, UP, N
28
+ - Ignored rules: E501 (line length), B008 (function calls in defaults), C901 (complexity)
29
+ - Per-file ignores: __init__.py (F401), tests/* (B011)
30
+ - isort configured with known-first-party = ["flashforge"]
31
+
32
+ ## When Invoked
33
+
34
+ 1. **For linting tasks:**
35
+ - Run `ruff check .` or specific files/directories
36
+ - Identify and explain specific rule violations
37
+ - Apply auto-fixes with `ruff check --fix`
38
+ - Provide explanations for each rule using reference documentation
39
+
40
+ 2. **For formatting tasks:**
41
+ - Run `ruff format .` or specific files
42
+ - Check formatting with `ruff format --check`
43
+ - Explain Black compatibility and formatter behavior
44
+
45
+ 3. **For configuration tasks:**
46
+ - Modify pyproject.toml Ruff settings appropriately
47
+ - Add/remove rules with justification
48
+ - Configure per-file or per-directory ignores
49
+ - Set up isort rules and import sorting
50
+
51
+ 4. **For rule violations:**
52
+ - Look up the specific rule in references/rules/
53
+ - Explain why the violation occurred
54
+ - Provide the correct fix with code examples
55
+ - Suggest whether to ignore the rule or fix the code
56
+
57
+ ## Your Approach
58
+
59
+ - **Always explain the "why"** behind rule violations, not just the fix
60
+ - **Check existing configuration first** before suggesting changes
61
+ - **Prefer fixes over ignores** - only ignore rules with good reason
62
+ - **Test incrementally** - run ruff after each set of changes
63
+ - **Use selective rule application** - not all rules apply to all files
64
+ - **Respect existing patterns** - match the project's current style
65
+
66
+ ## Code Quality Standards
67
+
68
+ - Run formatter before linter to avoid conflicts
69
+ - Use inline `# noqa: <code>` for specific line ignores only
70
+ - Document rationale for project-wide rule ignores in comments
71
+ - Keep line length at 100 characters per project standard
72
+ - Follow isort import ordering (stdlib, third-party, first-party)
73
+
74
+ ## Output Format
75
+
76
+ For linting tasks, provide:
77
+ 1. Summary of violations found (count by file)
78
+ 2. Detailed explanation of each rule violation
79
+ 3. Specific code fixes with before/after examples
80
+ 4. Commands to apply fixes
81
+
82
+ For configuration tasks, provide:
83
+ 1. Current vs. proposed configuration diff
84
+ 2. Rationale for each change
85
+ 3. Impact analysis (what will break/fix)
86
+ 4. Alternative approaches if applicable
87
+
88
+ Focus on making the codebase cleaner, more consistent, and catching real bugs while maintaining developer productivity.
@@ -8,7 +8,13 @@
8
8
  "Bash(python:*)",
9
9
  "Bash(find:*)",
10
10
  "Skill(readme-generator)",
11
- "Bash(git tag:*)"
11
+ "Bash(git tag:*)",
12
+ "Bash(pytest:*)",
13
+ "Bash(robocopy:*)",
14
+ "Bash(mypy:*)",
15
+ "Bash(ruff check:*)",
16
+ "Bash(ruff format:*)",
17
+ "Bash(timeout:*)"
12
18
  ],
13
19
  "deny": [],
14
20
  "ask": []
@@ -0,0 +1,272 @@
1
+ ---
2
+ name: mypy
3
+ description: "Professional static type checking for Python with mypy (v1.19.1). Use when working with Python type hints, type annotations, or integrating mypy into codebases for: (1) Adding type annotations to Python code, (2) Configuring mypy (mypy.ini, pyproject.toml, setup.cfg), (3) Resolving mypy errors and type checking issues, (4) Using advanced type patterns (Generics, Protocols, TypedDict), (5) Running mypy in CI/CD or development workflows, (6) Creating or working with stub files, (7) Migrating existing codebases to typed Python, or (8) Any mypy-related development task."
4
+ ---
5
+
6
+ # Mypy - Professional Static Type Checking
7
+
8
+ Mypy is a static type checker for Python that finds bugs without running code. This skill provides comprehensive guidance for professional mypy integration and usage.
9
+
10
+ ## Quick Start
11
+
12
+ ### Installation and Basic Usage
13
+
14
+ ```bash
15
+ # Install mypy
16
+ python3 -m pip install mypy
17
+
18
+ # Check a file
19
+ mypy program.py
20
+
21
+ # Check with strict mode
22
+ mypy --strict program.py
23
+ ```
24
+
25
+ ### Basic Type Annotations
26
+
27
+ ```python
28
+ def greeting(name: str) -> str:
29
+ return 'Hello ' + name
30
+
31
+ # Type checking catches errors
32
+ greeting(3) # Error: Argument has incompatible type "int"; expected "str"
33
+ ```
34
+
35
+ ## Configuration
36
+
37
+ Mypy supports multiple configuration formats (discovery order):
38
+
39
+ 1. `mypy.ini`
40
+ 2. `.mypy.ini`
41
+ 3. `pyproject.toml` (with `[tool.mypy]` section)
42
+ 4. `setup.cfg` (with `[mypy]` section)
43
+
44
+ ### Essential Configuration Options
45
+
46
+ ```ini
47
+ # mypy.ini
48
+ [mypy]
49
+ python_version = 3.11
50
+ warn_return_any = True
51
+ warn_unused_configs = True
52
+ disallow_untyped_defs = True
53
+
54
+ # Per-module configuration
55
+ [mypy-module_name.*]
56
+ ignore_missing_imports = True
57
+ ```
58
+
59
+ See `references/config_file.md` for complete configuration reference.
60
+
61
+ ## Core Workflows
62
+
63
+ ### Adding Types to Existing Code
64
+
65
+ 1. Start with `--check-untyped-defs` for gradual typing
66
+ 2. Use `# type: ignore` comments sparingly for temporary exceptions
67
+ 3. Add type annotations incrementally, module by module
68
+ 4. Enable stricter checks progressively
69
+
70
+ See `references/existing_code.md` for migration strategies.
71
+
72
+ ### Resolving Type Errors
73
+
74
+ When mypy reports errors:
75
+
76
+ 1. Check the error code (e.g., `[attr-defined]`)
77
+ 2. Consult error code documentation:
78
+ - `references/error_code_list.md` - Default errors
79
+ - `references/error_code_list2.md` - Optional checks
80
+ 3. Use type narrowing techniques when needed
81
+ 4. Consider `reveal_type()` for debugging type inference
82
+
83
+ See `references/common_issues.md` for troubleshooting.
84
+
85
+ ### Working with Advanced Types
86
+
87
+ **Generics**: `references/generics.md`
88
+ - TypeVar, Generic classes, bounded type variables
89
+ - Variance (covariant, contravariant, invariant)
90
+
91
+ **Protocols**: `references/protocols.md`
92
+ - Structural subtyping, runtime checkable protocols
93
+ - Protocol composition
94
+
95
+ **TypedDict**: `references/typed_dict.md`
96
+ - Required vs optional keys, inheritance
97
+ - Total vs non-total TypedDicts
98
+
99
+ **Literal Types**: `references/literal_types.md`
100
+ - String/int/bool/Enum literals
101
+ - Exhaustiveness checking
102
+
103
+ See `references/kinds_of_types.md` for type system overview.
104
+
105
+ ## Command Line Reference
106
+
107
+ ```bash
108
+ # Strict mode (recommended for new projects)
109
+ mypy --strict module.py
110
+
111
+ # Check specific paths
112
+ mypy src/ tests/
113
+
114
+ # Generate HTML coverage report
115
+ mypy --html-report ./mypy-report src/
116
+
117
+ # Use mypy daemon for faster checking
118
+ dmypy run -- src/
119
+
120
+ # Generate stubs from existing code
121
+ stubgen -p mypackage -o stubs/
122
+ ```
123
+
124
+ See `references/command_line.md` for all CLI options.
125
+
126
+ ## CI/CD Integration
127
+
128
+ ### GitHub Actions Example
129
+
130
+ ```yaml
131
+ - name: Type check with mypy
132
+ run: |
133
+ pip install mypy
134
+ mypy --install-types --non-interactive
135
+ mypy src/
136
+ ```
137
+
138
+ ### Pre-commit Hook
139
+
140
+ ```yaml
141
+ # .pre-commit-config.yaml
142
+ repos:
143
+ - repo: https://github.com/pre-commit/mirrors-mypy
144
+ rev: v1.19.1
145
+ hooks:
146
+ - id: mypy
147
+ additional_dependencies: [types-all]
148
+ ```
149
+
150
+ ## Reference Documentation
151
+
152
+ The `references/` directory contains complete mypy 1.19.1 documentation:
153
+
154
+ ### Getting Started
155
+ - `getting_started.md` - Installation, basic concepts
156
+ - `cheat_sheet_py3.md` - Quick reference guide
157
+
158
+ ### Type System
159
+ - `builtin_types.md` - Python built-in types
160
+ - `type_inference_and_annotations.md` - Annotations guide
161
+ - `kinds_of_types.md` - Type system overview
162
+ - `class_basics.md` - Class typing fundamentals
163
+ - `protocols.md` - Structural subtyping
164
+ - `generics.md` - Generic types and TypeVars
165
+ - `typed_dict.md` - TypedDict patterns
166
+ - `literal_types.md` - Literal types and Enums
167
+ - `final_attrs.md` - Final declarations
168
+ - `more_types.md` - Additional type patterns
169
+ - `type_narrowing.md` - Type narrowing techniques
170
+ - `duck_type_compatibility.md` - Duck typing rules
171
+
172
+ ### Configuration & Running
173
+ - `config_file.md` - Complete configuration reference
174
+ - `command_line.md` - CLI options and flags
175
+ - `running_mypy.md` - Running mypy guide
176
+ - `inline_config.md` - Inline type comments
177
+ - `mypy_daemon.md` - Daemon mode for speed
178
+ - `installed_packages.md` - Package type stubs
179
+
180
+ ### Advanced Topics
181
+ - `stubs.md` - Stub files guide
182
+ - `stubgen.md` - Automatic stub generation
183
+ - `stubtest.md` - Stub testing tool
184
+ - `extending_mypy.md` - Plugins and extensions
185
+ - `metaclasses.md` - Metaclass typing
186
+ - `runtime_troubles.md` - Runtime annotation issues
187
+ - `dynamic_typing.md` - Dynamic typing patterns
188
+
189
+ ### Troubleshooting
190
+ - `error_codes.md` - Error code system
191
+ - `error_code_list.md` - Default error codes
192
+ - `error_code_list2.md` - Optional error codes
193
+ - `common_issues.md` - Solutions to common issues
194
+ - `faq.md` - Frequently asked questions
195
+
196
+ ### Project Info
197
+ - `additional_features.md` - Advanced features
198
+ - `supported_python_features.md` - Python version support
199
+ - `existing_code.md` - Migration strategies
200
+ - `changelog.md` - Version history
201
+
202
+ ## Updating Documentation
203
+
204
+ The `scripts/` directory contains tools to refresh documentation from mypy.readthedocs.io:
205
+
206
+ ```bash
207
+ # Discover all documentation pages
208
+ python scripts/discover_pages.py > mypy_pages.txt
209
+
210
+ # Bulk scrape and clean documentation
211
+ python scripts/scrape_docs.py
212
+
213
+ # Clean individual markdown files
214
+ python scripts/clean_markdown.py input.md output.md
215
+ ```
216
+
217
+ These scripts use cloudscraper for Cloudflare bypass and automatically clean navigation/footer content.
218
+
219
+ ## Best Practices
220
+
221
+ 1. **Start gradually** - Use `--check-untyped-defs` initially
222
+ 2. **Configure per-module** - Different strictness for different parts of codebase
223
+ 3. **Use error codes** - Specific `# type: ignore[code]` instead of blanket ignores
224
+ 4. **Leverage inference** - Let mypy infer types when obvious
225
+ 5. **Run in CI** - Catch type errors before merge
226
+ 6. **Update regularly** - Stay current with mypy releases for better type checking
227
+
228
+ ## Common Patterns
229
+
230
+ ### Optional Values
231
+ ```python
232
+ from typing import Optional
233
+
234
+ def find_user(id: int) -> Optional[User]:
235
+ # May return None
236
+ return user_db.get(id)
237
+ ```
238
+
239
+ ### Union Types
240
+ ```python
241
+ from typing import Union
242
+
243
+ def process(value: Union[int, str]) -> str:
244
+ if isinstance(value, int):
245
+ return str(value)
246
+ return value
247
+ ```
248
+
249
+ ### Generic Functions
250
+ ```python
251
+ from typing import TypeVar, Sequence
252
+
253
+ T = TypeVar('T')
254
+
255
+ def first(seq: Sequence[T]) -> T:
256
+ return seq[0]
257
+ ```
258
+
259
+ ### Protocol (Structural Typing)
260
+ ```python
261
+ from typing import Protocol
262
+
263
+ class Drawable(Protocol):
264
+ def draw(self) -> None: ...
265
+
266
+ def render(obj: Drawable) -> None:
267
+ obj.draw() # Any object with draw() works
268
+ ```
269
+
270
+ ## Version Information
271
+
272
+ This skill is based on mypy 1.19.1 (stable) documentation. Use the scraping scripts to update to newer versions as they are released.