<pre>
<h1>homeostasis</h1>
<h2>description</h2>
This is a module that can reliably
ascertain the health status of software.
(It's like a testing kit)
<h2>install</h2>
[SH] pip install homeostasis
<h2>documentation</h2>
[SH] homeostasis shares
<h2>homeostasis of homeostasis (the internal homeostasis of the homeostasis module)</h2>
<p>These checks are run with pypi "body_scan"</p>
<p>"homeostasis" is a fork of "body_scan"</p>
<p>("body_scan" checks are written with "unittest")</p>
[SH] homeostasis homeostasis
<h2>health checks</h2>
<p>Checks are started simultaneously, unless "--simultaneous no"</p>
<h3>create a status file</h3>
# status_1.py
def check_1 ():
print ("check 1")
def check_2 ():
print ("check 2")
def check_3 ():
raise Exception ("not 110%")
checks = {
"check 1": check_1,
"check 2": check_2,
"check 3": check_3
}
<h3>start from a directory deeper than the status file "status_1.py"</h3>
[SH] homeostasis status
<h3>The report then should appear like this:</h3>
<code>
paths: [
{
"path": "../status_1.py",
"empty": false,
"parsed": true,
"stats": {
"passes": 2,
"alarms": 1
},
"checks": [
{
"check": "check 1",
"passed": true,
"elapsed": [
4.054199962411076e-05,
"seconds"
]
},
{
"check": "check 2",
"passed": true,
"elapsed": [
1.72930003827787e-05,
"seconds"
]
},
{
"check": "check 3",
"passed": false,
"exception": "Exception('not 110%')",
"exception trace": [
"Traceback (most recent call last):",
" File \"/home/veganecology/.local/lib/python3.11/site-packages/homeostasis/processes/scan/process/keg/check.py\", line 68, in start",
" checks [ check ] ()",
" File \"<string>\", line 13, in check_3",
"Exception: not 110%"
]
}
]
}
]
alarms: [
{
"path": "../status_1.py",
"checks": [
{
"check": "check 3",
"passed": false,
"exception": "Exception('not 110%')",
"exception trace": [
"Traceback (most recent call last):",
" File \"/home/veganecology/.local/lib/python3.11/site-packages/homeostasis/processes/scan/process/keg/check.py\", line 68, in start",
" checks [ check ] ()",
" File \"<string>\", line 13, in check_3",
"Exception: not 110%"
]
}
]
}
]
stats: {
"alarms": 0,
"empty": 0,
"checks": {
"passes": 2,
"alarms": 1
}
}
</code>
<h2>advanced configurations</h2>
<p>
It's recommended to run homeostasis programmatilly.
An example of this can be found in the "advanced configurations"
section of the documentation.
</p>
<h2>Contacts</h2>
<p>status600@proton.me</p>
</pre>
Raw data
{
"_id": null,
"home_page": "",
"name": "homeostasis",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "tests,guarantees,vows,oaths,assurances,insurances,ensurances,reliability,consistency,integrity,speed,calmness",
"author": "",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/21/72/bf9dd6033a8926107883751362d375a9cb0594a36889e001614eddac93b5/homeostasis-1.0.10.tar.gz",
"platform": null,
"description": "\n\n<pre>\n\n\n<h1>homeostasis</h1>\n\n\t<h2>description</h2>\n\t\tThis is a module that can reliably\n\t\tascertain the health status of software.\n\t\t\n\t\t(It's like a testing kit)\n\t\t\n\n\t<h2>install</h2>\n\t\t[SH] pip install homeostasis\n\t\n\t<h2>documentation</h2>\n\t\t[SH] homeostasis shares \n\t\n\t<h2>homeostasis of homeostasis (the internal homeostasis of the homeostasis module)</h2>\n\t\t<p>These checks are run with pypi \"body_scan\"</p>\n\t\t<p>\"homeostasis\" is a fork of \"body_scan\"</p>\n\t\t<p>(\"body_scan\" checks are written with \"unittest\")</p>\n\t\n\t\t[SH] homeostasis homeostasis \n\t\n\t<h2>health checks</h2>\n\t\t<p>Checks are started simultaneously, unless \"--simultaneous no\"</p>\n\t\n\t\t<h3>create a status file</h3>\n\t\t\t\n\t\t\t# status_1.py\n\t\t\t\n\t\t\tdef check_1 ():\n\t\t\t\tprint (\"check 1\")\n\t\t\t\t\n\t\t\tdef check_2 ():\n\t\t\t\tprint (\"check 2\")\n\t\t\t\t\n\t\t\tdef check_3 ():\n\t\t\t\traise Exception (\"not 110%\")\n\n\t\t\tchecks = {\n\t\t\t\t\"check 1\": check_1,\n\t\t\t\t\"check 2\": check_2,\n\t\t\t\t\"check 3\": check_3\n\t\t\t}\n\t\t\t\t\t\n\t\t\n\t\t<h3>start from a directory deeper than the status file \"status_1.py\"</h3>\n\t\t\t[SH] homeostasis status\n\n\t\t<h3>The report then should appear like this:</h3>\n\t\t<code>\n\t\t\n\t\t\tpaths: [\n\t\t\t\t{\n\t\t\t\t\t\"path\": \"../status_1.py\",\n\t\t\t\t\t\"empty\": false,\n\t\t\t\t\t\"parsed\": true,\n\t\t\t\t\t\"stats\": {\n\t\t\t\t\t\t\"passes\": 2,\n\t\t\t\t\t\t\"alarms\": 1\n\t\t\t\t\t},\n\t\t\t\t\t\"checks\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"check\": \"check 1\",\n\t\t\t\t\t\t\t\"passed\": true,\n\t\t\t\t\t\t\t\"elapsed\": [\n\t\t\t\t\t\t\t\t4.054199962411076e-05,\n\t\t\t\t\t\t\t\t\"seconds\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"check\": \"check 2\",\n\t\t\t\t\t\t\t\"passed\": true,\n\t\t\t\t\t\t\t\"elapsed\": [\n\t\t\t\t\t\t\t\t1.72930003827787e-05,\n\t\t\t\t\t\t\t\t\"seconds\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"check\": \"check 3\",\n\t\t\t\t\t\t\t\"passed\": false,\n\t\t\t\t\t\t\t\"exception\": \"Exception('not 110%')\",\n\t\t\t\t\t\t\t\"exception trace\": [\n\t\t\t\t\t\t\t\t\"Traceback (most recent call last):\",\n\t\t\t\t\t\t\t\t\" File \\\"/home/veganecology/.local/lib/python3.11/site-packages/homeostasis/processes/scan/process/keg/check.py\\\", line 68, in start\",\n\t\t\t\t\t\t\t\t\" checks [ check ] ()\",\n\t\t\t\t\t\t\t\t\" File \\\"<string>\\\", line 13, in check_3\",\n\t\t\t\t\t\t\t\t\"Exception: not 110%\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t\talarms: [\n\t\t\t\t{\n\t\t\t\t\t\"path\": \"../status_1.py\",\n\t\t\t\t\t\"checks\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"check\": \"check 3\",\n\t\t\t\t\t\t\t\"passed\": false,\n\t\t\t\t\t\t\t\"exception\": \"Exception('not 110%')\",\n\t\t\t\t\t\t\t\"exception trace\": [\n\t\t\t\t\t\t\t\t\"Traceback (most recent call last):\",\n\t\t\t\t\t\t\t\t\" File \\\"/home/veganecology/.local/lib/python3.11/site-packages/homeostasis/processes/scan/process/keg/check.py\\\", line 68, in start\",\n\t\t\t\t\t\t\t\t\" checks [ check ] ()\",\n\t\t\t\t\t\t\t\t\" File \\\"<string>\\\", line 13, in check_3\",\n\t\t\t\t\t\t\t\t\"Exception: not 110%\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t\tstats: {\n\t\t\t\t\"alarms\": 0,\n\t\t\t\t\"empty\": 0,\n\t\t\t\t\"checks\": {\n\t\t\t\t\t\"passes\": 2,\n\t\t\t\t\t\"alarms\": 1\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t</code>\n\t\n\t\n\t<h2>advanced configurations</h2>\n\t<p>\n\t\tIt's recommended to run homeostasis programmatilly.\n\t\tAn example of this can be found in the \"advanced configurations\"\n\t\tsection of the documentation.\n\t</p>\n\n\t<h2>Contacts</h2>\n\t<p>status600@proton.me</p>\n\t\n</pre>\n\t\t\n\t\t\n\t\n",
"bugtrack_url": null,
"license": "GPL 3.0",
"summary": "health checks module",
"version": "1.0.10",
"project_urls": {
"GitLab": "https://gitlab.com/reptilian_climates/modules_series_4/homeostasis"
},
"split_keywords": [
"tests",
"guarantees",
"vows",
"oaths",
"assurances",
"insurances",
"ensurances",
"reliability",
"consistency",
"integrity",
"speed",
"calmness"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2172bf9dd6033a8926107883751362d375a9cb0594a36889e001614eddac93b5",
"md5": "668b759da4df6d5c34bcce1f168b4622",
"sha256": "2ed55f5a55074f1acc8861e41eb3f9c75db9dc0846aaad7d3eab08d30c34a26c"
},
"downloads": -1,
"filename": "homeostasis-1.0.10.tar.gz",
"has_sig": false,
"md5_digest": "668b759da4df6d5c34bcce1f168b4622",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 85976,
"upload_time": "2024-01-07T01:28:13",
"upload_time_iso_8601": "2024-01-07T01:28:13.831874Z",
"url": "https://files.pythonhosted.org/packages/21/72/bf9dd6033a8926107883751362d375a9cb0594a36889e001614eddac93b5/homeostasis-1.0.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-07 01:28:13",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "reptilian_climates",
"gitlab_project": "modules_series_4",
"lcname": "homeostasis"
}