guidepost 0.2.2__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.
guidepost/__init__.py ADDED
@@ -0,0 +1,2 @@
1
+ from .guidepost import Guidepost
2
+
guidepost/guidepost.py ADDED
@@ -0,0 +1,26 @@
1
+ import anywidget
2
+ import traitlets
3
+ import pandas as pd
4
+ import json
5
+ import os
6
+
7
+ class Guidepost(anywidget.AnyWidget):
8
+ _esm = os.path.join(os.path.dirname(__file__), "guidepost.js")
9
+ vis_data = traitlets.Dict({}).tag(sync=True)
10
+ vis_configs = traitlets.Dict({
11
+ 'x': 'submit_time',
12
+ 'y': 'queue_wait',
13
+ 'color': 'nodes_req',
14
+ 'color_agg': 'avg',
15
+ 'categorical': 'user'}).tag(sync=True)
16
+ selected_records = traitlets.Unicode("[]").tag(sync=True)
17
+ records_df = pd.DataFrame()
18
+
19
+ def retrieve_selected_data(self):
20
+ obj = json.loads(self.selected_records)
21
+ self.records_df = pd.DataFrame()
22
+
23
+ for val in obj:
24
+ self.records_df = pd.concat([self.records_df, pd.DataFrame.from_records(obj[val])])
25
+
26
+ return self.records_df
guidepost/version.py ADDED
@@ -0,0 +1,2 @@
1
+ __version_info__ = ("0", "2", "2")
2
+ __version__ = ".".join(__version_info__)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 National Renewable Energy Laboratory
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,127 @@
1
+ Metadata-Version: 2.2
2
+ Name: guidepost
3
+ Version: 0.2.2
4
+ Summary: Guidepost. An overview visualization for understanding supercomputer queue data.
5
+ Home-page: https://github.com/cscully-allison/guidepost
6
+ Author: Connor Scully-Allison
7
+ Author-email: cscullyallison@sci.utah.edu
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.6
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: numpy
15
+ Requires-Dist: pandas
16
+ Requires-Dist: scikit-learn
17
+ Requires-Dist: anywidget
18
+ Requires-Dist: traitlets
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: home-page
25
+ Dynamic: requires-dist
26
+ Dynamic: requires-python
27
+ Dynamic: summary
28
+
29
+ # Guidepost
30
+
31
+ Guidepost is a Python library designed for seamless integration into Jupyter notebooks to visualize High Performance Computing (HPC) job data. It simplifies the process of understanding HPC workloads by providing a single, interactive visualization that offers an intuitive overview of job performance, resource usage, and other critical metrics.
32
+
33
+ ---
34
+
35
+ ## Features
36
+
37
+ - **Jupyter Notebook Integration**: Designed for your existing workflow. Load and interact with the visualization directly in your Jupyter environment.
38
+ - **HPC Job Data Insights**: Visualize key metrics, including job runtimes, resource usage, and queue performance.
39
+ - **Interactive Exploration**: Export selections of specific jobs or groups of jobs for deeper analysis.
40
+ - **Lightweight and Easy to Use**: Focused on simplicity and efficiency for HPC users.
41
+
42
+ ---
43
+
44
+ ## Installation
45
+
46
+ Guidepost is available on PyPI. You can install it using pip:
47
+
48
+ ```bash
49
+ pip install guidepost
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Quick Start
55
+
56
+ ### 1. Import Guidepost
57
+
58
+ ```python
59
+ import guidepost as gp
60
+ ```
61
+
62
+ ### 2. Load Your Data
63
+ Guidepost supports input data in CSV or Pandas DataFrame format. Ensure your data includes columns such as job IDs, runtime, and resource usage.
64
+
65
+ ```python
66
+ import pandas as pd
67
+
68
+ data = pd.read_csv("hpc_jobs.csv")
69
+ ```
70
+
71
+ ### 3. Generate Visualization
72
+
73
+ ```python
74
+ gp.load_visualization(data)
75
+ ```
76
+
77
+ Run the above command in a Jupyter notebook cell to render the visualization directly.
78
+
79
+ ---
80
+
81
+ ## Example Dataset
82
+ Below is an example of the kind of data Guidepost works with:
83
+
84
+ | Job ID | Runtime (hours) | Nodes Used | partition | Status |
85
+ |--------|-----------------|------------|-----------|--------|
86
+ | 12345 | 5.2 | 10 | short | Complete |
87
+ | 12346 | 12.0 | 20 | long | Running |
88
+
89
+ Note that a column named "parition" must be sepecified.
90
+
91
+ ---
92
+
93
+ ## API Reference
94
+
95
+ ### `load_visualization(data)`
96
+ - **Description**: Renders the HPC job data visualization in the current Jupyter notebook.
97
+ - **Parameters**:
98
+ - `data` (DataFrame or str): A Pandas DataFrame or a path to a CSV file containing HPC job data.
99
+
100
+ ---
101
+
102
+ ## Contributing
103
+
104
+ Contributions to Guidepost are welcome! To contribute:
105
+
106
+ 1. Fork the repository.
107
+ 2. Create a new branch for your feature or bugfix.
108
+ 3. Submit a pull request with a detailed description of your changes.
109
+
110
+ ---
111
+
112
+ ## License
113
+
114
+ Guidepost is licensed under the MIT License. See the `LICENSE` file for details.
115
+
116
+ ---
117
+
118
+ ## Acknowledgments
119
+
120
+ Guidepost was developed to simplify the analysis of HPC workloads, inspired by the challenges faced by HPC administrators and researchers. Thank you to the open-source community for their support and tools.
121
+
122
+ ---
123
+
124
+ ## Contact
125
+
126
+ For questions or feedback, please reach out to the maintainers at [your-email@example.com].
127
+
@@ -0,0 +1,9 @@
1
+ guidepost/__init__.py,sha256=dyd2tCYC5XbacEeYRirs55X6m6O2wBwAYFc1HcuQq7s,34
2
+ guidepost/guidepost.py,sha256=QAWMd41KlJhBNoeZlZZiCiymUIxsJGIi4fqUljsaa0Y,820
3
+ guidepost/version.py,sha256=xT2bIon4QyL3aVZ-RbpCfn8MeVNGs31ViCVHjJupLQM,75
4
+ tutorials/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ guidepost-0.2.2.dist-info/LICENSE,sha256=vGvo_SrjyJT5rDPGqa7cc4tUg0X_wfTpfYuKsXNBzgE,1092
6
+ guidepost-0.2.2.dist-info/METADATA,sha256=NIP5mr601lxX0ezLhscX1h7JJtXv5IuFmWkPUp0KIeg,3587
7
+ guidepost-0.2.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
8
+ guidepost-0.2.2.dist-info/top_level.txt,sha256=nmP_GVoP2C46xLkyyEfONBeOSsyULb6YD-agVXOXd_Y,20
9
+ guidepost-0.2.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ guidepost
2
+ tutorials
tutorials/__init__.py ADDED
File without changes