optimum-rbln 0.8.1a6__tar.gz → 0.8.1rc0__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 (283) hide show
  1. optimum_rbln-0.8.1rc0/.github/scripts/validate_docstrings.py +161 -0
  2. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/check_code_quality.yml +1 -13
  3. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/rbln_scheduled_test.yaml +8 -0
  4. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/rbln_trigger_on_pr.yaml +15 -5
  5. optimum_rbln-0.8.1rc0/.github/workflows/test-docstrings.yml +137 -0
  6. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/PKG-INFO +1 -1
  7. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/__version__.py +2 -2
  8. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +0 -4
  9. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +0 -2
  10. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +0 -4
  11. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +0 -4
  12. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +0 -4
  13. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/modeling_diffusers.py +16 -18
  14. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +6 -1
  15. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +13 -3
  16. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +6 -1
  17. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +70 -14
  18. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +1 -1
  19. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/modeling.py +38 -2
  20. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/modeling_base.py +18 -2
  21. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/modeling_generic.py +3 -3
  22. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +12 -2
  23. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +16 -7
  24. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +18 -3
  25. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +24 -0
  26. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +13 -1
  27. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +15 -0
  28. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +12 -2
  29. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +27 -1
  30. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +22 -20
  31. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +6 -1
  32. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +8 -0
  33. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +6 -1
  34. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +6 -1
  35. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +5 -3
  36. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +8 -0
  37. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +16 -0
  38. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +8 -0
  39. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +6 -1
  40. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +5 -1
  41. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +12 -2
  42. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +16 -0
  43. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +6 -2
  44. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +7 -0
  45. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +7 -0
  46. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +12 -2
  47. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/time_series_transformer/configuration_time_series_transformer.py +7 -0
  48. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +6 -2
  49. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/vit/configuration_vit.py +6 -1
  50. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/vit/modeling_vit.py +7 -1
  51. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +7 -0
  52. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +7 -0
  53. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +6 -2
  54. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/runtime_utils.py +46 -1
  55. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/test_config.py +3 -0
  56. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/test_transformers.py +11 -1
  57. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  58. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  59. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  60. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
  61. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/pull_request_template.md +0 -0
  62. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/scripts/auto_code_review.py +0 -0
  63. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/scripts/validate_pr_checklist.py +0 -0
  64. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/version.yaml +0 -0
  65. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/auto_code_review.yml +0 -0
  66. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/deploy-on-tag.yaml +0 -0
  67. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/deploy.yaml +0 -0
  68. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/pr-title-check.yaml +0 -0
  69. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/pr_checklist_validator.yml +0 -0
  70. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/rbln_check_compiler.yaml +0 -0
  71. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
  72. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
  73. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.github/workflows/rbln_optimum_pytest.yaml +0 -0
  74. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/.gitignore +0 -0
  75. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/CODE_OF_CONDUCT.md +0 -0
  76. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/CONTRIBUTING.md +0 -0
  77. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/LICENSE +0 -0
  78. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/README.md +0 -0
  79. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/assets/rbln_logo.png +0 -0
  80. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/advanced/custom_class.py +0 -0
  81. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/audio-classification/run_ast_audio_classification.py +0 -0
  82. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/cosmos/run_cosmos_text2world.py +0 -0
  83. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/depth-estimation/run_dpt.py +0 -0
  84. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/image-classification/run_image_classification.py +0 -0
  85. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/image-classification/run_vit_image_classification.py +0 -0
  86. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/image-to-text/run_idefics3.py +0 -0
  87. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
  88. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
  89. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
  90. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
  91. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
  92. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
  93. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
  94. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
  95. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/question-answering/run_question_answering.py +0 -0
  96. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/speech-recognition/run_wav2vec2.py +0 -0
  97. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/speech-recognition/run_whisper.py +0 -0
  98. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
  99. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
  100. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
  101. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
  102. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
  103. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
  104. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
  105. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
  106. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
  107. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text-classification/run_secureBERT.py +0 -0
  108. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text-classification/run_t5_classification.py +0 -0
  109. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
  110. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
  111. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text2text-generation/run_llama_peft.py +0 -0
  112. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
  113. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
  114. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/pyproject.toml +0 -0
  115. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/scripts/uv-lock.sh +0 -0
  116. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/scripts/uv-sync.sh +0 -0
  117. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/__init__.py +0 -0
  118. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/configuration_utils.py +0 -0
  119. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/__init__.py +0 -0
  120. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/__init__.py +0 -0
  121. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/__init__.py +0 -0
  122. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +0 -0
  123. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +0 -0
  124. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +0 -0
  125. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_cosmos_transformer.py +0 -0
  126. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +0 -0
  127. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +0 -0
  128. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +0 -0
  129. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +0 -0
  130. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +0 -0
  131. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +0 -0
  132. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
  133. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
  134. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +0 -0
  135. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/controlnet.py +0 -0
  136. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
  137. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +0 -0
  138. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +0 -0
  139. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +0 -0
  140. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
  141. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +0 -0
  142. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
  143. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
  144. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +0 -0
  145. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +0 -0
  146. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +0 -0
  147. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +0 -0
  148. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +0 -0
  149. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/cosmos/__init__.py +0 -0
  150. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +0 -0
  151. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +0 -0
  152. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
  153. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +0 -0
  154. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +0 -0
  155. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +0 -0
  156. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +0 -0
  157. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +0 -0
  158. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
  159. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +0 -0
  160. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +0 -0
  161. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +0 -0
  162. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
  163. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +0 -0
  164. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +0 -0
  165. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +0 -0
  166. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
  167. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +0 -0
  168. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +0 -0
  169. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +0 -0
  170. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/ops/__init__.py +0 -0
  171. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/ops/attn.py +0 -0
  172. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/ops/flash_attn.py +0 -0
  173. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
  174. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/ops/linear.py +0 -0
  175. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
  176. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/__init__.py +0 -0
  177. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/configuration_generic.py +0 -0
  178. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/modeling_rope_utils.py +0 -0
  179. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/__init__.py +0 -0
  180. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/__init__.py +0 -0
  181. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +0 -0
  182. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +0 -0
  183. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
  184. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/auto/auto_factory.py +0 -0
  185. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
  186. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
  187. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +0 -0
  188. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
  189. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
  190. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
  191. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/colpali/__init__.py +0 -0
  192. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/colpali/colpali_architecture.py +0 -0
  193. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/colpali/configuration_colpali.py +0 -0
  194. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/colpali/modeling_colpali.py +0 -0
  195. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +0 -0
  196. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +0 -0
  197. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +0 -0
  198. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/distilbert/__init__.py +0 -0
  199. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
  200. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
  201. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +0 -0
  202. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +0 -0
  203. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -0
  204. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
  205. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +0 -0
  206. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +0 -0
  207. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -0
  208. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
  209. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +0 -0
  210. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +0 -0
  211. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
  212. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +0 -0
  213. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +0 -0
  214. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
  215. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
  216. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +0 -0
  217. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +0 -0
  218. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
  219. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +0 -0
  220. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
  221. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -0
  222. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
  223. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +0 -0
  224. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
  225. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +0 -0
  226. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +0 -0
  227. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -0
  228. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
  229. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +0 -0
  230. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
  231. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -0
  232. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
  233. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +0 -0
  234. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +0 -0
  235. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +0 -0
  236. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
  237. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +0 -0
  238. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/phi/modeling_phi.py +0 -0
  239. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +0 -0
  240. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
  241. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +0 -0
  242. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -0
  243. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
  244. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
  245. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +0 -0
  246. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/resnet/__init__.py +0 -0
  247. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/roberta/__init__.py +0 -0
  248. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +0 -0
  249. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +0 -0
  250. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +0 -0
  251. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
  252. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
  253. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +0 -0
  254. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +0 -0
  255. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/time_series_transformer/__init__.py +0 -0
  256. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/time_series_transformer/time_series_transformers_architecture.py +0 -0
  257. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/vit/__init__.py +0 -0
  258. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +0 -0
  259. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +0 -0
  260. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
  261. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
  262. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
  263. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +0 -0
  264. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +0 -0
  265. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +0 -0
  266. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
  267. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
  268. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/__init__.py +0 -0
  269. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/decorator_utils.py +0 -0
  270. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/hub.py +0 -0
  271. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/import_utils.py +0 -0
  272. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/logging.py +0 -0
  273. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/model_utils.py +0 -0
  274. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/save_utils.py +0 -0
  275. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/src/optimum/rbln/utils/submodule.py +0 -0
  276. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/__init__.py +0 -0
  277. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/psnr.py +0 -0
  278. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/requirements_sdxl.txt +0 -0
  279. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/run_stable_diffusion_xl_base.py +0 -0
  280. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/test_base.py +0 -0
  281. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/test_diffusers.py +0 -0
  282. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/tests/test_llm.py +0 -0
  283. {optimum_rbln-0.8.1a6 → optimum_rbln-0.8.1rc0}/uv.lock +0 -0
@@ -0,0 +1,161 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Simple and reliable docstring validator for CI/CD.
4
+ Focuses on catching issues that would break mkdocstrings parsing.
5
+ """
6
+
7
+ import subprocess
8
+ import sys
9
+ import tempfile
10
+ from pathlib import Path
11
+
12
+
13
+ def infer_module_name(file_path: Path) -> str:
14
+ """
15
+ Infer module name from file path.
16
+
17
+ Example:
18
+ src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py
19
+ -> optimum.rbln.transformers.models.decoderonly.modeling_decoderonly
20
+ """
21
+ if not any(keyword in file_path.name for keyword in ["configuration", "modeling"]):
22
+ return None
23
+
24
+ parts = file_path.parts
25
+
26
+ # Find 'src' directory index
27
+ try:
28
+ src_index = parts.index("src")
29
+ except ValueError:
30
+ # If no 'src' directory found, try common patterns
31
+ for common_src in ["lib", "package", file_path.parts[0]]:
32
+ if common_src in parts:
33
+ src_index = parts.index(common_src)
34
+ break
35
+ else:
36
+ # Fallback: use the first directory
37
+ src_index = 0
38
+
39
+ # Extract module path parts (everything after src, excluding .py)
40
+ module_parts = parts[src_index + 1 :]
41
+
42
+ # Remove .py extension from the last part
43
+ if module_parts and module_parts[-1].endswith(".py"):
44
+ module_parts = module_parts[:-1] + (module_parts[-1][:-3],)
45
+
46
+ # Join with dots
47
+ module_name = ".".join(module_parts)
48
+ return module_name
49
+
50
+
51
+ def test_mkdocstrings_parsing(file_path: Path, module_name: str = None) -> bool:
52
+ """Test if mkdocstrings can parse the module documentation."""
53
+ try:
54
+ if module_name:
55
+ # Test with specific module name
56
+ test_content = f"""# Test Documentation
57
+
58
+ :::{module_name}
59
+ options:
60
+ show_source: false
61
+ filters: ["!^_"]
62
+ """
63
+ else:
64
+ # Auto-infer module name from file path
65
+ inferred_module = infer_module_name(file_path)
66
+ if inferred_module is None:
67
+ print(
68
+ "⚠️ No module name provided, and the file is not a configuration or modeling file, skipping mkdocstrings test"
69
+ )
70
+ return True
71
+ print(f"ℹ️ Auto-inferred module name: {inferred_module}")
72
+ test_content = f"""# Test Documentation
73
+
74
+ :::{inferred_module}
75
+ options:
76
+ show_source: false
77
+ filters: ["!^_"]
78
+ """
79
+ module_name = inferred_module
80
+
81
+ config = f"""site_name: Test
82
+ plugins:
83
+ - mkdocstrings:
84
+ handlers:
85
+ python:
86
+ paths: ["{Path(__file__).parent.parent.parent / "src"}"]
87
+ options:
88
+ show_source: false
89
+ filters: ["!^_"]
90
+ """
91
+
92
+ with tempfile.TemporaryDirectory() as tmp_dir:
93
+ tmp_path = Path(tmp_dir)
94
+ (tmp_path / "mkdocs.yml").write_text(config)
95
+ docs_dir = tmp_path / "docs"
96
+ docs_dir.mkdir()
97
+ (docs_dir / "index.md").write_text(test_content)
98
+
99
+ result = subprocess.run(
100
+ ["mkdocs", "build", "--strict"], cwd=tmp_path, capture_output=True, text=True, timeout=10
101
+ )
102
+
103
+ if result.returncode != 0:
104
+ print(f"❌ mkdocstrings parsing failed for {file_path}:")
105
+ print(f" Module: {module_name}")
106
+ # Show relevant errors and warnings
107
+ lines = result.stderr.split("\n")
108
+ relevant = [
109
+ l for l in lines if any(keyword in l for keyword in ["griffe", "WARNING", "ERROR", "CRITICAL"])
110
+ ]
111
+ for line in relevant[:5]: # Show first 5 relevant lines
112
+ if line.strip():
113
+ print(f" {line.strip()}")
114
+ return False
115
+
116
+ return True
117
+
118
+ except subprocess.TimeoutExpired:
119
+ print(f"⚠️ Timeout testing {file_path} (non-fatal)")
120
+ return True # Don't fail on timeout
121
+ except Exception as e:
122
+ print(f"⚠️ Could not test mkdocstrings for {file_path}: {e} (non-fatal)")
123
+ return True # Don't fail on test errors
124
+
125
+
126
+ def main():
127
+ """Main entry point."""
128
+ if len(sys.argv) < 2:
129
+ print("Usage: python validate_docstrings.py <python_file> [module_name]")
130
+ print()
131
+ print("Examples:")
132
+ print(" python validate_docstrings.py src/my_module.py")
133
+ print(" python validate_docstrings.py src/my_module.py my.module.name")
134
+ print()
135
+ print("Note: If module_name is not provided, it will be auto-inferred from file path")
136
+ sys.exit(1)
137
+
138
+ file_path = Path(sys.argv[1])
139
+ module_name = sys.argv[2] if len(sys.argv) > 2 else None
140
+
141
+ if not file_path.exists():
142
+ print(f"❌ File not found: {file_path}")
143
+ sys.exit(1)
144
+
145
+ print(f"🔍 Testing mkdocstrings parsing: {file_path}")
146
+ if module_name:
147
+ print(f"📦 Module: {module_name}")
148
+
149
+ # Test mkdocstrings compatibility
150
+ mkdocs_ok = test_mkdocstrings_parsing(file_path, module_name)
151
+
152
+ if mkdocs_ok:
153
+ print("✅ mkdocstrings parsing test passed!")
154
+ sys.exit(0)
155
+ else:
156
+ print("❌ mkdocstrings parsing test failed!")
157
+ sys.exit(1)
158
+
159
+
160
+ if __name__ == "__main__":
161
+ main()
@@ -1,19 +1,7 @@
1
1
  name: check_code_quality
2
2
 
3
3
  on:
4
- push:
5
- branches: [main]
6
- paths:
7
- - "src/**/*.py"
8
- - "tests/**/*.py"
9
- - "examples/**/*.py"
10
-
11
- pull_request:
12
- branches: [main]
13
- paths:
14
- - "src/**/*.py"
15
- - "tests/**/*.py"
16
- - "examples/**/*.py"
4
+ workflow_call:
17
5
 
18
6
  concurrency:
19
7
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -10,6 +10,14 @@ env:
10
10
  HF_AUTH_TOKEN: ${{ secrets.HF_AUTH_TOKEN }}
11
11
 
12
12
  jobs:
13
+ check-code-quality:
14
+ uses: ./.github/workflows/check_code_quality.yml
15
+
16
+ test-docstrings:
17
+ uses: ./.github/workflows/test-docstrings.yml
18
+ with:
19
+ test_all_files: true
20
+
13
21
  load-version:
14
22
  runs-on: rebel-k8s-runner
15
23
  outputs:
@@ -24,9 +24,19 @@ jobs:
24
24
  echo "No [skip ci] found, continuing with CI"
25
25
  fi
26
26
 
27
+ check-code-quality:
28
+ needs: check-skip-ci
29
+ if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
30
+ uses: ./.github/workflows/check_code_quality.yml
31
+
32
+ test-docstrings:
33
+ needs: check-skip-ci
34
+ if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
35
+ uses: ./.github/workflows/test-docstrings.yml
36
+
27
37
  load-version:
28
38
  runs-on: rebel-k8s-runner
29
- needs: check-skip-ci
39
+ needs: [check-skip-ci, check-code-quality, test-docstrings]
30
40
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
31
41
  outputs:
32
42
  compiler_version: ${{ steps.get_version.outputs.compiler_version }}
@@ -41,7 +51,7 @@ jobs:
41
51
  echo "compiler_version=$VERSION" >> $GITHUB_OUTPUT
42
52
 
43
53
  check-compiler:
44
- needs: [check-skip-ci, load-version]
54
+ needs: [check-skip-ci, check-code-quality, test-docstrings, load-version]
45
55
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' }}
46
56
  uses: ./.github/workflows/rbln_check_compiler.yaml
47
57
  with:
@@ -50,7 +60,7 @@ jobs:
50
60
 
51
61
  check-team-member:
52
62
  runs-on: rebel-k8s-runner
53
- needs: [check-skip-ci, check-compiler]
63
+ needs: [check-skip-ci, check-code-quality, test-docstrings, check-compiler]
54
64
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' && needs.check-compiler.outputs.is_deploy_version == 'true' }}
55
65
  outputs:
56
66
  is_team_member: ${{ steps.check_member.outputs.IS_TEAM_MEMBER }}
@@ -75,7 +85,7 @@ jobs:
75
85
  fi
76
86
 
77
87
  optimum-rbln-pytest:
78
- needs: [check-skip-ci, check-compiler, check-team-member]
88
+ needs: [check-skip-ci, check-code-quality, test-docstrings, check-compiler, check-team-member]
79
89
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' && needs.check-team-member.outputs.is_team_member == 'true' }}
80
90
  uses: ./.github/workflows/rbln_optimum_pytest.yaml
81
91
  with:
@@ -85,7 +95,7 @@ jobs:
85
95
  secrets: inherit
86
96
 
87
97
  optimum-rbln-inference-test:
88
- needs: [check-skip-ci, check-compiler, check-team-member]
98
+ needs: [check-skip-ci, check-code-quality, test-docstrings, check-compiler, check-team-member]
89
99
  if: ${{ needs.check-skip-ci.outputs.should_skip != 'true' && needs.check-team-member.outputs.is_team_member == 'true' }}
90
100
  uses: ./.github/workflows/rbln_optimum_inference_test.yaml
91
101
  with:
@@ -0,0 +1,137 @@
1
+ name: Test Docstring Parsing
2
+
3
+ on:
4
+ workflow_call:
5
+ inputs:
6
+ test_all_files:
7
+ description: "Test all files in src/ instead of just changed files"
8
+ required: false
9
+ type: boolean
10
+ default: false
11
+
12
+ jobs:
13
+ test-docstrings:
14
+ runs-on: ubuntu-latest-rbln
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0 # Get full git history for file diff
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v4
23
+ with:
24
+ python-version: '3.9'
25
+
26
+ - name: Install dependencies
27
+ run: |
28
+ pip install mkdocs mkdocs-material mkdocstrings mkdocstrings-python
29
+
30
+ - name: Get Python files to test
31
+ id: changed-files
32
+ run: |
33
+ if [ "${{ inputs.test_all_files }}" = "true" ]; then
34
+ # For scheduled test, get all Python files in src/
35
+ ALL_FILES=$(find src/ -name '*.py' -type f || true)
36
+ echo "Testing all Python files in src/:"
37
+ echo "$ALL_FILES"
38
+
39
+ if [ -n "$ALL_FILES" ]; then
40
+ FILES_JSON=$(echo "$ALL_FILES" | jq -R -s -c 'split("\n")[:-1]')
41
+ echo "files=$FILES_JSON" >> $GITHUB_OUTPUT
42
+ echo "has_changes=true" >> $GITHUB_OUTPUT
43
+ else
44
+ echo "has_changes=false" >> $GITHUB_OUTPUT
45
+ fi
46
+ else
47
+ # For PR, compare with base branch
48
+ if [ "${{ github.event_name }}" = "pull_request" ]; then
49
+ CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep '\.py$' | grep 'src/' || true)
50
+ else
51
+ # For push, compare with previous commit
52
+ CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD | grep '\.py$' | grep 'src/' || true)
53
+ fi
54
+
55
+ echo "Changed Python files:"
56
+ echo "$CHANGED_FILES"
57
+
58
+ # Convert to JSON array for matrix
59
+ if [ -n "$CHANGED_FILES" ]; then
60
+ FILES_JSON=$(echo "$CHANGED_FILES" | jq -R -s -c 'split("\n")[:-1]')
61
+ echo "files=$FILES_JSON" >> $GITHUB_OUTPUT
62
+ echo "has_changes=true" >> $GITHUB_OUTPUT
63
+ else
64
+ echo "has_changes=false" >> $GITHUB_OUTPUT
65
+ fi
66
+ fi
67
+
68
+ - name: Test docstring parsing
69
+ if: steps.changed-files.outputs.has_changes == 'true'
70
+ run: |
71
+ FILES='${{ steps.changed-files.outputs.files }}'
72
+
73
+ # Exclude files (hardcoded)
74
+ EXCLUDE_FILES=(
75
+ "src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py"
76
+ "src/optimum/rbln/transformers/models/t5/modeling_t5.py"
77
+ )
78
+
79
+ # Filter out excluded files
80
+ FILTERED_FILES=""
81
+ echo "$FILES" | jq -r '.[]' | while read -r file; do
82
+ should_exclude=false
83
+ for exclude_file in "${EXCLUDE_FILES[@]}"; do
84
+ if [[ "$file" == "$exclude_file" ]]; then
85
+ echo "⏭️ Skipping excluded file: $file"
86
+ should_exclude=true
87
+ break
88
+ fi
89
+ done
90
+
91
+ if [[ "$should_exclude" == "false" ]]; then
92
+ echo "$file" >> /tmp/filtered_files.txt
93
+ fi
94
+ done
95
+
96
+ # Check if we have files to process
97
+ if [[ ! -f /tmp/filtered_files.txt ]] || [[ ! -s /tmp/filtered_files.txt ]]; then
98
+ echo "No files to process after excluding files"
99
+ exit 0
100
+ fi
101
+
102
+ TOTAL_FILES=$(wc -l < /tmp/filtered_files.txt)
103
+ echo "Processing $TOTAL_FILES files with 16 parallel processes..."
104
+
105
+ # Function to validate a single file
106
+ validate_file() {
107
+ local file=$1
108
+ echo "Testing: $file"
109
+ python .github/scripts/validate_docstrings.py "$file"
110
+ if [ $? -ne 0 ]; then
111
+ echo "❌ Docstring test failed for $file"
112
+ return 1
113
+ fi
114
+ echo "✅ Docstring test passed for $file"
115
+ return 0
116
+ }
117
+
118
+ # Export function for use with xargs
119
+ export -f validate_file
120
+
121
+ # Process files in parallel with 16 processes
122
+ cat /tmp/filtered_files.txt | xargs -I {} -P 16 -n 1 bash -c 'validate_file "$@"' _ {}
123
+
124
+ # Check if any process failed
125
+ if [ $? -ne 0 ]; then
126
+ echo "❌ Some docstring tests failed"
127
+ exit 1
128
+ fi
129
+
130
+ echo "🎉 All docstring tests passed!"
131
+
132
+ # Clean up
133
+ rm -f /tmp/filtered_files.txt
134
+
135
+ - name: No changes detected
136
+ if: steps.changed-files.outputs.has_changes == 'false'
137
+ run: echo "No Python files to test"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimum-rbln
3
- Version: 0.8.1a6
3
+ Version: 0.8.1rc0
4
4
  Summary: Optimum RBLN is the interface between the HuggingFace Transformers and Diffusers libraries and RBLN accelerators. It provides a set of tools enabling easy model loading and inference on single and multiple rbln device settings for different downstream tasks.
5
5
  Project-URL: Homepage, https://rebellions.ai
6
6
  Project-URL: Documentation, https://docs.rbln.ai
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.8.1a6'
21
- __version_tuple__ = version_tuple = (0, 8, 1, 'a6')
20
+ __version__ = version = '0.8.1rc0'
21
+ __version_tuple__ = version_tuple = (0, 8, 1, 'rc0')
@@ -20,10 +20,6 @@ from ..models import RBLNAutoencoderKLConfig, RBLNControlNetModelConfig, RBLNUNe
20
20
 
21
21
 
22
22
  class RBLNStableDiffusionControlNetPipelineBaseConfig(RBLNModelConfig):
23
- """
24
- Base configuration for Stable Diffusion ControlNet pipelines.
25
- """
26
-
27
23
  submodules = ["text_encoder", "unet", "vae", "controlnet"]
28
24
  _vae_uses_encoder = False
29
25
 
@@ -21,8 +21,6 @@ from ..models.configuration_prior_transformer import RBLNPriorTransformerConfig
21
21
 
22
22
 
23
23
  class RBLNKandinskyV22PipelineBaseConfig(RBLNModelConfig):
24
- """Base configuration class for Kandinsky V2.2 decoder pipelines."""
25
-
26
24
  submodules = ["unet", "movq"]
27
25
  _movq_uses_encoder = False
28
26
 
@@ -20,10 +20,6 @@ from ..models import RBLNAutoencoderKLConfig, RBLNUNet2DConditionModelConfig
20
20
 
21
21
 
22
22
  class RBLNStableDiffusionPipelineBaseConfig(RBLNModelConfig):
23
- """
24
- Base configuration for Stable Diffusion pipelines.
25
- """
26
-
27
23
  submodules = ["text_encoder", "unet", "vae"]
28
24
  _vae_uses_encoder = False
29
25
 
@@ -20,10 +20,6 @@ from ..models import RBLNAutoencoderKLConfig, RBLNSD3Transformer2DModelConfig
20
20
 
21
21
 
22
22
  class RBLNStableDiffusion3PipelineBaseConfig(RBLNModelConfig):
23
- """
24
- Base configuration for Stable Diffusion 3 pipelines.
25
- """
26
-
27
23
  submodules = ["transformer", "text_encoder", "text_encoder_2", "text_encoder_3", "vae"]
28
24
  _vae_uses_encoder = False
29
25
 
@@ -20,10 +20,6 @@ from ..models import RBLNAutoencoderKLConfig, RBLNUNet2DConditionModelConfig
20
20
 
21
21
 
22
22
  class RBLNStableDiffusionXLPipelineBaseConfig(RBLNModelConfig):
23
- """
24
- Base configuration for Stable Diffusion XL pipelines.
25
- """
26
-
27
23
  submodules = ["text_encoder", "text_encoder_2", "unet", "vae"]
28
24
  _vae_uses_encoder = False
29
25
 
@@ -412,24 +412,22 @@ class RBLNDiffusionMixin:
412
412
  return compiled_image_size
413
413
 
414
414
  def handle_additional_kwargs(self, **kwargs):
415
- """
416
- Function to handle additional compile-time parameters during inference.
417
-
418
- If the additional variable is determined by another module, this method should be overrided.
419
-
420
- Example:
421
- ```python
422
- if hasattr(self, "movq"):
423
- compiled_image_size = self.movq.image_size
424
- kwargs["height"] = compiled_image_size[0]
425
- kwargs["width"] = compiled_image_size[1]
426
-
427
- compiled_num_frames = self.unet.rbln_config.num_frames
428
- if compiled_num_frames is not None:
429
- kwargs["num_frames"] = compiled_num_frames
430
- return kwargs
431
- ```
432
- """
415
+ # Function to handle additional compile-time parameters during inference.
416
+
417
+ # If the additional variable is determined by another module, this method should be overrided.
418
+
419
+ # Example:
420
+ # ```python
421
+ # if hasattr(self, "movq"):
422
+ # compiled_image_size = self.movq.image_size
423
+ # kwargs["height"] = compiled_image_size[0]
424
+ # kwargs["width"] = compiled_image_size[1]
425
+
426
+ # compiled_num_frames = self.unet.rbln_config.num_frames
427
+ # if compiled_num_frames is not None:
428
+ # kwargs["num_frames"] = compiled_num_frames
429
+ # return kwargs
430
+ # ```
433
431
  return kwargs
434
432
 
435
433
  @remove_compile_time_kwargs
@@ -80,7 +80,12 @@ class RBLNAutoencoderKL(RBLNModel):
80
80
 
81
81
  wrapped_model.eval()
82
82
 
83
- compiled_models[model_name] = cls.compile(wrapped_model, rbln_compile_config=rbln_config.compile_cfgs[i])
83
+ compiled_models[model_name] = cls.compile(
84
+ wrapped_model,
85
+ rbln_compile_config=rbln_config.compile_cfgs[i],
86
+ create_runtimes=rbln_config.create_runtimes,
87
+ device=rbln_config.device_map[model_name],
88
+ )
84
89
 
85
90
  return compiled_models
86
91
 
@@ -99,11 +99,21 @@ class RBLNAutoencoderKLCosmos(RBLNModel):
99
99
  compiled_models = {}
100
100
  if rbln_config.uses_encoder:
101
101
  encoder_model, decoder_model = cls.wrap_model_if_needed(model, rbln_config)
102
- enc_compiled_model = cls.compile(encoder_model, rbln_compile_config=rbln_config.compile_cfgs[0])
102
+ enc_compiled_model = cls.compile(
103
+ encoder_model,
104
+ rbln_compile_config=rbln_config.compile_cfgs[0],
105
+ create_runtimes=rbln_config.create_runtimes,
106
+ device=rbln_config.device_map["encoder"],
107
+ )
103
108
  compiled_models["encoder"] = enc_compiled_model
104
109
  else:
105
110
  decoder_model = cls.wrap_model_if_needed(model, rbln_config)
106
- dec_compiled_model = cls.compile(decoder_model, rbln_compile_config=rbln_config.compile_cfgs[-1])
111
+ dec_compiled_model = cls.compile(
112
+ decoder_model,
113
+ rbln_compile_config=rbln_config.compile_cfgs[-1],
114
+ create_runtimes=rbln_config.create_runtimes,
115
+ device=rbln_config.device_map["decoder"],
116
+ )
107
117
  compiled_models["decoder"] = dec_compiled_model
108
118
 
109
119
  finally:
@@ -115,7 +125,7 @@ class RBLNAutoencoderKLCosmos(RBLNModel):
115
125
  def update_rbln_config_using_pipe(
116
126
  cls, pipe: "RBLNDiffusionMixin", rbln_config: "RBLNDiffusionMixinConfig", submodule_name: str
117
127
  ) -> "RBLNDiffusionMixinConfig":
118
- rbln_config.vae.num_channels_latents = pipe.transformer.config.in_channels
128
+ rbln_config.vae.num_channels_latents = pipe.transformer.config.out_channels
119
129
  rbln_config.vae.vae_scale_factor_temporal = pipe.vae_scale_factor_temporal
120
130
  rbln_config.vae.vae_scale_factor_spatial = pipe.vae_scale_factor_spatial
121
131
  return rbln_config
@@ -78,7 +78,12 @@ class RBLNVQModel(RBLNModel):
78
78
 
79
79
  wrapped_model.eval()
80
80
 
81
- compiled_models[model_name] = cls.compile(wrapped_model, rbln_compile_config=rbln_config.compile_cfgs[i])
81
+ compiled_models[model_name] = cls.compile(
82
+ wrapped_model,
83
+ rbln_compile_config=rbln_config.compile_cfgs[i],
84
+ create_runtimes=rbln_config.create_runtimes,
85
+ device=rbln_config.device_map[model_name],
86
+ )
82
87
 
83
88
  return compiled_models
84
89