meerschaum 2.2.5.dev3__tar.gz → 2.2.7__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 (256) hide show
  1. {meerschaum-2.2.5.dev3/meerschaum.egg-info → meerschaum-2.2.7}/PKG-INFO +1 -1
  2. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/__init__.py +4 -1
  3. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/__main__.py +10 -5
  4. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/arguments/_parser.py +13 -2
  5. meerschaum-2.2.7/meerschaum/_internal/docs/index.py +537 -0
  6. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/entry.py +13 -13
  7. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/shell/Shell.py +26 -22
  8. meerschaum-2.2.7/meerschaum/_internal/shell/updates.py +175 -0
  9. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/term/__init__.py +2 -2
  10. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/bootstrap.py +13 -14
  11. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/python.py +11 -8
  12. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/register.py +149 -37
  13. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/show.py +79 -71
  14. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/stop.py +11 -11
  15. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/sync.py +3 -3
  16. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/upgrade.py +28 -36
  17. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/login.py +21 -13
  18. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pages/login.py +2 -2
  19. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_login.py +5 -5
  20. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_pipes.py +20 -20
  21. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/__init__.py +8 -1
  22. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_formatting.py +1 -0
  23. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_paths.py +24 -2
  24. meerschaum-2.2.7/meerschaum/config/_shell.py +144 -0
  25. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_version.py +1 -1
  26. meerschaum-2.2.7/meerschaum/config/paths.py +29 -0
  27. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/static/__init__.py +2 -0
  28. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/Connector.py +7 -2
  29. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/__init__.py +7 -5
  30. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/APIConnector.py +7 -2
  31. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_actions.py +23 -31
  32. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_misc.py +1 -1
  33. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_request.py +13 -9
  34. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_uri.py +5 -5
  35. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/__init__.py +7 -3
  36. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_data.py +23 -15
  37. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_deduplicate.py +1 -1
  38. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_dtypes.py +5 -0
  39. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_fetch.py +18 -16
  40. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_sync.py +23 -15
  41. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/plugins/_Plugin.py +6 -6
  42. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/plugins/__init__.py +1 -1
  43. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/daemon/Daemon.py +88 -129
  44. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/daemon/FileDescriptorInterceptor.py +14 -5
  45. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/daemon/RotatingFile.py +23 -17
  46. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/daemon/__init__.py +28 -21
  47. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/dataframe.py +12 -4
  48. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/debug.py +9 -15
  49. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/formatting/__init__.py +92 -46
  50. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/formatting/_jobs.py +47 -9
  51. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/misc.py +117 -11
  52. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/packages/__init__.py +28 -16
  53. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/prompt.py +5 -0
  54. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/schedule.py +21 -15
  55. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/typing.py +1 -0
  56. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/venv/__init__.py +5 -1
  57. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/warnings.py +8 -1
  58. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/yaml.py +2 -2
  59. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7/meerschaum.egg-info}/PKG-INFO +1 -1
  60. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum.egg-info/SOURCES.txt +1 -0
  61. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/tests/test_sync.py +0 -1
  62. meerschaum-2.2.5.dev3/meerschaum/_internal/docs/index.py +0 -40
  63. meerschaum-2.2.5.dev3/meerschaum/config/_shell.py +0 -132
  64. meerschaum-2.2.5.dev3/meerschaum/config/paths.py +0 -10
  65. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/LICENSE +0 -0
  66. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/NOTICE +0 -0
  67. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/README.md +0 -0
  68. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/__init__.py +0 -0
  69. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/arguments/__init__.py +0 -0
  70. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/arguments/_parse_arguments.py +0 -0
  71. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/docs/__init__.py +0 -0
  72. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/gui/__init__.py +0 -0
  73. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/gui/app/__init__.py +0 -0
  74. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/gui/app/_windows.py +0 -0
  75. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/gui/app/actions.py +0 -0
  76. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/gui/app/pipes.py +0 -0
  77. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/shell/ShellCompleter.py +0 -0
  78. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/shell/ValidAutoSuggest.py +0 -0
  79. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/shell/__init__.py +0 -0
  80. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/shell/resources/__init__.py +0 -0
  81. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/term/TermPageHandler.py +0 -0
  82. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/_internal/term/tools.py +0 -0
  83. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/__init__.py +0 -0
  84. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/api.py +0 -0
  85. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/clear.py +0 -0
  86. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/copy.py +0 -0
  87. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/deduplicate.py +0 -0
  88. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/delete.py +0 -0
  89. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/drop.py +0 -0
  90. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/edit.py +0 -0
  91. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/install.py +0 -0
  92. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/login.py +0 -0
  93. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/os.py +0 -0
  94. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/pause.py +0 -0
  95. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/reload.py +0 -0
  96. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/setup.py +0 -0
  97. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/sh.py +0 -0
  98. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/sql.py +0 -0
  99. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/stack.py +0 -0
  100. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/start.py +0 -0
  101. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/tag.py +0 -0
  102. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/uninstall.py +0 -0
  103. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/actions/verify.py +0 -0
  104. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/__init__.py +0 -0
  105. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/_chain.py +0 -0
  106. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/_events.py +0 -0
  107. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/_oauth2.py +0 -0
  108. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/_websockets.py +0 -0
  109. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/__init__.py +0 -0
  110. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/actions.py +0 -0
  111. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/assets/__init__.py +0 -0
  112. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/assets/ansi_up.js +0 -0
  113. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/assets/banner_1920x320.png +0 -0
  114. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/assets/favicon.ico +0 -0
  115. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/assets/logo_48x48.png +0 -0
  116. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/assets/logo_500x500.png +0 -0
  117. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/__init__.py +0 -0
  118. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/custom.py +0 -0
  119. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/dashboard.py +0 -0
  120. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/jobs.py +0 -0
  121. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/plugins.py +0 -0
  122. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/callbacks/register.py +0 -0
  123. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/components.py +0 -0
  124. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/connectors.py +0 -0
  125. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/graphs.py +0 -0
  126. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/jobs.py +0 -0
  127. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/keys.py +0 -0
  128. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pages/__init__.py +0 -0
  129. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pages/dashboard.py +0 -0
  130. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pages/error.py +0 -0
  131. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pages/plugins.py +0 -0
  132. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pages/register.py +0 -0
  133. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/pipes.py +0 -0
  134. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/plugins.py +0 -0
  135. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/sync.py +0 -0
  136. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/users.py +0 -0
  137. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/websockets.py +0 -0
  138. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/dash/webterm.py +0 -0
  139. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/models/__init__.py +0 -0
  140. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/models/_interfaces.py +0 -0
  141. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/models/_locations.py +0 -0
  142. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/models/_metrics.py +0 -0
  143. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/models/_pipes.py +0 -0
  144. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/__init__.py +0 -0
  145. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/__init__.py +0 -0
  146. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/css/__init__.py +0 -0
  147. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/css/bootstrap.min.css +0 -0
  148. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/css/dash.css +0 -0
  149. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/css/dbc_dark.css +0 -0
  150. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/css/styles.css +0 -0
  151. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/css/xterm.css +0 -0
  152. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/ico/__init__.py +0 -0
  153. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/ico/logo.ico +0 -0
  154. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/js/__init__.py +0 -0
  155. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/js/action_button.js +0 -0
  156. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/js/main.js +0 -0
  157. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/js/terminado.js +0 -0
  158. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/js/xterm.js +0 -0
  159. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/static/png/__init__.py +0 -0
  160. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/templates/__init__.py +0 -0
  161. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/templates/index.html +0 -0
  162. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/templates/old_index.html +0 -0
  163. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/templates/secret.html +0 -0
  164. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/resources/templates/termpage.html +0 -0
  165. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/__init__.py +0 -0
  166. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_actions.py +0 -0
  167. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_connectors.py +0 -0
  168. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_index.py +0 -0
  169. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_misc.py +0 -0
  170. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_plugins.py +0 -0
  171. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_users.py +0 -0
  172. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_version.py +0 -0
  173. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/routes/_webterm.py +0 -0
  174. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/api/tables/__init__.py +0 -0
  175. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_dash.py +0 -0
  176. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_default.py +0 -0
  177. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_edit.py +0 -0
  178. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_environment.py +0 -0
  179. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_jobs.py +0 -0
  180. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_patch.py +0 -0
  181. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_preprocess.py +0 -0
  182. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_read_config.py +0 -0
  183. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/_sync.py +0 -0
  184. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/resources/__init__.py +0 -0
  185. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/stack/__init__.py +0 -0
  186. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/stack/grafana/__init__.py +0 -0
  187. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/stack/mosquitto/__init__.py +0 -0
  188. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/stack/mosquitto/resources/__init__.py +0 -0
  189. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/config/stack/resources/__init__.py +0 -0
  190. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/__init__.py +0 -0
  191. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_fetch.py +0 -0
  192. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_login.py +0 -0
  193. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_pipes.py +0 -0
  194. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_plugins.py +0 -0
  195. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/api/_users.py +0 -0
  196. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/parse.py +0 -0
  197. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/plugin/PluginConnector.py +0 -0
  198. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/plugin/__init__.py +0 -0
  199. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/poll.py +0 -0
  200. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/SQLConnector.py +0 -0
  201. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/__init__.py +0 -0
  202. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_cli.py +0 -0
  203. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_create_engine.py +0 -0
  204. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_fetch.py +0 -0
  205. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_instance.py +0 -0
  206. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_pipes.py +0 -0
  207. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_plugins.py +0 -0
  208. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_sql.py +0 -0
  209. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_uri.py +0 -0
  210. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/_users.py +0 -0
  211. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/tables/__init__.py +0 -0
  212. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/tables/types.py +0 -0
  213. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/connectors/sql/tools.py +0 -0
  214. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_attributes.py +0 -0
  215. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_bootstrap.py +0 -0
  216. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_clear.py +0 -0
  217. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_delete.py +0 -0
  218. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_drop.py +0 -0
  219. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_edit.py +0 -0
  220. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_register.py +0 -0
  221. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_show.py +0 -0
  222. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Pipe/_verify.py +0 -0
  223. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/Plugin/__init__.py +0 -0
  224. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/User/_User.py +0 -0
  225. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/User/__init__.py +0 -0
  226. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/core/__init__.py +0 -0
  227. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/plugins/bootstrap.py +0 -0
  228. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/__init__.py +0 -0
  229. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/_get_pipes.py +0 -0
  230. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/daemon/_names.py +0 -0
  231. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/dtypes/__init__.py +0 -0
  232. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/dtypes/sql.py +0 -0
  233. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/formatting/_pipes.py +0 -0
  234. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/formatting/_pprint.py +0 -0
  235. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/formatting/_shell.py +0 -0
  236. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/interactive.py +0 -0
  237. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/networking.py +0 -0
  238. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/packages/_packages.py +0 -0
  239. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/packages/lazy_loader.py +0 -0
  240. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/pool.py +0 -0
  241. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/process.py +0 -0
  242. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/sql.py +0 -0
  243. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/threading.py +0 -0
  244. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum/utils/venv/_Venv.py +0 -0
  245. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum.egg-info/dependency_links.txt +0 -0
  246. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum.egg-info/entry_points.txt +0 -0
  247. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum.egg-info/requires.txt +0 -0
  248. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum.egg-info/top_level.txt +0 -0
  249. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/meerschaum.egg-info/zip-safe +0 -0
  250. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/setup.cfg +0 -0
  251. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/setup.py +0 -0
  252. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/tests/test_deduplicate.py +0 -0
  253. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/tests/test_pipes_dtypes.py +0 -0
  254. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/tests/test_sql.py +0 -0
  255. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/tests/test_users.py +0 -0
  256. {meerschaum-2.2.5.dev3 → meerschaum-2.2.7}/tests/test_verify.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.2.5.dev3
3
+ Version: 2.2.7
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -23,7 +23,7 @@ from meerschaum.utils.typing import SuccessTuple
23
23
  from meerschaum.core.Pipe import Pipe
24
24
  from meerschaum.plugins import Plugin
25
25
  from meerschaum.utils.venv import Venv
26
- from meerschaum.connectors import get_connector
26
+ from meerschaum.connectors import get_connector, Connector, make_connector
27
27
  from meerschaum.utils import get_pipes
28
28
  from meerschaum.utils.formatting import pprint
29
29
  from meerschaum._internal.docs import index as __doc__
@@ -49,4 +49,7 @@ __all__ = (
49
49
  "connectors",
50
50
  "plugins",
51
51
  "utils",
52
+ "SuccessTuple",
53
+ "Connector",
54
+ "make_connector",
52
55
  )
@@ -19,9 +19,15 @@ See the License for the specific language governing permissions and
19
19
  limitations under the License.
20
20
  """
21
21
 
22
- import sys, os, copy
22
+ import sys
23
+ import os
24
+ import copy
23
25
 
24
- def main(sysargs: list = None) -> None:
26
+ from meerschaum.utils.typing import List, Optional
27
+ from meerschaum.utils.formatting import print_tuple as _print_tuple
28
+
29
+
30
+ def main(sysargs: Optional[List[str]] = None) -> None:
25
31
  """Main CLI entry point."""
26
32
  if sysargs is None:
27
33
  sysargs = copy.deepcopy(sys.argv[1:])
@@ -41,7 +47,7 @@ def main(sysargs: list = None) -> None:
41
47
 
42
48
  if ('-d' in sysargs or '--daemon' in sysargs) and ('stack' not in sysargs):
43
49
  from meerschaum.utils.daemon import daemon_entry
44
- daemon_entry(sysargs)
50
+ _print_tuple(daemon_entry(sysargs), upper_padding=1)
45
51
  return _exit(old_cwd=old_cwd)
46
52
 
47
53
  from meerschaum._internal.entry import entry, get_shell
@@ -57,8 +63,7 @@ def main(sysargs: list = None) -> None:
57
63
  return_tuple = entry(sysargs)
58
64
  rc = 0
59
65
  if isinstance(return_tuple, tuple) and '--nopretty' not in sysargs:
60
- from meerschaum.utils.formatting import print_tuple
61
- print_tuple(return_tuple, upper_padding=1)
66
+ _print_tuple(return_tuple, upper_padding=1)
62
67
  rc = 0 if (return_tuple[0] is True) else 1
63
68
 
64
69
  return _exit(rc, old_cwd=old_cwd)
@@ -61,6 +61,7 @@ def parse_datetime(dt_str: str) -> Union[datetime, int, str]:
61
61
  error(f"'{dt_str}' is not a valid datetime format.", stack=False)
62
62
  return dt
63
63
 
64
+
64
65
  def parse_help(sysargs : Union[List[str], Dict[str, Any]]) -> None:
65
66
  """Parse the `--help` flag to determine which help message to print."""
66
67
  from meerschaum._internal.arguments._parse_arguments import parse_arguments, parse_line
@@ -97,7 +98,8 @@ def parse_help(sysargs : Union[List[str], Dict[str, Any]]) -> None:
97
98
  doc = "No help available for '" + f"{args['action'][0]}" + "'."
98
99
  return print(textwrap.dedent(doc))
99
100
 
100
- def parse_version(sysargs : List[str]):
101
+
102
+ def parse_version(sysargs: List[str]):
101
103
  """Print the Meerschaum version."""
102
104
  from meerschaum.config import __version__ as version
103
105
  from meerschaum.config import __doc__ as doc
@@ -105,6 +107,15 @@ def parse_version(sysargs : List[str]):
105
107
  return print(version)
106
108
  return print(doc)
107
109
 
110
+
111
+ def parse_name(name_str: str) -> str:
112
+ """
113
+ Ensure that `--name` is not an empty string.
114
+ """
115
+ if not name_str:
116
+ return None
117
+ return name_str
118
+
108
119
  def get_arguments_triggers() -> Dict[str, Tuple[str]]:
109
120
  """ """
110
121
  triggers = {}
@@ -162,7 +173,7 @@ groups['actions'].add_argument(
162
173
  '--rm', action='store_true', help="Delete a job once it has finished executing."
163
174
  )
164
175
  groups['actions'].add_argument(
165
- '--name', '--job-name', type=str, help=(
176
+ '--name', '--job-name', type=parse_name, help=(
166
177
  "Assign a name to a job. If no name is provided, a random name will be assigned."
167
178
  ),
168
179
  )
@@ -0,0 +1,537 @@
1
+ #! /usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # vim:fenc=utf-8
4
+
5
+ """
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <style>
8
+
9
+ .container {
10
+ display: flex;
11
+ justify-content: space-between;
12
+ }
13
+ .left, .right {
14
+ width: 45%; /* Adjust width as needed */
15
+ }
16
+
17
+ </style>
18
+
19
+ <img src="https://meerschaum.io/assets/banner_1920x320.png" alt="Meerschaum banner" style="width: 100%;"/>
20
+
21
+ # Meerschaum Python API
22
+
23
+ Welcome to the Meerschaum Python API technical documentation! Here you can find information about the classes and functions provided by the `meerschaum` package. Visit [meerschaum.io](https://meerschaum.io) for general usage documentation.
24
+
25
+ ## Root Module
26
+
27
+ For your convenience, the following classes and functions may be imported from the root `meerschaum` namespace:
28
+
29
+ <div class="container" style="display: flex; justify-content: space-between">
30
+
31
+ <div class="left" style="width: 45%;">
32
+
33
+ <h3>Classes</h3>
34
+
35
+ <ul>
36
+ <li><code>meerschaum.Connector</code></li>
37
+ <li><code>meerschaum.Pipe</code></li>
38
+ <li><code>meerschaum.Plugin</code></li>
39
+ <li><code>meerschaum.SuccessTuple</code></li>
40
+ <li><code>meerschaum.Venv</code></li>
41
+ </ul>
42
+
43
+ </div>
44
+
45
+
46
+ <div class="right" style="width: 45%">
47
+
48
+ <h3>Functions</h3>
49
+
50
+ <ul>
51
+ <li><code>meerschaum.get_config()</code></li>
52
+ <li><code>meerschaum.get_connector()</code></li>
53
+ <li><code>meerschaum.get_pipes()</code></li>
54
+ <li><code>meerschaum.make_connector()</code></li>
55
+ <li><code>meerschaum.pprint()</code></li>
56
+ <li><code>meerschaum.attempt_import()</code></li>
57
+ </ul>
58
+
59
+ </div>
60
+ </div>
61
+
62
+ ### Examples
63
+
64
+ #### Build a Connector
65
+
66
+ ```python
67
+ import meerschaum as mrsm
68
+
69
+ sql_conn = mrsm.get_connector(
70
+ 'sql:temp',
71
+ flavor='sqlite',
72
+ database='/tmp/tmp.db',
73
+ )
74
+ df = sql_conn.read("SELECT 1 AS foo")
75
+ print(df)
76
+ # foo
77
+ # 0 1
78
+
79
+ sql_conn.to_sql(df, 'foo')
80
+ print(sql_conn.read('foo'))
81
+ # foo
82
+ # 0 1
83
+ ```
84
+
85
+ #### Create a Custom Connector Class
86
+
87
+ ```python
88
+ from datetime import datetime, timezone
89
+ from random import randint
90
+ import meerschaum as mrsm
91
+ from meerschaum.utils.misc import round_time
92
+
93
+ @mrsm.make_connector
94
+ class FooConnector(mrsm.Connector):
95
+ REQUIRED_ATTRIBUTES = ['username', 'password']
96
+
97
+ def fetch(
98
+ self,
99
+ begin: datetime | None = None,
100
+ end: datetime | None = None,
101
+ ):
102
+ now = begin or round_time(datetime.now(timezone.utc))
103
+ return [
104
+ {'ts': now, 'id': 1, 'vl': randint(1, 100)},
105
+ {'ts': now, 'id': 2, 'vl': randint(1, 100)},
106
+ {'ts': now, 'id': 3, 'vl': randint(1, 100)},
107
+ ]
108
+
109
+ foo_conn = mrsm.get_connector(
110
+ 'foo:bar',
111
+ username='foo',
112
+ password='bar',
113
+ )
114
+ docs = foo_conn.fetch()
115
+ ```
116
+
117
+ #### Build a Pipe
118
+
119
+ ```python
120
+ from datetime import datetime
121
+ import meerschaum as mrsm
122
+
123
+ pipe = mrsm.Pipe(
124
+ foo_conn, 'demo',
125
+ instance=sql_conn,
126
+ columns={'datetime': 'ts', 'id': 'id'},
127
+ tags=['production'],
128
+ )
129
+ pipe.sync(begin=datetime(2024, 1, 1))
130
+ df = pipe.get_data()
131
+ print(df)
132
+ # ts id vl
133
+ # 0 2024-01-01 1 97
134
+ # 1 2024-01-01 2 18
135
+ # 2 2024-01-01 3 96
136
+ ```
137
+
138
+ #### Get Registered Pipes
139
+
140
+ ```python
141
+ import meerschaum as mrsm
142
+
143
+ pipes = mrsm.get_pipes(
144
+ tags=['production'],
145
+ instance=sql_conn,
146
+ as_list=True,
147
+ )
148
+ print(pipes)
149
+ # [Pipe('foo:bar', 'demo', instance='sql:temp')]
150
+ ```
151
+
152
+ #### Access a Plugin's Module
153
+
154
+ ```python
155
+ import meerschaum as mrsm
156
+
157
+ plugin = mrsm.Plugin('noaa')
158
+ with mrsm.Venv(plugin):
159
+ noaa = plugin.module
160
+ print(noaa.get_station_info('KGMU'))
161
+ # {'name': 'Greenville Downtown Airport', 'geometry': {'type': 'Point', 'coordinates': [-82.35004, 34.84873]}}
162
+ ```
163
+
164
+ ## Submodules
165
+
166
+ <details>
167
+ <summary>
168
+ `meerschaum.actions`<br>
169
+ Access functions for actions and subactions.
170
+ </summary>
171
+
172
+ - `meerschaum.actions.actions`
173
+ - `meerschaum.actions.get_action()`
174
+ - `meerschaum.actions.get_completer()`
175
+ - `meerschaum.actions.get_main_action_name()`
176
+ - `meerschaum.actions.get_subactions()`
177
+
178
+ </details>
179
+
180
+ <details>
181
+ <summary>
182
+ `meerschaum.config`<br>
183
+ Read and write the Meerschaum configuration registry.
184
+ </summary>
185
+
186
+ - `meerschaum.config.get_config()`
187
+ - `meerschaum.config.get_plugin_config()`
188
+ - `meerschaum.config.write_config()`
189
+ - `meerschaum.config.write_plugin_config()`
190
+
191
+ </details>
192
+
193
+ <details>
194
+ <summary>
195
+ `meerschaum.connectors`<br>
196
+ Build connectors to interact with databases and fetch data.
197
+ </summary>
198
+
199
+ - `meerschaum.connectors.get_connector()`
200
+ - `meerschaum.connectors.make_connector()`
201
+ - `meerschaum.connectors.is_connected()`
202
+ - `meerschaum.connectors.poll.retry_connect()`
203
+ - `meerschaum.connectors.Connector`
204
+ - `meerschaum.connectors.SQLConnector`
205
+ - `meerschaum.connectors.APIConnector`
206
+
207
+ </details>
208
+
209
+ <details>
210
+ <summary>
211
+ `meerschaum.plugins`<br>
212
+ Access plugin modules and other API utilties.
213
+ </summary>
214
+
215
+ - `meerschaum.plugins.Plugin`
216
+ - `meerschaum.plugins.api_plugin()`
217
+ - `meerschaum.plugins.dash_plugin()`
218
+ - `meerschaum.plugins.import_plugins()`
219
+ - `meerschaum.plugins.reload_plugins()`
220
+ - `meerschaum.plugins.get_plugins()`
221
+ - `meerschaum.plugins.get_data_plugins()`
222
+ - `meerschaum.plugins.add_plugin_argument()`
223
+ - `meerschaum.plugins.pre_sync_hook()`
224
+ - `meerschaum.plugins.post_sync_hook()`
225
+
226
+ </details>
227
+
228
+ <details>
229
+ <summary><code>meerschaum.utils</code><br>
230
+ Utility functions are available in several submodules:<br>
231
+ </summary>
232
+
233
+ <ul>
234
+ <details>
235
+ <summary>
236
+ <code>meerschaum.utils.daemon</code><br>
237
+ Manage background jobs.<br>
238
+ </summary>
239
+ <p></p>
240
+ <ul>
241
+ <li><code>meerschaum.utils.daemon.daemon_entry()</code></li>
242
+ <li><code>meerschaum.utils.daemon.daemon_action()</code></li>
243
+ <li><code>meerschaum.utils.daemon.get_daemons()</code></li>
244
+ <li><code>meerschaum.utils.daemon.get_daemon_ids()</code></li>
245
+ <li><code>meerschaum.utils.daemon.get_running_daemons()</code></li>
246
+ <li><code>meerschaum.utils.daemon.get_paused_daemons()</code></li>
247
+ <li><code>meerschaum.utils.daemon.get_stopped_daemons()</code></li>
248
+ <li><code>meerschaum.utils.daemon.get_filtered_daemons()</code></li>
249
+ <li><code>meerschaum.utils.daemon.run_daemon()</code></li>
250
+ <li><code>meerschaum.utils.daemon.Daemon</code></li>
251
+ <li><code>meerschaum.utils.daemon.FileDescriptorInterceptor</code></li>
252
+ <li><code>meerschaum.utils.daemon.RotatingFile</code></li>
253
+ </ul>
254
+ </details>
255
+ </ul>
256
+
257
+ <ul>
258
+ <details>
259
+ <summary>
260
+ <code>meerschaum.utils.debug</code><br>
261
+ Debugging tools.<br>
262
+ </summary>
263
+ <p></p>
264
+ <ul>
265
+ <li><code>meerschaum.utils.debug.dprint()</code></li>
266
+ <li><code>meerschaum.utils.debug.trace()</code></li>
267
+ </ul>
268
+ </details>
269
+ </ul>
270
+
271
+ <ul>
272
+ <details>
273
+ <summary>
274
+ <code>meerschaum.utils.dataframe</code><br>
275
+ Manipulate dataframes.<br>
276
+ </summary>
277
+ <p></p>
278
+ <ul>
279
+ <li><code>meerschaum.utils.dataframe.add_missing_cols_to_df()</code></li>
280
+ <li><code>meerschaum.utils.dataframe.df_is_chunk_generator()</code></li>
281
+ <li><code>meerschaum.utils.dataframe.enforce_dtypes()</code></li>
282
+ <li><code>meerschaum.utils.dataframe.filter_unseen_df()</code></li>
283
+ <li><code>meerschaum.utils.dataframe.get_datetime_bound_from_df()</code></li>
284
+ <li><code>meerschaum.utils.dataframe.get_first_valid_dask_partition()</code></li>
285
+ <li><code>meerschaum.utils.dataframe.get_json_cols()</code></li>
286
+ <li><code>meerschaum.utils.dataframe.get_numeric_cols()</code></li>
287
+ <li><code>meerschaum.utils.dataframe.get_unhashable_cols()</code></li>
288
+ <li><code>meerschaum.utils.dataframe.parse_df_datetimes()</code></li>
289
+ <li><code>meerschaum.utils.dataframe.query_df()</code></li>
290
+ </ul>
291
+ </details>
292
+ </ul>
293
+
294
+ <ul>
295
+ <details>
296
+ <summary>
297
+ <code>meerschaum.utils.dtypes</code><br>
298
+ Work with data types.<br>
299
+ </summary>
300
+ <p></p>
301
+ <ul>
302
+ <li><code>meerschaum.utils.dtypes.are_dtypes_equal()</code></li>
303
+ <li><code>meerschaum.utils.dtypes.attempt_cast_to_numeric()</code></li>
304
+ <li><code>meerschaum.utils.dtypes.is_dtype_numeric()</code></li>
305
+ <li><code>meerschaum.utils.dtypes.none_if_null()</code></li>
306
+ <li><code>meerschaum.utils.dtypes.quantize_decimal()</code></li>
307
+ <li><code>meerschaum.utils.dtypes.to_pandas_dtype()</code></li>
308
+ <li><code>meerschaum.utils.dtypes.value_is_null()</code></li>
309
+ <li><code>meerschaum.utils.dtypes.sql.get_pd_type_from_db_type()</code></li>
310
+ <li><code>meerschaum.utils.dtypes.sql.get_db_type_from_pd_type()</code></li>
311
+ </ul>
312
+ </details>
313
+ </ul>
314
+
315
+ <ul>
316
+ <details>
317
+ <summary>
318
+ <code>meerschaum.utils.formatting</code><br>
319
+ Format output text.<br>
320
+ </summary>
321
+ <p></p>
322
+ <ul>
323
+ <li><code>meerschaum.utils.formatting.colored()</code></li>
324
+ <li><code>meerschaum.utils.formatting.extract_stats_from_message()</code></li>
325
+ <li><code>meerschaum.utils.formatting.fill_ansi()</code></li>
326
+ <li><code>meerschaum.utils.formatting.get_console()</code></li>
327
+ <li><code>meerschaum.utils.formatting.highlight_pipes()</code></li>
328
+ <li><code>meerschaum.utils.formatting.make_header()</code></li>
329
+ <li><code>meerschaum.utils.formatting.pipe_repr()</code></li>
330
+ <li><code>meerschaum.utils.formatting.pprint()</code></li>
331
+ <li><code>meerschaum.utils.formatting.pprint_pipes()</code></li>
332
+ <li><code>meerschaum.utils.formatting.print_options()</code></li>
333
+ <li><code>meerschaum.utils.formatting.print_pipes_results()</code></li>
334
+ <li><code>meerschaum.utils.formatting.print_tuple()</code></li>
335
+ <li><code>meerschaum.utils.formatting.translate_rich_to_termcolor()</code></li>
336
+ </ul>
337
+ </details>
338
+ </ul>
339
+
340
+ <ul>
341
+ <details>
342
+ <summary>
343
+ <code>meerschaum.utils.misc</code><br>
344
+ Miscellaneous utility functions.<br>
345
+ </summary>
346
+ <p></p>
347
+ <ul>
348
+ <li><code>meerschaum.utils.misc.items_str()</code></li>
349
+ <li><code>meerschaum.utils.misc.round_time()</code></li>
350
+ <li><code>meerschaum.utils.misc.is_int()</code></li>
351
+ <li><code>meerschaum.utils.misc.interval_str()</code></li>
352
+ <li><code>meerschaum.utils.misc.filter_keywords()</code></li>
353
+ <li><code>meerschaum.utils.misc.generate_password()</code></li>
354
+ <li><code>meerschaum.utils.misc.string_to_dict()</code></li>
355
+ <li><code>meerschaum.utils.misc.iterate_chunks()</code></li>
356
+ <li><code>meerschaum.utils.misc.timed_input()</code></li>
357
+ <li><code>meerschaum.utils.misc.replace_pipes_in_dict()</code></li>
358
+ <li><code>meerschaum.utils.misc.is_valid_email()</code></li>
359
+ <li><code>meerschaum.utils.misc.string_width()</code></li>
360
+ <li><code>meerschaum.utils.misc.replace_password()</code></li>
361
+ <li><code>meerschaum.utils.misc.parse_config_substitution()</code></li>
362
+ <li><code>meerschaum.utils.misc.edit_file()</code></li>
363
+ <li><code>meerschaum.utils.misc.get_in_ex_params()</code></li>
364
+ <li><code>meerschaum.utils.misc.separate_negation_values()</code></li>
365
+ <li><code>meerschaum.utils.misc.flatten_list()</code></li>
366
+ <li><code>meerschaum.utils.misc.make_symlink()</code></li>
367
+ <li><code>meerschaum.utils.misc.is_symlink()</code></li>
368
+ <li><code>meerschaum.utils.misc.wget()</code></li>
369
+ <li><code>meerschaum.utils.misc.add_method_to_class()</code></li>
370
+ <li><code>meerschaum.utils.misc.is_pipe_registered()</code></li>
371
+ <li><code>meerschaum.utils.misc.get_cols_lines()</code></li>
372
+ <li><code>meerschaum.utils.misc.sorted_dict()</code></li>
373
+ <li><code>meerschaum.utils.misc.flatten_pipes_dict()</code></li>
374
+ <li><code>meerschaum.utils.misc.dict_from_od()</code></li>
375
+ <li><code>meerschaum.utils.misc.remove_ansi()</code></li>
376
+ <li><code>meerschaum.utils.misc.get_connector_labels()</code></li>
377
+ <li><code>meerschaum.utils.misc.json_serialize_datetime()</code></li>
378
+ <li><code>meerschaum.utils.misc.async_wrap()</code></li>
379
+ <li><code>meerschaum.utils.misc.is_docker_available()</code></li>
380
+ <li><code>meerschaum.utils.misc.is_android()</code></li>
381
+ <li><code>meerschaum.utils.misc.is_bcp_available()</code></li>
382
+ <li><code>meerschaum.utils.misc.truncate_string_sections()</code></li>
383
+ <li><code>meerschaum.utils.misc.safely_extract_tar()</code></li>
384
+ </ul>
385
+ </details>
386
+ </ul>
387
+
388
+ <ul>
389
+ <details>
390
+ <summary>
391
+ <code>meerschaum.utils.packages</code><br>
392
+ Manage Python packages.
393
+ <br>
394
+ </summary>
395
+ <p></p>
396
+ <ul>
397
+ <li><code>meerschaum.utils.packages.attempt_import()</code></li>
398
+ <li><code>meerschaum.utils.packages.get_module_path()</code></li>
399
+ <li><code>meerschaum.utils.packages.manually_import_module()</code></li>
400
+ <li><code>meerschaum.utils.packages.get_install_no_version()</code></li>
401
+ <li><code>meerschaum.utils.packages.determine_version()</code></li>
402
+ <li><code>meerschaum.utils.packages.need_update()</code></li>
403
+ <li><code>meerschaum.utils.packages.get_pip()</code></li>
404
+ <li><code>meerschaum.utils.packages.pip_install()</code></li>
405
+ <li><code>meerschaum.utils.packages.pip_uninstall()</code></li>
406
+ <li><code>meerschaum.utils.packages.completely_uninstall_package()</code></li>
407
+ <li><code>meerschaum.utils.packages.run_python_package()</code></li>
408
+ <li><code>meerschaum.utils.packages.lazy_import()</code></li>
409
+ <li><code>meerschaum.utils.packages.pandas_name()</code></li>
410
+ <li><code>meerschaum.utils.packages.import_pandas()</code></li>
411
+ <li><code>meerschaum.utils.packages.import_rich()</code></li>
412
+ <li><code>meerschaum.utils.packages.import_dcc()</code></li>
413
+ <li><code>meerschaum.utils.packages.import_html()</code></li>
414
+ <li><code>meerschaum.utils.packages.get_modules_from_package()</code></li>
415
+ <li><code>meerschaum.utils.packages.import_children()</code></li>
416
+ <li><code>meerschaum.utils.packages.reload_package()</code></li>
417
+ <li><code>meerschaum.utils.packages.reload_meerschaum()</code></li>
418
+ <li><code>meerschaum.utils.packages.is_installed()</code></li>
419
+ <li><code>meerschaum.utils.packages.venv_contains_package()</code></li>
420
+ <li><code>meerschaum.utils.packages.package_venv()</code></li>
421
+ <li><code>meerschaum.utils.packages.ensure_readline()</code></li>
422
+ <li><code>meerschaum.utils.packages.get_prerelease_dependencies()</code></li>
423
+ </ul>
424
+ </details>
425
+ </ul>
426
+
427
+ <ul>
428
+ <details>
429
+ <summary>
430
+ <code>meerschaum.utils.prompt</code><br>
431
+ Read input from the user.
432
+ <br>
433
+ </summary>
434
+ <p></p>
435
+ <ul>
436
+ <li><code>meerschaum.utils.prompt.prompt()</code></li>
437
+ <li><code>meerschaum.utils.prompt.yes_no()</code></li>
438
+ <li><code>meerschaum.utils.prompt.choose()</code></li>
439
+ <li><code>meerschaum.utils.prompt.get_password()</code></li>
440
+ <li><code>meerschaum.utils.prompt.get_email()</code></li>
441
+ </ul>
442
+ </details>
443
+ </ul>
444
+
445
+ <ul>
446
+ <details>
447
+ <summary>
448
+ <code>meerschaum.utils.schedule</code><br>
449
+ Schedule processes and threads.
450
+ <br>
451
+ </summary>
452
+ <p></p>
453
+ <ul>
454
+ <li><code>meerschaum.utils.schedule.schedule_function()</code></li>
455
+ <li><code>meerschaum.utils.schedule.parse_schedule()</code></li>
456
+ <li><code>meerschaum.utils.schedule.parse_start_time()</code></li>
457
+ </ul>
458
+ </details>
459
+ </ul>
460
+
461
+ <ul>
462
+ <details>
463
+ <summary>
464
+ <code>meerschaum.utils.sql</code><br>
465
+ Build SQL queries.
466
+ <br>
467
+ </summary>
468
+ <p></p>
469
+ <ul>
470
+ <li><code>meerschaum.utils.sql.build_where()</code></li>
471
+ <li><code>meerschaum.utils.sql.clean()</code></li>
472
+ <li><code>meerschaum.utils.sql.dateadd_str()</code></li>
473
+ <li><code>meerschaum.utils.sql.test_connection()</code></li>
474
+ <li><code>meerschaum.utils.sql.get_distinct_col_count()</code></li>
475
+ <li><code>meerschaum.utils.sql.sql_item_name()</code></li>
476
+ <li><code>meerschaum.utils.sql.pg_capital()</code></li>
477
+ <li><code>meerschaum.utils.sql.oracle_capital()</code></li>
478
+ <li><code>meerschaum.utils.sql.truncate_item_name()</code></li>
479
+ <li><code>meerschaum.utils.sql.table_exists()</code></li>
480
+ <li><code>meerschaum.utils.sql.get_table_cols_types()</code></li>
481
+ <li><code>meerschaum.utils.sql.get_update_queries()</code></li>
482
+ <li><code>meerschaum.utils.sql.get_null_replacement()</code></li>
483
+ <li><code>meerschaum.utils.sql.get_db_version()</code></li>
484
+ <li><code>meerschaum.utils.sql.get_rename_table_queries()</code></li>
485
+ <li><code>meerschaum.utils.sql.get_create_table_query()</code></li>
486
+ <li><code>meerschaum.utils.sql.format_cte_subquery()</code></li>
487
+ <li><code>meerschaum.utils.sql.session_execute()</code></li>
488
+ </ul>
489
+ </details>
490
+ </ul>
491
+
492
+ <ul>
493
+ <details>
494
+ <summary>
495
+ <code>meerschaum.utils.venv</code><br>
496
+ Manage virtual environments.
497
+ <br>
498
+ </summary>
499
+ <p></p>
500
+ <ul>
501
+ <li><code>meerschaum.utils.venv.Venv</code></li>
502
+ <li><code>meerschaum.utils.venv.activate_venv()</code></li>
503
+ <li><code>meerschaum.utils.venv.deactivate_venv()</code></li>
504
+ <li><code>meerschaum.utils.venv.get_module_venv()</code></li>
505
+ <li><code>meerschaum.utils.venv.get_venvs()</code></li>
506
+ <li><code>meerschaum.utils.venv.init_venv()</code></li>
507
+ <li><code>meerschaum.utils.venv.inside_venv()</code></li>
508
+ <li><code>meerschaum.utils.venv.is_venv_active()</code></li>
509
+ <li><code>meerschaum.utils.venv.venv_exec()</code></li>
510
+ <li><code>meerschaum.utils.venv.venv_executable()</code></li>
511
+ <li><code>meerschaum.utils.venv.venv_exists()</code></li>
512
+ <li><code>meerschaum.utils.venv.venv_target_path()</code></li>
513
+ <li><code>meerschaum.utils.venv.verify_venv()</code></li>
514
+ </ul>
515
+ </details>
516
+ </ul>
517
+
518
+ <ul>
519
+ <details>
520
+ <summary>
521
+ <code>meerschaum.utils.warnings</code><br>
522
+ Print warnings, errors, info, and debug messages.
523
+ <br>
524
+ </summary>
525
+ <p></p>
526
+ <ul>
527
+ <li><code>meerschaum.utils.warnings.dprint()</code></li>
528
+ <li><code>meerschaum.utils.warnings.error()</code></li>
529
+ <li><code>meerschaum.utils.warnings.info()</code></li>
530
+ <li><code>meerschaum.utils.warnings.warn()</code></li>
531
+ </ul>
532
+ </details>
533
+ </ul>
534
+
535
+ </details>
536
+
537
+ """