pertpy 1.0.0__tar.gz → 1.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. {pertpy-1.0.0 → pertpy-1.0.2}/.github/release-drafter.yml +2 -2
  2. pertpy-1.0.2/.github/workflows/test_tutorials.yml +94 -0
  3. {pertpy-1.0.0 → pertpy-1.0.2}/.pre-commit-config.yaml +5 -5
  4. {pertpy-1.0.0 → pertpy-1.0.2}/PKG-INFO +51 -72
  5. pertpy-1.0.2/biome.jsonc +34 -0
  6. {pertpy-1.0.0 → pertpy-1.0.2}/docs/api/tools_index.md +0 -2
  7. {pertpy-1.0.0 → pertpy-1.0.2}/docs/changelog.md +20 -0
  8. pertpy-1.0.2/docs/tutorials/notebooks/.gitignore +149 -0
  9. pertpy-1.0.2/docs/tutorials/notebooks/.pre-commit-config.yaml +37 -0
  10. pertpy-1.0.2/docs/tutorials/notebooks/LICENSE +203 -0
  11. pertpy-1.0.2/docs/tutorials/notebooks/README.md +23 -0
  12. pertpy-1.0.2/docs/tutorials/notebooks/augur.ipynb +1063 -0
  13. pertpy-1.0.2/docs/tutorials/notebooks/cinemaot.ipynb +696 -0
  14. pertpy-1.0.2/docs/tutorials/notebooks/dialogue.ipynb +840 -0
  15. pertpy-1.0.2/docs/tutorials/notebooks/differential_gene_expression.ipynb +2187 -0
  16. pertpy-1.0.2/docs/tutorials/notebooks/distance_tests.ipynb +349 -0
  17. pertpy-1.0.2/docs/tutorials/notebooks/distances.ipynb +725 -0
  18. pertpy-1.0.2/docs/tutorials/notebooks/enrichment.ipynb +736 -0
  19. pertpy-1.0.2/docs/tutorials/notebooks/expression_prediction_evaluation.ipynb +482 -0
  20. pertpy-1.0.2/docs/tutorials/notebooks/guide_rna_assignment.ipynb +809 -0
  21. pertpy-1.0.2/docs/tutorials/notebooks/mcfarland_use_case.ipynb +1985 -0
  22. pertpy-1.0.2/docs/tutorials/notebooks/metadata_annotation.ipynb +2480 -0
  23. pertpy-1.0.2/docs/tutorials/notebooks/milo.ipynb +2080 -0
  24. pertpy-1.0.2/docs/tutorials/notebooks/mixscape.ipynb +811 -0
  25. pertpy-1.0.2/docs/tutorials/notebooks/norman_use_case.ipynb +1089 -0
  26. pertpy-1.0.2/docs/tutorials/notebooks/ontology_mapping.ipynb +1893 -0
  27. pertpy-1.0.2/docs/tutorials/notebooks/perturbation_space.ipynb +1921 -0
  28. pertpy-1.0.2/docs/tutorials/notebooks/pyproject.toml +73 -0
  29. pertpy-1.0.2/docs/tutorials/notebooks/sccoda.ipynb +1376 -0
  30. pertpy-1.0.2/docs/tutorials/notebooks/sccoda_extended.ipynb +1205 -0
  31. pertpy-1.0.2/docs/tutorials/notebooks/sccoda_tasccoda_case_study.ipynb +2191 -0
  32. pertpy-1.0.2/docs/tutorials/notebooks/scgen_perturbation_prediction.ipynb +678 -0
  33. pertpy-1.0.2/docs/tutorials/notebooks/tasccoda.ipynb +1364 -0
  34. pertpy-1.0.2/docs/tutorials/notebooks/zhang_use_case.ipynb +1049 -0
  35. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/__init__.py +1 -1
  36. pertpy-1.0.2/pertpy/data/_dataloader.py +117 -0
  37. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/_cell_line.py +9 -3
  38. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/__init__.py +18 -27
  39. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_coda/_base_coda.py +10 -4
  40. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_coda/_sccoda.py +84 -56
  41. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_coda/_tasccoda.py +91 -61
  42. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_dialogue.py +3 -3
  43. pertpy-1.0.2/pertpy/tools/_differential_gene_expression/__init__.py +60 -0
  44. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_base.py +2 -1
  45. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_edger.py +9 -12
  46. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_pydeseq2.py +0 -2
  47. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_distances/_distance_tests.py +2 -2
  48. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_distances/_distances.py +33 -8
  49. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_milo.py +3 -1
  50. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/_discriminator_classifiers.py +16 -25
  51. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/_simple.py +8 -0
  52. {pertpy-1.0.0 → pertpy-1.0.2}/pyproject.toml +7 -5
  53. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_coda/test_tasccoda.py +6 -0
  54. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/conftest.py +14 -1
  55. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_base.py +5 -0
  56. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_compare_groups.py +6 -0
  57. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_edger.py +8 -1
  58. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_input_checks.py +8 -1
  59. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_pydeseq2.py +9 -1
  60. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_simple_tests.py +6 -0
  61. pertpy-1.0.2/tests/tools/_differential_gene_expression/test_statsmodels.py +24 -0
  62. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_distances/test_distances.py +2 -2
  63. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_milo.py +7 -7
  64. pertpy-1.0.0/biome.jsonc +0 -18
  65. pertpy-1.0.0/pertpy/data/_dataloader.py +0 -114
  66. pertpy-1.0.0/pertpy/tools/_differential_gene_expression/__init__.py +0 -19
  67. pertpy-1.0.0/tests/tools/_differential_gene_expression/test_statsmodels.py +0 -30
  68. {pertpy-1.0.0 → pertpy-1.0.2}/.editorconfig +0 -0
  69. {pertpy-1.0.0 → pertpy-1.0.2}/.gitattributes +0 -0
  70. {pertpy-1.0.0 → pertpy-1.0.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  71. {pertpy-1.0.0 → pertpy-1.0.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  72. {pertpy-1.0.0 → pertpy-1.0.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  73. {pertpy-1.0.0 → pertpy-1.0.2}/.github/labels.yml +0 -0
  74. {pertpy-1.0.0 → pertpy-1.0.2}/.github/pull_request_template.md +0 -0
  75. {pertpy-1.0.0 → pertpy-1.0.2}/.github/workflows/build.yml +0 -0
  76. {pertpy-1.0.0 → pertpy-1.0.2}/.github/workflows/labeler.yml +0 -0
  77. {pertpy-1.0.0 → pertpy-1.0.2}/.github/workflows/release.yml +0 -0
  78. {pertpy-1.0.0 → pertpy-1.0.2}/.github/workflows/release_drafter.yml +0 -0
  79. {pertpy-1.0.0 → pertpy-1.0.2}/.github/workflows/test.yml +0 -0
  80. {pertpy-1.0.0 → pertpy-1.0.2}/.gitignore +0 -0
  81. {pertpy-1.0.0 → pertpy-1.0.2}/.gitmodules +0 -0
  82. {pertpy-1.0.0 → pertpy-1.0.2}/.readthedocs.yml +0 -0
  83. {pertpy-1.0.0 → pertpy-1.0.2}/LICENSE +0 -0
  84. {pertpy-1.0.0 → pertpy-1.0.2}/README.md +0 -0
  85. {pertpy-1.0.0 → pertpy-1.0.2}/codecov.yml +0 -0
  86. {pertpy-1.0.0 → pertpy-1.0.2}/docs/Makefile +0 -0
  87. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_ext/edit_on_github.py +0 -0
  88. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_ext/typed_returns.py +0 -0
  89. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/SCVI_LICENSE +0 -0
  90. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/css/overwrite.css +0 -0
  91. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/css/sphinx_gallery.css +0 -0
  92. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/augur_dp_scatter.png +0 -0
  93. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/augur_important_features.png +0 -0
  94. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/augur_lollipop.png +0 -0
  95. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/augur_scatterplot.png +0 -0
  96. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/de_fold_change.png +0 -0
  97. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/de_multicomparison_fc.png +0 -0
  98. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/de_paired_expression.png +0 -0
  99. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/de_volcano.png +0 -0
  100. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/dialogue_pairplot.png +0 -0
  101. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/dialogue_violin.png +0 -0
  102. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/enrichment_dotplot.png +0 -0
  103. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/enrichment_gsea.png +0 -0
  104. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/milo_da_beeswarm.png +0 -0
  105. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/milo_nhood.png +0 -0
  106. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/milo_nhood_graph.png +0 -0
  107. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/mixscape_barplot.png +0 -0
  108. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/mixscape_heatmap.png +0 -0
  109. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/mixscape_lda.png +0 -0
  110. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/mixscape_perturbscore.png +0 -0
  111. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/mixscape_violin.png +0 -0
  112. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/pseudobulk_samples.png +0 -0
  113. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/sccoda_boxplots.png +0 -0
  114. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/sccoda_effects_barplot.png +0 -0
  115. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/sccoda_rel_abundance_dispersion_plot.png +0 -0
  116. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/sccoda_stacked_barplot.png +0 -0
  117. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/scgen_reg_mean.png +0 -0
  118. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/tasccoda_draw_effects.png +0 -0
  119. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/tasccoda_draw_tree.png +0 -0
  120. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/docstring_previews/tasccoda_effects_umap.png +0 -0
  121. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/icons/code-24px.svg +0 -0
  122. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/icons/computer-24px.svg +0 -0
  123. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/icons/library_books-24px.svg +0 -0
  124. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/icons/play_circle_outline-24px.svg +0 -0
  125. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/pertpy_logo.png +0 -0
  126. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/pertpy_logo.svg +0 -0
  127. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/placeholder.png +0 -0
  128. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/augur.png +0 -0
  129. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/cinemaot.png +0 -0
  130. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/dge.png +0 -0
  131. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/dialogue.png +0 -0
  132. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/distances.png +0 -0
  133. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/distances_tests.png +0 -0
  134. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/enrichment.png +0 -0
  135. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/guide_rna_assignment.png +0 -0
  136. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/mcfarland.png +0 -0
  137. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/metadata.png +0 -0
  138. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/milo.png +0 -0
  139. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/mixscape.png +0 -0
  140. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/norman.png +0 -0
  141. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/ontology.png +0 -0
  142. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/perturbation_space.png +0 -0
  143. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/placeholder.png +0 -0
  144. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/sccoda.png +0 -0
  145. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/sccoda_extended.png +0 -0
  146. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/scgen_perturbation_prediction.png +0 -0
  147. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/tasccoda.png +0 -0
  148. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_static/tutorials/zhang.png +0 -0
  149. {pertpy-1.0.0 → pertpy-1.0.2}/docs/_templates/autosummary/class.rst +0 -0
  150. {pertpy-1.0.0 → pertpy-1.0.2}/docs/about/background.md +0 -0
  151. {pertpy-1.0.0 → pertpy-1.0.2}/docs/about/cite.md +0 -0
  152. {pertpy-1.0.0 → pertpy-1.0.2}/docs/api/datasets_index.md +0 -0
  153. {pertpy-1.0.0 → pertpy-1.0.2}/docs/api/metadata_index.md +0 -0
  154. {pertpy-1.0.0 → pertpy-1.0.2}/docs/api/preprocessing_index.md +0 -0
  155. {pertpy-1.0.0 → pertpy-1.0.2}/docs/api.md +0 -0
  156. {pertpy-1.0.0 → pertpy-1.0.2}/docs/conf.py +0 -0
  157. {pertpy-1.0.0 → pertpy-1.0.2}/docs/contributing.md +0 -0
  158. {pertpy-1.0.0 → pertpy-1.0.2}/docs/index.md +0 -0
  159. {pertpy-1.0.0 → pertpy-1.0.2}/docs/installation.md +0 -0
  160. {pertpy-1.0.0 → pertpy-1.0.2}/docs/make.bat +0 -0
  161. {pertpy-1.0.0 → pertpy-1.0.2}/docs/references.bib +0 -0
  162. {pertpy-1.0.0 → pertpy-1.0.2}/docs/references.md +0 -0
  163. {pertpy-1.0.0 → pertpy-1.0.2}/docs/tutorials/metadata.md +0 -0
  164. {pertpy-1.0.0 → pertpy-1.0.2}/docs/tutorials/preprocessing.md +0 -0
  165. {pertpy-1.0.0 → pertpy-1.0.2}/docs/tutorials/tools.md +0 -0
  166. {pertpy-1.0.0 → pertpy-1.0.2}/docs/tutorials.md +0 -0
  167. {pertpy-1.0.0 → pertpy-1.0.2}/docs/usecases.md +0 -0
  168. {pertpy-1.0.0 → pertpy-1.0.2}/docs/utils.py +0 -0
  169. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/_doc.py +0 -0
  170. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/_types.py +0 -0
  171. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/data/__init__.py +0 -0
  172. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/data/_datasets.py +0 -0
  173. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/__init__.py +0 -0
  174. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/_compound.py +0 -0
  175. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/_drug.py +0 -0
  176. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/_look_up.py +0 -0
  177. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/_metadata.py +0 -0
  178. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/metadata/_moa.py +0 -0
  179. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/plot/__init__.py +0 -0
  180. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/preprocessing/__init__.py +0 -0
  181. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/preprocessing/_guide_rna.py +0 -0
  182. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/preprocessing/_guide_rna_mixture.py +0 -0
  183. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/py.typed +0 -0
  184. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_augur.py +0 -0
  185. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_cinemaot.py +0 -0
  186. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_coda/__init__.py +0 -0
  187. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_checks.py +0 -0
  188. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_dge_comparison.py +0 -0
  189. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_simple_tests.py +0 -0
  190. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_differential_gene_expression/_statsmodels.py +0 -0
  191. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_distances/__init__.py +0 -0
  192. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_enrichment.py +0 -0
  193. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_mixscape.py +0 -0
  194. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/__init__.py +0 -0
  195. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/_clustering.py +0 -0
  196. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/_comparison.py +0 -0
  197. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/_metrics.py +0 -0
  198. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_perturbation_space/_perturbation_space.py +0 -0
  199. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_scgen/__init__.py +0 -0
  200. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_scgen/_base_components.py +0 -0
  201. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_scgen/_scgen.py +0 -0
  202. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_scgen/_scgenvae.py +0 -0
  203. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/_scgen/_utils.py +0 -0
  204. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/decoupler_LICENSE +0 -0
  205. {pertpy-1.0.0 → pertpy-1.0.2}/pertpy/tools/transferlearning_MMD_LICENSE +0 -0
  206. {pertpy-1.0.0 → pertpy-1.0.2}/tests/conftest.py +0 -0
  207. {pertpy-1.0.0 → pertpy-1.0.2}/tests/metadata/test_cell_line.py +0 -0
  208. {pertpy-1.0.0 → pertpy-1.0.2}/tests/metadata/test_compound.py +0 -0
  209. {pertpy-1.0.0 → pertpy-1.0.2}/tests/metadata/test_drug.py +0 -0
  210. {pertpy-1.0.0 → pertpy-1.0.2}/tests/metadata/test_moa.py +0 -0
  211. {pertpy-1.0.0 → pertpy-1.0.2}/tests/preprocessing/test_grna_assignment.py +0 -0
  212. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_coda/test_sccoda.py +0 -0
  213. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/__init__.py +0 -0
  214. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_differential_gene_expression/test_dge.py +0 -0
  215. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_distances/test_distance_tests.py +0 -0
  216. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_perturbation_space/test_comparison.py +0 -0
  217. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_perturbation_space/test_discriminator_classifiers.py +0 -0
  218. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_perturbation_space/test_simple_cluster_space.py +0 -0
  219. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/_perturbation_space/test_simple_perturbation_space.py +0 -0
  220. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_augur.py +0 -0
  221. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_cinemaot.py +0 -0
  222. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_dialogue.py +0 -0
  223. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_enrichment.py +0 -0
  224. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_mixscape.py +0 -0
  225. {pertpy-1.0.0 → pertpy-1.0.2}/tests/tools/test_scgen.py +0 -0
@@ -1,5 +1,5 @@
1
- name-template: "1.0.0 🌈"
2
- tag-template: 1.0.0
1
+ name-template: "1.0.2 🌈"
2
+ tag-template: 1.0.2
3
3
  exclude-labels:
4
4
  - "skip-changelog"
5
5
 
@@ -0,0 +1,94 @@
1
+ name: Test tutorials
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ test:
15
+ runs-on: ubuntu-latest
16
+ defaults:
17
+ run:
18
+ # to fail on error in multiline statements (-e), in pipes (-o pipefail), and on unset variables (-u).
19
+ shell: bash -euo pipefail {0}
20
+
21
+ env:
22
+ NOTEBOOK_PATH: docs/tutorials/notebooks
23
+
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ notebook: [
28
+ "augur.ipynb",
29
+ "cinemaot.ipynb",
30
+ "differential_gene_expression.ipynb",
31
+ "distances.ipynb",
32
+ "distance_tests.ipynb",
33
+ "enrichment.ipynb",
34
+ "guide_rna_assignment.ipynb",
35
+ "milo.ipynb",
36
+ "mixscape.ipynb",
37
+ "perturbation_space.ipynb",
38
+ "sccoda.ipynb",
39
+ # "dialogue.ipynb", takes too long
40
+ # "tasccoda.ipynb", a pain to get running because of the required QT dependency. The QT action leads to a dead kernel
41
+ # also no use cases yet
42
+ ]
43
+
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+ with:
47
+ filter: blob:none
48
+ fetch-depth: 0
49
+ submodules: "true"
50
+
51
+ - name: Cache .pertpy_cache
52
+ uses: actions/cache@v4
53
+ with:
54
+ path: cache
55
+ key: ${{ runner.os }}-pertpy-cache-${{ hashFiles('pertpy/metadata/**') }}
56
+ restore-keys: |
57
+ ${{ runner.os }}-pertpy-cache
58
+
59
+ - name: Set up Python
60
+ uses: actions/setup-python@v5
61
+ with:
62
+ python-version: "3.13"
63
+ - name: Install R
64
+ uses: r-lib/actions/setup-r@v2
65
+ with:
66
+ r-version: "4.4.3"
67
+
68
+ - name: Cache R packages
69
+ id: r-cache
70
+ uses: actions/cache@v3
71
+ with:
72
+ path: ${{ env.R_LIBS_USER }}
73
+ key: ${{ runner.os }}-r-${{ hashFiles('**/pertpy/tools/_milo.py') }}
74
+ restore-keys: ${{ runner.os }}-r-
75
+
76
+ - name: Install R dependencies
77
+ if: steps.r-cache.outputs.cache-hit != 'true'
78
+ run: |
79
+ mkdir -p ${{ env.R_LIBS_USER }}
80
+ Rscript --vanilla -e "install.packages(c('BiocManager', 'statmod'), repos='https://cran.r-project.org'); BiocManager::install('edgeR', lib='${{ env.R_LIBS_USER }}')"
81
+
82
+ - name: Install uv
83
+ uses: astral-sh/setup-uv@v6
84
+ with:
85
+ enable-cache: true
86
+ cache-dependency-glob: pyproject.toml
87
+ - name: Install dependencies
88
+ run: |
89
+ uv pip install --system rpy2 decoupler muon
90
+ uv pip install --system ${{ matrix.pip-flags }} ".[dev,test,tcoda,de]"
91
+ uv pip install --system nbconvert ipykernel
92
+
93
+ - name: Run ${{ matrix.notebook }} Notebook
94
+ run: jupyter nbconvert --to notebook --execute ${{ env.NOTEBOOK_PATH }}/${{ matrix.notebook }}
@@ -7,17 +7,17 @@ default_stages:
7
7
  minimum_pre_commit_version: 2.16.0
8
8
  repos:
9
9
  - repo: https://github.com/biomejs/pre-commit
10
- rev: v1.9.4
10
+ rev: v2.1.4
11
11
  hooks:
12
12
  - id: biome-format
13
13
  - repo: https://github.com/astral-sh/ruff-pre-commit
14
- rev: v0.11.9
14
+ rev: v0.12.8
15
15
  hooks:
16
- - id: ruff
16
+ - id: ruff-check
17
17
  args: [--fix, --exit-non-zero-on-fix, --unsafe-fixes]
18
18
  - id: ruff-format
19
19
  - repo: https://github.com/pre-commit/pre-commit-hooks
20
- rev: v5.0.0
20
+ rev: v6.0.0
21
21
  hooks:
22
22
  - id: detect-private-key
23
23
  - id: check-ast
@@ -33,7 +33,7 @@ repos:
33
33
  - id: no-commit-to-branch
34
34
  args: ["--branch=main"]
35
35
  - repo: https://github.com/pre-commit/mirrors-mypy
36
- rev: v1.15.0
36
+ rev: v1.17.1
37
37
  hooks:
38
38
  - id: mypy
39
39
  args: [--no-strict-optional, --ignore-missing-imports]
@@ -1,41 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pertpy
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: Perturbation Analysis in the scverse ecosystem.
5
- Project-URL: Documentation, https://pertpy.readthedocs.io
6
- Project-URL: Source, https://github.com/scverse/pertpy
7
- Project-URL: Home-page, https://github.com/scverse/pertpy
8
5
  Author: Lukas Heumos, Lilly May, Stefan Peidli, Johannes Ostner, Gregor Sturm, Emma Dann, Yuge Ji, Xinyue Zhang, Xichen Wu, Tessa Green, Antonia Schumacher
9
6
  Maintainer-email: Lukas Heumos <lukas.heumos@posteo.net>
10
- License: MIT License
11
-
12
- Copyright (c) 2021, Lukas Heumos
13
- Copyright (c) 2025, scverse®
14
-
15
- Permission is hereby granted, free of charge, to any person obtaining a copy
16
- of this software and associated documentation files (the "Software"), to deal
17
- in the Software without restriction, including without limitation the rights
18
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
- copies of the Software, and to permit persons to whom the Software is
20
- furnished to do so, subject to the following conditions:
21
-
22
- The above copyright notice and this permission notice shall be included in all
23
- copies or substantial portions of the Software.
24
-
25
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
- SOFTWARE.
32
- License-File: LICENSE
7
+ Requires-Python: >=3.11,<3.14
8
+ Description-Content-Type: text/markdown
9
+ Classifier: License :: OSI Approved :: Apache Software License
33
10
  Classifier: Development Status :: 5 - Production/Stable
34
11
  Classifier: Environment :: Console
35
12
  Classifier: Framework :: Jupyter
36
13
  Classifier: Intended Audience :: Developers
37
14
  Classifier: Intended Audience :: Science/Research
38
- Classifier: License :: OSI Approved :: Apache Software License
39
15
  Classifier: Natural Language :: English
40
16
  Classifier: Operating System :: MacOS :: MacOS X
41
17
  Classifier: Operating System :: POSIX :: Linux
@@ -45,60 +21,62 @@ Classifier: Programming Language :: Python :: 3.12
45
21
  Classifier: Programming Language :: Python :: 3.13
46
22
  Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
47
23
  Classifier: Topic :: Scientific/Engineering :: Visualization
48
- Requires-Python: <3.14,>=3.11
49
- Requires-Dist: adjusttext
50
- Requires-Dist: arviz
51
- Requires-Dist: blitzgsea
52
- Requires-Dist: fast-array-utils
53
- Requires-Dist: lamin-utils
54
- Requires-Dist: mudata
55
- Requires-Dist: openpyxl
56
- Requires-Dist: ott-jax
57
- Requires-Dist: pubchempy
58
- Requires-Dist: pyarrow
59
- Requires-Dist: requests
24
+ License-File: LICENSE
60
25
  Requires-Dist: rich
61
26
  Requires-Dist: scanpy
62
- Requires-Dist: scikit-learn>=1.4
27
+ Requires-Dist: mudata
28
+ Requires-Dist: requests
63
29
  Requires-Dist: scikit-misc
64
30
  Requires-Dist: scvi-tools
31
+ Requires-Dist: adjusttext
32
+ Requires-Dist: ott-jax
65
33
  Requires-Dist: sparsecca
34
+ Requires-Dist: openpyxl
35
+ Requires-Dist: pubchempy
36
+ Requires-Dist: pyarrow
37
+ Requires-Dist: blitzgsea
38
+ Requires-Dist: scikit-learn>=1.4
39
+ Requires-Dist: fast-array-utils[accel, sparse]
40
+ Requires-Dist: lamin_utils
41
+ Requires-Dist: arviz
42
+ Requires-Dist: formulaic-contrasts>=0.2.0 ; extra == "de"
43
+ Requires-Dist: formulaic ; extra == "de"
44
+ Requires-Dist: pydeseq2>=v0.5.0 ; extra == "de"
45
+ Requires-Dist: pre-commit ; extra == "dev"
46
+ Requires-Dist: docutils>=0.8 ; extra == "doc"
47
+ Requires-Dist: sphinx>=8.1 ; extra == "doc"
48
+ Requires-Dist: scanpydoc ; extra == "doc"
49
+ Requires-Dist: sphinx-book-theme ; extra == "doc"
50
+ Requires-Dist: myst-nb ; extra == "doc"
51
+ Requires-Dist: sphinxcontrib-bibtex>=1.0.0 ; extra == "doc"
52
+ Requires-Dist: sphinx-issues ; extra == "doc"
53
+ Requires-Dist: sphinx-gallery ; extra == "doc"
54
+ Requires-Dist: sphinx-autodoc-typehints ; extra == "doc"
55
+ Requires-Dist: sphinx-copybutton ; extra == "doc"
56
+ Requires-Dist: sphinx-remove-toctrees ; extra == "doc"
57
+ Requires-Dist: sphinx-design ; extra == "doc"
58
+ Requires-Dist: sphinx-last-updated-by-git ; extra == "doc"
59
+ Requires-Dist: sphinx-automodapi ; extra == "doc"
60
+ Requires-Dist: sphinxext-opengraph ; extra == "doc"
61
+ Requires-Dist: pygments ; extra == "doc"
62
+ Requires-Dist: nbsphinx ; extra == "doc"
63
+ Requires-Dist: nbsphinx-link ; extra == "doc"
64
+ Requires-Dist: ipykernel ; extra == "doc"
65
+ Requires-Dist: ipython ; extra == "doc"
66
+ Requires-Dist: toytree>=3.0 ; extra == "tcoda"
67
+ Requires-Dist: ete4 ; extra == "tcoda"
68
+ Requires-Dist: pyqt6 ; extra == "tcoda"
69
+ Requires-Dist: pytest ; extra == "test"
70
+ Requires-Dist: coverage ; extra == "test"
71
+ Requires-Dist: leidenalg ; extra == "test"
72
+ Project-URL: Documentation, https://pertpy.readthedocs.io
73
+ Project-URL: Home-page, https://github.com/scverse/pertpy
74
+ Project-URL: Source, https://github.com/scverse/pertpy
66
75
  Provides-Extra: de
67
- Requires-Dist: formulaic; extra == 'de'
68
- Requires-Dist: formulaic-contrasts>=0.2.0; extra == 'de'
69
- Requires-Dist: pydeseq2>=v0.5.0; extra == 'de'
70
76
  Provides-Extra: dev
71
- Requires-Dist: pre-commit; extra == 'dev'
72
77
  Provides-Extra: doc
73
- Requires-Dist: docutils>=0.8; extra == 'doc'
74
- Requires-Dist: ipykernel; extra == 'doc'
75
- Requires-Dist: ipython; extra == 'doc'
76
- Requires-Dist: myst-nb; extra == 'doc'
77
- Requires-Dist: nbsphinx; extra == 'doc'
78
- Requires-Dist: nbsphinx-link; extra == 'doc'
79
- Requires-Dist: pygments; extra == 'doc'
80
- Requires-Dist: scanpydoc; extra == 'doc'
81
- Requires-Dist: sphinx-autodoc-typehints; extra == 'doc'
82
- Requires-Dist: sphinx-automodapi; extra == 'doc'
83
- Requires-Dist: sphinx-book-theme; extra == 'doc'
84
- Requires-Dist: sphinx-copybutton; extra == 'doc'
85
- Requires-Dist: sphinx-design; extra == 'doc'
86
- Requires-Dist: sphinx-gallery; extra == 'doc'
87
- Requires-Dist: sphinx-issues; extra == 'doc'
88
- Requires-Dist: sphinx-last-updated-by-git; extra == 'doc'
89
- Requires-Dist: sphinx-remove-toctrees; extra == 'doc'
90
- Requires-Dist: sphinx>=8.1; extra == 'doc'
91
- Requires-Dist: sphinxcontrib-bibtex>=1.0.0; extra == 'doc'
92
- Requires-Dist: sphinxext-opengraph; extra == 'doc'
93
78
  Provides-Extra: tcoda
94
- Requires-Dist: ete4; extra == 'tcoda'
95
- Requires-Dist: pyqt6; extra == 'tcoda'
96
- Requires-Dist: toytree; extra == 'tcoda'
97
79
  Provides-Extra: test
98
- Requires-Dist: coverage; extra == 'test'
99
- Requires-Dist: leidenalg; extra == 'test'
100
- Requires-Dist: pytest; extra == 'test'
101
- Description-Content-Type: text/markdown
102
80
 
103
81
  [![Build](https://github.com/scverse/pertpy/actions/workflows/build.yml/badge.svg)](https://github.com/scverse/pertpy/actions/workflows/build.yml)
104
82
  [![codecov](https://codecov.io/gh/scverse/pertpy/graph/badge.svg?token=1dTpIPBShv)](https://codecov.io/gh/scverse/pertpy)
@@ -205,3 +183,4 @@ If you like scverse® and want to support our mission, please consider making a
205
183
  >
206
184
  </a>
207
185
  </div>
186
+
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.0.5/schema.json",
3
+ "formatter": { "useEditorconfig": true },
4
+ "overrides": [
5
+ {
6
+ "includes": [".vscode/**/*.json", "**/*.jsonc", "**/asv.conf.json"],
7
+ "json": {
8
+ "formatter": {
9
+ "trailingCommas": "all",
10
+ },
11
+ "parser": {
12
+ "allowComments": true,
13
+ "allowTrailingCommas": true,
14
+ },
15
+ },
16
+ },
17
+ ],
18
+ "linter": {
19
+ "rules": {
20
+ "style": {
21
+ "noParameterAssign": "error",
22
+ "useAsConstAssertion": "error",
23
+ "useDefaultParameterLast": "error",
24
+ "useEnumInitializers": "error",
25
+ "useSelfClosingElements": "error",
26
+ "useSingleVarDeclarator": "error",
27
+ "noUnusedTemplateLiteral": "error",
28
+ "useNumberNamespace": "error",
29
+ "noInferrableTypes": "error",
30
+ "noUselessElse": "error",
31
+ },
32
+ },
33
+ },
34
+ }
@@ -423,8 +423,6 @@ ps_adata = ps.compute(
423
423
  target_col="gene_target",
424
424
  groups_col="gene_target",
425
425
  mode="mean",
426
- min_cells=0,
427
- min_counts=0,
428
426
  )
429
427
  ```
430
428
 
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## v1.0.2
9
+
10
+ ### 🐛 Bug Fixes
11
+
12
+ * Fix: Validate 'type' parameter in Tasccoda.load ([#839](https://github.com/scverse/pertpy/pull/839)) @JuanTejedor
13
+ * Partial fixes for make_arviz ([#834](https://github.com/scverse/pertpy/pull/834)) @jpintar
14
+ * Fix setting of `rng_key` in `make_arviz` ([#831](https://github.com/scverse/pertpy/pull/831)) @jpintar
15
+ * Fixed GDSC and PRISM annotation warnings ([#835](https://github.com/scverse/pertpy/pull/835)) @Lilly-May
16
+
17
+ ## v1.0.1
18
+
19
+ ### 🚀 Features
20
+
21
+ * Add support for gamma parameter in MMD distance ([#825](https://github.com/scverse/pertpy/pull/825)) @Zethson
22
+ * Run notebooks in CI ([#815](https://github.com/scverse/pertpy/pull/815)) @Zethson
23
+
24
+ ### 🐛 Bug Fixes
25
+
26
+ * Fix milo output writing ([#821](https://github.com/scverse/pertpy/pull/821)) @Zethson
27
+
8
28
  ## v1.0.0
9
29
 
10
30
  ### 🚀 Features
@@ -0,0 +1,149 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ .python-version
87
+
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath parsed files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+ .pytype/
130
+
131
+ # Pyre type checker
132
+ .pyre/
133
+
134
+ # Jetbrains IDE
135
+ .idea/
136
+
137
+ # Coala
138
+ *.orig
139
+
140
+ # Datasets
141
+ *.h5ad
142
+ *.h5md
143
+ *.h5mu
144
+
145
+ # pertpy cache
146
+ cache
147
+ data
148
+ node_modules
149
+ lightning_logs
@@ -0,0 +1,37 @@
1
+ fail_fast: false
2
+ default_language_version:
3
+ python: python3
4
+ default_stages:
5
+ - pre-commit
6
+ - pre-push
7
+ minimum_pre_commit_version: 2.16.0
8
+ repos:
9
+ - repo: https://github.com/rbubley/mirrors-prettier
10
+ rev: v3.5.1
11
+ hooks:
12
+ - id: prettier
13
+ exclude: data
14
+ - repo: https://github.com/astral-sh/ruff-pre-commit
15
+ rev: v0.12.1
16
+ hooks:
17
+ - id: ruff-check
18
+ types_or: [python, pyi, jupyter]
19
+ args: [--fix, --exit-non-zero-on-fix, --unsafe-fixes]
20
+ - id: ruff-format
21
+ types_or: [python, pyi, jupyter]
22
+ - repo: https://github.com/pre-commit/pre-commit-hooks
23
+ rev: v5.0.0
24
+ hooks:
25
+ - id: detect-private-key
26
+ - id: check-ast
27
+ - id: end-of-file-fixer
28
+ - id: mixed-line-ending
29
+ args: [--fix=lf]
30
+ - id: trailing-whitespace
31
+ - id: check-case-conflict
32
+ - repo: https://github.com/pre-commit/mirrors-mypy
33
+ rev: v1.16.1
34
+ hooks:
35
+ - id: mypy
36
+ args: [--no-strict-optional, --ignore-missing-imports]
37
+ additional_dependencies: ["types-requests", "types-attrs"]