py-cmdtabs 1.2.1__tar.gz → 1.2.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 (207) hide show
  1. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/PKG-INFO +5 -1
  2. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/README.rst +4 -1
  3. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/setup.cfg +1 -0
  4. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs/cli_manager.py +6 -0
  5. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs/cmdtabs.py +68 -8
  6. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs/main_modules.py +12 -2
  7. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/PKG-INFO +5 -1
  8. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/SOURCES.txt +17 -0
  9. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/requires.txt +1 -0
  10. py_cmdtabs-1.2.2/src/py_cmdtabs.egg-info/scm_file_list.json +199 -0
  11. py_cmdtabs-1.2.2/src/py_cmdtabs.egg-info/scm_version.json +8 -0
  12. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/Report.html +994 -399
  13. py_cmdtabs-1.2.2/tests/cli_example_report/outputs/corrupted_table +1 -0
  14. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/create_metric_table +2 -2
  15. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/merge_tabular +2 -2
  16. py_cmdtabs-1.2.2/tests/cli_example_report/subtemplates/sort_rows_by +53 -0
  17. py_cmdtabs-1.2.2/tests/cli_example_report/subtemplates/subset_table +42 -0
  18. py_cmdtabs-1.2.2/tests/cli_example_report/tables/pats_order +4 -0
  19. py_cmdtabs-1.2.2/tests/cli_example_report/tables/table_to_sort_2cols_header +5 -0
  20. py_cmdtabs-1.2.2/tests/cli_example_report/template.txt +82 -0
  21. py_cmdtabs-1.2.2/tests/data_tests/pats_order +3 -0
  22. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_2cols_header +4 -0
  23. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_header_by_cat +4 -0
  24. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_header_by_pat +4 -0
  25. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_header_by_score +4 -0
  26. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_cat +3 -0
  27. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_pat +3 -0
  28. py_cmdtabs-1.2.2/tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_score +3 -0
  29. py_cmdtabs-1.2.2/tests/data_tests/table_to_sort_2cols_header +4 -0
  30. py_cmdtabs-1.2.2/tests/data_tests/table_to_sort_header +4 -0
  31. py_cmdtabs-1.2.2/tests/data_tests/table_to_sort_noheader +3 -0
  32. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/test_cli_manager.py +87 -1
  33. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/test_cmdtabs_lib.py +12 -0
  34. py_cmdtabs-1.2.1/tests/cli_example_report/subtemplates/subset_table +0 -41
  35. py_cmdtabs-1.2.1/tests/cli_example_report/template.txt +0 -87
  36. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/.readthedocs.yml +0 -0
  37. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/AUTHORS.rst +0 -0
  38. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/CHANGELOG.rst +0 -0
  39. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/CONTRIBUTING.rst +0 -0
  40. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/LICENSE.txt +0 -0
  41. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/Makefile +0 -0
  42. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/_static/.gitignore +0 -0
  43. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/authors.rst +0 -0
  44. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/changelog.rst +0 -0
  45. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/conf.py +0 -0
  46. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/contributing.rst +0 -0
  47. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/index.rst +0 -0
  48. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/license.rst +0 -0
  49. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/readme.rst +0 -0
  50. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/docs/requirements.txt +0 -0
  51. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/make_package.sh +0 -0
  52. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/pyproject.toml +0 -0
  53. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/requirements.txt +0 -0
  54. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/setup.py +0 -0
  55. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs/__init__.py +0 -0
  56. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/dependency_links.txt +0 -0
  57. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/entry_points.txt +0 -0
  58. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/not-zip-safe +0 -0
  59. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/src/py_cmdtabs.egg-info/top_level.txt +0 -0
  60. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/__init__.py +0 -0
  61. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/example +0 -0
  62. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/launch.sh +0 -0
  63. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/blackfiltered_long_table +0 -0
  64. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/filtered_long_table +0 -0
  65. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/ref_filtered_disease_cluster_ref_rnd +0 -0
  66. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/subset_table/disease_cluster_ref_rnd_chunk0 +0 -0
  67. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/subset_table/disease_cluster_ref_rnd_chunk1 +0 -0
  68. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/subset_table/disease_cluster_ref_rnd_chunk2 +0 -0
  69. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/subset_table2/disease_cluster_ref_rnd_chunk0 +0 -0
  70. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/subset_table2/disease_cluster_ref_rnd_chunk1 +0 -0
  71. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/outputs/wide_table +0 -0
  72. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/hoja1.png +0 -0
  73. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/hoja2.png +0 -0
  74. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq.htm +0 -0
  75. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq.xlsx +0 -0
  76. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq_archivos/filelist.xml +0 -0
  77. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq_archivos/sheet001.htm +0 -0
  78. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq_archivos/sheet002.htm +0 -0
  79. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq_archivos/stylesheet.css +0 -0
  80. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/scRNAseq_archivos/tabstrip.htm +0 -0
  81. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/special_files/~$scRNAseq.xlsx +0 -0
  82. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/styles.css +0 -0
  83. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/aggregate_column_data +0 -0
  84. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/column_filter +0 -0
  85. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/desaggregate_column_data +0 -0
  86. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/excel_to_tabular +0 -0
  87. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/filter_by_list +0 -0
  88. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/get_columns +0 -0
  89. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/intersect_columns +0 -0
  90. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/records_count +0 -0
  91. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/show_n_exec +0 -0
  92. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/standard_name_replacer +0 -0
  93. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/table_linker +0 -0
  94. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/tag_table +0 -0
  95. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/transform_to_latex +0 -0
  96. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/subtemplates/transpose_table +0 -0
  97. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/cluster_genes_dis_agg +0 -0
  98. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/cluster_genes_dis_agg2 +0 -0
  99. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/cluster_genes_dis_desagg +0 -0
  100. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/cluster_genes_dis_desagg_3cols +0 -0
  101. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/cluster_genes_dis_desagg_4cols +0 -0
  102. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/cluster_stats +0 -0
  103. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/clusts_to_filter +0 -0
  104. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/disease_cluster +0 -0
  105. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/disease_cluster_ref_rnd +0 -0
  106. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/disease_cluster_uniq +0 -0
  107. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/disease_gene +0 -0
  108. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/long_disease_cluster +0 -0
  109. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/long_table +0 -0
  110. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/metrics_table +0 -0
  111. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/mondo_to_orpha +0 -0
  112. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/nets_to_filter +0 -0
  113. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/organization +0 -0
  114. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/simple_table +0 -0
  115. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/cli_example_report/tables/tracker +0 -0
  116. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/conftest.py +0 -0
  117. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/agg_2index_2values.txt +0 -0
  118. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/agg_data_3_columns.txt +0 -0
  119. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/all_metrics +0 -0
  120. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/blacklist +0 -0
  121. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/blacklist_partial +0 -0
  122. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/cluster_genes.xlsx +0 -0
  123. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/cluster_genes_dis_agg +0 -0
  124. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/cluster_genes_dis_desagg +0 -0
  125. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/cluster_stats +0 -0
  126. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/cluster_stats_header +0 -0
  127. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/dis_gene_attrs +0 -0
  128. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/disease_cluster +0 -0
  129. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/disease_cluster_uniq +0 -0
  130. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/disease_gene +0 -0
  131. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/filterlist +0 -0
  132. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/filterlist_partial +0 -0
  133. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/hp_long_list.txt +0 -0
  134. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ids2count +0 -0
  135. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ids2count_short +0 -0
  136. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/metric_table +0 -0
  137. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/mondo_genes +0 -0
  138. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/mondo_genes.gz +0 -0
  139. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/TEST_file +0 -0
  140. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/TEST_file_transposed +0 -0
  141. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/agg_2index_2values.txt +0 -0
  142. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/agg_2index_2values_several_aggregators.txt +0 -0
  143. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/agg_data_3_columns_result.txt +0 -0
  144. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/cluster_genes_dis_AGG +0 -0
  145. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/cluster_genes_dis_AGG_stdin +0 -0
  146. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/cluster_genes_dis_DESAGG +0 -0
  147. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/cluster_genes_dis_DESAGG_stdin +0 -0
  148. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/cluster_genes_from_excel.txt +0 -0
  149. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_hard +0 -0
  150. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_hard_various_keys +0 -0
  151. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_hard_various_keys_and_every_columns +0 -0
  152. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_hard_various_keys_and_every_columns_header +0 -0
  153. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_hard_various_keys_and_some_columns +0 -0
  154. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_soft +0 -0
  155. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_soft_1_column +0 -0
  156. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_soft_1_column_reverse +0 -0
  157. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_soft_1_column_uniq +0 -0
  158. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_soft_and_every_columns +0 -0
  159. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/column_matching_soft_and_some_columns +0 -0
  160. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/ids2count +0 -0
  161. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/intersect_columns_count +0 -0
  162. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/intersect_columns_default +0 -0
  163. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/intersect_columns_default_stdin_a +0 -0
  164. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/intersect_columns_default_stdin_b +0 -0
  165. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/intersect_columns_full +0 -0
  166. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/linked_table +0 -0
  167. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/linked_table3 +0 -0
  168. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/linked_table_2 +0 -0
  169. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/linked_table_matches +0 -0
  170. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/merge_disease_cluster_gene +0 -0
  171. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/metric_table +0 -0
  172. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/mondo_genes_transposed +0 -0
  173. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/mondo_genes_transposed.gz +0 -0
  174. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/replaced_name +0 -0
  175. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/replaced_name_untranslated +0 -0
  176. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/subset_table +0 -0
  177. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/subset_table_fold/mondo_genes_chunk0 +0 -0
  178. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/subset_table_fold/mondo_genes_chunk1 +0 -0
  179. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/subset_table_fold/mondo_genes_chunk2 +0 -0
  180. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/tag_table +0 -0
  181. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/tag_table_header +0 -0
  182. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_cluster_genes_dis_AGG +0 -0
  183. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_cluster_genes_dis_DESAGG +0 -0
  184. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_cluster_genes_from_excel.txt +0 -0
  185. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_column_matching_hard +0 -0
  186. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_intersect_columns_default +0 -0
  187. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_linked_table +0 -0
  188. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_merge_disease_cluster_gene +0 -0
  189. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_metric_table +0 -0
  190. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_replaced_name +0 -0
  191. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/ref_output_scripts/transposed_tag_table +0 -0
  192. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/simple_table +0 -0
  193. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/tracker +0 -0
  194. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/all_metrics +0 -0
  195. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/cluster_genes.xlsx +0 -0
  196. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/cluster_genes_dis_agg +0 -0
  197. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/cluster_genes_dis_desagg +0 -0
  198. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/cluster_stats +0 -0
  199. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/disease_cluster +0 -0
  200. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/disease_cluster_uniq +0 -0
  201. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/disease_gene +0 -0
  202. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/data_tests/transposed/tranpose_data.py +0 -0
  203. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/test_compressed_pipes.sh +0 -0
  204. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/test_expanded_methods.py +0 -0
  205. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/test_input_parsing.py +0 -0
  206. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tests/test_io.py +0 -0
  207. {py_cmdtabs-1.2.1 → py_cmdtabs-1.2.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py_cmdtabs
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: Set of tools to facilitate parsing of tabulated files
5
5
  Home-page: https://github.com/seoanezonjic/py_cmdtabs
6
6
  Author: seoanezonjic
@@ -15,6 +15,7 @@ License-File: LICENSE.txt
15
15
  Requires-Dist: importlib-metadata; python_version < "3.8"
16
16
  Requires-Dist: openpyxl
17
17
  Requires-Dist: numpy
18
+ Requires-Dist: pandas
18
19
  Provides-Extra: testing
19
20
  Requires-Dist: setuptools; extra == "testing"
20
21
  Requires-Dist: pytest; extra == "testing"
@@ -71,3 +72,6 @@ py_cmdtabs includes tools that make it easier for its user to manipulate tabulat
71
72
  * Replace information: The standard_name_replacer.py script replaces values in a table based on a contributed value code.
72
73
  * Filter columns: The column_filter.py script filters columns from a tabulated file whose elements match a specified pattern.
73
74
  * Transform Excel format into tabular: the excel_to_tabular.py script transforms files with an .xlsx extension into tabular files and makes their handling easier.
75
+
76
+
77
+ See https://github.com/seoanezonjic/py_cmdtabs
@@ -47,4 +47,7 @@ py_cmdtabs includes tools that make it easier for its user to manipulate tabulat
47
47
  * Obtain common information: the table_linker.py script allows you to save in the same output file the information extracted from a tabulated file, based on the identifiers of a second file.
48
48
  * Replace information: The standard_name_replacer.py script replaces values in a table based on a contributed value code.
49
49
  * Filter columns: The column_filter.py script filters columns from a tabulated file whose elements match a specified pattern.
50
- * Transform Excel format into tabular: the excel_to_tabular.py script transforms files with an .xlsx extension into tabular files and makes their handling easier.
50
+ * Transform Excel format into tabular: the excel_to_tabular.py script transforms files with an .xlsx extension into tabular files and makes their handling easier.
51
+
52
+
53
+ See https://github.com/seoanezonjic/py_cmdtabs
@@ -25,6 +25,7 @@ install_requires =
25
25
  importlib-metadata; python_version<"3.8"
26
26
  openpyxl
27
27
  numpy
28
+ pandas
28
29
 
29
30
  [options.packages.find]
30
31
  where = src
@@ -339,6 +339,8 @@ def cmdtabs(args=None):
339
339
  help="Sheet number to work with. Default 1")
340
340
  parser.add_argument("--file_type", dest="file_type", default='text',
341
341
  help="Default text. Other options;excel")
342
+ parser.add_argument("--out_file_type", dest="out_file_type", default='text',
343
+ help="Default text. Other options;excel")
342
344
  parser.add_argument("--from", dest="frm", default=0, type=based_0,
343
345
  help="Column in index file to take reference value. Default 1. Numeration is 1 based")
344
346
  parser.add_argument("--to", dest="to", default=1, type=based_0,
@@ -347,6 +349,8 @@ def cmdtabs(args=None):
347
349
  help="Write table in latex code")
348
350
  parser.add_argument("--sample_attributes", dest="sample_attributes", default=[], type=list_str,
349
351
  help="Define sample atributtes (comma separated list) to colapse a long table in a wide metric table")
352
+ parser.add_argument("--long_to_wide", dest="long_to_wide", default=False, action='store_true',
353
+ help="To transform a long table in a wide table. The id column will be the column/s of sample attributes if specified, or the first column if not. The key columns will be the columns between the id column and the value column, that will be the last column of the table")
350
354
  parser.add_argument("--corrupted", dest="corrupted",
351
355
  help="File where corrupted metrics are stored")
352
356
  parser.add_argument("--offset", dest="offset", default=[], type=list_str,
@@ -375,6 +379,8 @@ def cmdtabs(args=None):
375
379
  help="Print row extraction statistics")
376
380
  parser.add_argument("--uniq", dest="uniq", default=False, action='store_true',
377
381
  help="Make rows unique")
382
+ parser.add_argument("--sort_rows_by", dest="sort_rows_by", default=None,
383
+ help="Sort rows of the table ([a]scending or [d]escending or custom) by given columns, like: 0,a;1,d;2,d score,a;name,d pats,pat1|pat2|pat3 pats,path_sort_file")
378
384
  opts = parser.parse_args(args)
379
385
  main_cmdtabs(opts)
380
386
 
@@ -194,7 +194,7 @@ class CmdTabs:
194
194
  aggregated_values = []
195
195
  for aggregator in aggregation_modes.split(','):
196
196
  aggregated_column_copy = aggregated_column.copy()
197
- if aggregator != "concatenate": aggregated_column_copy = [float(item) for item in aggregated_column_copy]
197
+ if aggregator not in ["concatenate", "count"]: aggregated_column_copy = [float(item) for item in aggregated_column_copy]
198
198
  agg_value = str(make_aggregation[aggregator](aggregated_column_copy))
199
199
  aggregated_values.append(agg_value)
200
200
  return "|".join(aggregated_values)
@@ -241,6 +241,16 @@ class CmdTabs:
241
241
  corrupted_records.insert(0, allTags) # Add header
242
242
  return table_output, corrupted_records
243
243
 
244
+ def long_to_wide(table, id_col, key_col, value_col):
245
+ import pandas as pd
246
+ col_names = [ f"col{idx}" for idx in range(len(table[0]))]
247
+ df = pd.DataFrame(table, columns=col_names)
248
+ df_wide = df.pivot_table(index=df.columns[id_col].tolist(),
249
+ columns=df.columns[key_col].tolist(),
250
+ values=df.columns[value_col].tolist(), aggfunc='first').reset_index()
251
+ metric_names = [metric_name for metric_name in df_wide.columns.get_level_values(1) if metric_name != '']
252
+ return df_wide.values.tolist(), metric_names
253
+
244
254
  def name_replaces(tabular_input, sep, cols_to_replace, indexed_file_index, remove_uns=False):
245
255
  translated_fields = []
246
256
  untranslated_fields = []
@@ -451,7 +461,7 @@ class CmdTabs:
451
461
 
452
462
  def get_table_from_excel(file, sheet_number):
453
463
  import openpyxl
454
- x = openpyxl.load_workbook(file)
464
+ x = openpyxl.load_workbook(file, data_only=True)
455
465
  sheets = x.sheetnames # list excel sheets by name
456
466
  ws = x[sheets[sheet_number]] #select sheet by index (so, we select by sheet order)
457
467
  sheet = []
@@ -468,6 +478,15 @@ class CmdTabs:
468
478
 
469
479
  return sheet
470
480
 
481
+ def table_to_excel(table, output_file, sheet_name='Sheet1'):
482
+ import openpyxl
483
+ wb = openpyxl.Workbook()
484
+ ws = wb.active
485
+ ws.title = sheet_name
486
+ for row in table:
487
+ ws.append(row)
488
+ wb.save(output_file)
489
+
471
490
  def get_groups(a_records, b_records): # inputs are list of string but should be nested lists. This is due to python don't allow to hash list in dicts.
472
491
  a_rec = set(a_records) # For this reason, the last lines convert in lists the strings of the original list to keep the format
473
492
  b_rec = set(b_records) # TODO: See to tranfor to tuples instead to string
@@ -524,16 +543,57 @@ class CmdTabs:
524
543
  else:
525
544
  final_table = latex_table
526
545
  return final_table
527
-
528
- def write_output_data(output_data, output_path=None, sep="\t"):
546
+
547
+ def get_custom_sorts(cols, modes):
548
+ direct_transform = {}
549
+ inverse_transform = {}
550
+ for idx, mode in enumerate(modes):
551
+ if mode not in ["a", "d"]:
552
+ if os.path.exists(mode):
553
+ content = open(mode).read().split("\n")
554
+ direct_transform[cols[idx]] = {col: pos for pos,col in enumerate(content)}
555
+ inverse_transform[cols[idx]] = {pos: col for pos,col in enumerate(content)}
556
+ else:
557
+ direct_transform[cols[idx]] = {col: pos for pos,col in enumerate(mode.split("|"))}
558
+ inverse_transform[cols[idx]] = {pos: col for pos,col in enumerate(mode.split("|"))}
559
+ return direct_transform, inverse_transform
560
+
561
+
562
+ def sort_table(table, sort_rows_by, has_header):
563
+ import pandas
564
+ header = table[0] if has_header else []
565
+ sorted_table = [header] if has_header else []
566
+ start_idx = 1 if has_header else 0
567
+
568
+ cols_to_sort = sort_rows_by.split(';')
569
+ cols, modes = list(zip(*[col.split(',') for col in cols_to_sort]))
570
+ cols = [int(col_idx) if col_idx.isdigit() else header.index(col_idx) for col_idx in cols]
571
+ cols = [f"col_{col_idx}" for col_idx in cols]
572
+ direct_transform, inverse_transform = CmdTabs.get_custom_sorts(cols, modes)
573
+
574
+ df = pandas.DataFrame(table[start_idx:], columns=[f"col_{idx}" for idx in range(len(table[0]))])
575
+ for col, transform_dict in direct_transform.items(): df[col] = df[col].apply(lambda x: transform_dict[x])
576
+ df = df.apply(pandas.to_numeric, errors='ignore')
577
+ df.sort_values(by=cols, ascending=[False if mode == "d" else True for mode in modes], inplace=True) #if mode=="a" or mode=[custom_sort] then ascending is True
578
+ for col, inverse_transform_dict in inverse_transform.items(): df[col] = df[col].apply(lambda x: inverse_transform_dict[x])
579
+ df = df.astype(str)
580
+ sorted_table += df.values.tolist()
581
+ return sorted_table
582
+
583
+
584
+ def write_output_data(output_data, output_path=None, sep="\t", sort_rows_by=None, header=False, out_type='text'):
529
585
  open_file = gzip.open if CmdTabs.compressed_output else open
586
+ if sort_rows_by is not None:
587
+ output_data = CmdTabs.sort_table(output_data, sort_rows_by, header)
530
588
  if CmdTabs.transposed:
531
589
  output_data = CmdTabs.transpose(output_data)
532
-
533
590
  if output_path != None:
534
- with open_file(output_path, 'wt') as out_file:
535
- for line in output_data:
536
- out_file.write(sep.join([str(l) for l in line]) + "\n")
591
+ if out_type == 'excel':
592
+ CmdTabs.table_to_excel(output_data, output_path)
593
+ elif out_type == 'text':
594
+ with open_file(output_path, 'wt') as out_file:
595
+ for line in output_data:
596
+ out_file.write(sep.join([str(l) for l in line]) + "\n")
537
597
  else:
538
598
  if CmdTabs.compressed_output:
539
599
  columns_joined = []
@@ -254,12 +254,22 @@ def main_cmdtabs(opts):
254
254
  # STATS
255
255
  if opts.count_cols != None: table = CmdTabs.records_count(table, opts.count_cols) # [records_count]
256
256
  # TRANSFORMATIONS
257
- if len(opts.sample_attributes) > 0: #[create_metric_table]
257
+ if len(opts.sample_attributes) > 0 and not opts.long_to_wide: #[create_metric_table]
258
258
  samples_tag = opts.sample_attributes.pop(0)
259
259
  metric_names, indexed_metrics = CmdTabs.index_metrics(table, opts.sample_attributes)
260
260
  table, corrupt_recs = CmdTabs.create_table(indexed_metrics, samples_tag, opts.sample_attributes, metric_names)
261
261
  if opts.corrupted != None and len(corrupt_recs) > 0: CmdTabs.write_output_data(corrupt_recs, opts.corrupted)
262
262
 
263
+ if opts.long_to_wide == True:
264
+ id_col = list(range(len(opts.sample_attributes))) if len(opts.sample_attributes) > 0 else [0] # id col será el rango de las columnas de atributos si se han especificado, sino la primera columna
265
+ value_col = [len(table[0]) - 1]
266
+ key_cols = [len(table[0]) - 2]
267
+ table, metric_names = CmdTabs.long_to_wide(table, id_col, key_cols, value_col) # [long_to_wide]
268
+ header = opts.sample_attributes + metric_names
269
+ table = [header] + table
270
+ CmdTabs.write_output_data(table, opts.output_file, sep=output_sep)
271
+
272
+
263
273
  if opts.aggregate: table = CmdTabs.aggregate_column(table, opts.agg_col_index, opts.col_aggregate, opts.agg_sep, opts.agg_mode) # [aggregate_table]
264
274
 
265
275
  if opts.desaggregate: table = CmdTabs.desaggregate_column(table, opts.desagg_col, opts.desagg_sep) # [desaggregate_table]
@@ -291,7 +301,7 @@ def main_cmdtabs(opts):
291
301
  elif opts.sp_file_number > 0: # [subset] split by file number
292
302
  CmdTabs.split_by_nFiles(table, opts.sp_file_number, opts.output_file, file_name, header = header)
293
303
  else:
294
- CmdTabs.write_output_data(table, opts.output_file, sep=output_sep)
304
+ CmdTabs.write_output_data(table, opts.output_file, sep=output_sep, sort_rows_by=opts.sort_rows_by, header=opts.header, out_type=opts.out_file_type)
295
305
 
296
306
 
297
307
  ########################################################
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py_cmdtabs
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: Set of tools to facilitate parsing of tabulated files
5
5
  Home-page: https://github.com/seoanezonjic/py_cmdtabs
6
6
  Author: seoanezonjic
@@ -15,6 +15,7 @@ License-File: LICENSE.txt
15
15
  Requires-Dist: importlib-metadata; python_version < "3.8"
16
16
  Requires-Dist: openpyxl
17
17
  Requires-Dist: numpy
18
+ Requires-Dist: pandas
18
19
  Provides-Extra: testing
19
20
  Requires-Dist: setuptools; extra == "testing"
20
21
  Requires-Dist: pytest; extra == "testing"
@@ -71,3 +72,6 @@ py_cmdtabs includes tools that make it easier for its user to manipulate tabulat
71
72
  * Replace information: The standard_name_replacer.py script replaces values in a table based on a contributed value code.
72
73
  * Filter columns: The column_filter.py script filters columns from a tabulated file whose elements match a specified pattern.
73
74
  * Transform Excel format into tabular: the excel_to_tabular.py script transforms files with an .xlsx extension into tabular files and makes their handling easier.
75
+
76
+
77
+ See https://github.com/seoanezonjic/py_cmdtabs
@@ -30,6 +30,8 @@ src/py_cmdtabs.egg-info/dependency_links.txt
30
30
  src/py_cmdtabs.egg-info/entry_points.txt
31
31
  src/py_cmdtabs.egg-info/not-zip-safe
32
32
  src/py_cmdtabs.egg-info/requires.txt
33
+ src/py_cmdtabs.egg-info/scm_file_list.json
34
+ src/py_cmdtabs.egg-info/scm_version.json
33
35
  src/py_cmdtabs.egg-info/top_level.txt
34
36
  tests/__init__.py
35
37
  tests/conftest.py
@@ -45,6 +47,7 @@ tests/cli_example_report/launch.sh
45
47
  tests/cli_example_report/styles.css
46
48
  tests/cli_example_report/template.txt
47
49
  tests/cli_example_report/outputs/blackfiltered_long_table
50
+ tests/cli_example_report/outputs/corrupted_table
48
51
  tests/cli_example_report/outputs/filtered_long_table
49
52
  tests/cli_example_report/outputs/ref_filtered_disease_cluster_ref_rnd
50
53
  tests/cli_example_report/outputs/wide_table
@@ -74,6 +77,7 @@ tests/cli_example_report/subtemplates/intersect_columns
74
77
  tests/cli_example_report/subtemplates/merge_tabular
75
78
  tests/cli_example_report/subtemplates/records_count
76
79
  tests/cli_example_report/subtemplates/show_n_exec
80
+ tests/cli_example_report/subtemplates/sort_rows_by
77
81
  tests/cli_example_report/subtemplates/standard_name_replacer
78
82
  tests/cli_example_report/subtemplates/subset_table
79
83
  tests/cli_example_report/subtemplates/table_linker
@@ -97,7 +101,9 @@ tests/cli_example_report/tables/metrics_table
97
101
  tests/cli_example_report/tables/mondo_to_orpha
98
102
  tests/cli_example_report/tables/nets_to_filter
99
103
  tests/cli_example_report/tables/organization
104
+ tests/cli_example_report/tables/pats_order
100
105
  tests/cli_example_report/tables/simple_table
106
+ tests/cli_example_report/tables/table_to_sort_2cols_header
101
107
  tests/cli_example_report/tables/tracker
102
108
  tests/data_tests/agg_2index_2values.txt
103
109
  tests/data_tests/agg_data_3_columns.txt
@@ -121,7 +127,11 @@ tests/data_tests/ids2count_short
121
127
  tests/data_tests/metric_table
122
128
  tests/data_tests/mondo_genes
123
129
  tests/data_tests/mondo_genes.gz
130
+ tests/data_tests/pats_order
124
131
  tests/data_tests/simple_table
132
+ tests/data_tests/table_to_sort_2cols_header
133
+ tests/data_tests/table_to_sort_header
134
+ tests/data_tests/table_to_sort_noheader
125
135
  tests/data_tests/tracker
126
136
  tests/data_tests/ref_output_scripts/TEST_file
127
137
  tests/data_tests/ref_output_scripts/TEST_file_transposed
@@ -161,6 +171,13 @@ tests/data_tests/ref_output_scripts/mondo_genes_transposed.gz
161
171
  tests/data_tests/ref_output_scripts/replaced_name
162
172
  tests/data_tests/ref_output_scripts/replaced_name_untranslated
163
173
  tests/data_tests/ref_output_scripts/subset_table
174
+ tests/data_tests/ref_output_scripts/table_to_sort_2cols_header
175
+ tests/data_tests/ref_output_scripts/table_to_sort_header_by_cat
176
+ tests/data_tests/ref_output_scripts/table_to_sort_header_by_pat
177
+ tests/data_tests/ref_output_scripts/table_to_sort_header_by_score
178
+ tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_cat
179
+ tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_pat
180
+ tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_score
164
181
  tests/data_tests/ref_output_scripts/tag_table
165
182
  tests/data_tests/ref_output_scripts/tag_table_header
166
183
  tests/data_tests/ref_output_scripts/transposed_cluster_genes_dis_AGG
@@ -1,5 +1,6 @@
1
1
  openpyxl
2
2
  numpy
3
+ pandas
3
4
 
4
5
  [:python_version < "3.8"]
5
6
  importlib-metadata
@@ -0,0 +1,199 @@
1
+ {
2
+ "files": [
3
+ ".readthedocs.yml",
4
+ "AUTHORS.rst",
5
+ "CHANGELOG.rst",
6
+ "CONTRIBUTING.rst",
7
+ "LICENSE.txt",
8
+ "README.rst",
9
+ "docs/Makefile",
10
+ "docs/_static/.gitignore",
11
+ "docs/authors.rst",
12
+ "docs/changelog.rst",
13
+ "docs/conf.py",
14
+ "docs/contributing.rst",
15
+ "docs/index.rst",
16
+ "docs/license.rst",
17
+ "docs/readme.rst",
18
+ "docs/requirements.txt",
19
+ "make_package.sh",
20
+ "pyproject.toml",
21
+ "requirements.txt",
22
+ "setup.cfg",
23
+ "setup.py",
24
+ "src/py_cmdtabs/__init__.py",
25
+ "src/py_cmdtabs/cli_manager.py",
26
+ "src/py_cmdtabs/cmdtabs.py",
27
+ "src/py_cmdtabs/main_modules.py",
28
+ "tests/__init__.py",
29
+ "tests/cli_example_report/Report.html",
30
+ "tests/cli_example_report/example",
31
+ "tests/cli_example_report/launch.sh",
32
+ "tests/cli_example_report/outputs/blackfiltered_long_table",
33
+ "tests/cli_example_report/outputs/corrupted_table",
34
+ "tests/cli_example_report/outputs/filtered_long_table",
35
+ "tests/cli_example_report/outputs/ref_filtered_disease_cluster_ref_rnd",
36
+ "tests/cli_example_report/outputs/subset_table/disease_cluster_ref_rnd_chunk0",
37
+ "tests/cli_example_report/outputs/subset_table/disease_cluster_ref_rnd_chunk1",
38
+ "tests/cli_example_report/outputs/subset_table/disease_cluster_ref_rnd_chunk2",
39
+ "tests/cli_example_report/outputs/subset_table2/disease_cluster_ref_rnd_chunk0",
40
+ "tests/cli_example_report/outputs/subset_table2/disease_cluster_ref_rnd_chunk1",
41
+ "tests/cli_example_report/outputs/wide_table",
42
+ "tests/cli_example_report/special_files/hoja1.png",
43
+ "tests/cli_example_report/special_files/hoja2.png",
44
+ "tests/cli_example_report/special_files/scRNAseq.htm",
45
+ "tests/cli_example_report/special_files/scRNAseq.xlsx",
46
+ "tests/cli_example_report/special_files/scRNAseq_archivos/filelist.xml",
47
+ "tests/cli_example_report/special_files/scRNAseq_archivos/sheet001.htm",
48
+ "tests/cli_example_report/special_files/scRNAseq_archivos/sheet002.htm",
49
+ "tests/cli_example_report/special_files/scRNAseq_archivos/stylesheet.css",
50
+ "tests/cli_example_report/special_files/scRNAseq_archivos/tabstrip.htm",
51
+ "tests/cli_example_report/special_files/~$scRNAseq.xlsx",
52
+ "tests/cli_example_report/styles.css",
53
+ "tests/cli_example_report/subtemplates/aggregate_column_data",
54
+ "tests/cli_example_report/subtemplates/column_filter",
55
+ "tests/cli_example_report/subtemplates/create_metric_table",
56
+ "tests/cli_example_report/subtemplates/desaggregate_column_data",
57
+ "tests/cli_example_report/subtemplates/excel_to_tabular",
58
+ "tests/cli_example_report/subtemplates/filter_by_list",
59
+ "tests/cli_example_report/subtemplates/get_columns",
60
+ "tests/cli_example_report/subtemplates/intersect_columns",
61
+ "tests/cli_example_report/subtemplates/merge_tabular",
62
+ "tests/cli_example_report/subtemplates/records_count",
63
+ "tests/cli_example_report/subtemplates/show_n_exec",
64
+ "tests/cli_example_report/subtemplates/sort_rows_by",
65
+ "tests/cli_example_report/subtemplates/standard_name_replacer",
66
+ "tests/cli_example_report/subtemplates/subset_table",
67
+ "tests/cli_example_report/subtemplates/table_linker",
68
+ "tests/cli_example_report/subtemplates/tag_table",
69
+ "tests/cli_example_report/subtemplates/transform_to_latex",
70
+ "tests/cli_example_report/subtemplates/transpose_table",
71
+ "tests/cli_example_report/tables/cluster_genes_dis_agg",
72
+ "tests/cli_example_report/tables/cluster_genes_dis_agg2",
73
+ "tests/cli_example_report/tables/cluster_genes_dis_desagg",
74
+ "tests/cli_example_report/tables/cluster_genes_dis_desagg_3cols",
75
+ "tests/cli_example_report/tables/cluster_genes_dis_desagg_4cols",
76
+ "tests/cli_example_report/tables/cluster_stats",
77
+ "tests/cli_example_report/tables/clusts_to_filter",
78
+ "tests/cli_example_report/tables/disease_cluster",
79
+ "tests/cli_example_report/tables/disease_cluster_ref_rnd",
80
+ "tests/cli_example_report/tables/disease_cluster_uniq",
81
+ "tests/cli_example_report/tables/disease_gene",
82
+ "tests/cli_example_report/tables/long_disease_cluster",
83
+ "tests/cli_example_report/tables/long_table",
84
+ "tests/cli_example_report/tables/metrics_table",
85
+ "tests/cli_example_report/tables/mondo_to_orpha",
86
+ "tests/cli_example_report/tables/nets_to_filter",
87
+ "tests/cli_example_report/tables/organization",
88
+ "tests/cli_example_report/tables/pats_order",
89
+ "tests/cli_example_report/tables/simple_table",
90
+ "tests/cli_example_report/tables/table_to_sort_2cols_header",
91
+ "tests/cli_example_report/tables/tracker",
92
+ "tests/cli_example_report/template.txt",
93
+ "tests/conftest.py",
94
+ "tests/data_tests/agg_2index_2values.txt",
95
+ "tests/data_tests/agg_data_3_columns.txt",
96
+ "tests/data_tests/all_metrics",
97
+ "tests/data_tests/blacklist",
98
+ "tests/data_tests/blacklist_partial",
99
+ "tests/data_tests/cluster_genes.xlsx",
100
+ "tests/data_tests/cluster_genes_dis_agg",
101
+ "tests/data_tests/cluster_genes_dis_desagg",
102
+ "tests/data_tests/cluster_stats",
103
+ "tests/data_tests/cluster_stats_header",
104
+ "tests/data_tests/dis_gene_attrs",
105
+ "tests/data_tests/disease_cluster",
106
+ "tests/data_tests/disease_cluster_uniq",
107
+ "tests/data_tests/disease_gene",
108
+ "tests/data_tests/filterlist",
109
+ "tests/data_tests/filterlist_partial",
110
+ "tests/data_tests/hp_long_list.txt",
111
+ "tests/data_tests/ids2count",
112
+ "tests/data_tests/ids2count_short",
113
+ "tests/data_tests/metric_table",
114
+ "tests/data_tests/mondo_genes",
115
+ "tests/data_tests/mondo_genes.gz",
116
+ "tests/data_tests/pats_order",
117
+ "tests/data_tests/ref_output_scripts/TEST_file",
118
+ "tests/data_tests/ref_output_scripts/TEST_file_transposed",
119
+ "tests/data_tests/ref_output_scripts/agg_2index_2values.txt",
120
+ "tests/data_tests/ref_output_scripts/agg_2index_2values_several_aggregators.txt",
121
+ "tests/data_tests/ref_output_scripts/agg_data_3_columns_result.txt",
122
+ "tests/data_tests/ref_output_scripts/cluster_genes_dis_AGG",
123
+ "tests/data_tests/ref_output_scripts/cluster_genes_dis_AGG_stdin",
124
+ "tests/data_tests/ref_output_scripts/cluster_genes_dis_DESAGG",
125
+ "tests/data_tests/ref_output_scripts/cluster_genes_dis_DESAGG_stdin",
126
+ "tests/data_tests/ref_output_scripts/cluster_genes_from_excel.txt",
127
+ "tests/data_tests/ref_output_scripts/column_matching_hard",
128
+ "tests/data_tests/ref_output_scripts/column_matching_hard_various_keys",
129
+ "tests/data_tests/ref_output_scripts/column_matching_hard_various_keys_and_every_columns",
130
+ "tests/data_tests/ref_output_scripts/column_matching_hard_various_keys_and_every_columns_header",
131
+ "tests/data_tests/ref_output_scripts/column_matching_hard_various_keys_and_some_columns",
132
+ "tests/data_tests/ref_output_scripts/column_matching_soft",
133
+ "tests/data_tests/ref_output_scripts/column_matching_soft_1_column",
134
+ "tests/data_tests/ref_output_scripts/column_matching_soft_1_column_reverse",
135
+ "tests/data_tests/ref_output_scripts/column_matching_soft_1_column_uniq",
136
+ "tests/data_tests/ref_output_scripts/column_matching_soft_and_every_columns",
137
+ "tests/data_tests/ref_output_scripts/column_matching_soft_and_some_columns",
138
+ "tests/data_tests/ref_output_scripts/ids2count",
139
+ "tests/data_tests/ref_output_scripts/intersect_columns_count",
140
+ "tests/data_tests/ref_output_scripts/intersect_columns_default",
141
+ "tests/data_tests/ref_output_scripts/intersect_columns_default_stdin_a",
142
+ "tests/data_tests/ref_output_scripts/intersect_columns_default_stdin_b",
143
+ "tests/data_tests/ref_output_scripts/intersect_columns_full",
144
+ "tests/data_tests/ref_output_scripts/linked_table",
145
+ "tests/data_tests/ref_output_scripts/linked_table3",
146
+ "tests/data_tests/ref_output_scripts/linked_table_2",
147
+ "tests/data_tests/ref_output_scripts/linked_table_matches",
148
+ "tests/data_tests/ref_output_scripts/merge_disease_cluster_gene",
149
+ "tests/data_tests/ref_output_scripts/metric_table",
150
+ "tests/data_tests/ref_output_scripts/mondo_genes_transposed",
151
+ "tests/data_tests/ref_output_scripts/mondo_genes_transposed.gz",
152
+ "tests/data_tests/ref_output_scripts/replaced_name",
153
+ "tests/data_tests/ref_output_scripts/replaced_name_untranslated",
154
+ "tests/data_tests/ref_output_scripts/subset_table",
155
+ "tests/data_tests/ref_output_scripts/subset_table_fold/mondo_genes_chunk0",
156
+ "tests/data_tests/ref_output_scripts/subset_table_fold/mondo_genes_chunk1",
157
+ "tests/data_tests/ref_output_scripts/subset_table_fold/mondo_genes_chunk2",
158
+ "tests/data_tests/ref_output_scripts/table_to_sort_2cols_header",
159
+ "tests/data_tests/ref_output_scripts/table_to_sort_header_by_cat",
160
+ "tests/data_tests/ref_output_scripts/table_to_sort_header_by_pat",
161
+ "tests/data_tests/ref_output_scripts/table_to_sort_header_by_score",
162
+ "tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_cat",
163
+ "tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_pat",
164
+ "tests/data_tests/ref_output_scripts/table_to_sort_noheader_by_score",
165
+ "tests/data_tests/ref_output_scripts/tag_table",
166
+ "tests/data_tests/ref_output_scripts/tag_table_header",
167
+ "tests/data_tests/ref_output_scripts/transposed_cluster_genes_dis_AGG",
168
+ "tests/data_tests/ref_output_scripts/transposed_cluster_genes_dis_DESAGG",
169
+ "tests/data_tests/ref_output_scripts/transposed_cluster_genes_from_excel.txt",
170
+ "tests/data_tests/ref_output_scripts/transposed_column_matching_hard",
171
+ "tests/data_tests/ref_output_scripts/transposed_intersect_columns_default",
172
+ "tests/data_tests/ref_output_scripts/transposed_linked_table",
173
+ "tests/data_tests/ref_output_scripts/transposed_merge_disease_cluster_gene",
174
+ "tests/data_tests/ref_output_scripts/transposed_metric_table",
175
+ "tests/data_tests/ref_output_scripts/transposed_replaced_name",
176
+ "tests/data_tests/ref_output_scripts/transposed_tag_table",
177
+ "tests/data_tests/simple_table",
178
+ "tests/data_tests/table_to_sort_2cols_header",
179
+ "tests/data_tests/table_to_sort_header",
180
+ "tests/data_tests/table_to_sort_noheader",
181
+ "tests/data_tests/tracker",
182
+ "tests/data_tests/transposed/all_metrics",
183
+ "tests/data_tests/transposed/cluster_genes.xlsx",
184
+ "tests/data_tests/transposed/cluster_genes_dis_agg",
185
+ "tests/data_tests/transposed/cluster_genes_dis_desagg",
186
+ "tests/data_tests/transposed/cluster_stats",
187
+ "tests/data_tests/transposed/disease_cluster",
188
+ "tests/data_tests/transposed/disease_cluster_uniq",
189
+ "tests/data_tests/transposed/disease_gene",
190
+ "tests/data_tests/transposed/tranpose_data.py",
191
+ "tests/test_cli_manager.py",
192
+ "tests/test_cmdtabs_lib.py",
193
+ "tests/test_compressed_pipes.sh",
194
+ "tests/test_expanded_methods.py",
195
+ "tests/test_input_parsing.py",
196
+ "tests/test_io.py",
197
+ "tox.ini"
198
+ ]
199
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "1.2.2",
3
+ "distance": 0,
4
+ "node": "g55eecaff40c04731bc2ee9c5039e304cb5d1c732",
5
+ "dirty": false,
6
+ "branch": "master",
7
+ "node_date": "2026-10-07"
8
+ }