python-clu 0.12.12__tar.gz → 0.12.14__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 (285) hide show
  1. {python_clu-0.12.12 → python_clu-0.12.14}/.bumpversion.toml +1 -1
  2. {python_clu-0.12.12 → python_clu-0.12.14}/CHANGELOG.md +284 -1
  3. {python_clu-0.12.12 → python_clu-0.12.14}/PKG-INFO +17 -7
  4. {python_clu-0.12.12 → python_clu-0.12.14}/README.md +17 -7
  5. python_clu-0.12.14/clu/__version__.py +1 -0
  6. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/abc.py +84 -57
  7. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/env.py +14 -9
  8. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/formats/tomlfile.py +3 -0
  9. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/keymap.py +226 -86
  10. python_clu-0.12.14/clu/config/keymaputils.py +146 -0
  11. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/keymapview.py +58 -55
  12. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/legacy/base.py +16 -0
  13. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/ns.py +104 -43
  14. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/consts.py +6 -0
  15. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/data.py +77 -0
  16. {python_clu-0.12.12 → python_clu-0.12.14}/clu/dicts.py +156 -73
  17. {python_clu-0.12.12 → python_clu-0.12.14}/clu/exporting.py +1 -1
  18. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/misc.py +6 -6
  19. {python_clu-0.12.12 → python_clu-0.12.14}/clu/keyvalue.py +3 -3
  20. {python_clu-0.12.12 → python_clu-0.12.14}/clu/naming.py +6 -1
  21. {python_clu-0.12.12 → python_clu-0.12.14}/clu/predicates.py +12 -12
  22. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/repl.py +3 -1
  23. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/treeline.py +16 -22
  24. {python_clu-0.12.12 → python_clu-0.12.14}/clu/testing/utils.py +1 -1
  25. python_clu-0.12.14/clu/trie.py +244 -0
  26. {python_clu-0.12.12 → python_clu-0.12.14}/clu/typology.py +37 -4
  27. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/PKG-INFO +17 -7
  28. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/SOURCES.txt +2 -0
  29. {python_clu-0.12.12 → python_clu-0.12.14}/setup.py +1 -1
  30. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/config/clu-config.toml +1 -6
  31. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_config.py +8 -74
  32. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_dicts.py +12 -30
  33. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_repr.py +2 -2
  34. python_clu-0.12.12/clu/__version__.py +0 -1
  35. {python_clu-0.12.12 → python_clu-0.12.14}/.coveragerc +0 -0
  36. {python_clu-0.12.12 → python_clu-0.12.14}/.editorconfig +0 -0
  37. {python_clu-0.12.12 → python_clu-0.12.14}/.gitchangelog.rc +0 -0
  38. {python_clu-0.12.12 → python_clu-0.12.14}/.gitignore +0 -0
  39. {python_clu-0.12.12 → python_clu-0.12.14}/.landscape.yml +0 -0
  40. {python_clu-0.12.12 → python_clu-0.12.14}/.travis.yml +0 -0
  41. {python_clu-0.12.12 → python_clu-0.12.14}/ABOUT.md +0 -0
  42. {python_clu-0.12.12 → python_clu-0.12.14}/CLASSIFIERS.txt +0 -0
  43. {python_clu-0.12.12 → python_clu-0.12.14}/CLU_Treatment.md +0 -0
  44. {python_clu-0.12.12 → python_clu-0.12.14}/CODE_OF_CONDUCT.md +0 -0
  45. {python_clu-0.12.12 → python_clu-0.12.14}/LICENSE.txt +0 -0
  46. {python_clu-0.12.12 → python_clu-0.12.14}/MANIFEST.in +0 -0
  47. {python_clu-0.12.12 → python_clu-0.12.14}/Makefile +0 -0
  48. {python_clu-0.12.12 → python_clu-0.12.14}/appveyor.yml +0 -0
  49. {python_clu-0.12.12 → python_clu-0.12.14}/clu/__init__.py +0 -0
  50. {python_clu-0.12.12 → python_clu-0.12.14}/clu/__main__.py +0 -0
  51. {python_clu-0.12.12 → python_clu-0.12.14}/clu/abstract.py +0 -0
  52. {python_clu-0.12.12 → python_clu-0.12.14}/clu/all.py +0 -0
  53. {python_clu-0.12.12 → python_clu-0.12.14}/clu/api/__init__.py +0 -0
  54. {python_clu-0.12.12 → python_clu-0.12.14}/clu/api/__main__.py +0 -0
  55. {python_clu-0.12.12 → python_clu-0.12.14}/clu/application.py +0 -0
  56. {python_clu-0.12.12 → python_clu-0.12.14}/clu/compilation/__init__.py +0 -0
  57. {python_clu-0.12.12 → python_clu-0.12.14}/clu/compilation/compiledb.py +0 -0
  58. {python_clu-0.12.12 → python_clu-0.12.14}/clu/compilation/macros.py +0 -0
  59. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/__init__.py +0 -0
  60. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/codecs.py +0 -0
  61. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/filebase.py +0 -0
  62. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/formats/__init__.py +0 -0
  63. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/formats/jsonfile.py +0 -0
  64. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/formats/picklefile.py +0 -0
  65. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/formats/yamlfile.py +0 -0
  66. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/legacy/__init__.py +0 -0
  67. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/legacy/fieldtypes.py +0 -0
  68. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/legacy/settings.py +0 -0
  69. {python_clu-0.12.12 → python_clu-0.12.14}/clu/config/proxy.py +0 -0
  70. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/__init__.py +0 -0
  71. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/__main__.py +0 -0
  72. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/enums.py +0 -0
  73. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/exceptions.py +0 -0
  74. {python_clu-0.12.12 → python_clu-0.12.14}/clu/constants/polyfills.py +0 -0
  75. {python_clu-0.12.12 → python_clu-0.12.14}/clu/csv.py +0 -0
  76. {python_clu-0.12.12 → python_clu-0.12.14}/clu/dispatch.py +0 -0
  77. {python_clu-0.12.12 → python_clu-0.12.14}/clu/enums.py +0 -0
  78. {python_clu-0.12.12 → python_clu-0.12.14}/clu/extending.py +0 -0
  79. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/__init__.py +0 -0
  80. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/abc.py +0 -0
  81. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/appdirectories.py +0 -0
  82. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/filesystem.py +0 -0
  83. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/pypath.py +0 -0
  84. {python_clu-0.12.12 → python_clu-0.12.14}/clu/fs/sourcetree.py +0 -0
  85. {python_clu-0.12.12 → python_clu-0.12.14}/clu/importing/__init__.py +0 -0
  86. {python_clu-0.12.12 → python_clu-0.12.14}/clu/importing/__main__.py +0 -0
  87. {python_clu-0.12.12 → python_clu-0.12.14}/clu/importing/base.py +0 -0
  88. {python_clu-0.12.12 → python_clu-0.12.14}/clu/importing/proxy.py +0 -0
  89. {python_clu-0.12.12 → python_clu-0.12.14}/clu/mathematics.py +0 -0
  90. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/__init__.py +0 -0
  91. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/ansi.py +0 -0
  92. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/banners.py +0 -0
  93. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/cli/__init__.py +0 -0
  94. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/cli/ansidocs.py +0 -0
  95. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/cli/boilerplate.py +0 -0
  96. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/cli/boilerplate_copy.py +0 -0
  97. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/cli/print_version.py +0 -0
  98. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/columnize.py +0 -0
  99. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repl/modules.py +0 -0
  100. {python_clu-0.12.12 → python_clu-0.12.14}/clu/repr.py +0 -0
  101. {python_clu-0.12.12 → python_clu-0.12.14}/clu/sanitizer.py +0 -0
  102. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/.gitignore +0 -0
  103. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/README.md +0 -0
  104. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/__init__.py +0 -0
  105. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/ansicolors.py +0 -0
  106. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/boilerplate.py +0 -0
  107. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/dictroast.py +0 -0
  108. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/legacy/forkumask.py +0 -0
  109. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/legacy/repl-bpython.py +0 -0
  110. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/legacy/repl-ipython.py +0 -0
  111. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/legacy/repl-ptpython.py +0 -0
  112. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/legacy/repl-pyzo.py +0 -0
  113. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/legacy/xdg-runtime.py +0 -0
  114. {python_clu-0.12.12 → python_clu-0.12.14}/clu/scripts/prediversus.py +0 -0
  115. {python_clu-0.12.12 → python_clu-0.12.14}/clu/shelving/__init__.py +0 -0
  116. {python_clu-0.12.12 → python_clu-0.12.14}/clu/shelving/redat.py +0 -0
  117. {python_clu-0.12.12 → python_clu-0.12.14}/clu/shelving/redis.conf +0 -0
  118. {python_clu-0.12.12 → python_clu-0.12.14}/clu/stdio.py +0 -0
  119. {python_clu-0.12.12 → python_clu-0.12.14}/clu/testing/__init__.py +0 -0
  120. {python_clu-0.12.12 → python_clu-0.12.14}/clu/testing/hook.py +0 -0
  121. {python_clu-0.12.12 → python_clu-0.12.14}/clu/testing/obsolete.py +0 -0
  122. {python_clu-0.12.12 → python_clu-0.12.14}/clu/testing/pytest.py +0 -0
  123. {python_clu-0.12.12 → python_clu-0.12.14}/clu/typespace/__init__.py +0 -0
  124. {python_clu-0.12.12 → python_clu-0.12.14}/clu/typespace/__main__.py +0 -0
  125. {python_clu-0.12.12 → python_clu-0.12.14}/clu/typespace/namespace.py +0 -0
  126. {python_clu-0.12.12 → python_clu-0.12.14}/clu/version/__init__.py +0 -0
  127. {python_clu-0.12.12 → python_clu-0.12.14}/clu/version/__main__.py +0 -0
  128. {python_clu-0.12.12 → python_clu-0.12.14}/clu/version/git_version.py +0 -0
  129. {python_clu-0.12.12 → python_clu-0.12.14}/clu/version/read_version.py +0 -0
  130. {python_clu-0.12.12 → python_clu-0.12.14}/codecov.yml +0 -0
  131. {python_clu-0.12.12 → python_clu-0.12.14}/conftest.py +0 -0
  132. {python_clu-0.12.12 → python_clu-0.12.14}/docs/.DS_Store +0 -0
  133. {python_clu-0.12.12 → python_clu-0.12.14}/docs/Makefile +0 -0
  134. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/doctrees/api.doctree +0 -0
  135. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/doctrees/environment.pickle +0 -0
  136. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/doctrees/generated/clu.doctree +0 -0
  137. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/doctrees/index.doctree +0 -0
  138. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/.buildinfo +0 -0
  139. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_sources/api.rst.txt +0 -0
  140. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_sources/generated/clu.rst.txt +0 -0
  141. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_sources/index.rst.txt +0 -0
  142. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  143. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/alabaster.css +0 -0
  144. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/basic.css +0 -0
  145. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/badge_only.css +0 -0
  146. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  147. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  148. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  149. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  150. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  151. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  152. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  153. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  154. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  155. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  156. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  157. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  158. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  159. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  160. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  161. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  162. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  163. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/css/theme.css +0 -0
  164. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/custom.css +0 -0
  165. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/doctools.js +0 -0
  166. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/documentation_options.js +0 -0
  167. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/file.png +0 -0
  168. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/jquery-3.6.0.js +0 -0
  169. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/jquery.js +0 -0
  170. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/js/badge_only.js +0 -0
  171. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  172. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/js/html5shiv.min.js +0 -0
  173. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/js/theme.js +0 -0
  174. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/language_data.js +0 -0
  175. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/minus.png +0 -0
  176. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/plus.png +0 -0
  177. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/pygments.css +0 -0
  178. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/searchtools.js +0 -0
  179. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/underscore-1.13.1.js +0 -0
  180. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/_static/underscore.js +0 -0
  181. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/api.html +0 -0
  182. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/generated/clu.html +0 -0
  183. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/genindex.html +0 -0
  184. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/index.html +0 -0
  185. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/objects.inv +0 -0
  186. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/py-modindex.html +0 -0
  187. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/search.html +0 -0
  188. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/html/searchindex.js +0 -0
  189. {python_clu-0.12.12 → python_clu-0.12.14}/docs/build/man/clu.1 +0 -0
  190. {python_clu-0.12.12 → python_clu-0.12.14}/docs/make.bat +0 -0
  191. {python_clu-0.12.12 → python_clu-0.12.14}/docs/source/api.rst +0 -0
  192. {python_clu-0.12.12 → python_clu-0.12.14}/docs/source/conf.py +0 -0
  193. {python_clu-0.12.12 → python_clu-0.12.14}/docs/source/generated/clu.rst +0 -0
  194. {python_clu-0.12.12 → python_clu-0.12.14}/docs/source/index.rst +0 -0
  195. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/autohook.sh +0 -0
  196. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/post-push/00-coverage.sh +0 -0
  197. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/pre-push/00-noop.sh +0 -0
  198. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/pre-push/01-direnv-stdlib.sh +0 -0
  199. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/scripts/coverage.sh +0 -0
  200. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/scripts/display-issues.sh +0 -0
  201. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/scripts/git-pushex +0 -0
  202. {python_clu-0.12.12 → python_clu-0.12.14}/hooks/scripts/noop.sh +0 -0
  203. {python_clu-0.12.12 → python_clu-0.12.14}/mypy.ini +0 -0
  204. {python_clu-0.12.12 → python_clu-0.12.14}/noxfile.py +0 -0
  205. {python_clu-0.12.12 → python_clu-0.12.14}/pyproject.toml +0 -0
  206. {python_clu-0.12.12 → python_clu-0.12.14}/pytest.ini +0 -0
  207. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/dependency_links.txt +0 -0
  208. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/entry_points.txt +0 -0
  209. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/requires.txt +0 -0
  210. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/top_level.txt +0 -0
  211. {python_clu-0.12.12 → python_clu-0.12.14}/python_clu.egg-info/zip-safe +0 -0
  212. {python_clu-0.12.12 → python_clu-0.12.14}/pytype.cfg +0 -0
  213. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/changelog.txt +0 -0
  214. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/dev.txt +0 -0
  215. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/docs.txt +0 -0
  216. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/install.txt +0 -0
  217. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/nox/codecov.txt +0 -0
  218. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/nox/docs.txt +0 -0
  219. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/nox/manifest.txt +0 -0
  220. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/nox/pyproject.txt +0 -0
  221. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/nox/repl.txt +0 -0
  222. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/nox/tests.txt +0 -0
  223. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/tox.txt +0 -0
  224. {python_clu-0.12.12 → python_clu-0.12.14}/requirements/typecheck.txt +0 -0
  225. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/direnv_transformed_env.py +0 -0
  226. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/clu-module-list-example-small.jpg +0 -0
  227. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/clu-module-list-example.jpg +0 -0
  228. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/clu-module-list-example.pxd +0 -0
  229. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/clu-testing-time-totals-example-small.jpg +0 -0
  230. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/clu-testing-time-totals-example.jpg +0 -0
  231. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/clu-testing-time-totals-example.pxd +0 -0
  232. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/construx-and-capsela-small.jpg +0 -0
  233. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/construx-and-capsela.jpg +0 -0
  234. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/construx-and-capsela.pxd +0 -0
  235. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/images/toml-module-rant.jpg +0 -0
  236. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/inline-tests-ImportError-uggggh.ipynb +0 -0
  237. {python_clu-0.12.12 → python_clu-0.12.14}/scratch/nteract.ipynb +0 -0
  238. {python_clu-0.12.12 → python_clu-0.12.14}/setup.cfg +0 -0
  239. {python_clu-0.12.12 → python_clu-0.12.14}/tests/__init__.py +0 -0
  240. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/1-58.jpg +0 -0
  241. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/3471426989_aa8e83cac5_o.jpg +0 -0
  242. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/3472236406_1fbf1a567d_o.jpg +0 -0
  243. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/8600JC.jpg +0 -0
  244. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/8ba.png +0 -0
  245. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/IMG_20180505_205153567.jpg +0 -0
  246. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/cheetah-003.jpg +0 -0
  247. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/config/yodogg.toml +0 -0
  248. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/shutterstock_90194617.jpg +0 -0
  249. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/yodata/09163d51421853.5608b3c2a1be0.jpg +0 -0
  250. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/yodata/5d0227342500004e12e3506d.jpg +0 -0
  251. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/yodata/BlackCat2_large-22.jpg +0 -0
  252. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/yodogg/Serval_Cat_Kitten-706.jpg +0 -0
  253. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/yodogg/Servals_Thoiry_19801.jpg +0 -0
  254. {python_clu-0.12.12 → python_clu-0.12.14}/tests/data/yodogg/video-pride-serval.jpg +0 -0
  255. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_abstract.py +0 -0
  256. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_all.py +0 -0
  257. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_boilerplate.py +0 -0
  258. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_config_abc.py +0 -0
  259. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_csv.py +0 -0
  260. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_dispatch.py +0 -0
  261. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_enum_aliases.py +0 -0
  262. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_exporting.py +0 -0
  263. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_extending.py +0 -0
  264. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_fs_abc.py +0 -0
  265. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_fs_appdirectories.py +0 -0
  266. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_fs_filesystem.py +0 -0
  267. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_fs_misc.py +0 -0
  268. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_importing.py +0 -0
  269. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_keyvalue.py +0 -0
  270. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_mathematics.py +0 -0
  271. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_naming.py +0 -0
  272. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_predicates.py +0 -0
  273. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_repl_columnize.py +0 -0
  274. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_repl_modules.py +0 -0
  275. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_scripts_repl.py +0 -0
  276. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_typespace_namespace.py +0 -0
  277. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_typology.py +0 -0
  278. {python_clu-0.12.12 → python_clu-0.12.14}/tests/test_version.py +0 -0
  279. {python_clu-0.12.12 → python_clu-0.12.14}/tests/yodogg/.tm_properties +0 -0
  280. {python_clu-0.12.12 → python_clu-0.12.14}/tests/yodogg/__init__.py +0 -0
  281. {python_clu-0.12.12 → python_clu-0.12.14}/tests/yodogg/yodogg/__init__.py +0 -0
  282. {python_clu-0.12.12 → python_clu-0.12.14}/tests/yodogg/yodogg/config.py +0 -0
  283. {python_clu-0.12.12 → python_clu-0.12.14}/tests/yodogg/yodogg/exporting.py +0 -0
  284. {python_clu-0.12.12 → python_clu-0.12.14}/tests/yodogg/yodogg/iheard.py +0 -0
  285. {python_clu-0.12.12 → python_clu-0.12.14}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
 
2
2
  [tool.bumpversion]
3
- current_version = "0.12.12"
3
+ current_version = "0.12.14"
4
4
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
5
5
  serialize = ["{major}.{minor}.{patch}"]
6
6
  search = "{current_version}"
@@ -1,10 +1,293 @@
1
1
  # Changelog
2
2
 
3
3
 
4
- ## 0.12.11:pre6+gf6ef978 [SNAPSHOT]
4
+ ## 0.12.13:pre32+g85452ed [SNAPSHOT]
5
+
6
+ ### Add
7
+
8
+ * Added stub description of `clu.trie` to `README.md` [Alexander Böhn]
9
+
10
+ Just leaving this right here, like for later
11
+
12
+ * Adding the beginnings of a new `clu.trie` basic library. [Alexander Böhn]
13
+
14
+ … seeing where this goes. This is in aid of parsing keymap namespaced
15
+ keys faster or more betterer, depending, so we will see where this
16
+ goes. AS ALWAYS, PULLS ARE WELCOME!!!!! 🥰
17
+
18
+ * Added a link in `README.md` to the new `clu.config.utils` module. [Alexander Böhn]
19
+
20
+ * Addressing some unexpected issues with KeyMap views and config files. [Alexander Böhn]
21
+
22
+ … I mean, the tests run OK………………… butttt………………
5
23
 
6
24
  ### Other
7
25
 
26
+ * Ensure the valorous `clu.constants.consts.NoDefault` class looks good. [Alexander Böhn]
27
+
28
+ … meaning its class-based and instance-based repr methods return
29
+ nothing but “NoDefault”, now and forever. There is only a single
30
+ NoDefault class ever, out there; its only instance is itself.
31
+
32
+ *** NoDefault Stands Alone ***
33
+
34
+ … Erm, yes. Yes!
35
+
36
+ * Better living through your functional friends: `filter`, `map`, and `reduce` [Alexander Böhn]
37
+
38
+ * At long last, `clu.predicates.@itervariadic(…)` passes keyword args. [Alexander Böhn]
39
+
40
+ … fucking FINALLY. It did not do this for like ever and, I’ll just
41
+ tell you, I was totally scared to fuck with it; like maybe I had
42
+ tried to get it to do kwargs at some point and AT THAT VERY EXACT
43
+ MOMENT my aunt’s ferret died, which scarred me for life and forged
44
+ a very inexplicable but nonetheless quite strong mental link in
45
+ my mind, between passing kwargs in @itervariadic and the death
46
+ that we all face. Maybe (I have no aunts tho) but something.
47
+
48
+ * Fixed wrong-function call in `allsimilar(…)`’s unhashable-input branch. [Alexander Böhn]
49
+
50
+ … N.B. need to ensure tests cover all lambdas, and both code branches
51
+ for these; also ensure @itervariadic’s niceties are assuaged
52
+
53
+ * New `clu.typology` functions for checking an iterable’s contents. [Alexander Böhn]
54
+
55
+ … like: “allthesame(iterable)” works with hashable OR non-hashable
56
+ contents!! HOW DID HE DO THAT??? you ask. Check the code, it was
57
+ a good time!
58
+ … similarly “allsimilar(iterable[, xform=casefold]) will basically
59
+ do when ‘allthesame(…)’ does but after applying some convenience
60
+ item-transformer function
61
+ … Both of these use @itervariadic, are documented, and export all
62
+ their (equally well-documented) constituent lambdas
63
+
64
+ Indeed yes!
65
+
66
+ * Providing a slightly more invariant `__hash__` for frozen keymaps. [Alexander Böhn]
67
+
68
+ * All-new, all-singing all-dancing recursive ordered expansion!!! [Alexander Böhn]
69
+
70
+ … Specifically:
71
+ • Our verenable and yet lovely “clu.config.abc.FlatOrderedSet”
72
+ alongside our exotic, experimental “clu.dicts.ChainMapPlusPlus”
73
+ now have recursive expansion iterator initialization functions!!
74
+ • WHAT DOES THAT MEAN?!? you ask (nay, demand) to know? Well. Both
75
+ of those classes each can accept an arbitrary bunch of *things*
76
+ when initializing their respective instances. Idiomatically, that
77
+ arbitrary bunch can contain instances of the very class being
78
+ initialized!
79
+ • Up until like just now, pretty much, both of those classes would
80
+ expand such instances in-place and in-order when they came across
81
+ them during initialization. Sorta. I mean, they kind-of clumsily
82
+ did like some if/thens and would expand instances, but only one
83
+ level deep for sure. It was unreliable fragile shit even when it
84
+ did work – but I loved both these true-CLU containers when they
85
+ were functional!
86
+ • But now they are, like totally – they are quickly and recursively
87
+ each using an “expand(…)” method to both expand and uniquify all
88
+ things in the list they end up containing. You should read this
89
+ code because I am proud of it and it is cool. It’s documented,
90
+ too, so yeah you’re welcome!!
91
+
92
+ … of course some other ancillary things were tweaked for this; as of
93
+ this time, all tests have gone green. So in conclusion: fuck yes.
94
+
95
+ * Scrapped a few *really* old `clu.config` tests whose meaning is lost. [Alexander Böhn]
96
+
97
+ … like they were only testing inoperative legacy shit – the likes
98
+ of which, while aspirational in its day, is all something I’d
99
+ enjoy completely forgetting about as soon as is biologically
100
+ advisable. In essence. Yes!
101
+
102
+ * Trying to squeeze more speed out of `clu.config.abc.FlatOrderedSet` [Alexander Böhn]
103
+
104
+ … I love that class, I’ll have you know – warts and all, I do love
105
+ that motherfucking thing
106
+
107
+ * Tweaks in the clu.config.abc.FlatOrderedSet initialization. [Alexander Böhn]
108
+
109
+ … basically I love using “filter(¬)” whenever possible
110
+
111
+ * Such a minor optimization it may just be premature. [Alexander Böhn]
112
+
113
+ * Minor changes to `clu.config.keymap.FrozenNested::submap(…)` [Alexander Böhn]
114
+
115
+ … AGAIN. I know. These are minor, yes, but they clarify things too
116
+
117
+ * An inline test and a fixture for `clu.tree` [Alexander Böhn]
118
+
119
+ … it’s something, OK? Gimme like five minutes, unless your kids are
120
+ on fire or something of similar urgency. THANK YOU.
121
+
122
+ * Fixed a few uncaught errors there in `clu.trie.Trie` [Alexander Böhn]
123
+
124
+ … time for inline tests here in this new module, ay wot, wot, wot?
125
+
126
+ * Split the gratuitous `clu.trie.Trie` methods off from the essentials. [Alexander Böhn]
127
+
128
+ … maybe this makes things go faster, even with slots, when memory
129
+ is the thing at issue? I know not. But I am not above doing this,
130
+ clearly as we can see
131
+
132
+ * Fixed a few dangling references to `config.utils` [Alexander Böhn]
133
+
134
+ Q.v. commit supra.
135
+
136
+ * An extremely minor clarification. [Alexander Böhn]
137
+
138
+ … namely, the first arg for that lambda is always a class instance,
139
+ not a regular-instance instance, erm. So instead it says “cls”,
140
+ now, and not “self”, and I consider myself at least clarified
141
+ (if not edified).
142
+
143
+ * Renaming `clu.config.utils` to `clu.config.keymaputils` [Alexander Böhn]
144
+
145
+ … There are waaaaaaaaay too many “utils.py” modules out there in
146
+ the world, if you asked me. I’m doing *my* part.
147
+
148
+ * Fixed another `README.md` glitch. [Alexander Böhn]
149
+
150
+ … there was a problematic set of superscript HTML tags that were
151
+ being literally rendered.
152
+
153
+ * Dealt with the download link in `README.md` [Alexander Böhn]
154
+
155
+ … as in, it will (or at least, *should*) always be current now
156
+
157
+ * Various and sundry semantic renamings. [Alexander Böhn]
158
+
159
+ * OK SO. I had to revert some things. [Alexander Böhn]
160
+
161
+ … namely I got reaaeeaaaalllll clever with those namespaced-walker
162
+ keymap view “__iter__(…)” methods – as it turns out, because of
163
+ all that reeeaaaaaalllll clever shiit I pulled with the submaps
164
+ being all properly of the right class, oh ho ho, yadda yadda,
165
+ but that did NOT WORK. Namely iterating a keymap submap can trigger
166
+ some crazy recursive shit in some cases, e.g. with the “Environ”
167
+ maps and other such things.
168
+
169
+ … soooooo. Until I unfuck this, the rule is “do not iterate submaps
170
+ within NamespacedWalker views’ ‘__iter__(…)’ methods – in fact,
171
+ probably don’t fucking iterate them at all in this context, OK?”
172
+
173
+ … yeah. OK yeah.
174
+
175
+ * Simplify, and Exclude. [Alexander Böhn]
176
+
177
+ * More `clu.config.keymap` nitpicks like simians endlessly grooming. [Alexander Böhn]
178
+
179
+ * Ooooo I hate turning generators back into stupid returns. [Alexander Böhn]
180
+
181
+ * Some (no doubt premature) optimizations in `clu.config.keymapview` [Alexander Böhn]
182
+
183
+
184
+ ## v0.12.13 (2025-06-13)
185
+
186
+ ### Add
187
+
188
+ * Added some useful rando dicts to `clu.constants.data` [Alexander Böhn]
189
+
190
+ ### Other
191
+
192
+ * Bumped version: 0.12.12 → 0.12.13. [Alexander Böhn]
193
+
194
+ * [make] New changelog added. [Alexander Böhn]
195
+
196
+ * Nixed `clu.dicts.ChainMap.__eq__(…)` for the moment. [Alexander Böhn]
197
+
198
+ … because I have reason to believe that, at this time, it may suck.
199
+
200
+ * Tidying up and removing more dead code. [Alexander Böhn]
201
+
202
+ * Removed and renamed much in the `clu.keymap`/`clu.dicts` departments. [Alexander Böhn]
203
+
204
+ * Total overhaul of oh so much stuff in `clu.config` and `clu.dicts` [Alexander Böhn]
205
+
206
+ • For the most part, you pass actual namespaces in to a KeyMaps’
207
+ methods that say “namespaces”.
208
+ • Like: “flatmap.submap('yo:dogg', 'iheard:youlike')” works
209
+ • … as does “flatmap.keys('yo:dogg')” or “flatmap.items('yo:dogg')”
210
+ • … there was some touchy shit with this so watch this space for more
211
+ • Tests are updated accordingly (both inline and unit tests)
212
+ • Many changes in “clu.dicts” to afford different classes and speed
213
+ and things of that nature
214
+ • Added a new “clu.config.utils” module
215
+ • This contains ad-hoc name-based functions for “freezing” and
216
+ “thawing” classes – like you can do:
217
+
218
+ >>> from clu.config.utils import freeze_class, thaw_class
219
+ >>> from clu.config.keymap import Flat, FrozenFlat
220
+ >>> assert freeze_class(Flat) is FrozenFlat
221
+ >>> assert thaw_class(FrozenFlat) is Flat
222
+
223
+ … which is pretty neat, I think. It’s totally ad-hoc and fragile,
224
+ tho, so we will see what happens.
225
+ • Modified “clu.config.abc” to go with all of this
226
+ • Added some mapping fixture thingees to “clu.constants.data”
227
+ • Much other miscellany I am sure
228
+
229
+ … Yes!
230
+
231
+ * Rethinking and reworking how `KeyMap.submap(…)` thinks and works. [Alexander Böhn]
232
+
233
+ * An array of tweaks and optimizations to be found in `clu.dicts` [Alexander Böhn]
234
+
235
+ So. We got:
236
+ • A rewrite of “clu.dicts.merge_as(…)” that doesn’t just hopelessly
237
+ piggyback on “merge_two(¬)” of the same module, and keeps the dicts
238
+ in the right order
239
+ • Some of that “right order” mojo was sprinkled into the constructor
240
+ for “clu.dicts.ChainMap”
241
+ • “clu.dicts.ChainRepr” won’t identify builtin types (namely, “dict”)
242
+ as irritatingly coming from the “builtins” package
243
+ • Used frozensets in place of sets, wherever speedier
244
+ • Inline test names in “clu.dicts” make some a lot of sense
245
+ • Other miscellaneous shit
246
+
247
+ * Regex flags in `clu.fs.misc` are now handled cheaply and gracefully. [Alexander Böhn]
248
+
249
+ … meaning the defaults are computed in the function sigs, which also
250
+ means they may be modified at the whim of you, the user
251
+
252
+ * My my, there was much reserved-word-clobbering up in there. [Alexander Böhn]
253
+
254
+ … by “there” I mean “clu.dicts”; q.v. previous commit supra.
255
+
256
+ * No longer clobbering a reserved word (“map”) in `clu.dicts.ChainMap` [Alexander Böhn]
257
+
258
+ * Just a small addenda to my favorite CLU docstring. [Alexander Böhn]
259
+
260
+ * A bunch of new namespace tools for use in `clu.config` [Alexander Böhn]
261
+
262
+ To wit:
263
+ • The very deeply abstract base class now has an abstract method
264
+ definition specifically for the “submap(…)” signature (which this
265
+ was previously lacking).
266
+
267
+ • There’s a new “KeyedAccessor” class in “clu.config.keymap”, allowing
268
+ for proxied simple access to keymap elements. Like you can be like:
269
+
270
+ >>> nested = Nested(nested_data)
271
+ >>> accessor = KeyedAccessor(nested, "some:namespace:keypath")
272
+ >>> assert nested['some:namespace:keypath:key'] = accessor['key']
273
+
274
+ … at least, that’s the goal with that RN.
275
+
276
+ • There is also a “clean_ns(namespaced_string)” function, to be found
277
+ in “clu.config.ns”, and support regexes and one-liner functions
278
+ based on those regexes, and an inline test function.
279
+
280
+ • Trivial (really) fixes in “clu.exporting” and “clu.predicates” too.
281
+
282
+
283
+ ## v0.12.12 (2025-06-03)
284
+
285
+ ### Other
286
+
287
+ * Bumped version: 0.12.11 → 0.12.12. [Alexander Böhn]
288
+
289
+ * [make] New changelog added. [Alexander Böhn]
290
+
8
291
  * Reaffirming the commands’ non-erroneousness AGAIN!! [Alexander Böhn]
9
292
 
10
293
  * Reaffirming the commands’ non-erroneousness. [Alexander Böhn]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-clu
3
- Version: 0.12.12
3
+ Version: 0.12.14
4
4
  Summary: Python-CLU: Common Lightweight Utilities
5
5
  Home-page: https://github.com/fish2000/clu
6
6
  Download-URL: https://github.com/fish2000/clu/zipball/master
@@ -152,7 +152,8 @@ So do have a look around. Here’s an abridged breakdown of some things within:
152
152
 
153
153
  … and there are plenty of tools for rolling your own `KeyMap`s in [`clu.config`][clu.config]: the
154
154
  [`proxy`][clu.config.proxy] subpackage has a `KeyMap` proxy class, [`ns`][clu.config.ns] has utility functions
155
- for manipulating namespace strings, [`keymapview`][clu.config.keymapview] has a class tower for
155
+ for manipulating namespace strings, [`keymaputils`][clu.config.keymaputils] has more general utility functions (right now
156
+ the `freeze`/`thaw` functions live there), [`keymapview`][clu.config.keymapview] has a class tower for
156
157
  [`KeyMap`][clu.config.keymap] key/value/item views, and [`abc`][clu.config.abc] has, as you’d expect, all
157
158
  the abstract base classes upon which our [`KeyMap`s][clu.config.keymap] are built, for your perusal and
158
159
  eventual enjoyment.
@@ -252,9 +253,9 @@ So do have a look around. Here’s an abridged breakdown of some things within:
252
253
  [`types.ModuleType`][types.ModuleType] is to be found in `typespace.types.Module`, [`types.FunctionType`][types.FunctionType]
253
254
  is `typespace.types.Function`, et cetera, ad nauseum, so you can just do `from clu.typespace import types`
254
255
  to lose the redundant “Type” naming suffix – which I don’t know about you but that annoys me, I mean we all know
255
- that these things are types because they are in the fucking [`types`][types] module and don’t need those overly verbose extra four characters
256
- there at the end. ALSO, there are additional useful types, from Python’s standard library and common packages,
257
- in the [`types` namespace][clu.typespace.namespace]. YOU’RE WELCOME!!
256
+ that these things are types because they are in the fucking [`types`][types] module and don’t need those overly
257
+ verbose extra four characters there at the end. ALSO, there are additional useful types, from Python’s standard
258
+ library and common packages, in the [`types` namespace][clu.typespace.namespace]. YOU’RE WELCOME!!
258
259
 
259
260
  * [`enums`][clu.enums]: Furnishes `alias(…)` – which, spoiler alert, let you create aliases within your enums!
260
261
  Oh yes. Like so:
@@ -434,6 +435,13 @@ So do have a look around. Here’s an abridged breakdown of some things within:
434
435
  * [`sanitizer`][clu.sanitizer]: functions for cleaning up unicode. Right now there is just a list-based `sanitize(…)`
435
436
  function that tones down anything with high-value code points to the point where it can be safely `ascii`-ified.
436
437
 
438
+ * [`trie`][clu.trie]: A relative newcomer, [`clu.trie`][clu.trie] is a toolkit for building trie-search type custom
439
+ systems for parsing specific things, i.e. error strings, program output… [`clu.config.keymap`][KeyMap keys] maybe,
440
+ who knows. It’s all shiny and new (meaning: the current contents will fail to blow your mind); if tries and/or other
441
+ similar tree-search dark arts are, like, your thing: do hit me up with suggestions or samples, or PULL REQUESTS!!
442
+ How do I love pull requests. I’ll toast your name for life, if you were to send me one good PR. On this or anything
443
+ else (you’re heartily invited to nitpick my abundantly horrid spelling errors too if you are into that). Yes!
444
+
437
445
  * [`typology`][clu.typology]: This is like [`clu.predicates`][clu.predicates] but with more predicates, many of which are
438
446
  based on typelists. The module is full of typelists and it uses them extensively in its predicates, via `isinstance(…)`,
439
447
  `issubclass(…)` and a custom version of same called `subclasscheck(…)` which tries very hard to work with
@@ -445,7 +453,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
445
453
  primitives amongst other things. The (skeletal) [`git_version`][clu.version.git_version] subpackage has a
446
454
  couple of [Git-related][git-link] functions, but what you really want is in [`read_version`][clu.version.read_version]
447
455
  – therein you’ll find a `read_version_file(…)` function that uses the `ast` module to read one of those
448
- `__version__.py` files I know you have lying around. Yes![<sup>†</sup>](#dagger)
456
+ `__version__.py` files I know you have lying around. Yes[<sup>†</sup>](#dagger)!
449
457
 
450
458
  * [The `pytest` testsuite][clu-testsuite]: CLU has a full set of [`pytest`][pytest-link]-compatible unit tests.
451
459
  In addition to copious module-specific [CLU inline tests][clu.testing], you can run this test suite using
@@ -471,7 +479,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
471
479
 
472
480
  <!--- LINKS! LINKS! LINKS! -->
473
481
  [pypi-link]: https://pypi.org/project/python-clu/
474
- [download-link]: https://files.pythonhosted.org/packages/3e/af/4b0dfabe816cee7802cf6981f7f79770c4f05f8df4ac64fc6984789baaaa/python_clu-0.12.3.tar.gz
482
+ [download-link]: https://github.com/fish2000/CLU/archive/refs/heads/master.zip
475
483
  [homage-replutilities-link]: https://github.com/fish2000/homage/blob/master/.script-bin/replutilities.py
476
484
  [clu-tron-link]: https://tron.fandom.com/wiki/Clu
477
485
 
@@ -498,6 +506,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
498
506
  [clu.config.keymapview]: https://github.com/fish2000/CLU/tree/master/clu/config/keymapview.py
499
507
  [clu.config.ns]: https://github.com/fish2000/CLU/tree/master/clu/config/ns.py
500
508
  [clu.config.proxy]: https://github.com/fish2000/CLU/tree/master/clu/config/proxy.py
509
+ [clu.config.keymaputils]: https://github.com/fish2000/CLU/tree/master/clu/config/keymaputils.py
501
510
 
502
511
  [clu.constants]: https://github.com/fish2000/CLU/tree/master/clu/constants
503
512
  [clu.constants.consts]: https://github.com/fish2000/CLU/tree/master/clu/constants/consts.py
@@ -558,6 +567,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
558
567
  [clu.repr]: https://github.com/fish2000/CLU/tree/master/clu/repr.py
559
568
  [clu.sanitizer]: https://github.com/fish2000/CLU/tree/master/clu/sanitizer.py
560
569
  [clu.stdio]: https://github.com/fish2000/CLU/tree/master/clu/stdio.py
570
+ [clu.trie]: https://github.com/fish2000/CLU/tree/master/clu/trie.py
561
571
  [clu.typology]: https://github.com/fish2000/CLU/tree/master/clu/typology.py
562
572
 
563
573
  [instakit]: https://github.com/fish2000/instakit
@@ -82,7 +82,8 @@ So do have a look around. Here’s an abridged breakdown of some things within:
82
82
 
83
83
  … and there are plenty of tools for rolling your own `KeyMap`s in [`clu.config`][clu.config]: the
84
84
  [`proxy`][clu.config.proxy] subpackage has a `KeyMap` proxy class, [`ns`][clu.config.ns] has utility functions
85
- for manipulating namespace strings, [`keymapview`][clu.config.keymapview] has a class tower for
85
+ for manipulating namespace strings, [`keymaputils`][clu.config.keymaputils] has more general utility functions (right now
86
+ the `freeze`/`thaw` functions live there), [`keymapview`][clu.config.keymapview] has a class tower for
86
87
  [`KeyMap`][clu.config.keymap] key/value/item views, and [`abc`][clu.config.abc] has, as you’d expect, all
87
88
  the abstract base classes upon which our [`KeyMap`s][clu.config.keymap] are built, for your perusal and
88
89
  eventual enjoyment.
@@ -182,9 +183,9 @@ So do have a look around. Here’s an abridged breakdown of some things within:
182
183
  [`types.ModuleType`][types.ModuleType] is to be found in `typespace.types.Module`, [`types.FunctionType`][types.FunctionType]
183
184
  is `typespace.types.Function`, et cetera, ad nauseum, so you can just do `from clu.typespace import types`
184
185
  to lose the redundant “Type” naming suffix – which I don’t know about you but that annoys me, I mean we all know
185
- that these things are types because they are in the fucking [`types`][types] module and don’t need those overly verbose extra four characters
186
- there at the end. ALSO, there are additional useful types, from Python’s standard library and common packages,
187
- in the [`types` namespace][clu.typespace.namespace]. YOU’RE WELCOME!!
186
+ that these things are types because they are in the fucking [`types`][types] module and don’t need those overly
187
+ verbose extra four characters there at the end. ALSO, there are additional useful types, from Python’s standard
188
+ library and common packages, in the [`types` namespace][clu.typespace.namespace]. YOU’RE WELCOME!!
188
189
 
189
190
  * [`enums`][clu.enums]: Furnishes `alias(…)` – which, spoiler alert, let you create aliases within your enums!
190
191
  Oh yes. Like so:
@@ -364,6 +365,13 @@ So do have a look around. Here’s an abridged breakdown of some things within:
364
365
  * [`sanitizer`][clu.sanitizer]: functions for cleaning up unicode. Right now there is just a list-based `sanitize(…)`
365
366
  function that tones down anything with high-value code points to the point where it can be safely `ascii`-ified.
366
367
 
368
+ * [`trie`][clu.trie]: A relative newcomer, [`clu.trie`][clu.trie] is a toolkit for building trie-search type custom
369
+ systems for parsing specific things, i.e. error strings, program output… [`clu.config.keymap`][KeyMap keys] maybe,
370
+ who knows. It’s all shiny and new (meaning: the current contents will fail to blow your mind); if tries and/or other
371
+ similar tree-search dark arts are, like, your thing: do hit me up with suggestions or samples, or PULL REQUESTS!!
372
+ How do I love pull requests. I’ll toast your name for life, if you were to send me one good PR. On this or anything
373
+ else (you’re heartily invited to nitpick my abundantly horrid spelling errors too if you are into that). Yes!
374
+
367
375
  * [`typology`][clu.typology]: This is like [`clu.predicates`][clu.predicates] but with more predicates, many of which are
368
376
  based on typelists. The module is full of typelists and it uses them extensively in its predicates, via `isinstance(…)`,
369
377
  `issubclass(…)` and a custom version of same called `subclasscheck(…)` which tries very hard to work with
@@ -375,7 +383,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
375
383
  primitives amongst other things. The (skeletal) [`git_version`][clu.version.git_version] subpackage has a
376
384
  couple of [Git-related][git-link] functions, but what you really want is in [`read_version`][clu.version.read_version]
377
385
  – therein you’ll find a `read_version_file(…)` function that uses the `ast` module to read one of those
378
- `__version__.py` files I know you have lying around. Yes![<sup>†</sup>](#dagger)
386
+ `__version__.py` files I know you have lying around. Yes[<sup>†</sup>](#dagger)!
379
387
 
380
388
  * [The `pytest` testsuite][clu-testsuite]: CLU has a full set of [`pytest`][pytest-link]-compatible unit tests.
381
389
  In addition to copious module-specific [CLU inline tests][clu.testing], you can run this test suite using
@@ -401,7 +409,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
401
409
 
402
410
  <!--- LINKS! LINKS! LINKS! -->
403
411
  [pypi-link]: https://pypi.org/project/python-clu/
404
- [download-link]: https://files.pythonhosted.org/packages/3e/af/4b0dfabe816cee7802cf6981f7f79770c4f05f8df4ac64fc6984789baaaa/python_clu-0.12.3.tar.gz
412
+ [download-link]: https://github.com/fish2000/CLU/archive/refs/heads/master.zip
405
413
  [homage-replutilities-link]: https://github.com/fish2000/homage/blob/master/.script-bin/replutilities.py
406
414
  [clu-tron-link]: https://tron.fandom.com/wiki/Clu
407
415
 
@@ -428,6 +436,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
428
436
  [clu.config.keymapview]: https://github.com/fish2000/CLU/tree/master/clu/config/keymapview.py
429
437
  [clu.config.ns]: https://github.com/fish2000/CLU/tree/master/clu/config/ns.py
430
438
  [clu.config.proxy]: https://github.com/fish2000/CLU/tree/master/clu/config/proxy.py
439
+ [clu.config.keymaputils]: https://github.com/fish2000/CLU/tree/master/clu/config/keymaputils.py
431
440
 
432
441
  [clu.constants]: https://github.com/fish2000/CLU/tree/master/clu/constants
433
442
  [clu.constants.consts]: https://github.com/fish2000/CLU/tree/master/clu/constants/consts.py
@@ -488,6 +497,7 @@ So do have a look around. Here’s an abridged breakdown of some things within:
488
497
  [clu.repr]: https://github.com/fish2000/CLU/tree/master/clu/repr.py
489
498
  [clu.sanitizer]: https://github.com/fish2000/CLU/tree/master/clu/sanitizer.py
490
499
  [clu.stdio]: https://github.com/fish2000/CLU/tree/master/clu/stdio.py
500
+ [clu.trie]: https://github.com/fish2000/CLU/tree/master/clu/trie.py
491
501
  [clu.typology]: https://github.com/fish2000/CLU/tree/master/clu/typology.py
492
502
 
493
503
  [instakit]: https://github.com/fish2000/instakit
@@ -504,4 +514,4 @@ So do have a look around. Here’s an abridged breakdown of some things within:
504
514
  [types.FunctionType]: https://docs.python.org/3/library/types.html#types.FunctionType
505
515
  [types.SimpleNamespace]: https://docs.python.org/3/library/types.html#additional-utility-classes-and-functions
506
516
  [zipfile]: https://docs.python.org/3/library/zipfile.html
507
- [dicts]: https://docs.python.org/3/tutorial/datastructures.html#dictionaries
517
+ [dicts]: https://docs.python.org/3/tutorial/datastructures.html#dictionaries
@@ -0,0 +1 @@
1
+ __version__ = '0.12.14'