MSTR-Robotics-magerdaniel 0.5.6__tar.gz → 0.5.8__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.
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/MSTR_Robotics_magerdaniel.egg-info/PKG-INFO +1 -1
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/PKG-INFO +1 -1
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/__init__.py +1 -1
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_paths.py +36 -23
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/pyproject.toml +1 -1
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/MSTR_Robotics_magerdaniel.egg-info/SOURCES.txt +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/MSTR_Robotics_magerdaniel.egg-info/dependency_links.txt +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/MSTR_Robotics_magerdaniel.egg-info/requires.txt +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/MSTR_Robotics_magerdaniel.egg-info/top_level.txt +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/OSI_Produktion/osi_dashboard_8D47320148C7E2850BFD2B9605D73297.yml +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/README.md +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/API_KEY.example.env +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/dans_migrations.example.yml +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/jupyter_objects_d.example.yml +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/mstr_redis_y.example.yml +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/user_d.example.yml +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/docs/SETUP.md +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_connectors.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_export.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_helper.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_lu_data.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_mod_prj_obj.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_pa_etl.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/dossier.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/json_compare.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/__init__.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/_fetch_static_data.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/_osi_find_bi_data.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/_osi_object_analysis.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/_osi_specific_analysis.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/_run_mstr_report_wizzard.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/_server_config.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mcp_servers/mstr_osi_mcp.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/ms_azure.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mstr_classes.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mstr_pandas.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/navigation.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/osi_exporter/__init__.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/osi_exporter/export_dashboard.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/prepare_ai_data.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/read_out_prj_obj.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/redis_db.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/regam.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/report.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/select_mig_objects.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/setup.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/user_rag.py +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/00_setup.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_REGAM.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_chat_answer_prompt_page.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_load_rag_cubes.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_migrate.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_mstr_admin.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_prj_obj_exporter.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_schema_monitor.ipynb +0 -0
- {mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MSTR-Robotics-magerdaniel
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
4
4
|
Summary: Automation toolkit for MicroStrategy / Strategy One: object read-out, migration, comparison, RAG and OSI export.
|
|
5
5
|
Author-email: Daniel Mager <danielmager@gmx.de>
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: MSTR-Robotics-magerdaniel
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
4
4
|
Summary: Automation toolkit for MicroStrategy / Strategy One: object read-out, migration, comparison, RAG and OSI export.
|
|
5
5
|
Author-email: Daniel Mager <danielmager@gmx.de>
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
"""Central
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
``mstr_robotics
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"""Central project-relative path resolution.
|
|
2
|
+
|
|
3
|
+
Resolution walks up from the current working directory looking for
|
|
4
|
+
``config/user_d.yml`` -- the marker that says "this is a project that has run
|
|
5
|
+
setup". This is what lets a user ``pip install`` the package, copy the
|
|
6
|
+
reference material from ``mstr_robotics/utils/`` to the top level of their own
|
|
7
|
+
project, and have config/output/OSI paths resolve there -- instead of inside
|
|
8
|
+
the installed package's own location (e.g. site-packages), which is not
|
|
9
|
+
writable in any meaningful sense for the user.
|
|
10
|
+
|
|
11
|
+
It is also what lets ``tools/nb_compare`` (in the dans_playground dev repo)
|
|
12
|
+
run the same notebooks against two full repo checkouts that share one
|
|
13
|
+
installed ``mstr_robotics`` package: each checkout has its own
|
|
14
|
+
``config/user_d.yml``, so walking up from cwd tells the two apart even though
|
|
15
|
+
``Path(__file__)`` cannot.
|
|
9
16
|
|
|
10
17
|
Notebooks and modules should import the constants they need from here, e.g.::
|
|
11
18
|
|
|
@@ -20,34 +27,40 @@ from __future__ import annotations
|
|
|
20
27
|
import os
|
|
21
28
|
from pathlib import Path
|
|
22
29
|
|
|
23
|
-
#
|
|
24
|
-
|
|
30
|
+
# Markers that identify a project root (every environment has its own copy).
|
|
31
|
+
# ``user_d.yml`` exists once setup has run; ``user_d.example.yml`` exists as
|
|
32
|
+
# soon as the user copies mstr_robotics/utils/config/ in, before setup has run
|
|
33
|
+
# even once -- needed because the setup notebook itself runs from
|
|
34
|
+
# <project>/notebooks/, one level below the project root it needs to find.
|
|
35
|
+
_MARKERS = (
|
|
36
|
+
Path("config") / "user_d.yml",
|
|
37
|
+
Path("config") / "user_d.example.yml",
|
|
38
|
+
)
|
|
25
39
|
|
|
26
40
|
|
|
27
41
|
def find_repo_root() -> Path:
|
|
28
|
-
"""Resolve the
|
|
29
|
-
|
|
30
|
-
The two comparison environments (mstr_robotics / mstr_robotics_comp) share a
|
|
31
|
-
single installed ``mstr_robotics`` package, so ``Path(__file__)`` always
|
|
32
|
-
points at whichever repo the package was installed from -- it cannot tell
|
|
33
|
-
the environments apart. Instead we anchor on the runtime working directory:
|
|
34
|
-
``run_shapes.py`` executes each notebook with cwd set to ``<repo>/notebooks``
|
|
35
|
-
(see tools/nb_compare), so walking up from cwd to the dir that contains
|
|
36
|
-
``config/user_d.yml`` yields THIS environment's repo.
|
|
42
|
+
"""Resolve the root of the *current* project.
|
|
37
43
|
|
|
38
44
|
Resolution order:
|
|
39
45
|
1. ``MSTR_REPO_ROOT`` environment variable, if set.
|
|
40
|
-
2. The nearest ancestor of the cwd that contains ``config/user_d.yml
|
|
41
|
-
|
|
46
|
+
2. The nearest ancestor of the cwd that contains ``config/user_d.yml``
|
|
47
|
+
or ``config/user_d.example.yml`` (a project that has copied
|
|
48
|
+
mstr_robotics/utils/ in, whether or not setup has run yet).
|
|
49
|
+
3. The current working directory, if neither marker is found anywhere
|
|
50
|
+
above it.
|
|
51
|
+
|
|
52
|
+
Step 3 deliberately does NOT fall back to this file's install location
|
|
53
|
+
(e.g. site-packages) -- that would silently write config/output inside the
|
|
54
|
+
venv instead of the user's own project.
|
|
42
55
|
"""
|
|
43
56
|
env = os.environ.get("MSTR_REPO_ROOT")
|
|
44
57
|
if env:
|
|
45
58
|
return Path(env).resolve()
|
|
46
59
|
cwd = Path.cwd()
|
|
47
60
|
for base in (cwd, *cwd.parents):
|
|
48
|
-
if (base /
|
|
61
|
+
if any((base / marker).exists() for marker in _MARKERS):
|
|
49
62
|
return base
|
|
50
|
-
return
|
|
63
|
+
return cwd
|
|
51
64
|
|
|
52
65
|
|
|
53
66
|
REPO_ROOT = find_repo_root()
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "MSTR-Robotics-magerdaniel"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.8"
|
|
8
8
|
description = "Automation toolkit for MicroStrategy / Strategy One: object read-out, migration, comparison, RAG and OSI export."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/API_KEY.example.env
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/mstr_redis_y.example.yml
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/config/user_d.example.yml
RENAMED
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_connectors.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_export.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_helper.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_lu_data.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_mod_prj_obj.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/_pa_etl.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/dossier.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/json_compare.py
RENAMED
|
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
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/ms_azure.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mstr_classes.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/mstr_pandas.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/navigation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/prepare_ai_data.py
RENAMED
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/redis_db.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/mstr_robotics/user_rag.py
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/00_setup.ipynb
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_REGAM.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_migrate.ipynb
RENAMED
|
File without changes
|
{mstr_robotics_magerdaniel-0.5.6 → mstr_robotics_magerdaniel-0.5.8}/notebooks/jup_mstr_admin.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|