UnitMatchPy 2.1__tar.gz → 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.
- UnitMatchPy-2.2/PKG-INFO +40 -0
- UnitMatchPy-2.2/README.md +31 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/GUI.py +6 -3
- UnitMatchPy-2.2/UnitMatchPy/GUI_icon.png +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/Save_utils.py +5 -5
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/assign_unique_id.py +1 -1
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/utils.py +3 -0
- UnitMatchPy-2.2/UnitMatchPy.egg-info/PKG-INFO +40 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy.egg-info/SOURCES.txt +1 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/setup.py +1 -1
- UnitMatchPy-2.1/PKG-INFO +0 -38
- UnitMatchPy-2.1/README.md +0 -29
- UnitMatchPy-2.1/UnitMatchPy.egg-info/PKG-INFO +0 -38
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/LICENSE +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/MANIFEST.in +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/Extract_raw_data.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/Overlord.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/LICENSE +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/README.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awdark.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awlight.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awtemplate.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awthemes.n7 +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awthemes.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awwinxpblue.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/colorutils.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demoscaled.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demoscaledb.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demottk.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/README.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-left-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-up-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/chevron/arrow-up-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-left-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/open/arrow-up-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-left-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid/arrow-up-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-down-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-left-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-left-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-right-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-up-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/arrow-up-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/arrow/solid-bg/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/button-p.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-accent-gradient/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-af-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-af.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-f.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/button-p.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-flat/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/button-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/button-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/button-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/button/roundedrect-gradient/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sa-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sa.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-ua.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check/cb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sa-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sa.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-ua.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-check-rev/cb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sa.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-ua.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/roundedrect-square/cb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-check-gradient/cb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/checkbutton/square-x/cb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-arrow-down-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-f.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/combo-entry-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/rounded/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-d-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/combo-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/combobox/solid-bg/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/empty/empty/empty.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-f.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/entry-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/entry/roundedrect/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/labelframe/square/labelframe-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/labelframe/square/labelframe-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/chevron/mb-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-d-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/menubutton/solid/mb-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-h.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-i-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/notebook-tab-i.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-dark/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-h.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-i-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/notebook-tab-i.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-a.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-d.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-h.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-i-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/notebook-tab-i.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/notebook/roundedtop-light-accent/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/slider-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect/trough-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-bord/slider-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/diag-mask.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-vn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rect-diag/slider-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/slider-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-vn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/rounded-line/trough-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/progressbar/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sa.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-ua.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle/rb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-gradient/rb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sa.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-ua.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-hlbg/rb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sa.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-ua.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/circle-circle-rev/rb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-sd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-sn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-ud.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/radiobutton/octagon-circle/rb-un.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle/scale-ha.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle/scale-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle/scale-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle-rev/scale-ha.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle-rev/scale-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/circle-rev/scale-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-bord-grip/scale-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-hd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-hn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-hn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-vn-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-trough-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-vd.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/scale-vn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scale/rect-narrow/settings.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-h-grip-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-h-grip.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-v-grip-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/scrollbar-grip/circle/sb-slider-v-grip.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/sizegrip/circle/sizegrip-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/sizegrip/circle/sizegrip.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-down-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/chevron/tree-arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-right-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/open/tree-arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-right-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/plusminus-box/tree-arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-down-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-down-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-down-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-right-n-base.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-right-n.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/treeview/solid/tree-arrow-right-sn.svg +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/pkgIndex.tcl +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/UM Logo.ico +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/UnitMatchPy.egg-info/PKG-INFO +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/UnitMatchPy.egg-info/SOURCES.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/UnitMatchPy.egg-info/dependency_links.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/UnitMatchPy.egg-info/requires.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/UnitMatchPy.egg-info/top_level.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__init__.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/AssignUniqueID.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Bayes_fun.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Bayes_fun.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Extract_raw_data.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Extract_raw_data.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/GUI.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/GUI.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Metrics_fun.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Metrics_fun.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Overlord.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Overlord.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Param_fun.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Param_fun.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Save_utils.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/Save_utils.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/__init__.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/__init__.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/utils.cpython-311.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/__pycache__/utils.cpython-312.pyc +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/bayes_functions.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/default_params.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/metric_functions.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/param_functions.py +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy.egg-info/dependency_links.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy.egg-info/requires.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy.egg-info/top_level.txt +0 -0
- {UnitMatchPy-2.1 → UnitMatchPy-2.2}/setup.cfg +0 -0
UnitMatchPy-2.2/PKG-INFO
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: UnitMatchPy
|
|
3
|
+
Version: 2.2
|
|
4
|
+
Author: Enny van Beest, Celian Bimbard and Sam Dodgson
|
|
5
|
+
Author-email: e.beest@ucl.ac.uk
|
|
6
|
+
Requires-Python: >=3.7
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
|
|
10
|
+
# Unit Match - Python
|
|
11
|
+
|
|
12
|
+
## Run UMPy
|
|
13
|
+
|
|
14
|
+
To run UMPy standard spike sorting data is needed; channel positions and 2 extracted raw waveforms for each unit. This can be calculated externally [BombCell](https://github.com/Julie-Fabre/bombcell) or using *extract_raw_demo.ipynb* to extract these waveforms from compressed data (.cbin and .ch) or raw data. There is also a [Spike Interface](https://spikeinterface.readthedocs.io/en/latest/) integrated notebook *UMPy_spike_interface_demo.ipynb* which uses spike interface to get this data.
|
|
15
|
+
Be careful not to mix and match the different ways of extracting raw waveforms, as there are difference between the methods.
|
|
16
|
+
|
|
17
|
+
There are to example notebooks for running UMPy *UMPy_example.ipynb* and *UMPy_example_detailed.ipynb*. These notebooks will guide you through running Unit Match all you need to supply is paths to the data. *UMPy_example.ipynb* is recommended to use first as it is simpler, however *UMPy_example_detailed.ipynb* may be useful in unique cases as it is more modular.
|
|
18
|
+
|
|
19
|
+
The GUI is a optional step to curated and investigate the information Unit Match has calculated; for efficient usage of the GUI please look at *GUI_Reference_Guide.md* in the Demo Notebooks folder.
|
|
20
|
+
|
|
21
|
+
## Dependencies
|
|
22
|
+
|
|
23
|
+
This version relies on many core python packages: [numpy](https://numpy.org/), [scipy](https://scipy.org/), [JobLib](https://joblib.readthedocs.io/en/stable/), [pandas](https://pandas.pydata.org/), [tkinter](https://docs.python.org/3/library/tkinter.html) and [matplotlib](https://matplotlib.org/). All of these libaries come with a [Anaconda](https://www.anaconda.com/download/) version of python.
|
|
24
|
+
For extracting raw data, the library [mtscomp](https://github.com/int-brain-lab/mtscomp) is needed, and can be installed by `pip install mtscomp`.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
After creating an python environment
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
conda create --name UnitMatch python
|
|
33
|
+
conda activate UnitMatch
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
You can install UnitMatchPy with pip. It will automatically install all the dependencies.
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
pip install UnitMatchPy
|
|
40
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Unit Match - Python
|
|
2
|
+
|
|
3
|
+
## Run UMPy
|
|
4
|
+
|
|
5
|
+
To run UMPy standard spike sorting data is needed; channel positions and 2 extracted raw waveforms for each unit. This can be calculated externally [BombCell](https://github.com/Julie-Fabre/bombcell) or using *extract_raw_demo.ipynb* to extract these waveforms from compressed data (.cbin and .ch) or raw data. There is also a [Spike Interface](https://spikeinterface.readthedocs.io/en/latest/) integrated notebook *UMPy_spike_interface_demo.ipynb* which uses spike interface to get this data.
|
|
6
|
+
Be careful not to mix and match the different ways of extracting raw waveforms, as there are difference between the methods.
|
|
7
|
+
|
|
8
|
+
There are to example notebooks for running UMPy *UMPy_example.ipynb* and *UMPy_example_detailed.ipynb*. These notebooks will guide you through running Unit Match all you need to supply is paths to the data. *UMPy_example.ipynb* is recommended to use first as it is simpler, however *UMPy_example_detailed.ipynb* may be useful in unique cases as it is more modular.
|
|
9
|
+
|
|
10
|
+
The GUI is a optional step to curated and investigate the information Unit Match has calculated; for efficient usage of the GUI please look at *GUI_Reference_Guide.md* in the Demo Notebooks folder.
|
|
11
|
+
|
|
12
|
+
## Dependencies
|
|
13
|
+
|
|
14
|
+
This version relies on many core python packages: [numpy](https://numpy.org/), [scipy](https://scipy.org/), [JobLib](https://joblib.readthedocs.io/en/stable/), [pandas](https://pandas.pydata.org/), [tkinter](https://docs.python.org/3/library/tkinter.html) and [matplotlib](https://matplotlib.org/). All of these libaries come with a [Anaconda](https://www.anaconda.com/download/) version of python.
|
|
15
|
+
For extracting raw data, the library [mtscomp](https://github.com/int-brain-lab/mtscomp) is needed, and can be installed by `pip install mtscomp`.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
After creating an python environment
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
conda create --name UnitMatch python
|
|
24
|
+
conda activate UnitMatch
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
You can install UnitMatchPy with pip. It will automatically install all the dependencies.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
pip install UnitMatchPy
|
|
31
|
+
```
|
|
@@ -55,14 +55,17 @@ def run_GUI():
|
|
|
55
55
|
not_match = []
|
|
56
56
|
root = Tk()
|
|
57
57
|
# downloaded theme from https://sourceforge.net/projects/tcl-awthemes/
|
|
58
|
-
|
|
58
|
+
theme_path_rel = os.path.normpath(r'TkinterTheme\awthemes-10.4.0')
|
|
59
|
+
theme_path = os.path.join(os.path.dirname(os.path.abspath(__file__)) , theme_path_rel)
|
|
60
|
+
|
|
59
61
|
root.tk.call('lappend', 'auto_path', theme_path)
|
|
60
62
|
root.tk.call('package', 'require', 'awdark')
|
|
61
63
|
s = ttk.Style(root)
|
|
62
64
|
s.theme_use('awdark')
|
|
63
65
|
root.title('UMPy - Manual Curation')
|
|
64
66
|
#root.geometry('800x800')
|
|
65
|
-
|
|
67
|
+
icon = PhotoImage(file = os.path.join(os.path.dirname(os.path.abspath(__file__)) , 'GUI_icon.png'))
|
|
68
|
+
root.iconphoto(False, icon)
|
|
66
69
|
background = ttk.Frame(root)
|
|
67
70
|
background.place(x=0, y=0, relwidth=1.0, relheight=1.0)
|
|
68
71
|
|
|
@@ -909,7 +912,7 @@ def add_original_ID(UnitA, UnitB):
|
|
|
909
912
|
if original_id_label.winfo_exists():
|
|
910
913
|
original_id_label.destroy()
|
|
911
914
|
|
|
912
|
-
original_id_label = ttk.Label(root, text = f'The Original Unit IDs are:\nUnit A: {int(clus_info["
|
|
915
|
+
original_id_label = ttk.Label(root, text = f'The Original Unit IDs are:\nUnit A: {int(clus_info["original_ids"][UnitA].squeeze())} Unit B: {int(clus_info["original_ids"][UnitB].squeeze())}', borderwidth = 2 , relief= 'groove')
|
|
913
916
|
original_id_label.grid( row = 0, column = 2, ipadx = 5, ipady = 5)
|
|
914
917
|
|
|
915
918
|
|
|
Binary file
|
|
@@ -5,7 +5,7 @@ import numpy as np
|
|
|
5
5
|
|
|
6
6
|
def make_match_table(scores_to_include, matches, output_prob, total_score, output_threshold, clus_info, param, UIDs = None, matches_curated = None):
|
|
7
7
|
"""
|
|
8
|
-
Creates the match table showing information for every pair of units
|
|
8
|
+
Creates the match table showing information for every pair of units.
|
|
9
9
|
|
|
10
10
|
Parameters
|
|
11
11
|
----------
|
|
@@ -46,8 +46,8 @@ def make_match_table(scores_to_include, matches, output_prob, total_score, outpu
|
|
|
46
46
|
unit_a_list = xx.reshape(n_units*n_units)
|
|
47
47
|
unit_b_list = yy.reshape(n_units*n_units)
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
xx, yy = np.meshgrid(
|
|
49
|
+
session_id = clus_info['session_id']
|
|
50
|
+
xx, yy = np.meshgrid(session_id, session_id)
|
|
51
51
|
unit_a_session_list = xx.reshape(n_units*n_units) + 1 # Add one here so it counts from one not 0
|
|
52
52
|
unit_b_session_list = yy.reshape(n_units*n_units) + 1
|
|
53
53
|
|
|
@@ -442,8 +442,8 @@ def save_prob_for_phy(probability, param, clus_info):
|
|
|
442
442
|
session_output = probability[session_switch[sid]:session_switch[sid+1], session_switch[sid]:session_switch[sid+1]]
|
|
443
443
|
#If Only good units where used add values know to a matrix of NaNs
|
|
444
444
|
if session_switch[sid+1] - session_switch[sid] != n_units_per_session[sid]:
|
|
445
|
-
all_good_units = clus_info['
|
|
446
|
-
for id, gid in enumerate(clus_info['
|
|
445
|
+
all_good_units = clus_info['good_units'][sid].squeeze().astype(int)
|
|
446
|
+
for id, gid in enumerate(clus_info['good_units'][sid].astype(int)):
|
|
447
447
|
matrix_prob[gid, all_good_units] = session_output[id,:]
|
|
448
448
|
else:
|
|
449
449
|
matrix_prob = session_output
|
|
@@ -42,7 +42,7 @@ def assign_unique_id(output_prob_array, param, clus_info):
|
|
|
42
42
|
List
|
|
43
43
|
A list of arrays which gives each unit its group ID for each case
|
|
44
44
|
"""
|
|
45
|
-
all_cluster_ids = clus_info['
|
|
45
|
+
all_cluster_ids = clus_info['original_ids'] # each units has unique ID
|
|
46
46
|
|
|
47
47
|
#create arrays for the unique ids
|
|
48
48
|
unique_id_liberal = np.arange(all_cluster_ids.shape[0])
|
|
@@ -130,10 +130,12 @@ def load_good_waveforms(wave_paths, unit_label_paths, param, good_units_only = T
|
|
|
130
130
|
if os.path.split(unit_label_paths[0])[1] == 'cluster_bc_unitType.tsv':
|
|
131
131
|
unit_label = load_tsv(unit_label_paths[i])
|
|
132
132
|
tmp_idx = np.array([s for s in unit_label if 'GOOD' in s or 'NON-SOMA GOOD' in s])[:,0].astype(np.int32)
|
|
133
|
+
tmp_idx = tmp_idx[:, np.newaxis] # keep the array shape consitant between different methodss
|
|
133
134
|
else:
|
|
134
135
|
unit_label = load_tsv(unit_label_paths[i])
|
|
135
136
|
tmp_idx = np.argwhere(unit_label[:,1] == 'good')
|
|
136
137
|
|
|
138
|
+
|
|
137
139
|
n_units_per_session_all.append(unit_label.shape[0])
|
|
138
140
|
good_unit_idx = unit_label[tmp_idx, 0]
|
|
139
141
|
good_units.append(good_unit_idx)
|
|
@@ -228,6 +230,7 @@ def get_good_units(unit_label_paths, good = True):
|
|
|
228
230
|
tmp_idx = np.array([s for s in unit_label if 'GOOD' in s or 'NON-SOMA GOOD' in s])[:,0].astype(np.int32)
|
|
229
231
|
else:
|
|
230
232
|
tmp_idx = unit_label[:,0].astype(np.int32)
|
|
233
|
+
tmp_idx = tmp_idx[:, np.newaxis] # keep the array shape consitant between different methodss
|
|
231
234
|
else:
|
|
232
235
|
unit_label = load_tsv(unit_label_paths[i])
|
|
233
236
|
if good == True:
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: UnitMatchPy
|
|
3
|
+
Version: 2.2
|
|
4
|
+
Author: Enny van Beest, Celian Bimbard and Sam Dodgson
|
|
5
|
+
Author-email: e.beest@ucl.ac.uk
|
|
6
|
+
Requires-Python: >=3.7
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
|
|
10
|
+
# Unit Match - Python
|
|
11
|
+
|
|
12
|
+
## Run UMPy
|
|
13
|
+
|
|
14
|
+
To run UMPy standard spike sorting data is needed; channel positions and 2 extracted raw waveforms for each unit. This can be calculated externally [BombCell](https://github.com/Julie-Fabre/bombcell) or using *extract_raw_demo.ipynb* to extract these waveforms from compressed data (.cbin and .ch) or raw data. There is also a [Spike Interface](https://spikeinterface.readthedocs.io/en/latest/) integrated notebook *UMPy_spike_interface_demo.ipynb* which uses spike interface to get this data.
|
|
15
|
+
Be careful not to mix and match the different ways of extracting raw waveforms, as there are difference between the methods.
|
|
16
|
+
|
|
17
|
+
There are to example notebooks for running UMPy *UMPy_example.ipynb* and *UMPy_example_detailed.ipynb*. These notebooks will guide you through running Unit Match all you need to supply is paths to the data. *UMPy_example.ipynb* is recommended to use first as it is simpler, however *UMPy_example_detailed.ipynb* may be useful in unique cases as it is more modular.
|
|
18
|
+
|
|
19
|
+
The GUI is a optional step to curated and investigate the information Unit Match has calculated; for efficient usage of the GUI please look at *GUI_Reference_Guide.md* in the Demo Notebooks folder.
|
|
20
|
+
|
|
21
|
+
## Dependencies
|
|
22
|
+
|
|
23
|
+
This version relies on many core python packages: [numpy](https://numpy.org/), [scipy](https://scipy.org/), [JobLib](https://joblib.readthedocs.io/en/stable/), [pandas](https://pandas.pydata.org/), [tkinter](https://docs.python.org/3/library/tkinter.html) and [matplotlib](https://matplotlib.org/). All of these libaries come with a [Anaconda](https://www.anaconda.com/download/) version of python.
|
|
24
|
+
For extracting raw data, the library [mtscomp](https://github.com/int-brain-lab/mtscomp) is needed, and can be installed by `pip install mtscomp`.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
After creating an python environment
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
conda create --name UnitMatch python
|
|
33
|
+
conda activate UnitMatch
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
You can install UnitMatchPy with pip. It will automatically install all the dependencies.
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
pip install UnitMatchPy
|
|
40
|
+
```
|
UnitMatchPy-2.1/PKG-INFO
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: UnitMatchPy
|
|
3
|
-
Version: 2.1
|
|
4
|
-
Author: Enny van Beest, Celian Bimbard and Sam Dodgson
|
|
5
|
-
Author-email: e.beest@ucl.ac.uk
|
|
6
|
-
Requires-Python: >=3.7
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
License-File: LICENSE
|
|
9
|
-
|
|
10
|
-
# Unit Match - Python
|
|
11
|
-
|
|
12
|
-
## Run UMPy
|
|
13
|
-
|
|
14
|
-
To run UMPy standard spike sorting data is needed; channel positions and 2 extractracted raw waveforms for each unit. This can be calculated exteranlly [BombCell](https://github.com/Julie-Fabre/bombcell) or using *ExtractRawDataDemo.ipynb* to extract these waveforms from compressed data (.cbin and .ch) or raw data. There is also a [Spike Interface](https://spikeinterface.readthedocs.io/en/latest/) intergrated notebook *UMPy_spike_interface_demo.ipynb* which uses spike interface to get this data.
|
|
15
|
-
Be careful not to mix and match the different ways of exrtacting raw waveforms, as there are difference between the methods.
|
|
16
|
-
|
|
17
|
-
There are to example notebooks for running UMPy *UMPyExample.ipynb* and *UMPyExampleBrief.ipynb*. These notebooks will guide you throuh running Unit Match all you need to supply is paths to the data. *UMPyExampleBried.ipynb* is reccomened to use first as it is simpler, however *UMPyExample.ipynb* may be useful in unique cases as it is more modular.
|
|
18
|
-
|
|
19
|
-
The GUI is a optional step to curated and investigate the infomation Unit Match has calculated; for efficent usage of the GUI please look at *GUI_Reference_Guide.md* in the Demo Notebooks folder.
|
|
20
|
-
## Dependencies
|
|
21
|
-
This version relies on many core python packages [numpy](https://numpy.org/), [scipy](https://scipy.org/), [JobLib](https://joblib.readthedocs.io/en/stable/), [pandas](https://pandas.pydata.org/), [tkinter](https://docs.python.org/3/library/tkinter.html) and [matplotlib](https://matplotlib.org/). All of these libaries come with a [Anaconda](https://www.anaconda.com/download/) version of python.
|
|
22
|
-
For extracting raw data the library [mtscomp](https://github.com/int-brain-lab/mtscomp) is needed, this can be installed by `pip install mtscomp`.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Installation
|
|
26
|
-
|
|
27
|
-
After creating an python environment
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
conda create --name UnitMatch python
|
|
31
|
-
conda activate UnitMatch
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
You can install UnitMatchPy with pip. It will automatically install all the dependency.
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
pip install UnitMatchPy
|
|
38
|
-
```
|
UnitMatchPy-2.1/README.md
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Unit Match - Python
|
|
2
|
-
|
|
3
|
-
## Run UMPy
|
|
4
|
-
|
|
5
|
-
To run UMPy standard spike sorting data is needed; channel positions and 2 extractracted raw waveforms for each unit. This can be calculated exteranlly [BombCell](https://github.com/Julie-Fabre/bombcell) or using *ExtractRawDataDemo.ipynb* to extract these waveforms from compressed data (.cbin and .ch) or raw data. There is also a [Spike Interface](https://spikeinterface.readthedocs.io/en/latest/) intergrated notebook *UMPy_spike_interface_demo.ipynb* which uses spike interface to get this data.
|
|
6
|
-
Be careful not to mix and match the different ways of exrtacting raw waveforms, as there are difference between the methods.
|
|
7
|
-
|
|
8
|
-
There are to example notebooks for running UMPy *UMPyExample.ipynb* and *UMPyExampleBrief.ipynb*. These notebooks will guide you throuh running Unit Match all you need to supply is paths to the data. *UMPyExampleBried.ipynb* is reccomened to use first as it is simpler, however *UMPyExample.ipynb* may be useful in unique cases as it is more modular.
|
|
9
|
-
|
|
10
|
-
The GUI is a optional step to curated and investigate the infomation Unit Match has calculated; for efficent usage of the GUI please look at *GUI_Reference_Guide.md* in the Demo Notebooks folder.
|
|
11
|
-
## Dependencies
|
|
12
|
-
This version relies on many core python packages [numpy](https://numpy.org/), [scipy](https://scipy.org/), [JobLib](https://joblib.readthedocs.io/en/stable/), [pandas](https://pandas.pydata.org/), [tkinter](https://docs.python.org/3/library/tkinter.html) and [matplotlib](https://matplotlib.org/). All of these libaries come with a [Anaconda](https://www.anaconda.com/download/) version of python.
|
|
13
|
-
For extracting raw data the library [mtscomp](https://github.com/int-brain-lab/mtscomp) is needed, this can be installed by `pip install mtscomp`.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Installation
|
|
17
|
-
|
|
18
|
-
After creating an python environment
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
conda create --name UnitMatch python
|
|
22
|
-
conda activate UnitMatch
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
You can install UnitMatchPy with pip. It will automatically install all the dependency.
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
pip install UnitMatchPy
|
|
29
|
-
```
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: UnitMatchPy
|
|
3
|
-
Version: 2.1
|
|
4
|
-
Author: Enny van Beest, Celian Bimbard and Sam Dodgson
|
|
5
|
-
Author-email: e.beest@ucl.ac.uk
|
|
6
|
-
Requires-Python: >=3.7
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
License-File: LICENSE
|
|
9
|
-
|
|
10
|
-
# Unit Match - Python
|
|
11
|
-
|
|
12
|
-
## Run UMPy
|
|
13
|
-
|
|
14
|
-
To run UMPy standard spike sorting data is needed; channel positions and 2 extractracted raw waveforms for each unit. This can be calculated exteranlly [BombCell](https://github.com/Julie-Fabre/bombcell) or using *ExtractRawDataDemo.ipynb* to extract these waveforms from compressed data (.cbin and .ch) or raw data. There is also a [Spike Interface](https://spikeinterface.readthedocs.io/en/latest/) intergrated notebook *UMPy_spike_interface_demo.ipynb* which uses spike interface to get this data.
|
|
15
|
-
Be careful not to mix and match the different ways of exrtacting raw waveforms, as there are difference between the methods.
|
|
16
|
-
|
|
17
|
-
There are to example notebooks for running UMPy *UMPyExample.ipynb* and *UMPyExampleBrief.ipynb*. These notebooks will guide you throuh running Unit Match all you need to supply is paths to the data. *UMPyExampleBried.ipynb* is reccomened to use first as it is simpler, however *UMPyExample.ipynb* may be useful in unique cases as it is more modular.
|
|
18
|
-
|
|
19
|
-
The GUI is a optional step to curated and investigate the infomation Unit Match has calculated; for efficent usage of the GUI please look at *GUI_Reference_Guide.md* in the Demo Notebooks folder.
|
|
20
|
-
## Dependencies
|
|
21
|
-
This version relies on many core python packages [numpy](https://numpy.org/), [scipy](https://scipy.org/), [JobLib](https://joblib.readthedocs.io/en/stable/), [pandas](https://pandas.pydata.org/), [tkinter](https://docs.python.org/3/library/tkinter.html) and [matplotlib](https://matplotlib.org/). All of these libaries come with a [Anaconda](https://www.anaconda.com/download/) version of python.
|
|
22
|
-
For extracting raw data the library [mtscomp](https://github.com/int-brain-lab/mtscomp) is needed, this can be installed by `pip install mtscomp`.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Installation
|
|
26
|
-
|
|
27
|
-
After creating an python environment
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
conda create --name UnitMatch python
|
|
31
|
-
conda activate UnitMatch
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
You can install UnitMatchPy with pip. It will automatically install all the dependency.
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
pip install UnitMatchPy
|
|
38
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/awwinxpblue.tcl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/demoscaledb.tcl
RENAMED
|
File without changes
|
|
File without changes
|
{UnitMatchPy-2.1 → UnitMatchPy-2.2}/UnitMatchPy/TkinterTheme/awthemes-10.4.0/i/awthemes/README.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|