{ "info": { "author": "perillaroc", "author_email": "perillaroc@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# nwpc-hpc-model\n\n[![Build Status](https://travis-ci.org/perillaroc/nwpc-hpc-model.svg?branch=master)](https://travis-ci.org/perillaroc/nwpc-hpc-model)\n[![codecov](https://codecov.io/gh/perillaroc/nwpc-hpc-model/branch/master/graph/badge.svg)](https://codecov.io/gh/perillaroc/nwpc-hpc-model)\n\nA key-value model for HPC resources in NWPC. Including models for:\n\n* LoadLeveler's `llq -l` query\n* Slurm's `sinfo` and `squeue -o %all` query\n* Disk usage and disk space query\n\n## Installation\n\nDownload source code from Github releases or get the latest code from Github repo. \n\nRun `pip install .` to install.\n\n## Getting started\n\nThe following example uses `nwpc-hpc-model` to extract job id and job owner from a `llq -l` query.\n\nA config YAML file is used to create query categories.\n\n```yaml\ncategory_list:\n -\n id: \"llq.id\"\n display_name: \"Id\"\n label: \"Job Step Id\"\n record_parser_class: \"DetailLabelParser\"\n record_parser_arguments:\n - \"Job Step Id\"\n value_saver_class: \"StringSaver\"\n value_saver_arguments: []\n -\n id: \"llq.owner\"\n display_name: \"Owner\"\n label: \"Owner\"\n record_parser_class: \"DetailLabelParser\"\n record_parser_arguments:\n - \"Owner\"\n value_saver_class: \"StringSaver\"\n value_saver_arguments: []\n\n```\n\nFirst create `QueryCategoryList` according to the config json file.\n\n```python\nfrom nwpc_hpc_model.workload.loadleveler import QueryCategoryList, \\\n QueryCategory, record_parser, value_saver\nimport yaml\n\nwith open('config_file_path', 'r') as f:\n config = yaml.load(f)\n\ncategory_list = QueryCategoryList()\nfor an_item in config['category_list']:\n category = QueryCategory(\n category_id=an_item['id'],\n display_name=an_item['display_name'],\n label=an_item['display_name'],\n record_parser_class=getattr(record_parser, an_item['record_parser_class']),\n record_parser_arguments=tuple(an_item['record_parser_arguments']),\n value_saver_class=getattr(value_saver, an_item['value_saver_class']),\n value_saver_arguments=tuple(an_item['value_saver_arguments'])\n )\n category_list.append(category)\n```\n\nGet `llq -l` command output.\n\n```python\nimport subprocess\n\ncommand = \"/usr/bin/llq -l\"\npipe = subprocess.Popen([command], stdout=subprocess.PIPE, shell=True)\noutput = pipe.communicate()[0]\noutput_string = output.decode()\noutput_lines = output_string.split(\"\\n\")\n```\n\nBuild `QueryModel` from `QueryCategoryList`\n\n```python\nfrom nwpc_hpc_model.workload.loadleveler import LoadLevelerQueryModel\n\nmodel = LoadLevelerQueryModel.build_from_category_list(output_lines, category_list)\n```\n\n`model` contains data of all categories in the config file.\n\n## Test\n\nUse `pytest` to run all tests.\n\n## License\n\nCopyright © 2016-2019, Perilla Roc.\n\n`nwpc-hpc-model` is licensed under [The MIT License](https://opensource.org/licenses/MIT).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/perillaroc/nwpc-hpc-model", "keywords": "nwpc hpc model", "license": "GPL-3.0", "maintainer": "", "maintainer_email": "", "name": "nwpc-hpc-model", "package_url": "https://pypi.org/project/nwpc-hpc-model/", "platform": "", "project_url": "https://pypi.org/project/nwpc-hpc-model/", "project_urls": { "Homepage": "https://github.com/perillaroc/nwpc-hpc-model" }, "release_url": "https://pypi.org/project/nwpc-hpc-model/0.3.2/", "requires_dist": [ "pytest-cov ; extra == 'cov'", "codecov ; extra == 'cov'", "pyyaml ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "codecov ; extra == 'test'" ], "requires_python": "", "summary": "A collection of models for HPC used in NWPC.", "version": "0.3.2" }, "last_serial": 4671455, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f7967b53099b91a059e6f4dba4492416", "sha256": "99b66cd3a472f41d8cb681452df83c4c4729d33c5b2176f772c3997be159b681" }, "downloads": -1, "filename": "nwpc_hpc_model-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f7967b53099b91a059e6f4dba4492416", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44906, "upload_time": "2019-01-08T05:27:26", "url": "https://files.pythonhosted.org/packages/4a/e9/7377a164214d2a0352212238f2540bc74e2cad71c29bd5bc8699904a2d18/nwpc_hpc_model-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75c6045f25d69f289844f9eec284dd3f", "sha256": "683d684e97d2c1d0098128187661a74143c0904421b73d91284adc2a8f7ac9b9" }, "downloads": -1, "filename": "nwpc-hpc-model-0.1.0.tar.gz", "has_sig": false, "md5_digest": "75c6045f25d69f289844f9eec284dd3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5753, "upload_time": "2019-01-08T05:27:35", "url": "https://files.pythonhosted.org/packages/61/8b/12cc1cc4a7f54475939037f9f0a3673a5301716e93192c9a35fbfbab54af/nwpc-hpc-model-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a3a4a4ec1a608bb195cedf3f33aab6af", "sha256": "03dae74ff65ce06c4949e6e438bc85c1daec0533ea77fbfb8777e09f5b2ad3e6" }, "downloads": -1, "filename": "nwpc_hpc_model-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a3a4a4ec1a608bb195cedf3f33aab6af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 58870, "upload_time": "2019-01-08T05:27:29", "url": "https://files.pythonhosted.org/packages/78/3e/6da3309befdf78ec6834c83e3d89502cf6afac66395d4ccef671928545c3/nwpc_hpc_model-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74edc979b7f49facaf64f1b22a0bb352", "sha256": "dfb6314327bde069c2a99887d29ed7ecd3a67d468067f46988520ed259de0d24" }, "downloads": -1, "filename": "nwpc-hpc-model-0.2.0.tar.gz", "has_sig": false, "md5_digest": "74edc979b7f49facaf64f1b22a0bb352", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14005, "upload_time": "2019-01-08T05:27:37", "url": "https://files.pythonhosted.org/packages/70/89/642be40f5ffff48d551af77e7878227ca1bf3271ff049c0db46e4e5584fa/nwpc-hpc-model-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "315bceb05037fdc72f75c3b562a7d769", "sha256": "509c722ec6e968e228034f6765ab164636306e5aa2d85c2a05117ca32f013531" }, "downloads": -1, "filename": "nwpc_hpc_model-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "315bceb05037fdc72f75c3b562a7d769", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 57738, "upload_time": "2019-01-08T05:27:32", "url": "https://files.pythonhosted.org/packages/86/05/d56c615924f773afb0027d51b58566556ce866af51e3c13490284a5248f2/nwpc_hpc_model-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48a51a493624ecfd2a62fda8ccd910cb", "sha256": "95c0555018c9cb432f95dc2cc0945093387fdd71cebd13be255d4a26dc2f08c8" }, "downloads": -1, "filename": "nwpc-hpc-model-0.3.0.tar.gz", "has_sig": false, "md5_digest": "48a51a493624ecfd2a62fda8ccd910cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17103, "upload_time": "2019-01-08T05:27:39", "url": "https://files.pythonhosted.org/packages/7c/67/9626135bf25e0a7c74c1d45317a94cf1dbe5b2d80cd44998f48a48ae4f33/nwpc-hpc-model-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "4b4d530500a44c550e62cd4dc50525f1", "sha256": "9cbf14159ac756172768abd785afac469757adc0b1853a8a3111d6de239d0d17" }, "downloads": -1, "filename": "nwpc_hpc_model-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4b4d530500a44c550e62cd4dc50525f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 57802, "upload_time": "2019-01-08T05:27:34", "url": "https://files.pythonhosted.org/packages/ed/a7/d12485bc268cacd2edd5b7edd9c80c6f712b19c9b6d1f53d1a4eae05151a/nwpc_hpc_model-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c809860b081992a89d8e78c8243e5346", "sha256": "907e91c9beb51d0e6b8a5b972ffe9cbe69ca191676a00ef4047e313ea5af6eee" }, "downloads": -1, "filename": "nwpc-hpc-model-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c809860b081992a89d8e78c8243e5346", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16926, "upload_time": "2019-01-08T05:27:40", "url": "https://files.pythonhosted.org/packages/c0/a6/e88b952ba9adb3e0feb1d5c8b7b3b141808cddb7c26279b4401b3cce17b3/nwpc-hpc-model-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "a065a862bde6f55817a0e19773aaee14", "sha256": "03e8dfc5bbf72f2925bd923d96581abeeff90d24a7150ac2be102c31d5a67fcf" }, "downloads": -1, "filename": "nwpc_hpc_model-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a065a862bde6f55817a0e19773aaee14", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40005, "upload_time": "2019-01-08T05:28:04", "url": "https://files.pythonhosted.org/packages/ea/8d/1ac03736a77610da7393791c43a75e0032b22d4b44327481c5b924dbba05/nwpc_hpc_model-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63a037384edced0c429ee843f2e37535", "sha256": "0845228bc4a0e392d8cacb7cb0c5fa951f2e38eeb07c1998a02f088bf2fbda75" }, "downloads": -1, "filename": "nwpc-hpc-model-0.3.2.tar.gz", "has_sig": false, "md5_digest": "63a037384edced0c429ee843f2e37535", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17601, "upload_time": "2019-01-08T05:28:06", "url": "https://files.pythonhosted.org/packages/7a/4f/37f98523af2a3ce40c778af52a0215d7cd502288d0cf4708e86347169da1/nwpc-hpc-model-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a065a862bde6f55817a0e19773aaee14", "sha256": "03e8dfc5bbf72f2925bd923d96581abeeff90d24a7150ac2be102c31d5a67fcf" }, "downloads": -1, "filename": "nwpc_hpc_model-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a065a862bde6f55817a0e19773aaee14", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40005, "upload_time": "2019-01-08T05:28:04", "url": "https://files.pythonhosted.org/packages/ea/8d/1ac03736a77610da7393791c43a75e0032b22d4b44327481c5b924dbba05/nwpc_hpc_model-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63a037384edced0c429ee843f2e37535", "sha256": "0845228bc4a0e392d8cacb7cb0c5fa951f2e38eeb07c1998a02f088bf2fbda75" }, "downloads": -1, "filename": "nwpc-hpc-model-0.3.2.tar.gz", "has_sig": false, "md5_digest": "63a037384edced0c429ee843f2e37535", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17601, "upload_time": "2019-01-08T05:28:06", "url": "https://files.pythonhosted.org/packages/7a/4f/37f98523af2a3ce40c778af52a0215d7cd502288d0cf4708e86347169da1/nwpc-hpc-model-0.3.2.tar.gz" } ] }