meerschaum 2.2.5.dev2__py3-none-any.whl → 2.2.5.dev3__py3-none-any.whl

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.
@@ -158,7 +158,6 @@ groups['actions'].add_argument(
158
158
  '-d', '--daemon', action='store_true',
159
159
  help = "Run an action as a background daemon."
160
160
  )
161
-
162
161
  groups['actions'].add_argument(
163
162
  '--rm', action='store_true', help="Delete a job once it has finished executing."
164
163
  )
@@ -5,130 +5,36 @@
5
5
  """
6
6
  <img src="https://meerschaum.io/assets/banner_1920x320.png" alt="Meerschaum banner" style="width: 100%;"/>
7
7
 
8
- | PyPI | GitHub | Info | Stats |
9
- |---|---|---|---|
10
- | ![PyPI]( https://img.shields.io/pypi/v/meerschaum?color=%2300cc66&label=Version ) | ![GitHub Repo stars](https://img.shields.io/github/stars/bmeares/Meerschaum?style=social) | ![License](https://img.shields.io/github/license/bmeares/Meerschaum?label=License) | ![Number of plugins]( https://img.shields.io/badge/dynamic/json?color=3098c1&label=Public%20Plugins&query=num_plugins&url=https%3A%2F%2Fapi.mrsm.io%2Finfo ) |
11
- | ![PyPI - Python Version]( https://img.shields.io/pypi/pyversions/meerschaum?label=Python&logo=python&logoColor=%23ffffff ) | ![GitHub Sponsors](https://img.shields.io/github/sponsors/bmeares?color=eadf15&label=Sponsors) | [![meerschaum Tutorials](https://badges.openbase.com/python/tutorials/meerschaum.svg?token=2Yi8Oav9UZYWocO1ncwnIOnpUN5dTnUMWai7lAKTB+k=)](https://openbase.com/python/meerschaum?utm_source=embedded&amp;utm_medium=badge&amp;utm_campaign=rate-badge) | ![Number of registered users]( https://img.shields.io/badge/dynamic/json?color=3098c1&label=Registered%20Users&query=num_users&url=https%3A%2F%2Fapi.mrsm.io%2Finfo ) |
8
+ # Meerschaum Python API
9
+
10
+ Welcome to the Meerschaum Python API technical documentation!
11
+
12
+ - `meerschaum.actions`
13
+ Access functions for actions and subactions.
14
+ - `meerschaum.connectors`
15
+ - `meerschaum.utils`
16
+ Utility functions are available in several submodules, such as functions for:
17
+ - `meerschaum.utils.daemon`
18
+ Managing background processes.\n
19
+ - `meerschaum.utils.dataframe`
20
+ Manipulating dataframes.\n
21
+ - `meerschaum.utils.dtypes`
22
+ Working with data types.\n
23
+ - `meerschaum.utils.formatting`
24
+ Formatting output text.\n
25
+ - `meerschaum.utils.misc`
26
+ Miscellaneous utility functions (e.g. `meerschaum.utils.misc.round_time()`).\n
27
+ - `meerschaum.utils.packages`
28
+ Managing Python packages.\n
29
+ - `meerschaum.utils.prompt`
30
+ Reading input from the user.\n
31
+ - `meerschaum.utils.schedule`
32
+ Scheduling processes and threads.\n
33
+ - `meerschaum.utils.sql`
34
+ Building SQL queries.\n
35
+ - `meerschaum.utils.venv`
36
+ Managing virtual environments.\n
37
+ - `meerschaum.utils.warnings`
38
+ Print warnings, errors, info, and debug messages.
12
39
 
13
- <p align="center">
14
- <img src="https://meerschaum.io/files/images/demo.gif" alt="Meerschaum demo" style="width: 100%;">
15
- </p>
16
-
17
- ## What is Meerschaum?
18
- Meerschaum is a tool for quickly synchronizing time-series data streams called **pipes**. With Meerschaum, you can have a data visualization stack running in minutes.
19
-
20
- <p align="center">
21
- <img src="https://meerschaum.io/assets/screenshots/weather_pipes.png" style="width: 100%;"/>
22
- </p>
23
-
24
- ## Why Meerschaum?
25
-
26
- If you've worked with time-series data, you know the headaches that come with ETL.
27
- Data engineering often gets in analysts' way, and when work needs to get done, every minute spent on pipelining is time taken away from real analysis.
28
-
29
- Rather than copy / pasting your ETL scripts, simply build pipes with Meerschaum! [Meerschaum gives you the tools to design your data streams how you like](https://towardsdatascience.com/easy-time-series-etl-for-data-scientists-with-meerschaum-5aade339b398) ― and don't worry — you can always incorporate Meerschaum into your existing systems!
30
-
31
- ## Features
32
-
33
- - 📊 **Built for Data Scientists and Analysts**
34
- - Integrate with Pandas, Grafana and other popular [data analysis tools](https://meerschaum.io/reference/data-analysis-tools/).
35
- - Persist your dataframes and always get the latest data.
36
- - ⚡️ **Production-Ready, Batteries Included**
37
- - [Synchronization engine](https://meerschaum.io/reference/pipes/syncing/) concurrently updates many time-series data streams.
38
- - One-click deploy a [TimescaleDB and Grafana stack](https://meerschaum.io/reference/stack/) for prototyping.
39
- - Serve data to your entire organization through the power of `uvicorn`, `gunicorn`, and `FastAPI`.
40
- - 🔌 **Easily Expandable**
41
- - Ingest any data source with a simple [plugin](https://meerschaum.io/reference/plugins/writing-plugins/). Just return a DataFrame, and Meerschaum handles the rest.
42
- - [Add any function as a command](https://meerschaum.io/reference/plugins/types-of-plugins/#action-plugins) to the Meerschaum system.
43
- - Include Meerschaum in your projects with its [easy-to-use Python API](https://docs.meerschaum.io).
44
- - ✨ **Tailored for Your Experience**
45
- - Rich CLI makes managing your data streams surprisingly enjoyable!
46
- - Web dashboard for those who prefer a more graphical experience.
47
- - Manage your database connections with [Meerschaum connectors](https://meerschaum.io/reference/connectors/)
48
- - Utility commands with sensible syntax let you control many pipes with grace.
49
- - 💼 **Portable from the Start**
50
- - The environment variables `$MRSM_ROOT_DIR`, `$MRSM_PLUGINS_DIR`, and `$MRSM_VENVS_DIR` let you emulate multiple installations and group together your [instances](https://meerschaum.io/reference/connectors/#instances-and-repositories).
51
- - No dependencies required; anything needed will be installed into virtual environments.
52
- - [Specify required packages for your plugins](https://meerschaum.io/reference/plugins/writing-plugins/), and users will get those packages in a virtual environment.
53
-
54
- ## Installation
55
-
56
- For a more thorough setup guide, visit the [Getting Started](https://meerschaum.io/get-started/) page at [meerschaum.io](https://meerschaum.io).
57
-
58
- ### TL;DR
59
-
60
- ```bash
61
- pip install -U --user meerschaum
62
- mrsm stack up -d db grafana
63
- mrsm bootstrap pipes
64
- ```
65
-
66
- ## Usage Documentation
67
-
68
- Please visit [meerschaum.io](https://meerschaum.io) for setup, usage, and troubleshooting information. You can find technical documentation at [docs.meerschaum.io](https://docs.meerschaum.io), and here is a complete list of the [Meerschaum actions](https://meerschaum.io/reference/actions/).
69
-
70
- ```python
71
- >>> import meerschaum as mrsm
72
- >>> pipe = mrsm.Pipe("plugin:noaa", "weather")
73
- >>> cols_to_select = ['timestamp', 'station', 'temperature (degC)']
74
- >>> df = pipe.get_data(cols_to_select, begin='2023-11-15', end='2023-11-20')
75
- >>> df
76
- timestamp station temperature (degC)
77
- 0 2023-11-15 00:52:00 KATL 16.1
78
- 1 2023-11-15 00:52:00 KCLT 11.7
79
- 2 2023-11-15 00:53:00 KGMU 15.0
80
- 3 2023-11-15 00:54:00 KCEU 13.9
81
- 4 2023-11-15 01:52:00 KATL 15.6
82
- .. ... ... ...
83
- 535 2023-11-19 22:54:00 KCEU 15.6
84
- 536 2023-11-19 23:52:00 KATL 16.7
85
- 537 2023-11-19 23:52:00 KCLT 13.9
86
- 538 2023-11-19 23:53:00 KGMU 15.6
87
- 539 2023-11-19 23:54:00 KCEU 15.0
88
-
89
- [540 rows x 3 columns]
90
- >>>
91
- ```
92
-
93
- ## Plugins
94
-
95
- Check out the [Awesome Meerschaum list](https://github.com/bmeares/awesome-meerschaum) for a list of community plugins as well as the [public plugins repository](https://api.mrsm.io/dash/plugins).
96
-
97
- For details on installing, using, and writing plugins, check out the [plugins documentation](https://meerschaum.io/reference/plugins/types-of-plugins) at [meerschaum.io](https://meerschaum.io).
98
-
99
- #### Example Plugin
100
-
101
- ```python
102
- # ~/.config/meerschaum/plugins/example.py
103
- __version__ = '0.0.1'
104
- required = []
105
-
106
- def register(pipe, **kw):
107
- return {
108
- 'columns': {
109
- 'datetime': 'dt',
110
- 'id': 'id',
111
- 'value': 'val',
112
- }
113
- }
114
-
115
- def fetch(pipe, **kw):
116
- import random
117
- from datetime import datetime
118
- docs = [
119
- {
120
- 'dt': datetime.now(),
121
- 'id': i,
122
- 'val': random.ranint(0, 200),
123
- }
124
- for i in range(random.randint(0, 100))
125
- ]
126
- return docs
127
- ```
128
-
129
- ## Support Meerschaum's Development
130
-
131
- For consulting services and to support Meerschaum's development, please considering sponsoring me on [GitHub sponsors](https://github.com/sponsors/bmeares).
132
-
133
- Additionally, you can always [buy me a coffee☕](https://www.buymeacoffee.com/bmeares)!
134
40
  """
@@ -219,15 +219,24 @@ def _show_connectors(
219
219
  from meerschaum.config import get_config
220
220
  from meerschaum.utils.formatting import make_header
221
221
  from meerschaum.utils.formatting import pprint
222
+
223
+ conn_type = action[0].split(':')[0] if action else None
224
+
222
225
  if not nopretty:
223
- print(make_header("\nConfigured connectors:"))
224
- pprint(get_config('meerschaum', 'connectors'), nopretty=nopretty)
225
- if not nopretty:
226
+ print(make_header(
227
+ f"""\nConfigured {"'" + (conn_type + "' ") if conn_type else ''}Connectors:"""
228
+ ))
229
+
230
+ keys = ['meerschaum', 'connectors']
231
+ if conn_type:
232
+ keys.append(conn_type)
233
+ pprint(get_config(*keys), nopretty=nopretty)
234
+ if not nopretty and not conn_type:
226
235
  print(make_header("\nActive connectors:"))
227
236
  pprint(connectors, nopretty=nopretty)
228
237
 
229
238
  from meerschaum.connectors.parse import parse_instance_keys
230
- if action:
239
+ if action and ':' in action[0]:
231
240
  attr, keys = parse_instance_keys(action[0], construct=False, as_tuple=True, debug=debug)
232
241
  if attr:
233
242
  if not nopretty:
@@ -7,7 +7,7 @@ Functions for running the Docker Compose stack
7
7
  """
8
8
 
9
9
  from __future__ import annotations
10
- from meerschaum.utils.typing import SuccessTuple, Any, List, Optional
10
+ from meerschaum.utils.typing import SuccessTuple, Any, List, Optional, Union
11
11
 
12
12
  def stack(
13
13
  action: Optional[List[str]] = None,
@@ -19,7 +19,7 @@ def stack(
19
19
  debug: bool = False,
20
20
  _capture_output: bool = False,
21
21
  **kw: Any
22
- ) -> SuccessTuple:
22
+ ) -> Union[SuccessTuple, 'subprocess.Popen']:
23
23
  """
24
24
  Control the Meerschaum stack with Docker Compose.
25
25
  Usage: `stack {command}`
@@ -147,18 +147,18 @@ def stack(
147
147
  ['docker', 'compose'] if has_builtin_compose
148
148
  else ['docker-compose']
149
149
  ) + cmd_list,
150
- cwd = STACK_COMPOSE_PATH.parent,
151
- stdout = stdout,
152
- stderr = stderr,
153
- env = stack_env_dict,
150
+ cwd=STACK_COMPOSE_PATH.parent,
151
+ stdout=stdout,
152
+ stderr=stderr,
153
+ env=stack_env_dict,
154
154
  ) if (has_builtin_compose or has_binary_compose) else run_python_package(
155
155
  'compose',
156
- args = cmd_list,
157
- cwd = STACK_COMPOSE_PATH.parent,
158
- venv = _compose_venv,
159
- capture_output = _capture_output,
160
- as_proc = True,
161
- env = stack_env_dict,
156
+ args=cmd_list,
157
+ cwd=STACK_COMPOSE_PATH.parent,
158
+ venv=_compose_venv,
159
+ capture_output=_capture_output,
160
+ as_proc=True,
161
+ env=stack_env_dict,
162
162
  )
163
163
  try:
164
164
  rc = proc.wait() if proc is not None else 1
@@ -237,4 +237,3 @@ for module_name, functions_list in _api_plugins.items():
237
237
  + f"when executing function '{function.__name__}' with exception:\n{e}",
238
238
  stack=False,
239
239
  )
240
-
@@ -50,7 +50,6 @@ stylesheets = [
50
50
  '/static/css/bootstrap.min.css',
51
51
  '/static/css/dbc_dark.css',
52
52
  '/static/css/dash.css',
53
- # '/static/js/node_modules/xterm/css/xterm.css',
54
53
  ]
55
54
  scripts = ['/static/js/node_modules/xterm/lib/xterm.js']
56
55
  dash_app = enrich.DashProxy(
@@ -21,7 +21,7 @@ def init_dash_plugins():
21
21
  for _function in _functions:
22
22
  try:
23
23
  _function(dash_app)
24
- except Exception as e:
24
+ except Exception:
25
25
  warn(
26
26
  f"Failed to load function '{_function.__name__}' "
27
27
  + f"from plugin '{_module_name}':\n"
@@ -7,7 +7,7 @@ Functions for interacting with plugins via the web interface.
7
7
  """
8
8
 
9
9
  from __future__ import annotations
10
- from meerschaum.utils.typing import List, Tuple, SuccessTuple
10
+ from meerschaum.utils.typing import List, Tuple, SuccessTuple, Optional, WebState, Dict, Any
11
11
  from meerschaum.utils.packages import import_dcc, import_html
12
12
  from meerschaum.api import get_api_connector, endpoints, CHECK_UPDATE
13
13
  html, dcc = import_html(check_update=CHECK_UPDATE), import_dcc(check_update=CHECK_UPDATE)
@@ -17,10 +17,10 @@ from meerschaum.api.dash import dash_app, debug, active_sessions
17
17
 
18
18
 
19
19
  def get_plugins_cards(
20
- state: Optional[WebState] = None,
21
- search_term: Optional[str] = None,
22
- session_data: Optional[Dict[str, Any]] = None,
23
- ) -> Tuple[List[dbc.Card], List[SuccessTuple]]:
20
+ state: Optional[WebState] = None,
21
+ search_term: Optional[str] = None,
22
+ session_data: Optional[Dict[str, Any]] = None,
23
+ ) -> Tuple[List[dbc.Card], List[SuccessTuple]]:
24
24
  """
25
25
  Return the cards and alerts for plugins.
26
26
  """
@@ -96,4 +96,3 @@ def is_plugin_owner(plugin_name: str, session_data: Dict['str', Any]) -> bool:
96
96
  _username is not None
97
97
  and _username == _plugin_username
98
98
  )
99
-
@@ -2,4 +2,4 @@
2
2
  Specify the Meerschaum release version.
3
3
  """
4
4
 
5
- __version__ = "2.2.5.dev2"
5
+ __version__ = "2.2.5.dev3"
@@ -8,6 +8,7 @@ Handle all things warnings and errors here
8
8
 
9
9
  from __future__ import annotations
10
10
  from meerschaum.utils.typing import Any, Union
11
+ from meerschaum.utils.debug import dprint
11
12
 
12
13
  import sys
13
14
  import warnings
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.2.5.dev2
3
+ Version: 2.2.5.dev3
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -4,9 +4,9 @@ meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iy
4
4
  meerschaum/_internal/entry.py,sha256=TNqt79kfNgXH-7Pi75Jus4Osi9y776ZVptFuvrs4wWY,5680
5
5
  meerschaum/_internal/arguments/__init__.py,sha256=HFciFQgo2ZOT19Mo6CpLhPYlpLYh2sNn1C9Lo7NMADc,519
6
6
  meerschaum/_internal/arguments/_parse_arguments.py,sha256=ZPkJamB6noJAEpG_cyZGVYu6hXxtQ7H7c-j7gq3Csi8,10405
7
- meerschaum/_internal/arguments/_parser.py,sha256=9PsfyiqQHpmZPKRryCti8qdUCSKD_ncBZ26iVgcOdzE,13796
7
+ meerschaum/_internal/arguments/_parser.py,sha256=SLURNi0jsndm89URRgiLoi5CoIqQT8DMzGRd4gQr9JY,13795
8
8
  meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
9
- meerschaum/_internal/docs/index.py,sha256=iWMe1rOVKvaP84q0tEzqwy-Dtgojg9cFmBntgPQBHu0,7076
9
+ meerschaum/_internal/docs/index.py,sha256=TNSZak9GBvBBzbDyXHKTUJ6i5wFcm4VLPFa_kvV4qVc,1267
10
10
  meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
11
11
  meerschaum/_internal/gui/app/__init__.py,sha256=rKUa8hHk6Fai-PDF61tQcpT1myxKcfmvEMDHxThNp7o,1565
12
12
  meerschaum/_internal/gui/app/_windows.py,sha256=-VHdjTzA3V596fVqnbmTxemONSp_80-sTNJ0CTB8FwU,2632
@@ -22,7 +22,6 @@ meerschaum/_internal/term/__init__.py,sha256=LqTySBfHYnOtHGYCWfovcxV4FnZdON2BPYp
22
22
  meerschaum/_internal/term/tools.py,sha256=dXVAimKD-Yv2fg2WOTr0YGBY7XDKjQqw-RizcS65YVI,727
23
23
  meerschaum/actions/__init__.py,sha256=ZUdQk6FvuMqyEvLCP-RiDDlIK4NwkqLRgFZSKq04qq4,11440
24
24
  meerschaum/actions/api.py,sha256=mWhv4bn3Ap17_Gqf2Cx9bAsHKG-Zhy072pBbNzHLEJc,12756
25
- meerschaum/actions/backup.py,sha256=MhdNEo7ptOdFpR-L0o9Z590hBmKeqHsSx64GPKhx9e8,1230
26
25
  meerschaum/actions/bootstrap.py,sha256=Tsv3bL63mb6zDSCpxl3Mq05YulwbDTGNNZr3ttVmksA,14119
27
26
  meerschaum/actions/clear.py,sha256=OoFZE0bK5m8s3GLNZcixuVT0DMj1izXVxGCATcmUGbI,4851
28
27
  meerschaum/actions/copy.py,sha256=8g3ANXfVdvuyaoXcZjgTg3BxHTOhHGrzVDOOsTBrpSU,6213
@@ -39,9 +38,9 @@ meerschaum/actions/register.py,sha256=l_21LWZCzKwJVex_xAXECC5WVW1VEuIX9HSp7CuyCw
39
38
  meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,508
40
39
  meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
41
40
  meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
42
- meerschaum/actions/show.py,sha256=S6J8bM2Jc9mzi31Dp_qqZLVqsRswPemWYzQc4wSzSr4,29631
41
+ meerschaum/actions/show.py,sha256=9lOO5TAzqDSkRxg4IoBzndupWIPFgN7ydJlzYPyMRH4,29875
43
42
  meerschaum/actions/sql.py,sha256=wYofwk1vGO96U2ncigGEfMtYMZeprz2FR1PRRZhkAPI,4311
44
- meerschaum/actions/stack.py,sha256=WMRMebyYwZGNlbnj6Ja09qvCSDNteFJOTa8_joHlnVo,5886
43
+ meerschaum/actions/stack.py,sha256=7ODAxzmCx8i9AHxvkbr5ZtzUNPpY-iqlSVo4rZHMOw4,5900
45
44
  meerschaum/actions/start.py,sha256=9Ej3Hk7qXfbrBaQq17KirTII_4Pa-BWSdrkutMnLA3k,18352
46
45
  meerschaum/actions/stop.py,sha256=KTBadAmJ6SbReqlltkwfqZW6EryB4kZXupl0ZyInI0Q,4311
47
46
  meerschaum/actions/sync.py,sha256=10uPREu3HBVgtzakVxhCegQOz_mistABJlsNNCMgywY,17518
@@ -49,12 +48,12 @@ meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,305
49
48
  meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
50
49
  meerschaum/actions/upgrade.py,sha256=wepYdvrjSuc2wMd21rbLoxGjlRuXxLVH0GOD9OhKB48,6658
51
50
  meerschaum/actions/verify.py,sha256=tY5slGpHiWiE0v9TDnjbmxSKn86zBnu9WBpixUgKNQU,4885
52
- meerschaum/api/__init__.py,sha256=oOYwNnkXM2s-h52EYnN2NGPfrlaQh6D4-zmHa7uPLG0,7450
51
+ meerschaum/api/__init__.py,sha256=tjxyG8SQR_ymYuj3YUaadlguXBj-edL4kY_CxWYrYHk,7449
53
52
  meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
54
53
  meerschaum/api/_events.py,sha256=NrjiabEr7rmHMfxnX07DOGzr9sPiEbRkFqPjuA_8Zx8,1603
55
54
  meerschaum/api/_oauth2.py,sha256=o4ub9gMLvJ5ewxuCbk78kA8c6MOHV4FDxURupH1lT7U,1645
56
55
  meerschaum/api/_websockets.py,sha256=OmrSDGx3xGlfP5XXeLEyYW6-Y3iRUcB-xSqL3RWsjqQ,1609
57
- meerschaum/api/dash/__init__.py,sha256=yr4zR7uFPlLFc_lDpwa2rCM1h9ZWGiu5-2XhHcM-5f8,2252
56
+ meerschaum/api/dash/__init__.py,sha256=NkqnUP77c02J6sjWp5PGw48Hz9Dhov7gBO5f2mK2b40,2198
58
57
  meerschaum/api/dash/actions.py,sha256=eUClPPdNVNSCtyq8Ecr1saasxj5VBgd1gcXejvQxXEc,9418
59
58
  meerschaum/api/dash/components.py,sha256=oGX7HFzNCi37iMww747iL3bbB52ZTt9tFa2iLohffg4,6399
60
59
  meerschaum/api/dash/connectors.py,sha256=nJxBOFldtCMJLYjUSVYZwX5BO-LNjTNHgoEaXe-0XMo,843
@@ -62,7 +61,7 @@ meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk
62
61
  meerschaum/api/dash/jobs.py,sha256=htqnrtAGCOgn2-THezMGYM8n1E-M-sM5A5qNmOGfHzg,7529
63
62
  meerschaum/api/dash/keys.py,sha256=hzEVeN60SAfVTVSO5lajGaykxRIKGhj9Ph00HRJnNoE,12598
64
63
  meerschaum/api/dash/pipes.py,sha256=RVVYIJJy4G01cXou9OT8Gr5ZsygQ_GUqJDDhU1akhi8,20615
65
- meerschaum/api/dash/plugins.py,sha256=JrLLw2r1Ar7asBgbMbSuiuz8dB9bME41ChynYN2KO-Y,3662
64
+ meerschaum/api/dash/plugins.py,sha256=JiQjeeCT21MoPDo81pkTXw9viqIH6xpivQgZEO4qtzQ,3676
66
65
  meerschaum/api/dash/sync.py,sha256=9lt7IRdG-fe9gf_ZO_viPiGlerX7ic6r_VFocv3I51A,504
67
66
  meerschaum/api/dash/users.py,sha256=xfKwezl_yM4-gmCFSk4VRXR8teIEouw03c6oGVhOzns,2362
68
67
  meerschaum/api/dash/websockets.py,sha256=0iwRaI9k2okU1baYstOkehfZ6-qMi_S6qm4lPBjVlH8,924
@@ -74,7 +73,7 @@ meerschaum/api/dash/assets/favicon.ico,sha256=nDEekVxwS60wEDno1nbw5GF3TJOcDV26SE
74
73
  meerschaum/api/dash/assets/logo_48x48.png,sha256=hTR5BHUHEN4yP2xiqAcDciuigoII9T3-80R-dzsxVmw,10218
75
74
  meerschaum/api/dash/assets/logo_500x500.png,sha256=9EUtf6wQcEZTXHKfQ2kjNXod6Rn_4DTB_BkTgxggq00,67702
76
75
  meerschaum/api/dash/callbacks/__init__.py,sha256=CKOkt7PIHbYxX9aDab2xPDuufIAQjSR5MVX-hU8Zi2w,450
77
- meerschaum/api/dash/callbacks/custom.py,sha256=hm6fb0f-bpS_--qlV_9ScaAN_-dnSw60FwyomWBQHfY,1166
76
+ meerschaum/api/dash/callbacks/custom.py,sha256=N9pVolAF8sIuJD3V6xBSgS7k8THJo_f8d1qAoh1Kg60,1161
78
77
  meerschaum/api/dash/callbacks/dashboard.py,sha256=8Rjxuw8uGww6oRfwRUC_mjm6i7aD0dVW0CeY2a7r7Yo,33101
79
78
  meerschaum/api/dash/callbacks/jobs.py,sha256=OEYxJRlmnxqbsvHb5jBJJCsRvVCsMNusm9AClCT9Pm0,7689
80
79
  meerschaum/api/dash/callbacks/login.py,sha256=7WHZPsegy1qf3rrm5rucLYTufi93WrAy921HXQP14lU,2630
@@ -137,7 +136,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
137
136
  meerschaum/config/_read_config.py,sha256=WFZKIXZMDe_ca0ES7ivgM_mnwShvFxLdoeisT_X5-h0,14720
138
137
  meerschaum/config/_shell.py,sha256=s74cmJl8NrhM_Y1cB_P41_JDUYXV0g4WXnKFZWMtnrY,3551
139
138
  meerschaum/config/_sync.py,sha256=oK2ZujO2T1he08BXCFyiniBUevNGWSQKXLcS_jRv_7Y,4155
140
- meerschaum/config/_version.py,sha256=EYhjKU-_lntkfeba7JixXzvd1fRvaGeo4UJv29kVR0E,76
139
+ meerschaum/config/_version.py,sha256=SRFLigKXIIHFa9AQD8Eunv0_Sm2ocigtTrKEyKL3HxA,76
141
140
  meerschaum/config/paths.py,sha256=Z7vaOunaEJbVFXiSSz4IthhNOQDI-dhtpi5TpSyrcXg,206
142
141
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
142
  meerschaum/config/stack/__init__.py,sha256=Yt7GNzC_hz7iUDZ4gVho_lugJO2DnXgnMtsMG_ReoRg,9114
@@ -213,7 +212,7 @@ meerschaum/utils/schedule.py,sha256=btAeSDaoFH62-7wTO0U7NK9P9QHV46PtY3DJ8DN_mCY,
213
212
  meerschaum/utils/sql.py,sha256=4sCNEpgUd6uFz6ySs4nnUMVaOT0YAvPM1ZlQYJTSF-0,46656
214
213
  meerschaum/utils/threading.py,sha256=3N8JXPAnwqJiSjuQcbbJg3Rv9-CCUMJpeQRfKFR7MaA,2489
215
214
  meerschaum/utils/typing.py,sha256=L05wOXfWdn_nJ0KnZVr-2zdMYcqjdyOW_7InT3xe6-s,2807
216
- meerschaum/utils/warnings.py,sha256=0b5O2DBbhEAGnu6RAB1hlHSVmwL_hcR3EiMkExXmBJ0,6535
215
+ meerschaum/utils/warnings.py,sha256=5IzctiK9-TON4mAqiKYFVN3plKe9aNxhCf7r-FBbmho,6577
217
216
  meerschaum/utils/yaml.py,sha256=ptfS5XncNPaYXuvYX11yOpnEwPxDdaelHgDzIrvp9yc,3908
218
217
  meerschaum/utils/daemon/Daemon.py,sha256=TTbBj3M0RoGRaTvvq6IPr9EJb2KiPV_HLucqbPQVzs8,35184
219
218
  meerschaum/utils/daemon/FileDescriptorInterceptor.py,sha256=G5eJDapiTH1IX1x-2r62pLDS1MkRfpJaaZ-3FOAJgo0,4933
@@ -232,11 +231,11 @@ meerschaum/utils/packages/_packages.py,sha256=gWrco46rqKjtAI714aJp0XfzYQFAdNi08K
232
231
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
233
232
  meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
234
233
  meerschaum/utils/venv/__init__.py,sha256=4vFAu85lQ5GYEVhc6e_KhFmrks4t_Ma6ysmtraccYbs,24187
235
- meerschaum-2.2.5.dev2.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
236
- meerschaum-2.2.5.dev2.dist-info/METADATA,sha256=QSbWuB3P7CVf1sqjJMqt00hWQo1idl5YoOwHSAdXTok,24192
237
- meerschaum-2.2.5.dev2.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
238
- meerschaum-2.2.5.dev2.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
239
- meerschaum-2.2.5.dev2.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
240
- meerschaum-2.2.5.dev2.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
241
- meerschaum-2.2.5.dev2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
242
- meerschaum-2.2.5.dev2.dist-info/RECORD,,
234
+ meerschaum-2.2.5.dev3.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
235
+ meerschaum-2.2.5.dev3.dist-info/METADATA,sha256=W93eIijf7aa07Hemcet86F-ClTbtNE0FY-FAUv1D_Ew,24192
236
+ meerschaum-2.2.5.dev3.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
237
+ meerschaum-2.2.5.dev3.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
238
+ meerschaum-2.2.5.dev3.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
239
+ meerschaum-2.2.5.dev3.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
240
+ meerschaum-2.2.5.dev3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
241
+ meerschaum-2.2.5.dev3.dist-info/RECORD,,
@@ -1,43 +0,0 @@
1
- #! /usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- # vim:fenc=utf-8
4
-
5
- """
6
- Backup the stack database.
7
- """
8
-
9
- from __future__ import annotations
10
- from meerschaum.utils.typing import SuccessTuple, Any, List, Optional, Union
11
-
12
- def backup(
13
- action: Optional[List[str]] = None,
14
- **kwargs: Any
15
- ) -> SuccessTuple:
16
- """
17
- Backup the stack database.
18
- """
19
- from meerschaum.actions import choose_subaction
20
- options = {
21
- 'database' : _backup_database,
22
- }
23
- return choose_subaction(action, options, **kwargs)
24
-
25
-
26
- def _backup_database(
27
- action: Optional[List[str]] = None,
28
- ) -> SuccessTuple:
29
- """
30
- Backup the stack's database to a sql file.
31
- """
32
- from meerschaum.actions import get_action
33
- from meerschaum.config.paths import BACKUP_RESOURCES_PATH
34
- do_stack = get_action('stack')
35
- cmd_list = ['exec', 'db', 'pg']
36
- stack_success, stack_msg = do_stack(['exec'])
37
- return True, "Success"
38
-
39
- ### NOTE: This must be the final statement of the module.
40
- ### Any subactions added below these lines will not
41
- ### be added to the `help` docstring.
42
- from meerschaum.utils.misc import choices_docstring as _choices_docstring
43
- backup.__doc__ += _choices_docstring('backup')