UnitMatchPy 2.2__tar.gz → 2.4__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 (315) hide show
  1. {UnitMatchPy-2.2/UnitMatchPy.egg-info → UnitMatchPy-2.4}/PKG-INFO +1 -1
  2. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/Overlord.py +0 -1
  3. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/Save_utils.py +1 -1
  4. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/default_params.py +1 -2
  5. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/metric_functions.py +34 -23
  6. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/utils.py +52 -3
  7. {UnitMatchPy-2.2 → UnitMatchPy-2.4/UnitMatchPy.egg-info}/PKG-INFO +1 -1
  8. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/setup.py +1 -1
  9. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/LICENSE +0 -0
  10. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/MANIFEST.in +0 -0
  11. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/README.md +0 -0
  12. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/Extract_raw_data.py +0 -0
  13. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/GUI.py +0 -0
  14. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/GUI_icon.png +0 -0
  15. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/LICENSE +0 -0
  16. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/README.txt +0 -0
  17. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awdark.tcl +0 -0
  18. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awlight.tcl +0 -0
  19. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awtemplate.tcl +0 -0
  20. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awthemes.n7 +0 -0
  21. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awthemes.tcl +0 -0
  22. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awwinxpblue.tcl +0 -0
  23. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/colorutils.tcl +0 -0
  24. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demoscaled.tcl +0 -0
  25. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demoscaledb.tcl +0 -0
  26. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demottk.tcl +0 -0
  27. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/README.txt +0 -0
  28. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-d.svg +0 -0
  29. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-n-base.svg +0 -0
  30. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-n.svg +0 -0
  31. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-sn.svg +0 -0
  32. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-left-n.svg +0 -0
  33. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-right-n.svg +0 -0
  34. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-right-sn.svg +0 -0
  35. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-up-d.svg +0 -0
  36. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-up-n.svg +0 -0
  37. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-down-n-base.svg +0 -0
  38. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-down-n.svg +0 -0
  39. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-down-sn.svg +0 -0
  40. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-left-n.svg +0 -0
  41. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-right-n.svg +0 -0
  42. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-right-sn.svg +0 -0
  43. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-up-n.svg +0 -0
  44. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-down-n-base.svg +0 -0
  45. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-down-n.svg +0 -0
  46. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-down-sn.svg +0 -0
  47. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-left-n.svg +0 -0
  48. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-right-n.svg +0 -0
  49. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-right-sn.svg +0 -0
  50. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-up-n.svg +0 -0
  51. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-down-d.svg +0 -0
  52. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-down-n-base.svg +0 -0
  53. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-down-n.svg +0 -0
  54. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-left-d.svg +0 -0
  55. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-left-n.svg +0 -0
  56. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-right-d.svg +0 -0
  57. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-right-n.svg +0 -0
  58. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-up-d.svg +0 -0
  59. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-up-n.svg +0 -0
  60. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/settings.tcl +0 -0
  61. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-a.svg +0 -0
  62. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-d.svg +0 -0
  63. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-n.svg +0 -0
  64. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-p.svg +0 -0
  65. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/settings.tcl +0 -0
  66. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-a.svg +0 -0
  67. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-af-base.svg +0 -0
  68. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-af.svg +0 -0
  69. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-d.svg +0 -0
  70. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-f.svg +0 -0
  71. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-n.svg +0 -0
  72. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-p.svg +0 -0
  73. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/settings.tcl +0 -0
  74. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/button-d.svg +0 -0
  75. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/button-n-base.svg +0 -0
  76. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/button-n.svg +0 -0
  77. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/settings.tcl +0 -0
  78. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sa-base.svg +0 -0
  79. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sa.svg +0 -0
  80. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sd.svg +0 -0
  81. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sn-base.svg +0 -0
  82. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sn.svg +0 -0
  83. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-ua.svg +0 -0
  84. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-ud.svg +0 -0
  85. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-un.svg +0 -0
  86. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sa-base.svg +0 -0
  87. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sa.svg +0 -0
  88. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sd.svg +0 -0
  89. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sn-base.svg +0 -0
  90. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sn.svg +0 -0
  91. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-ua.svg +0 -0
  92. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-ud.svg +0 -0
  93. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-un.svg +0 -0
  94. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sa.svg +0 -0
  95. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sd.svg +0 -0
  96. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sn-base.svg +0 -0
  97. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sn.svg +0 -0
  98. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-ua.svg +0 -0
  99. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-ud.svg +0 -0
  100. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-un.svg +0 -0
  101. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-sd.svg +0 -0
  102. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-sn-base.svg +0 -0
  103. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-sn.svg +0 -0
  104. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-ud.svg +0 -0
  105. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-un.svg +0 -0
  106. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-sd.svg +0 -0
  107. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-sn-base.svg +0 -0
  108. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-sn.svg +0 -0
  109. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-ud.svg +0 -0
  110. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-un.svg +0 -0
  111. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-arrow-down-d.svg +0 -0
  112. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-arrow-down-n-base.svg +0 -0
  113. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-arrow-down-n.svg +0 -0
  114. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-a.svg +0 -0
  115. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-d.svg +0 -0
  116. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-f.svg +0 -0
  117. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-n-base.svg +0 -0
  118. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-n.svg +0 -0
  119. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/settings.tcl +0 -0
  120. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-a.svg +0 -0
  121. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-d-base.svg +0 -0
  122. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-d.svg +0 -0
  123. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-n-base.svg +0 -0
  124. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-n.svg +0 -0
  125. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/settings.tcl +0 -0
  126. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/empty/empty/empty.svg +0 -0
  127. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-a.svg +0 -0
  128. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-d.svg +0 -0
  129. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-f.svg +0 -0
  130. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-n-base.svg +0 -0
  131. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-n.svg +0 -0
  132. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/settings.tcl +0 -0
  133. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/labelframe/square/labelframe-d.svg +0 -0
  134. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/labelframe/square/labelframe-n.svg +0 -0
  135. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-a.svg +0 -0
  136. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-d.svg +0 -0
  137. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-n-base.svg +0 -0
  138. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-n.svg +0 -0
  139. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-d-base.svg +0 -0
  140. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-d.svg +0 -0
  141. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-n-base.svg +0 -0
  142. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-n.svg +0 -0
  143. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-a.svg +0 -0
  144. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-d.svg +0 -0
  145. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-h.svg +0 -0
  146. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-i-base.svg +0 -0
  147. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-i.svg +0 -0
  148. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/settings.tcl +0 -0
  149. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-a.svg +0 -0
  150. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-d.svg +0 -0
  151. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-h.svg +0 -0
  152. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-i-base.svg +0 -0
  153. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-i.svg +0 -0
  154. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/settings.tcl +0 -0
  155. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-a.svg +0 -0
  156. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-d.svg +0 -0
  157. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-h.svg +0 -0
  158. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-i-base.svg +0 -0
  159. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-i.svg +0 -0
  160. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/settings.tcl +0 -0
  161. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/settings.tcl +0 -0
  162. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-hd.svg +0 -0
  163. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-hn-base.svg +0 -0
  164. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-hn.svg +0 -0
  165. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-vd.svg +0 -0
  166. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-vn.svg +0 -0
  167. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-hd.svg +0 -0
  168. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-hn-base.svg +0 -0
  169. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-hn.svg +0 -0
  170. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-vd.svg +0 -0
  171. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-vn.svg +0 -0
  172. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/settings.tcl +0 -0
  173. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-hd.svg +0 -0
  174. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-hn-base.svg +0 -0
  175. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-hn.svg +0 -0
  176. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-vd.svg +0 -0
  177. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-vn.svg +0 -0
  178. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/diag-mask.svg +0 -0
  179. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/settings.tcl +0 -0
  180. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-hd.svg +0 -0
  181. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-hn-base.svg +0 -0
  182. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-hn.svg +0 -0
  183. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-vd.svg +0 -0
  184. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-vn-base.svg +0 -0
  185. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-vn.svg +0 -0
  186. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/settings.tcl +0 -0
  187. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-hd.svg +0 -0
  188. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-hn.svg +0 -0
  189. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-vd.svg +0 -0
  190. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-vn.svg +0 -0
  191. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-hd.svg +0 -0
  192. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-hn-base.svg +0 -0
  193. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-hn.svg +0 -0
  194. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-vd.svg +0 -0
  195. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-vn-base.svg +0 -0
  196. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-vn.svg +0 -0
  197. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/settings.tcl +0 -0
  198. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sa.svg +0 -0
  199. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sd.svg +0 -0
  200. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sn-base.svg +0 -0
  201. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sn.svg +0 -0
  202. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-ua.svg +0 -0
  203. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-ud.svg +0 -0
  204. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-un.svg +0 -0
  205. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-sd.svg +0 -0
  206. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-sn-base.svg +0 -0
  207. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-sn.svg +0 -0
  208. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-ud.svg +0 -0
  209. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-un.svg +0 -0
  210. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sa.svg +0 -0
  211. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sd.svg +0 -0
  212. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sn-base.svg +0 -0
  213. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sn.svg +0 -0
  214. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-ua.svg +0 -0
  215. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-ud.svg +0 -0
  216. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-un.svg +0 -0
  217. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sa.svg +0 -0
  218. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sd.svg +0 -0
  219. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sn-base.svg +0 -0
  220. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sn.svg +0 -0
  221. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-ua.svg +0 -0
  222. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-ud.svg +0 -0
  223. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-un.svg +0 -0
  224. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-sd.svg +0 -0
  225. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-sn-base.svg +0 -0
  226. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-sn.svg +0 -0
  227. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-ud.svg +0 -0
  228. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-un.svg +0 -0
  229. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle/scale-ha.svg +0 -0
  230. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle/scale-hd.svg +0 -0
  231. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle/scale-hn.svg +0 -0
  232. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle-rev/scale-ha.svg +0 -0
  233. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle-rev/scale-hd.svg +0 -0
  234. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle-rev/scale-hn.svg +0 -0
  235. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-hd.svg +0 -0
  236. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-hn-base.svg +0 -0
  237. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-hn.svg +0 -0
  238. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-vd.svg +0 -0
  239. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-vn.svg +0 -0
  240. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-hd.svg +0 -0
  241. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-hn-base.svg +0 -0
  242. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-hn.svg +0 -0
  243. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-hd.svg +0 -0
  244. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-hn-base.svg +0 -0
  245. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-hn.svg +0 -0
  246. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-vd.svg +0 -0
  247. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-vn-base.svg +0 -0
  248. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-vn.svg +0 -0
  249. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-vd.svg +0 -0
  250. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-vn.svg +0 -0
  251. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/settings.tcl +0 -0
  252. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-h-grip-base.svg +0 -0
  253. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-h-grip.svg +0 -0
  254. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-v-grip-base.svg +0 -0
  255. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-v-grip.svg +0 -0
  256. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/sizegrip/circle/sizegrip-base.svg +0 -0
  257. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/sizegrip/circle/sizegrip.svg +0 -0
  258. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-down-base.svg +0 -0
  259. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-down-n.svg +0 -0
  260. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-down-sn.svg +0 -0
  261. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-right-n.svg +0 -0
  262. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-right-sn.svg +0 -0
  263. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-down-n-base.svg +0 -0
  264. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-down-n.svg +0 -0
  265. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-down-sn.svg +0 -0
  266. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-right-n-base.svg +0 -0
  267. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-right-n.svg +0 -0
  268. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-right-sn.svg +0 -0
  269. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-down-n-base.svg +0 -0
  270. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-down-n.svg +0 -0
  271. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-down-sn.svg +0 -0
  272. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-right-n-base.svg +0 -0
  273. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-right-n.svg +0 -0
  274. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-right-sn.svg +0 -0
  275. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-down-n-base.svg +0 -0
  276. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-down-n.svg +0 -0
  277. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-down-sn.svg +0 -0
  278. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-right-n-base.svg +0 -0
  279. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-right-n.svg +0 -0
  280. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-right-sn.svg +0 -0
  281. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/pkgIndex.tcl +0 -0
  282. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/UM Logo.ico +0 -0
  283. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/UnitMatchPy.egg-info/PKG-INFO +0 -0
  284. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/UnitMatchPy.egg-info/SOURCES.txt +0 -0
  285. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/UnitMatchPy.egg-info/dependency_links.txt +0 -0
  286. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/UnitMatchPy.egg-info/requires.txt +0 -0
  287. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/UnitMatchPy.egg-info/top_level.txt +0 -0
  288. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__init__.py +0 -0
  289. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/AssignUniqueID.cpython-311.pyc +0 -0
  290. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Bayes_fun.cpython-311.pyc +0 -0
  291. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Bayes_fun.cpython-312.pyc +0 -0
  292. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Extract_raw_data.cpython-311.pyc +0 -0
  293. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Extract_raw_data.cpython-312.pyc +0 -0
  294. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/GUI.cpython-311.pyc +0 -0
  295. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/GUI.cpython-312.pyc +0 -0
  296. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Metrics_fun.cpython-311.pyc +0 -0
  297. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Metrics_fun.cpython-312.pyc +0 -0
  298. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Overlord.cpython-311.pyc +0 -0
  299. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Overlord.cpython-312.pyc +0 -0
  300. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Param_fun.cpython-311.pyc +0 -0
  301. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Param_fun.cpython-312.pyc +0 -0
  302. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Save_utils.cpython-311.pyc +0 -0
  303. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/Save_utils.cpython-312.pyc +0 -0
  304. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/__init__.cpython-311.pyc +0 -0
  305. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/__init__.cpython-312.pyc +0 -0
  306. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/utils.cpython-311.pyc +0 -0
  307. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/__pycache__/utils.cpython-312.pyc +0 -0
  308. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/assign_unique_id.py +0 -0
  309. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/bayes_functions.py +0 -0
  310. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy/param_functions.py +0 -0
  311. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy.egg-info/SOURCES.txt +0 -0
  312. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy.egg-info/dependency_links.txt +0 -0
  313. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy.egg-info/requires.txt +0 -0
  314. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/UnitMatchPy.egg-info/top_level.txt +0 -0
  315. {UnitMatchPy-2.2 → UnitMatchPy-2.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: UnitMatchPy
3
- Version: 2.2
3
+ Version: 2.4
4
4
  Author: Enny van Beest, Celian Bimbard and Sam Dodgson
5
5
  Author-email: e.beest@ucl.ac.uk
6
6
  Requires-Python: >=3.7
@@ -124,7 +124,6 @@ def extract_metric_scores(extracted_wave_properties, session_switch, within_sess
124
124
  thrs_opt = mf.get_threshold(total_score, within_session, euclid_dist, param, is_first_pass = False)
125
125
  param['n_expected_matches'] = np.sum( (total_score > thrs_opt).astype(int))
126
126
  prior_match = 1 - ( param['n_expected_matches'] / len(include_these_pairs))
127
-
128
127
  thrs_opt = np.quantile(total_score[include_these_pairs_idx.astype(bool)], prior_match)
129
128
  candidate_pairs = total_score > thrs_opt
130
129
 
@@ -448,4 +448,4 @@ def save_prob_for_phy(probability, param, clus_info):
448
448
  else:
449
449
  matrix_prob = session_output
450
450
 
451
- np.save(save_file_tmp, matrix_prob)
451
+ np.save(save_file_tmp, matrix_prob)
@@ -23,8 +23,7 @@ def get_default_param(param = None):
23
23
  'stepsz' : 0.01, # size of of a step in probability distributions
24
24
  'smooth_prob' : 9, # probability smoothing size
25
25
  'min_angle_dist' : 0.1, # smallest distance for and angle to be consider
26
- 'no_shanks' : 4, # No. probe shanks -default neuropixels 2
27
- 'shank_dist' : 175, # distance between shanks
26
+ 'min_new_shank_distance' : 100, #The smallest distance which separates 2 shanks
28
27
  'units_per_shank_thrs' : 15, # threshold for doing per shank drift correction
29
28
  'match_threshold' : 0.5 # probability threshold to consider as a match
30
29
  }
@@ -506,7 +506,6 @@ def drift_correction_basic(candidate_pairs, session_switch, avg_centroid, avg_wa
506
506
 
507
507
  drift = np.nanmedian( np.nanmean( avg_centroid[:, best_pairs[idx,0].squeeze(),:], axis = 2) - np.nanmean( avg_centroid[:,best_pairs[idx,1].squeeze(),:], axis = 2), axis = 1)
508
508
 
509
-
510
509
  ##need to add the drift to the location
511
510
  avg_waveform_per_tp[0,session_switch[1]:,:,:] += drift[0]
512
511
  avg_waveform_per_tp[1,session_switch[1]:,:,:] += drift[1]
@@ -547,7 +546,7 @@ def apply_drift_correction_basic(pairs, sid, session_switch, avg_centroid, avg_w
547
546
  ##need to add the drift to the location
548
547
  avg_waveform_per_tp[0,session_switch[sid+1]:session_switch[sid+2],:,:] += drift[0]
549
548
  avg_waveform_per_tp[1,session_switch[sid+1]:session_switch[sid+2],:,:] += drift[1]
550
- avg_waveform_per_tp[2,session_switch[sid+1]:session_switch[sid]+2,:,:] += drift[2]
549
+ avg_waveform_per_tp[2,session_switch[sid+1]:session_switch[sid+2],:,:] += drift[2]
551
550
 
552
551
  avg_centroid[0,session_switch[sid+1]:session_switch[sid+2],:] += drift[0]
553
552
  avg_centroid[1,session_switch[sid+1]:session_switch[sid+2],:] += drift[1]
@@ -555,7 +554,7 @@ def apply_drift_correction_basic(pairs, sid, session_switch, avg_centroid, avg_w
555
554
 
556
555
  return drift, avg_waveform_per_tp, avg_centroid
557
556
 
558
- def appply_drift_correction_per_shank(pairs, sid, session_switch, avg_centroid, avg_waveform_per_tp, param):
557
+ def apply_drift_correction_per_shank(pairs, sid, session_switch, avg_centroid, avg_waveform_per_tp, param):
559
558
  """
560
559
  This is the same as "basic" drift correction, however treats each shank separately, if there is enough units per shank
561
560
 
@@ -587,18 +586,23 @@ def appply_drift_correction_per_shank(pairs, sid, session_switch, avg_centroid,
587
586
 
588
587
  max_dist = 0
589
588
  min_dist = 0
590
- drift_per_shank = np.zeros([4,3])
589
+ drift_per_shank = np.zeros([n_shanks,3])
591
590
 
592
591
  for i in range(n_shanks):
593
- max_dist += shank_dist
592
+ max_dist += shank_dist #beginning of loop shift maximum distance
594
593
 
595
- #test to see if a centroid is within the area of that shank
594
+ #get which shank each unit is on
596
595
  correct_shank_a = np.logical_and(centroid_a[1,:] < max_dist, centroid_a[1,:] > min_dist)
597
596
  correct_shank_b = np.logical_and(centroid_b[1,:] < max_dist, centroid_b[1,:] > min_dist)
598
597
 
599
598
  if np.all(correct_shank_a == correct_shank_b) != True:
600
599
  print(f'These pairs may be bad {np.argwhere(correct_shank_a != correct_shank_b)}')
600
+ #delete pairs which are on different shanks ##sam's fix
601
+ bad_idxs = np.argwhere(correct_shank_a != correct_shank_b)
602
+ correct_shank_a = np.delete(correct_shank_a, bad_idxs)
603
+ correct_shank_b = np.delete(correct_shank_b, bad_idxs)
601
604
 
605
+
602
606
  drifts = centroid_a[:,correct_shank_a] - centroid_b[:,correct_shank_b]
603
607
  drift = np.nanmedian(drifts, axis = 1)
604
608
  drift_per_shank[i,:] = drift
@@ -694,25 +698,31 @@ def test_matches_per_shank(pairs, avg_centroid, sid, param):
694
698
  n_shanks = param['no_shanks']
695
699
  shank_dist = param['shank_dist']
696
700
 
697
- for i in range(n_shanks):
698
- max_dist += shank_dist
701
+ if n_shanks != 1:
702
+ for i in range(n_shanks):
703
+ max_dist += shank_dist
699
704
 
700
- correct_shank_a = np.logical_and(centroid_a[1,:] < max_dist, centroid_a[1,:] > min_dist)
701
- correct_shank_b = np.logical_and(centroid_b[1,:] < max_dist, centroid_b[1,:] > min_dist)
705
+ correct_shank_a = np.logical_and(centroid_a[1,:] < max_dist, centroid_a[1,:] > min_dist)
706
+ correct_shank_b = np.logical_and(centroid_b[1,:] < max_dist, centroid_b[1,:] > min_dist)
702
707
 
703
- if np.all(correct_shank_a == correct_shank_b) != True:
704
- print(f'These pairs may be bad {np.argwhere(correct_shank_a != correct_shank_b)}')
705
-
706
- shank_id_tmp[correct_shank_a] = i
708
+ if np.all(correct_shank_a == correct_shank_b) != True:
709
+ print(f'These pairs may be bad {np.argwhere(correct_shank_a != correct_shank_b)}')
710
+ #delete pairs which are one different shanks
711
+ bad_idxs = np.argwhere(correct_shank_a != correct_shank_b)
712
+ correct_shank_a = np.delete(correct_shank_a, bad_idxs)
713
+ correct_shank_b = np.delete(correct_shank_b, bad_idxs)
714
+
715
+ shank_id_tmp[correct_shank_a] = i
707
716
 
708
- min_dist += shank_dist
717
+ min_dist += shank_dist
709
718
 
710
- __, counts = np.unique(shank_id_tmp, return_counts=True)
719
+ __, counts = np.unique(shank_id_tmp, return_counts=True)
711
720
 
712
- if np.any(counts < units_per_shank_thrs):
721
+ if np.any(counts < units_per_shank_thrs):
722
+ do_per_shank_correction = False
723
+ print(f'Session pair {sid+1}/{sid+2} has {counts} matches per shank, which is below threshold to do per shank drift correction')
724
+ else:
713
725
  do_per_shank_correction = False
714
- print(f'Session pair {sid+1}/{sid+2} has {counts} matches per shank, which is below threshold to do per shank drift correction')
715
-
716
726
  return do_per_shank_correction
717
727
 
718
728
 
@@ -765,13 +775,14 @@ def drift_n_sessions(candidate_pairs, session_switch, avg_centroid, avg_waveform
765
775
 
766
776
  #Test to see if there are enough matches to do drift correction per shank
767
777
  if test_matches_per_shank(pairs, avg_centroid, did, param) == True and best_drift == True:
768
- drifts = np.zeros( (n_sessions - 1, param['no_shanks'], 3))
769
- drifts[did,:,:], avg_waveform_per_tp, avg_centroid = appply_drift_correction_per_shank(pairs, did, session_switch, avg_centroid, avg_waveform_per_tp, param)
778
+ drifts = np.zeros( (n_sessions - 1, param['no_shanks'], 3))
779
+ drifts[did,:,:], avg_waveform_per_tp, avg_centroid = apply_drift_correction_per_shank(pairs, did, session_switch, avg_centroid, avg_waveform_per_tp, param)
770
780
  print(f'Done drift correction per shank for session pair {did+1} and {did+2}')
771
- else:
781
+ elif len(pairs)>0: #if there exist pairs across sessions:
772
782
  drifts = np.zeros( (n_sessions - 1, 3))
773
783
  drifts[did,:], avg_waveform_per_tp, avg_centroid = apply_drift_correction_basic(pairs, did, session_switch, avg_centroid, avg_waveform_per_tp)
774
-
784
+ elif len(pairs)==0:
785
+ print('No pairs across sessions to perform drift correction.')
775
786
  return drifts, avg_centroid, avg_waveform_per_tp
776
787
 
777
788
 
@@ -124,6 +124,7 @@ def load_good_waveforms(wave_paths, unit_label_paths, param, good_units_only = T
124
124
 
125
125
  good_units = []
126
126
  n_units_per_session_all = []
127
+ all_units = []
127
128
 
128
129
  for i in range(len(unit_label_paths)):
129
130
  #see if bombcell unit labels
@@ -139,6 +140,7 @@ def load_good_waveforms(wave_paths, unit_label_paths, param, good_units_only = T
139
140
  n_units_per_session_all.append(unit_label.shape[0])
140
141
  good_unit_idx = unit_label[tmp_idx, 0]
141
142
  good_units.append(good_unit_idx)
143
+ all_units.append(unit_label[:,0]) #get all the unit labels
142
144
 
143
145
  waveforms = []
144
146
  if good_units_only:
@@ -162,16 +164,17 @@ def load_good_waveforms(wave_paths, unit_label_paths, param, good_units_only = T
162
164
  else:
163
165
  for ls in range(len(wave_paths)):
164
166
  #load in the first good unit, to get the shape of each waveform
165
- p_file = os.path.join(wave_paths[ls],f'Unit{int(good_units[ls][0].squeeze())}_RawSpikes.npy')
167
+ p_file = os.path.join(wave_paths[ls],f'Unit{int(all_units[ls][0])}_RawSpikes.npy')
166
168
  tmp = np.load(p_file)
167
169
  tmp_waveform = np.zeros( (len(os.listdir(wave_paths[ls])), tmp.shape[0], tmp.shape[1], tmp.shape[2]))
168
170
 
169
171
  for i in range(len(os.listdir(wave_paths[ls]))):
170
172
  #loads in all GoodUnits for that session
171
- p_file_good = os.path.join(wave_paths[ls], f'Unit{int(good_units[ls][0].squeeze())}_RawSpikes.npy')
173
+ p_file_good = os.path.join(wave_paths[ls], f'Unit{int(all_units[ls][i])}_RawSpikes.npy')
172
174
  tmp_waveform[i] = np.load(p_file_good)
173
175
  #adds that session to the list
174
176
  waveforms.append(tmp_waveform)
177
+ print(f'UnitMatch is treating all the units as good and including all units from {wave_paths[ls]}, we recommended using curated data!')
175
178
 
176
179
  del tmp_waveform
177
180
  del tmp
@@ -605,4 +608,50 @@ def paths_from_KS(KS_dirs):
605
608
  else:
606
609
  raise Exception('Could not find RawWaveforms folder')
607
610
 
608
- return wave_paths, unit_label_paths, channel_pos
611
+ return wave_paths, unit_label_paths, channel_pos
612
+
613
+ def get_probe_geometry(channel_pos, param, verbose = False):
614
+ """
615
+ From the channel positions, estimate the number of shanks and there spacing used to
616
+ identify a unit to a probe.
617
+ needmin_new_shank_distance from param.
618
+
619
+ Parameters
620
+ ----------
621
+ channel_pos : ndarray
622
+ The channel positions of a session
623
+ param : dict
624
+ The param dict
625
+ verbose : bool, optional
626
+ If True will print the calculated results, by default False
627
+
628
+ Returns
629
+ -------
630
+ param
631
+ The param dictionary updated with the calculated params
632
+ """
633
+ min_new_shank_distance = param['min_new_shank_distance']
634
+ x_val = np.unique(channel_pos[:,0])
635
+ x_val = np.sort(x_val) #make sure they are in ascending order
636
+ x_spacing = np.diff(x_val)
637
+ too_close = np.argwhere(x_spacing < min_new_shank_distance)
638
+
639
+ #remove when shanks are two close
640
+ x_val = np.delete(x_val, too_close + 1)
641
+
642
+ n_shanks = x_val.size
643
+ if n_shanks == 1:
644
+ shank_spacing = 100 #make it cover the full possible range
645
+ else:
646
+ shank_spacing = np.abs(np.diff(x_val))[0]
647
+
648
+ #NOTE this shank_dist is the distance within a centroid would be assigned to a shank!
649
+ shank_dist = shank_spacing * 0.9 #the area from the start which is assigned to each probe
650
+ #e.g 0 -> 0.9to shank 1, 0.9-1.8 to shank 2...
651
+ #NOTE current shank identification doesn't work for 9+ shanks
652
+
653
+ param['no_shanks'] = n_shanks
654
+ param['shank_dist'] = shank_dist
655
+ if verbose == True:
656
+ print(f'We have found {n_shanks} with spacing ~ {shank_spacing}')
657
+ return param
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: UnitMatchPy
3
- Version: 2.2
3
+ Version: 2.4
4
4
  Author: Enny van Beest, Celian Bimbard and Sam Dodgson
5
5
  Author-email: e.beest@ucl.ac.uk
6
6
  Requires-Python: >=3.7
@@ -5,7 +5,7 @@ with open('README.md', 'r') as f:
5
5
 
6
6
  setup(
7
7
  name="UnitMatchPy",
8
- version="2.2",
8
+ version="2.4",
9
9
  descriptin="Description of the package",
10
10
  author="Enny van Beest, Celian Bimbard and Sam Dodgson",
11
11
  author_email="e.beest@ucl.ac.uk",
File without changes
File without changes
File without changes
File without changes