omdev 0.0.0.dev167__tar.gz → 0.0.0.dev168__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 (178) hide show
  1. {omdev-0.0.0.dev167/omdev.egg-info → omdev-0.0.0.dev168}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/interp.py +24 -0
  3. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/pyproject.py +24 -0
  4. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168/omdev.egg-info}/PKG-INFO +2 -2
  5. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev.egg-info/requires.txt +1 -1
  6. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/pyproject.toml +2 -2
  7. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/LICENSE +0 -0
  8. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/MANIFEST.in +0 -0
  9. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/README.rst +0 -0
  10. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/.manifests.json +0 -0
  11. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/__about__.py +0 -0
  12. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/__init__.py +0 -0
  13. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/__init__.py +0 -0
  14. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/__main__.py +0 -0
  15. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/gen.py +0 -0
  16. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/imports.py +0 -0
  17. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/main.py +0 -0
  18. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/manifests.py +0 -0
  19. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/resources.py +0 -0
  20. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/srcfiles.py +0 -0
  21. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/strip.py +0 -0
  22. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/types.py +0 -0
  23. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/amalg/typing.py +0 -0
  24. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/antlr/__init__.py +0 -0
  25. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/antlr/consts.py +0 -0
  26. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/antlr/gen.py +0 -0
  27. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/bracepy.py +0 -0
  28. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/__init__.py +0 -0
  29. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/__init__.py +0 -0
  30. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/cache.py +0 -0
  31. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/contexts.py +0 -0
  32. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/currents.py +0 -0
  33. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/fns.py +0 -0
  34. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/resolvers.py +0 -0
  35. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/storage.py +0 -0
  36. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/compute/types.py +0 -0
  37. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/__init__.py +0 -0
  38. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/actions.py +0 -0
  39. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/cache.py +0 -0
  40. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/consts.py +0 -0
  41. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/defaults.py +0 -0
  42. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/manifests.py +0 -0
  43. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cache/data/specs.py +0 -0
  44. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/__init__.py +0 -0
  45. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_boilerplate.cc +0 -0
  46. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/LICENSE +0 -0
  47. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/__init__.py +0 -0
  48. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/build_ext.py +0 -0
  49. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  50. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  51. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/compilers/options.py +0 -0
  52. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  53. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/dir_util.py +0 -0
  54. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/errors.py +0 -0
  55. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/extension.py +0 -0
  56. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/file_util.py +0 -0
  57. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/modified.py +0 -0
  58. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/spawn.py +0 -0
  59. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/sysconfig.py +0 -0
  60. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/util.py +0 -0
  61. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/_distutils/version.py +0 -0
  62. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/build.py +0 -0
  63. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/cmake.py +0 -0
  64. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/importhook.py +0 -0
  65. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/magic.py +0 -0
  66. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cexts/scan.py +0 -0
  67. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/classdot.py +0 -0
  68. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/__init__.py +0 -0
  69. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/__main__.py +0 -0
  70. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/_pathhack.py +0 -0
  71. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/clicli.py +0 -0
  72. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/install.py +0 -0
  73. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/main.py +0 -0
  74. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/managers.py +0 -0
  75. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cli/types.py +0 -0
  76. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/clipboard/__init__.py +0 -0
  77. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/clipboard/clipboard.py +0 -0
  78. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/clipboard/darwin_cf.py +0 -0
  79. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/clipboard/linux_x11.py +0 -0
  80. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/cmake.py +0 -0
  81. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/findimports.py +0 -0
  82. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/git/__init__.py +0 -0
  83. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/git/revisions.py +0 -0
  84. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/git/status.py +0 -0
  85. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/git/subtrees.py +0 -0
  86. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/imgur.py +0 -0
  87. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/__init__.py +0 -0
  88. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/__main__.py +0 -0
  89. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/cli.py +0 -0
  90. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/inspect.py +0 -0
  91. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/providers.py +0 -0
  92. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/pyenv.py +0 -0
  93. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/resolvers.py +0 -0
  94. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/standalone.py +0 -0
  95. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/system.py +0 -0
  96. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/interp/types.py +0 -0
  97. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/magic/__init__.py +0 -0
  98. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/magic/find.py +0 -0
  99. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/magic/magic.py +0 -0
  100. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/magic/prepare.py +0 -0
  101. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/magic/styles.py +0 -0
  102. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/manifests/__init__.py +0 -0
  103. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/manifests/__main__.py +0 -0
  104. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/manifests/build.py +0 -0
  105. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/manifests/main.py +0 -0
  106. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/mypy/__init__.py +0 -0
  107. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/mypy/debug.py +0 -0
  108. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/packaging/__init__.py +0 -0
  109. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/packaging/marshal.py +0 -0
  110. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/packaging/names.py +0 -0
  111. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/packaging/requires.py +0 -0
  112. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/packaging/specifiers.py +0 -0
  113. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/packaging/versions.py +0 -0
  114. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pip.py +0 -0
  115. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/__init__.py +0 -0
  116. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/__main__.py +0 -0
  117. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/base.py +0 -0
  118. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/git.py +0 -0
  119. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/lite.py +0 -0
  120. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/main.py +0 -0
  121. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/manifests.py +0 -0
  122. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/precheck/scripts.py +0 -0
  123. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/ptk/__init__.py +0 -0
  124. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/ptk/apps/__init__.py +0 -0
  125. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/ptk/apps/ncdu.py +0 -0
  126. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pycharm/__init__.py +0 -0
  127. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pycharm/__main__.py +0 -0
  128. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pycharm/cli.py +0 -0
  129. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/__init__.py +0 -0
  130. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/__main__.py +0 -0
  131. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/cexts.py +0 -0
  132. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/cli.py +0 -0
  133. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/configs.py +0 -0
  134. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/pkg.py +0 -0
  135. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/reqs.py +0 -0
  136. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/pyproject/venvs.py +0 -0
  137. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/revisions.py +0 -0
  138. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/__init__.py +0 -0
  139. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/bumpversion.py +0 -0
  140. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/execrss.py +0 -0
  141. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/exectime.py +0 -0
  142. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/importtrace.py +0 -0
  143. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/slowcat.py +0 -0
  144. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/scripts/tmpexec.py +0 -0
  145. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/secrets.py +0 -0
  146. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tokens.py +0 -0
  147. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/toml/__init__.py +0 -0
  148. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/toml/parser.py +0 -0
  149. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/toml/writer.py +0 -0
  150. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/__init__.py +0 -0
  151. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/cloc.py +0 -0
  152. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/doc.py +0 -0
  153. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/docker.py +0 -0
  154. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/git.py +0 -0
  155. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/importscan.py +0 -0
  156. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/__init__.py +0 -0
  157. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/__main__.py +0 -0
  158. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/cli.py +0 -0
  159. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/formats.py +0 -0
  160. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/io.py +0 -0
  161. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/parsing.py +0 -0
  162. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/processing.py +0 -0
  163. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/json/rendering.py +0 -0
  164. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/mkrelimp.py +0 -0
  165. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/notebook.py +0 -0
  166. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/pawk/__init__.py +0 -0
  167. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/pawk/__main__.py +0 -0
  168. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/pawk/pawk.py +0 -0
  169. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/pip.py +0 -0
  170. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/prof.py +0 -0
  171. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/qr.py +0 -0
  172. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/tools/sqlrepl.py +0 -0
  173. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev/wheelfile.py +0 -0
  174. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev.egg-info/SOURCES.txt +0 -0
  175. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev.egg-info/dependency_links.txt +0 -0
  176. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev.egg-info/entry_points.txt +0 -0
  177. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/omdev.egg-info/top_level.txt +0 -0
  178. {omdev-0.0.0.dev167 → omdev-0.0.0.dev168}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omdev
3
- Version: 0.0.0.dev167
3
+ Version: 0.0.0.dev168
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev167
15
+ Requires-Dist: omlish==0.0.0.dev168
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=24.10; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -560,6 +560,8 @@ def async_cached_nullary(fn): # ta.Callable[..., T]) -> ta.Callable[..., T]:
560
560
  """
561
561
  TODO:
562
562
  - def maybe(v: lang.Maybe[T])
563
+ - def not_ ?
564
+ - ** class @dataclass Raise - user message should be able to be an exception type or instance or factory
563
565
  """
564
566
 
565
567
 
@@ -1132,6 +1134,28 @@ def strip_with_newline(s: str) -> str:
1132
1134
  return s.strip() + '\n'
1133
1135
 
1134
1136
 
1137
+ @ta.overload
1138
+ def split_keep_delimiter(s: str, d: str) -> str:
1139
+ ...
1140
+
1141
+
1142
+ @ta.overload
1143
+ def split_keep_delimiter(s: bytes, d: bytes) -> bytes:
1144
+ ...
1145
+
1146
+
1147
+ def split_keep_delimiter(s, d):
1148
+ ps = []
1149
+ i = 0
1150
+ while i < len(s):
1151
+ if (n := s.find(d, i)) < i:
1152
+ ps.append(s[i:])
1153
+ break
1154
+ ps.append(s[i:n + 1])
1155
+ i = n + 1
1156
+ return ps
1157
+
1158
+
1135
1159
  ##
1136
1160
 
1137
1161
 
@@ -1852,6 +1852,8 @@ def async_cached_nullary(fn): # ta.Callable[..., T]) -> ta.Callable[..., T]:
1852
1852
  """
1853
1853
  TODO:
1854
1854
  - def maybe(v: lang.Maybe[T])
1855
+ - def not_ ?
1856
+ - ** class @dataclass Raise - user message should be able to be an exception type or instance or factory
1855
1857
  """
1856
1858
 
1857
1859
 
@@ -2424,6 +2426,28 @@ def strip_with_newline(s: str) -> str:
2424
2426
  return s.strip() + '\n'
2425
2427
 
2426
2428
 
2429
+ @ta.overload
2430
+ def split_keep_delimiter(s: str, d: str) -> str:
2431
+ ...
2432
+
2433
+
2434
+ @ta.overload
2435
+ def split_keep_delimiter(s: bytes, d: bytes) -> bytes:
2436
+ ...
2437
+
2438
+
2439
+ def split_keep_delimiter(s, d):
2440
+ ps = []
2441
+ i = 0
2442
+ while i < len(s):
2443
+ if (n := s.find(d, i)) < i:
2444
+ ps.append(s[i:])
2445
+ break
2446
+ ps.append(s[i:n + 1])
2447
+ i = n + 1
2448
+ return ps
2449
+
2450
+
2427
2451
  ##
2428
2452
 
2429
2453
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omdev
3
- Version: 0.0.0.dev167
3
+ Version: 0.0.0.dev168
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev167
15
+ Requires-Dist: omlish==0.0.0.dev168
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=24.10; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev167
1
+ omlish==0.0.0.dev168
2
2
 
3
3
  [all]
4
4
  black~=24.10
@@ -12,7 +12,7 @@ authors = [
12
12
  urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = {text = 'BSD-3-Clause'}
14
14
  requires-python = '>=3.12'
15
- version = '0.0.0.dev167'
15
+ version = '0.0.0.dev168'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -22,7 +22,7 @@ classifiers = [
22
22
  ]
23
23
  description = 'omdev'
24
24
  dependencies = [
25
- 'omlish == 0.0.0.dev167',
25
+ 'omlish == 0.0.0.dev168',
26
26
  ]
27
27
 
28
28
  [project.optional-dependencies]
File without changes
File without changes
File without changes
File without changes
File without changes