python-clu 0.12.8__tar.gz → 0.12.9__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 (283) hide show
  1. {python_clu-0.12.8 → python_clu-0.12.9}/.bumpversion.toml +1 -1
  2. {python_clu-0.12.8 → python_clu-0.12.9}/CHANGELOG.md +43 -1
  3. {python_clu-0.12.8 → python_clu-0.12.9}/PKG-INFO +1 -2
  4. python_clu-0.12.9/clu/__version__.py +1 -0
  5. {python_clu-0.12.8 → python_clu-0.12.9}/clu/api/__init__.py +1 -21
  6. {python_clu-0.12.8 → python_clu-0.12.9}/clu/enums.py +14 -12
  7. {python_clu-0.12.8 → python_clu-0.12.9}/clu/naming.py +26 -10
  8. {python_clu-0.12.8 → python_clu-0.12.9}/clu/predicates.py +5 -3
  9. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/ansi.py +5 -6
  10. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/PKG-INFO +1 -2
  11. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/requires.txt +0 -1
  12. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/install.txt +0 -1
  13. {python_clu-0.12.8 → python_clu-0.12.9}/setup.py +1 -1
  14. python_clu-0.12.8/clu/__version__.py +0 -1
  15. {python_clu-0.12.8 → python_clu-0.12.9}/.coveragerc +0 -0
  16. {python_clu-0.12.8 → python_clu-0.12.9}/.editorconfig +0 -0
  17. {python_clu-0.12.8 → python_clu-0.12.9}/.gitchangelog.rc +0 -0
  18. {python_clu-0.12.8 → python_clu-0.12.9}/.gitignore +0 -0
  19. {python_clu-0.12.8 → python_clu-0.12.9}/.landscape.yml +0 -0
  20. {python_clu-0.12.8 → python_clu-0.12.9}/.travis.yml +0 -0
  21. {python_clu-0.12.8 → python_clu-0.12.9}/ABOUT.md +0 -0
  22. {python_clu-0.12.8 → python_clu-0.12.9}/CLASSIFIERS.txt +0 -0
  23. {python_clu-0.12.8 → python_clu-0.12.9}/CLU_Treatment.md +0 -0
  24. {python_clu-0.12.8 → python_clu-0.12.9}/CODE_OF_CONDUCT.md +0 -0
  25. {python_clu-0.12.8 → python_clu-0.12.9}/LICENSE.txt +0 -0
  26. {python_clu-0.12.8 → python_clu-0.12.9}/MANIFEST.in +0 -0
  27. {python_clu-0.12.8 → python_clu-0.12.9}/Makefile +0 -0
  28. {python_clu-0.12.8 → python_clu-0.12.9}/README.md +0 -0
  29. {python_clu-0.12.8 → python_clu-0.12.9}/appveyor.yml +0 -0
  30. {python_clu-0.12.8 → python_clu-0.12.9}/clu/__init__.py +0 -0
  31. {python_clu-0.12.8 → python_clu-0.12.9}/clu/__main__.py +0 -0
  32. {python_clu-0.12.8 → python_clu-0.12.9}/clu/abstract.py +0 -0
  33. {python_clu-0.12.8 → python_clu-0.12.9}/clu/all.py +0 -0
  34. {python_clu-0.12.8 → python_clu-0.12.9}/clu/api/__main__.py +0 -0
  35. {python_clu-0.12.8 → python_clu-0.12.9}/clu/application.py +0 -0
  36. {python_clu-0.12.8 → python_clu-0.12.9}/clu/compilation/__init__.py +0 -0
  37. {python_clu-0.12.8 → python_clu-0.12.9}/clu/compilation/compiledb.py +0 -0
  38. {python_clu-0.12.8 → python_clu-0.12.9}/clu/compilation/macros.py +0 -0
  39. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/__init__.py +0 -0
  40. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/abc.py +0 -0
  41. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/codecs.py +0 -0
  42. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/env.py +0 -0
  43. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/filebase.py +0 -0
  44. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/formats/__init__.py +0 -0
  45. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/formats/jsonfile.py +0 -0
  46. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/formats/picklefile.py +0 -0
  47. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/formats/tomlfile.py +0 -0
  48. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/formats/yamlfile.py +0 -0
  49. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/keymap.py +0 -0
  50. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/keymapview.py +0 -0
  51. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/legacy/__init__.py +0 -0
  52. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/legacy/base.py +0 -0
  53. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/legacy/fieldtypes.py +0 -0
  54. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/legacy/settings.py +0 -0
  55. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/ns.py +0 -0
  56. {python_clu-0.12.8 → python_clu-0.12.9}/clu/config/proxy.py +0 -0
  57. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/__init__.py +0 -0
  58. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/__main__.py +0 -0
  59. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/consts.py +0 -0
  60. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/data.py +0 -0
  61. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/enums.py +0 -0
  62. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/exceptions.py +0 -0
  63. {python_clu-0.12.8 → python_clu-0.12.9}/clu/constants/polyfills.py +0 -0
  64. {python_clu-0.12.8 → python_clu-0.12.9}/clu/csv.py +0 -0
  65. {python_clu-0.12.8 → python_clu-0.12.9}/clu/dicts.py +0 -0
  66. {python_clu-0.12.8 → python_clu-0.12.9}/clu/dispatch.py +0 -0
  67. {python_clu-0.12.8 → python_clu-0.12.9}/clu/exporting.py +0 -0
  68. {python_clu-0.12.8 → python_clu-0.12.9}/clu/extending.py +0 -0
  69. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/__init__.py +0 -0
  70. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/abc.py +0 -0
  71. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/appdirectories.py +0 -0
  72. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/filesystem.py +0 -0
  73. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/misc.py +0 -0
  74. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/pypath.py +0 -0
  75. {python_clu-0.12.8 → python_clu-0.12.9}/clu/fs/sourcetree.py +0 -0
  76. {python_clu-0.12.8 → python_clu-0.12.9}/clu/importing/__init__.py +0 -0
  77. {python_clu-0.12.8 → python_clu-0.12.9}/clu/importing/__main__.py +0 -0
  78. {python_clu-0.12.8 → python_clu-0.12.9}/clu/importing/base.py +0 -0
  79. {python_clu-0.12.8 → python_clu-0.12.9}/clu/importing/proxy.py +0 -0
  80. {python_clu-0.12.8 → python_clu-0.12.9}/clu/keyvalue.py +0 -0
  81. {python_clu-0.12.8 → python_clu-0.12.9}/clu/mathematics.py +0 -0
  82. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/__init__.py +0 -0
  83. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/banners.py +0 -0
  84. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/cli/__init__.py +0 -0
  85. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/cli/ansidocs.py +0 -0
  86. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/cli/boilerplate.py +0 -0
  87. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/cli/boilerplate_copy.py +0 -0
  88. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/cli/print_version.py +0 -0
  89. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/columnize.py +0 -0
  90. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repl/modules.py +0 -0
  91. {python_clu-0.12.8 → python_clu-0.12.9}/clu/repr.py +0 -0
  92. {python_clu-0.12.8 → python_clu-0.12.9}/clu/sanitizer.py +0 -0
  93. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/.gitignore +0 -0
  94. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/README.md +0 -0
  95. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/__init__.py +0 -0
  96. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/ansicolors.py +0 -0
  97. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/boilerplate.py +0 -0
  98. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/dictroast.py +0 -0
  99. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/legacy/forkumask.py +0 -0
  100. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/legacy/repl-bpython.py +0 -0
  101. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/legacy/repl-ipython.py +0 -0
  102. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/legacy/repl-ptpython.py +0 -0
  103. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/legacy/repl-pyzo.py +0 -0
  104. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/legacy/xdg-runtime.py +0 -0
  105. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/prediversus.py +0 -0
  106. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/repl.py +0 -0
  107. {python_clu-0.12.8 → python_clu-0.12.9}/clu/scripts/treeline.py +0 -0
  108. {python_clu-0.12.8 → python_clu-0.12.9}/clu/shelving/__init__.py +0 -0
  109. {python_clu-0.12.8 → python_clu-0.12.9}/clu/shelving/redat.py +0 -0
  110. {python_clu-0.12.8 → python_clu-0.12.9}/clu/shelving/redis.conf +0 -0
  111. {python_clu-0.12.8 → python_clu-0.12.9}/clu/stdio.py +0 -0
  112. {python_clu-0.12.8 → python_clu-0.12.9}/clu/testing/__init__.py +0 -0
  113. {python_clu-0.12.8 → python_clu-0.12.9}/clu/testing/hook.py +0 -0
  114. {python_clu-0.12.8 → python_clu-0.12.9}/clu/testing/obsolete.py +0 -0
  115. {python_clu-0.12.8 → python_clu-0.12.9}/clu/testing/pytest.py +0 -0
  116. {python_clu-0.12.8 → python_clu-0.12.9}/clu/testing/utils.py +0 -0
  117. {python_clu-0.12.8 → python_clu-0.12.9}/clu/typespace/__init__.py +0 -0
  118. {python_clu-0.12.8 → python_clu-0.12.9}/clu/typespace/__main__.py +0 -0
  119. {python_clu-0.12.8 → python_clu-0.12.9}/clu/typespace/namespace.py +0 -0
  120. {python_clu-0.12.8 → python_clu-0.12.9}/clu/typology.py +0 -0
  121. {python_clu-0.12.8 → python_clu-0.12.9}/clu/version/__init__.py +0 -0
  122. {python_clu-0.12.8 → python_clu-0.12.9}/clu/version/__main__.py +0 -0
  123. {python_clu-0.12.8 → python_clu-0.12.9}/clu/version/git_version.py +0 -0
  124. {python_clu-0.12.8 → python_clu-0.12.9}/clu/version/read_version.py +0 -0
  125. {python_clu-0.12.8 → python_clu-0.12.9}/codecov.yml +0 -0
  126. {python_clu-0.12.8 → python_clu-0.12.9}/conftest.py +0 -0
  127. {python_clu-0.12.8 → python_clu-0.12.9}/docs/.DS_Store +0 -0
  128. {python_clu-0.12.8 → python_clu-0.12.9}/docs/Makefile +0 -0
  129. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/doctrees/api.doctree +0 -0
  130. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/doctrees/environment.pickle +0 -0
  131. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/doctrees/generated/clu.doctree +0 -0
  132. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/doctrees/index.doctree +0 -0
  133. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/.buildinfo +0 -0
  134. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_sources/api.rst.txt +0 -0
  135. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_sources/generated/clu.rst.txt +0 -0
  136. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_sources/index.rst.txt +0 -0
  137. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  138. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/alabaster.css +0 -0
  139. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/basic.css +0 -0
  140. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/badge_only.css +0 -0
  141. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  142. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  143. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  144. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  145. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  146. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  147. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  148. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  149. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  150. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  151. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  152. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  153. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  154. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  155. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  156. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  157. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  158. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/css/theme.css +0 -0
  159. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/custom.css +0 -0
  160. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/doctools.js +0 -0
  161. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/documentation_options.js +0 -0
  162. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/file.png +0 -0
  163. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/jquery-3.6.0.js +0 -0
  164. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/jquery.js +0 -0
  165. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/js/badge_only.js +0 -0
  166. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  167. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/js/html5shiv.min.js +0 -0
  168. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/js/theme.js +0 -0
  169. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/language_data.js +0 -0
  170. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/minus.png +0 -0
  171. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/plus.png +0 -0
  172. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/pygments.css +0 -0
  173. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/searchtools.js +0 -0
  174. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/underscore-1.13.1.js +0 -0
  175. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/_static/underscore.js +0 -0
  176. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/api.html +0 -0
  177. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/generated/clu.html +0 -0
  178. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/genindex.html +0 -0
  179. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/index.html +0 -0
  180. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/objects.inv +0 -0
  181. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/py-modindex.html +0 -0
  182. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/search.html +0 -0
  183. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/html/searchindex.js +0 -0
  184. {python_clu-0.12.8 → python_clu-0.12.9}/docs/build/man/clu.1 +0 -0
  185. {python_clu-0.12.8 → python_clu-0.12.9}/docs/make.bat +0 -0
  186. {python_clu-0.12.8 → python_clu-0.12.9}/docs/source/api.rst +0 -0
  187. {python_clu-0.12.8 → python_clu-0.12.9}/docs/source/conf.py +0 -0
  188. {python_clu-0.12.8 → python_clu-0.12.9}/docs/source/generated/clu.rst +0 -0
  189. {python_clu-0.12.8 → python_clu-0.12.9}/docs/source/index.rst +0 -0
  190. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/autohook.sh +0 -0
  191. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/post-push/00-coverage.sh +0 -0
  192. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/pre-push/00-noop.sh +0 -0
  193. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/pre-push/01-direnv-stdlib.sh +0 -0
  194. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/scripts/coverage.sh +0 -0
  195. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/scripts/display-issues.sh +0 -0
  196. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/scripts/git-pushex +0 -0
  197. {python_clu-0.12.8 → python_clu-0.12.9}/hooks/scripts/noop.sh +0 -0
  198. {python_clu-0.12.8 → python_clu-0.12.9}/mypy.ini +0 -0
  199. {python_clu-0.12.8 → python_clu-0.12.9}/noxfile.py +0 -0
  200. {python_clu-0.12.8 → python_clu-0.12.9}/pyproject.toml +0 -0
  201. {python_clu-0.12.8 → python_clu-0.12.9}/pytest.ini +0 -0
  202. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/SOURCES.txt +0 -0
  203. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/dependency_links.txt +0 -0
  204. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/entry_points.txt +0 -0
  205. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/top_level.txt +0 -0
  206. {python_clu-0.12.8 → python_clu-0.12.9}/python_clu.egg-info/zip-safe +0 -0
  207. {python_clu-0.12.8 → python_clu-0.12.9}/pytype.cfg +0 -0
  208. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/changelog.txt +0 -0
  209. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/dev.txt +0 -0
  210. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/docs.txt +0 -0
  211. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/nox/codecov.txt +0 -0
  212. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/nox/docs.txt +0 -0
  213. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/nox/manifest.txt +0 -0
  214. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/nox/pyproject.txt +0 -0
  215. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/nox/repl.txt +0 -0
  216. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/nox/tests.txt +0 -0
  217. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/tox.txt +0 -0
  218. {python_clu-0.12.8 → python_clu-0.12.9}/requirements/typecheck.txt +0 -0
  219. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/direnv_transformed_env.py +0 -0
  220. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/clu-module-list-example-small.jpg +0 -0
  221. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/clu-module-list-example.jpg +0 -0
  222. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/clu-module-list-example.pxd +0 -0
  223. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/clu-testing-time-totals-example-small.jpg +0 -0
  224. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/clu-testing-time-totals-example.jpg +0 -0
  225. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/clu-testing-time-totals-example.pxd +0 -0
  226. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/construx-and-capsela-small.jpg +0 -0
  227. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/construx-and-capsela.jpg +0 -0
  228. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/construx-and-capsela.pxd +0 -0
  229. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/images/toml-module-rant.jpg +0 -0
  230. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/inline-tests-ImportError-uggggh.ipynb +0 -0
  231. {python_clu-0.12.8 → python_clu-0.12.9}/scratch/nteract.ipynb +0 -0
  232. {python_clu-0.12.8 → python_clu-0.12.9}/setup.cfg +0 -0
  233. {python_clu-0.12.8 → python_clu-0.12.9}/tests/__init__.py +0 -0
  234. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/1-58.jpg +0 -0
  235. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/3471426989_aa8e83cac5_o.jpg +0 -0
  236. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/3472236406_1fbf1a567d_o.jpg +0 -0
  237. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/8600JC.jpg +0 -0
  238. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/8ba.png +0 -0
  239. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/IMG_20180505_205153567.jpg +0 -0
  240. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/cheetah-003.jpg +0 -0
  241. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/config/clu-config.toml +0 -0
  242. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/config/yodogg.toml +0 -0
  243. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/shutterstock_90194617.jpg +0 -0
  244. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/yodata/09163d51421853.5608b3c2a1be0.jpg +0 -0
  245. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/yodata/5d0227342500004e12e3506d.jpg +0 -0
  246. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/yodata/BlackCat2_large-22.jpg +0 -0
  247. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/yodogg/Serval_Cat_Kitten-706.jpg +0 -0
  248. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/yodogg/Servals_Thoiry_19801.jpg +0 -0
  249. {python_clu-0.12.8 → python_clu-0.12.9}/tests/data/yodogg/video-pride-serval.jpg +0 -0
  250. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_abstract.py +0 -0
  251. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_all.py +0 -0
  252. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_boilerplate.py +0 -0
  253. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_config.py +0 -0
  254. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_config_abc.py +0 -0
  255. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_csv.py +0 -0
  256. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_dicts.py +0 -0
  257. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_dispatch.py +0 -0
  258. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_enum_aliases.py +0 -0
  259. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_exporting.py +0 -0
  260. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_extending.py +0 -0
  261. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_fs_abc.py +0 -0
  262. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_fs_appdirectories.py +0 -0
  263. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_fs_filesystem.py +0 -0
  264. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_fs_misc.py +0 -0
  265. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_importing.py +0 -0
  266. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_keyvalue.py +0 -0
  267. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_mathematics.py +0 -0
  268. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_naming.py +0 -0
  269. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_predicates.py +0 -0
  270. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_repl_columnize.py +0 -0
  271. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_repl_modules.py +0 -0
  272. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_repr.py +0 -0
  273. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_scripts_repl.py +0 -0
  274. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_typespace_namespace.py +0 -0
  275. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_typology.py +0 -0
  276. {python_clu-0.12.8 → python_clu-0.12.9}/tests/test_version.py +0 -0
  277. {python_clu-0.12.8 → python_clu-0.12.9}/tests/yodogg/.tm_properties +0 -0
  278. {python_clu-0.12.8 → python_clu-0.12.9}/tests/yodogg/__init__.py +0 -0
  279. {python_clu-0.12.8 → python_clu-0.12.9}/tests/yodogg/yodogg/__init__.py +0 -0
  280. {python_clu-0.12.8 → python_clu-0.12.9}/tests/yodogg/yodogg/config.py +0 -0
  281. {python_clu-0.12.8 → python_clu-0.12.9}/tests/yodogg/yodogg/exporting.py +0 -0
  282. {python_clu-0.12.8 → python_clu-0.12.9}/tests/yodogg/yodogg/iheard.py +0 -0
  283. {python_clu-0.12.8 → python_clu-0.12.9}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
 
2
2
  [tool.bumpversion]
3
- current_version = "0.12.8"
3
+ current_version = "0.12.9"
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,52 @@
1
1
  # Changelog
2
2
 
3
3
 
4
- ## 0.12.7:pre5+gf7f3ce2 [SNAPSHOT]
4
+ ## 0.12.8:pre8+g4f192b8 [SNAPSHOT]
5
+
6
+ ### Add
7
+
8
+ * Added a `clu.predicates.pyqualname(…)` function. [Alexander Böhn]
9
+
10
+ … which of course does exactly what you think it does, in that it
11
+ privliges the “__qualname__” with what it returns for whatever
12
+ argument thing it is passed. Have fun you guys
5
13
 
6
14
  ### Other
7
15
 
16
+ * Removed (fortunately vestigial) Click package dependency. [Alexander Böhn]
17
+
18
+ * Expanded “getdoc” codepath in `clu.repl.ansi.signature(…)` [Alexander Böhn]
19
+
20
+ * Using new `clu.predicates.pyqualname(…)` in `clu.naming.qualified_name(…)` [Alexander Böhn]
21
+
22
+ … this closes Issue #14! Q.v. https://github.com/fish2000/CLU/issues/14
23
+ … An upcoming release will demonstrate this through the “clu-ansidocs”
24
+ command
25
+
26
+ * Special-cased `filter(…)` call should be fastest. [Alexander Böhn]
27
+
28
+ … tests do indicate as such, it appears, actually, now that you mention
29
+
30
+ * More updates, cleanup, and addenda in `clu.enums` [Alexander Böhn]
31
+
32
+ * The `clu.enums.alias(…)` class is now itself `clu.abstract.Slotted` [Alexander Böhn]
33
+
34
+ … as in, that is now its metaclass. This makes probably such zero
35
+ difference in anything in the universe it shames me to have even
36
+ brought this much attention to it here and now, and I really do
37
+ apologize, I do, yes.
38
+
39
+ * Refactored `clu.naming.isnative(…)` around an edge case. [Alexander Böhn]
40
+
41
+
42
+ ## v0.12.8 (2025-05-24)
43
+
44
+ ### Other
45
+
46
+ * Bumped version: 0.12.7 → 0.12.8. [Alexander Böhn]
47
+
48
+ * [make] New changelog added. [Alexander Böhn]
49
+
8
50
  * Fixes in `clu.naming.{qualified_import,main_module_mame}(…)` [Alexander Böhn]
9
51
 
10
52
  … “main_module_name(…)” was failing when called within bpython; now,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-clu
3
- Version: 0.12.8
3
+ Version: 0.12.9
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
@@ -36,7 +36,6 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
36
36
  Description-Content-Type: text/markdown
37
37
  License-File: LICENSE.txt
38
38
  Requires-Dist: build>=1.2.2
39
- Requires-Dist: Click>=7.0
40
39
  Requires-Dist: colorama>=0.4.0
41
40
  Requires-Dist: dataclasses>=0.6; python_version < "3.7"
42
41
  Requires-Dist: dbx-stopwatch>=1.6
@@ -0,0 +1 @@
1
+ __version__ = '0.12.9'
@@ -2,7 +2,6 @@
2
2
  from __future__ import print_function
3
3
 
4
4
  import abc
5
- import click
6
5
  import sys
7
6
 
8
7
  abstract = abc.abstractmethod
@@ -39,19 +38,6 @@ class CommandBase(ModuleBase):
39
38
  class Command(CommandBase[Module]):
40
39
  commandstr = "command" # …a reserved word?
41
40
 
42
- class CLUI(click.MultiCommand):
43
-
44
- def iter_commands(self, context):
45
- modules = modules_for_appname_and_appspace(consts.APPNAME, API_APPSPACE)
46
- yield from (module.commandname for module in modules)
47
-
48
- def list_commands(self, context):
49
- return list(self.iter_commands(context))
50
-
51
- def get_command(self, context, key):
52
- dotpath = dotpath_join(consts.APPNAME, API_APPSPACE, key)
53
- return dotpath
54
-
55
41
  # Assign the modules’ `__all__` and `__dir__` using the exporter:
56
42
  __all__, __dir__ = exporter.all_and_dir()
57
43
 
@@ -60,17 +46,11 @@ def test():
60
46
  from clu.testing.utils import inline
61
47
 
62
48
  @inline
63
- def test_one():
49
+ def test_command_imports():
64
50
  """ Command import test """
65
51
  from clu.commands import Command as command
66
52
  assert command
67
53
 
68
- @inline
69
- def test_two():
70
- """ Sanity-check CLUI """
71
- clui = CLUI()
72
- assert clui
73
-
74
54
  return inline.test(100)
75
55
 
76
56
  if __name__ == '__main__':
@@ -1,6 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  from __future__ import print_function
3
3
 
4
+ import clu.abstract
5
+
4
6
  from clu.constants.polyfills import Enum, EnumMeta # type: ignore
5
7
  from clu.exporting import Exporter
6
8
 
@@ -9,10 +11,10 @@ export = exporter.decorator()
9
11
 
10
12
  # Dunder and sunder name constants for the alias dict:
11
13
  DUNDER = '__aliases__'
12
- SUNDER = '_aliases_'
14
+ MIFFLIN = SUNDER = '_aliases_'
13
15
 
14
16
  @export
15
- class alias(object):
17
+ class alias(clu.abstract.BaseDescriptor, metaclass=clu.abstract.Slotted):
16
18
 
17
19
  __slots__ = ('name', 'aliased')
18
20
 
@@ -65,7 +67,7 @@ class alias(object):
65
67
  return self.member_for_value(cls, self.aliased)
66
68
 
67
69
  def __set_name__(self, cls, name):
68
- """ Register the alias within the __aliases__ dict in
70
+ """ Register the alias within the `__aliases__` dict in
69
71
  the class (if it has one).
70
72
 
71
73
  N.B. This only gets called on Python 3.6+
@@ -102,26 +104,26 @@ class alias(object):
102
104
  class AliasingEnumMeta(EnumMeta):
103
105
 
104
106
  def __new__(metacls, name, bases, attributes, **kwargs):
105
- """ Ensure __aliases__ is a dictionary attribute on the new class.
107
+ """ Ensure `__aliases__` is a dictionary attribute on the new class.
106
108
 
107
109
  It is not strictly necessary to make this class an ancestor to
108
110
  your enums in order to use the `alias(…)` descriptor function,
109
111
  as defined above – if you do, the enums you define with it will
110
- conveniently furnish the __aliases__ dictionary, which is like
111
- the normal enum __members__ directory only with aliases. Yes.
112
+ conveniently furnish the `__aliases__` dictionary, which is like
113
+ the normal enum `__members__` directory only with aliases. Yes.
112
114
  """
113
115
 
114
116
  if '__aliases__' not in attributes:
115
117
  attributes['__aliases__'] = {}
116
118
 
117
- return super(AliasingEnumMeta, metacls).__new__(metacls, name,
118
- bases,
119
- attributes,
120
- **kwargs)
119
+ return super().__new__(metacls, name,
120
+ bases,
121
+ attributes,
122
+ **kwargs)
121
123
 
122
124
  @export
123
125
  class AliasingEnum(Enum, metaclass=AliasingEnumMeta):
124
- """ An Enum subclass intermediate, suitable for subclassing
126
+ """ An `Enum` subclass intermediate, suitable for subclassing
125
127
  itself, that uses `AliasingEnumMeta` as its metaclass.
126
128
 
127
129
  …Thus, any member aliases that one makes in concrete
@@ -132,4 +134,4 @@ class AliasingEnum(Enum, metaclass=AliasingEnumMeta):
132
134
  pass
133
135
 
134
136
  # Assign the modules’ `__all__` and `__dir__` using the exporter:
135
- __all__, __dir__ = exporter.all_and_dir()
137
+ __all__, __dir__ = exporter.all_and_dir('DUNDER', 'MIFFLIN', 'SUNDER')
@@ -177,12 +177,26 @@ def isnative(thing):
177
177
  """ isnative(thing) → boolean predicate, True if `thing`
178
178
  comes from a native-compiled (“extension”) module.
179
179
  """
180
- module = moduleof(thing)
181
- if module == 'builtins':
180
+ # Grab the name of the module of the thing:
181
+ module_name = moduleof(thing)
182
+
183
+ # Not native:
184
+ if module_name == 'builtins':
182
185
  return False
183
- return isnativemodule(
184
- importlib.import_module(
185
- module))
186
+
187
+ try:
188
+ # 99.99999999% of the time this should work
189
+ module = importlib.import_module(module_name)
190
+ except ModuleNotFoundError as error:
191
+ # This error indicates a native module, strangely:
192
+ if """named 'bin'""" in str(error):
193
+ return True
194
+ else:
195
+ # Delegate deciding about the module:
196
+ return isnativemodule(module)
197
+
198
+ # We couldn’t figure this one out – so no false positives:
199
+ return False
186
200
 
187
201
  @export
188
202
  def isinspectable(thing):
@@ -235,7 +249,7 @@ def dotpath_split(dotpath):
235
249
 
236
250
  @export
237
251
  def qualified_import(qualified):
238
- """ Import a qualified thing-name.
252
+ """ Import a thing based on its full thing-name.
239
253
  e.g. 'instakit.processors.halftone.FloydSteinberg'
240
254
  """
241
255
  if QUALIFIER not in qualified:
@@ -253,16 +267,18 @@ def qualified_name_tuple(thing):
253
267
  """ Get the thing-name and module/package name for a class or module.
254
268
  e.g. ('FloydSteinberg', 'instakit.processors.halftone')
255
269
  """
256
- return nameof(thing), moduleof(thing)
270
+ from clu.predicates import pyqualname
271
+ return pyqualname(thing) or nameof(thing), \
272
+ moduleof(thing)
257
273
 
258
274
  @export
259
275
  def qualified_name(thing):
260
- """ Get a qualified thing-name for a thing.
276
+ """ Get a full thing-name for a thing.
261
277
  e.g. 'instakit.processors.halftone.FloydSteinberg'
262
278
  """
263
279
  thing_name, module_name = qualified_name_tuple(thing)
264
- qualname = dotpath_join(module_name, thing_name)
265
- return qualname
280
+ fullname = dotpath_join(module_name, thing_name)
281
+ return fullname
266
282
 
267
283
  @export
268
284
  def dotpath_to_prefix(dotpath, sep='-', end='-'):
@@ -292,6 +292,7 @@ uncallable = negate(callable) # type: ignore
292
292
  hoist = lambda thing: uncallable(thing) and wrap_value(thing) or thing
293
293
 
294
294
  pyname = lambda thing: pyattr(thing, 'name', 'qualname')
295
+ pyqualname = lambda thing: pyattr(thing, 'qualname', 'name')
295
296
  pymodule = lambda thing: pyattr(thing, 'module', 'package')
296
297
 
297
298
  the_expandables = (tuple, list, set, frozenset,
@@ -435,7 +436,7 @@ def tuplize(*items):
435
436
  def uniquify(*items):
436
437
  """ uniquify(*items) → Return a generator yielding a unique set of all non-`None` arguments """
437
438
  seen = set() # type: set
438
- for item in filter(isnotnone, items):
439
+ for item in filter(None, items):
439
440
  if item not in seen:
440
441
  seen.add(item)
441
442
  yield item
@@ -583,8 +584,9 @@ export(true_function, name='true_function', doc="true_function() → A funct
583
584
  export(false_function, name='false_function', doc="false_function() → A function that always returns False")
584
585
  export(uncallable, name='uncallable', doc="uncallable(thing) → boolean predicate, shortcut for `not callable(thing)`")
585
586
  export(hoist, name='hoist', doc="hoist(thing) → if “thing” isn’t already callable, turn it into a lambda that returns it as a value (using “wrap_value(…)”).")
586
- export(pyname, name='pyname', doc="pyname(thing) → Return either `__qualname__` or `__name__` from a given `thing`")
587
- export(pymodule, name='pymodule', doc="pymodule(thing) → Return either `__module__` or `__package__` from a given `thing`")
587
+ export(pyname, name='pyname', doc="pyname(thing) → Return either `__qualname__` or `__name__` (in that order) from a given `thing`")
588
+ export(pyqualname, name='pyqualname', doc="pyqualname(thing) → Return either `__name__` or `__qualname__` (in that order) from a given `thing`")
589
+ export(pymodule, name='pymodule', doc="pymodule(thing) → Return either `__module__` or `__package__` (in that order) from a given `thing`")
588
590
 
589
591
  export(isexpandable, name='isexpandable', doc="isexpandable(thing) → boolean predicate, True if `thing` can be `*expanded`")
590
592
  export(isnormative, name='isnormative', doc="isnormative(thing) → boolean predicate, True if `thing` is a string-like or bytes-like iterable")
@@ -493,12 +493,11 @@ def signature(thing):
493
493
  """
494
494
  try:
495
495
  return nameof(thing) + str(inspect.signature(thing))
496
- except ValueError as exc:
497
- if 'no signature found' in str(exc):
498
- doc = inspect.getdoc(thing)
499
- if doc:
500
- return arrow_re.sub(arrow_sb,
501
- doc.splitlines()[0].strip())
496
+ except (TypeError, ValueError):
497
+ doc = inspect.getdoc(thing)
498
+ if doc:
499
+ return arrow_re.sub(arrow_sb,
500
+ doc.splitlines()[0].strip())
502
501
  return None
503
502
 
504
503
  @export
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-clu
3
- Version: 0.12.8
3
+ Version: 0.12.9
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
@@ -36,7 +36,6 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
36
36
  Description-Content-Type: text/markdown
37
37
  License-File: LICENSE.txt
38
38
  Requires-Dist: build>=1.2.2
39
- Requires-Dist: Click>=7.0
40
39
  Requires-Dist: colorama>=0.4.0
41
40
  Requires-Dist: dataclasses>=0.6; python_version < "3.7"
42
41
  Requires-Dist: dbx-stopwatch>=1.6
@@ -1,5 +1,4 @@
1
1
  build>=1.2.2
2
- Click>=7.0
3
2
  colorama>=0.4.0
4
3
  dbx-stopwatch>=1.6
5
4
  humanize>=1.0.0
@@ -1,5 +1,4 @@
1
1
  build>=1.2.2
2
- Click>=7.0
3
2
  colorama>=0.4.0
4
3
  dataclasses>=0.6; python_version < '3.7'
5
4
  dbx-stopwatch>=1.6
@@ -88,7 +88,7 @@ try:
88
88
  '__version__.py')).read(),
89
89
  '__version__.py', 'exec'))
90
90
  except:
91
- __version__ = '0.12.8'
91
+ __version__ = '0.12.9'
92
92
 
93
93
  # PROJECT DESCRIPTION
94
94
  LONG_DESCRIPTION = project_content('ABOUT.md')
@@ -1 +0,0 @@
1
- __version__ = '0.12.8'
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