guidepost 0.2.2__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.
@@ -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,99 @@
1
+ # Guidepost
2
+
3
+ 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.
4
+
5
+ ---
6
+
7
+ ## Features
8
+
9
+ - **Jupyter Notebook Integration**: Designed for your existing workflow. Load and interact with the visualization directly in your Jupyter environment.
10
+ - **HPC Job Data Insights**: Visualize key metrics, including job runtimes, resource usage, and queue performance.
11
+ - **Interactive Exploration**: Export selections of specific jobs or groups of jobs for deeper analysis.
12
+ - **Lightweight and Easy to Use**: Focused on simplicity and efficiency for HPC users.
13
+
14
+ ---
15
+
16
+ ## Installation
17
+
18
+ Guidepost is available on PyPI. You can install it using pip:
19
+
20
+ ```bash
21
+ pip install guidepost
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Quick Start
27
+
28
+ ### 1. Import Guidepost
29
+
30
+ ```python
31
+ import guidepost as gp
32
+ ```
33
+
34
+ ### 2. Load Your Data
35
+ Guidepost supports input data in CSV or Pandas DataFrame format. Ensure your data includes columns such as job IDs, runtime, and resource usage.
36
+
37
+ ```python
38
+ import pandas as pd
39
+
40
+ data = pd.read_csv("hpc_jobs.csv")
41
+ ```
42
+
43
+ ### 3. Generate Visualization
44
+
45
+ ```python
46
+ gp.load_visualization(data)
47
+ ```
48
+
49
+ Run the above command in a Jupyter notebook cell to render the visualization directly.
50
+
51
+ ---
52
+
53
+ ## Example Dataset
54
+ Below is an example of the kind of data Guidepost works with:
55
+
56
+ | Job ID | Runtime (hours) | Nodes Used | partition | Status |
57
+ |--------|-----------------|------------|-----------|--------|
58
+ | 12345 | 5.2 | 10 | short | Complete |
59
+ | 12346 | 12.0 | 20 | long | Running |
60
+
61
+ Note that a column named "parition" must be sepecified.
62
+
63
+ ---
64
+
65
+ ## API Reference
66
+
67
+ ### `load_visualization(data)`
68
+ - **Description**: Renders the HPC job data visualization in the current Jupyter notebook.
69
+ - **Parameters**:
70
+ - `data` (DataFrame or str): A Pandas DataFrame or a path to a CSV file containing HPC job data.
71
+
72
+ ---
73
+
74
+ ## Contributing
75
+
76
+ Contributions to Guidepost are welcome! To contribute:
77
+
78
+ 1. Fork the repository.
79
+ 2. Create a new branch for your feature or bugfix.
80
+ 3. Submit a pull request with a detailed description of your changes.
81
+
82
+ ---
83
+
84
+ ## License
85
+
86
+ Guidepost is licensed under the MIT License. See the `LICENSE` file for details.
87
+
88
+ ---
89
+
90
+ ## Acknowledgments
91
+
92
+ 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.
93
+
94
+ ---
95
+
96
+ ## Contact
97
+
98
+ For questions or feedback, please reach out to the maintainers at [your-email@example.com].
99
+
@@ -0,0 +1,2 @@
1
+ from .guidepost import Guidepost
2
+
@@ -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
@@ -0,0 +1,2 @@
1
+ __version_info__ = ("0", "2", "2")
2
+ __version__ = ".".join(__version_info__)
@@ -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,13 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ guidepost/__init__.py
6
+ guidepost/guidepost.py
7
+ guidepost/version.py
8
+ guidepost.egg-info/PKG-INFO
9
+ guidepost.egg-info/SOURCES.txt
10
+ guidepost.egg-info/dependency_links.txt
11
+ guidepost.egg-info/requires.txt
12
+ guidepost.egg-info/top_level.txt
13
+ tutorials/__init__.py
@@ -0,0 +1,5 @@
1
+ numpy
2
+ pandas
3
+ scikit-learn
4
+ anywidget
5
+ traitlets
@@ -0,0 +1,2 @@
1
+ guidepost
2
+ tutorials
@@ -0,0 +1,27 @@
1
+ [tool.poetry]
2
+ name = "guidepost"
3
+ version = "0.2"
4
+ description = "Guidepost. An overview visualization for understanding supercomputer queue data."
5
+ authors = [
6
+ "Connor Scully-Allison <cscullyallison@sci.utah.edu"
7
+ ]
8
+ license = "MIT"
9
+
10
+ [tool.black]
11
+ line-length = 88
12
+ target-version = ['py36', 'py37', 'py38']
13
+ include = '\.pyi?$'
14
+ exclude = '''
15
+ /(
16
+ \.eggs
17
+ | \.git
18
+ | \.hg
19
+ | \.mypy_cache
20
+ | \.tox
21
+ | \.venv
22
+ | _build
23
+ | buck-out
24
+ | build
25
+ | dist
26
+ )/
27
+ '''
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,39 @@
1
+ from setuptools import setup, find_packages
2
+ from codecs import open
3
+ from os import path
4
+
5
+ here = path.abspath(path.dirname(__file__))
6
+
7
+ with open("README.md", "r", encoding="utf-8") as fh:
8
+ long_description = fh.read()
9
+
10
+ # Get the version in a safe way
11
+ # per python docs: https://packaging.python.org/guides/single-sourcing-package-version/
12
+ version = {}
13
+ with open("./guidepost/version.py") as fp:
14
+ exec(fp.read(), version)
15
+
16
+ setup(
17
+ name='guidepost',
18
+ version=version["__version__"],
19
+ author='Connor Scully-Allison',
20
+ author_email='cscullyallison@sci.utah.edu',
21
+ description='Guidepost. An overview visualization for understanding supercomputer queue data.',
22
+ long_description=long_description,
23
+ long_description_content_type="text/markdown",
24
+ url="https://github.com/cscully-allison/guidepost",
25
+ packages=find_packages(),
26
+ install_requires=[
27
+ 'numpy',
28
+ 'pandas',
29
+ 'scikit-learn',
30
+ 'anywidget',
31
+ 'traitlets'
32
+ ],
33
+ classifiers=[
34
+ 'Programming Language :: Python :: 3',
35
+ 'License :: OSI Approved :: MIT License',
36
+ 'Operating System :: OS Independent',
37
+ ],
38
+ python_requires='>=3.6',
39
+ )
File without changes