expops 0.1.0__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 (140) hide show
  1. expops-0.1.0/.github/workflows/ci.yml +39 -0
  2. expops-0.1.0/.github/workflows/release.yml +52 -0
  3. expops-0.1.0/.gitignore +137 -0
  4. expops-0.1.0/LICENSE +674 -0
  5. expops-0.1.0/PKG-INFO +997 -0
  6. expops-0.1.0/README.md +292 -0
  7. expops-0.1.0/docs/README.md +104 -0
  8. expops-0.1.0/docs/mlops_platform_CA_report.pdf +0 -0
  9. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023074707-91f17ea4/nn_losses/20251023_154708/error.txt +1 -0
  10. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023074707-91f17ea4/nn_losses/20251023_154708/slurm-232433.err +0 -0
  11. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023074707-91f17ea4/nn_losses/20251023_154708/slurm-232433.out +0 -0
  12. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023074707-91f17ea4/nn_losses/20251023_154708/submit_nn_losses.sh +23 -0
  13. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023081712-5921f1d8/nn_losses/20251023_161712/error.txt +1 -0
  14. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023081712-5921f1d8/nn_losses/20251023_161712/slurm-232517.err +0 -0
  15. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023081712-5921f1d8/nn_losses/20251023_161712/slurm-232517.out +0 -0
  16. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023081712-5921f1d8/nn_losses/20251023_161712/submit_nn_losses.sh +23 -0
  17. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023082402-27d67582/nn_losses/20251023_162403/error.txt +1 -0
  18. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023082402-27d67582/nn_losses/20251023_162403/slurm-232543.err +0 -0
  19. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023082402-27d67582/nn_losses/20251023_162403/slurm-232543.out +0 -0
  20. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023082402-27d67582/nn_losses/20251023_162403/submit_nn_losses.sh +23 -0
  21. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023083446-cfac7bad/nn_losses/20251023_163447/error.txt +1 -0
  22. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023083446-cfac7bad/nn_losses/20251023_163447/slurm-232574.err +0 -0
  23. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023083446-cfac7bad/nn_losses/20251023_163447/slurm-232574.out +0 -0
  24. expops-0.1.0/projects/premier-league/artifacts/charts/project-premier-league-20251023083446-cfac7bad/nn_losses/20251023_163447/submit_nn_losses.sh +23 -0
  25. expops-0.1.0/projects/premier-league/charts/plot_metrics.js +70 -0
  26. expops-0.1.0/projects/premier-league/charts/plot_metrics.py +145 -0
  27. expops-0.1.0/projects/premier-league/charts/requirements.txt +6 -0
  28. expops-0.1.0/projects/premier-league/configs/cluster_config.yaml +13 -0
  29. expops-0.1.0/projects/premier-league/configs/project_config.yaml +221 -0
  30. expops-0.1.0/projects/premier-league/data/England CSV.csv +12154 -0
  31. expops-0.1.0/projects/premier-league/keys/firestore.json +13 -0
  32. expops-0.1.0/projects/premier-league/models/premier_league_model.py +638 -0
  33. expops-0.1.0/projects/premier-league/project_info.json +485 -0
  34. expops-0.1.0/projects/premier-league/requirements.txt +8 -0
  35. expops-0.1.0/projects/projects_index.json +12 -0
  36. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015063712-0e1f744e/nn_a_loss/20251015_143741/series_train_loss.png +0 -0
  37. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015063712-0e1f744e/nn_b_loss/20251015_143741/series_train_loss.png +0 -0
  38. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015063712-0e1f744e/test_metrics_comparison/20251015_144200/test_metrics_comparison.png +0 -0
  39. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015070924-870298fd/nn_a_loss/20251015_150933/series_train_loss.png +0 -0
  40. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015070924-870298fd/nn_b_loss/20251015_150933/series_train_loss.png +0 -0
  41. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015070924-870298fd/test_metrics_comparison/20251015_151253/test_metrics_comparison.png +0 -0
  42. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015071510-ef85fd88/nn_a_loss/20251015_151511/series_train_loss.png +0 -0
  43. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015071510-ef85fd88/nn_b_loss/20251015_151511/series_train_loss.png +0 -0
  44. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251015071510-ef85fd88/test_metrics_comparison/20251015_151638/test_metrics_comparison.png +0 -0
  45. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251029100524-8ca93d03/nn_a_loss/20251029_180552/series_train_loss.png +0 -0
  46. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251029100524-8ca93d03/nn_b_loss/20251029_180552/series_train_loss.png +0 -0
  47. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251029102435-89d2faa5/nn_losses/20251029_182449/error.txt +1 -0
  48. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251029102435-89d2faa5/test_metrics_comparison/20251029_183025/test_metrics_comparison.png +0 -0
  49. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251029122543-c0b0b568/nn_losses/20251029_202550/error.txt +1 -0
  50. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-20251029122543-c0b0b568/test_metrics_comparison/20251029_202716/test_metrics_comparison.png +0 -0
  51. expops-0.1.0/projects/titanic/artifacts/charts/project-titanic-89beb0806d5f5e0957693f30c0950692510c51e34cc0e3053676c84c7374ba08-20251009063701-d298aeba/nn_b_loss/20251009_143709/series_train_loss.png +0 -0
  52. expops-0.1.0/projects/titanic/charts/plot_metrics.js +176 -0
  53. expops-0.1.0/projects/titanic/charts/plot_metrics.py +198 -0
  54. expops-0.1.0/projects/titanic/charts/requirements.txt +4 -0
  55. expops-0.1.0/projects/titanic/configs/cluster_config.yaml +13 -0
  56. expops-0.1.0/projects/titanic/configs/project_config.yaml +130 -0
  57. expops-0.1.0/projects/titanic/data/Titanic-Dataset.csv +892 -0
  58. expops-0.1.0/projects/titanic/keys/firestore.json +13 -0
  59. expops-0.1.0/projects/titanic/models/titanic_model.py +398 -0
  60. expops-0.1.0/projects/titanic/project_info.json +350 -0
  61. expops-0.1.0/projects/titanic/requirements.txt +7 -0
  62. expops-0.1.0/pyproject.toml +64 -0
  63. expops-0.1.0/scripts/clear_gcp_cache.sh +512 -0
  64. expops-0.1.0/setup.cfg +4 -0
  65. expops-0.1.0/setup.py +8 -0
  66. expops-0.1.0/src/__init__.py +0 -0
  67. expops-0.1.0/src/expops.egg-info/PKG-INFO +997 -0
  68. expops-0.1.0/src/expops.egg-info/SOURCES.txt +138 -0
  69. expops-0.1.0/src/expops.egg-info/dependency_links.txt +1 -0
  70. expops-0.1.0/src/expops.egg-info/entry_points.txt +3 -0
  71. expops-0.1.0/src/expops.egg-info/requires.txt +23 -0
  72. expops-0.1.0/src/expops.egg-info/top_level.txt +1 -0
  73. expops-0.1.0/src/mlops/__init__.py +0 -0
  74. expops-0.1.0/src/mlops/__main__.py +11 -0
  75. expops-0.1.0/src/mlops/_version.py +34 -0
  76. expops-0.1.0/src/mlops/adapters/__init__.py +12 -0
  77. expops-0.1.0/src/mlops/adapters/base.py +86 -0
  78. expops-0.1.0/src/mlops/adapters/config_schema.py +89 -0
  79. expops-0.1.0/src/mlops/adapters/custom/__init__.py +3 -0
  80. expops-0.1.0/src/mlops/adapters/custom/custom_adapter.py +495 -0
  81. expops-0.1.0/src/mlops/adapters/plugin_manager.py +98 -0
  82. expops-0.1.0/src/mlops/adapters/sklearn/__init__.py +3 -0
  83. expops-0.1.0/src/mlops/adapters/sklearn/adapter.py +94 -0
  84. expops-0.1.0/src/mlops/cluster/__init__.py +3 -0
  85. expops-0.1.0/src/mlops/cluster/controller.py +512 -0
  86. expops-0.1.0/src/mlops/cluster/process_runner.py +91 -0
  87. expops-0.1.0/src/mlops/cluster/providers.py +261 -0
  88. expops-0.1.0/src/mlops/core/__init__.py +95 -0
  89. expops-0.1.0/src/mlops/core/custom_model_base.py +39 -0
  90. expops-0.1.0/src/mlops/core/dask_networkx_executor.py +1250 -0
  91. expops-0.1.0/src/mlops/core/executor_worker.py +1169 -0
  92. expops-0.1.0/src/mlops/core/graph_types.py +64 -0
  93. expops-0.1.0/src/mlops/core/networkx_parser.py +135 -0
  94. expops-0.1.0/src/mlops/core/payload_spill.py +278 -0
  95. expops-0.1.0/src/mlops/core/pipeline_utils.py +162 -0
  96. expops-0.1.0/src/mlops/core/process_hashing.py +216 -0
  97. expops-0.1.0/src/mlops/core/step_state_manager.py +1299 -0
  98. expops-0.1.0/src/mlops/core/step_system.py +982 -0
  99. expops-0.1.0/src/mlops/core/workspace.py +102 -0
  100. expops-0.1.0/src/mlops/environment/__init__.py +10 -0
  101. expops-0.1.0/src/mlops/environment/base.py +43 -0
  102. expops-0.1.0/src/mlops/environment/conda_manager.py +307 -0
  103. expops-0.1.0/src/mlops/environment/factory.py +70 -0
  104. expops-0.1.0/src/mlops/environment/pyenv_manager.py +146 -0
  105. expops-0.1.0/src/mlops/environment/setup_env.py +31 -0
  106. expops-0.1.0/src/mlops/environment/system_manager.py +66 -0
  107. expops-0.1.0/src/mlops/environment/utils.py +105 -0
  108. expops-0.1.0/src/mlops/environment/venv_manager.py +134 -0
  109. expops-0.1.0/src/mlops/main.py +521 -0
  110. expops-0.1.0/src/mlops/managers/project_manager.py +266 -0
  111. expops-0.1.0/src/mlops/managers/reproducibility_manager.py +494 -0
  112. expops-0.1.0/src/mlops/platform.py +956 -0
  113. expops-0.1.0/src/mlops/reporting/__init__.py +16 -0
  114. expops-0.1.0/src/mlops/reporting/context.py +187 -0
  115. expops-0.1.0/src/mlops/reporting/entrypoint.py +333 -0
  116. expops-0.1.0/src/mlops/reporting/kv_utils.py +126 -0
  117. expops-0.1.0/src/mlops/reporting/registry.py +50 -0
  118. expops-0.1.0/src/mlops/storage/__init__.py +12 -0
  119. expops-0.1.0/src/mlops/storage/adapters/__init__.py +9 -0
  120. expops-0.1.0/src/mlops/storage/adapters/gcp_kv_store.py +778 -0
  121. expops-0.1.0/src/mlops/storage/adapters/gcs_object_store.py +96 -0
  122. expops-0.1.0/src/mlops/storage/adapters/memory_store.py +240 -0
  123. expops-0.1.0/src/mlops/storage/adapters/redis_store.py +438 -0
  124. expops-0.1.0/src/mlops/storage/interfaces/__init__.py +6 -0
  125. expops-0.1.0/src/mlops/storage/interfaces/kv_store.py +118 -0
  126. expops-0.1.0/src/mlops/storage/path_utils.py +38 -0
  127. expops-0.1.0/src/mlops/tracking/base.py +185 -0
  128. expops-0.1.0/src/mlops/tracking/plugin_manager.py +92 -0
  129. expops-0.1.0/src/mlops/tracking/plugins/__init__.py +8 -0
  130. expops-0.1.0/src/mlops/web/__init__.py +3 -0
  131. expops-0.1.0/src/mlops/web/server.py +606 -0
  132. expops-0.1.0/src/mlops/web/ui/index.html +52 -0
  133. expops-0.1.0/src/mlops/web/ui/mlops-charts.js +357 -0
  134. expops-0.1.0/src/mlops/web/ui/script.js +1244 -0
  135. expops-0.1.0/src/mlops/web/ui/styles.css +248 -0
  136. expops-0.1.0/tests/test_smoke.py +18 -0
  137. expops-0.1.0/web-ui/index.html +52 -0
  138. expops-0.1.0/web-ui/mlops-charts.js +357 -0
  139. expops-0.1.0/web-ui/script.js +1244 -0
  140. expops-0.1.0/web-ui/styles.css +248 -0
@@ -0,0 +1,39 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ test:
9
+ runs-on: ubuntu-latest
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
14
+
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+ cache: pip
24
+
25
+ - name: Install package
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ python -m pip install -e ".[dev]"
29
+
30
+ - name: Run tests
31
+ run: |
32
+ pytest -q
33
+
34
+ - name: Build sdist/wheel
35
+ run: |
36
+ python -m pip install --upgrade build
37
+ python -m build
38
+
39
+
@@ -0,0 +1,52 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.11"
21
+ cache: pip
22
+
23
+ - name: Build artifacts
24
+ run: |
25
+ python -m pip install --upgrade pip build
26
+ python -m build
27
+
28
+ - name: Upload dist artifacts
29
+ uses: actions/upload-artifact@v4
30
+ with:
31
+ name: dist
32
+ path: dist/*
33
+
34
+ publish:
35
+ needs: build
36
+ runs-on: ubuntu-latest
37
+ permissions:
38
+ id-token: write
39
+ environment:
40
+ name: pypi
41
+ url: https://pypi.org/project/mlops-platform/
42
+ steps:
43
+ - name: Download dist artifacts
44
+ uses: actions/download-artifact@v4
45
+ with:
46
+ name: dist
47
+ path: dist
48
+
49
+ - name: Publish to PyPI
50
+ uses: pypa/gh-action-pypi-publish@release/v1
51
+
52
+
@@ -0,0 +1,137 @@
1
+ # Operating System Files
2
+ .DS_Store
3
+
4
+ # Python virtual environment
5
+ .venv/
6
+
7
+ # Pytest cache
8
+ .pytest_cache/
9
+
10
+ # Python bytecode cache
11
+ __pycache__/
12
+ *.pyc
13
+
14
+ *.py[cod]
15
+ *$py.class
16
+
17
+ *.so
18
+
19
+ .Python
20
+ build/
21
+ develop-eggs/
22
+ dist/
23
+ downloads/
24
+ eggs/
25
+ .eggs/
26
+ lib/
27
+ lib64/
28
+ parts/
29
+ sdist/
30
+ var/
31
+ wheels/
32
+ pip-wheel-metadata/
33
+ share/python-wheels/
34
+ *.egg-info/
35
+ .installed.cfg
36
+ *.egg
37
+ MANIFEST
38
+
39
+ *.manifest
40
+ *.spec
41
+
42
+ pip-log.txt
43
+ pip-delete-this-directory.txt
44
+
45
+ htmlcov/
46
+ .tox/
47
+ .nox/
48
+ .coverage
49
+ .coverage.*
50
+ .cache
51
+ nosetests.xml
52
+ coverage.xml
53
+ *.cover
54
+ *.py,cover
55
+ .hypothesis/
56
+
57
+ # Translations
58
+ *.mo
59
+ *.pot
60
+
61
+ # Django stuff:
62
+ *.log
63
+ local_settings.py
64
+ db.sqlite3
65
+ db.sqlite3-journal
66
+
67
+ # Flask stuff:
68
+ instance/
69
+ .webassets-cache
70
+
71
+ # Scrapy stuff:
72
+ .scrapy
73
+
74
+ # Sphinx documentation
75
+ docs/_build/
76
+
77
+ # PyBuilder
78
+ target/
79
+
80
+ # Jupyter Notebook
81
+ .ipynb_checkpoints
82
+
83
+ # IPython
84
+ profile_default/
85
+ ipython_config.py
86
+
87
+ # pyenv
88
+ .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock
92
+ # in version control. But in case of collaboration, if having platform-specific
93
+ # dependencies causes problems, excluding it is often the best way to go.
94
+ # Pipfile.lock
95
+
96
+ # PEP 582; __pypackages__ directory
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+
133
+ # pytype static analyzer
134
+ .pytype/
135
+
136
+ # Cython debug symbols
137
+ cython_debug/