{ "info": { "author": "Stephane Thiell", "author_email": "sthiell@stanford.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: System :: Systems Administration" ], "description": "sasutils is a set of command-line tools and a Python library to ease the administration of Serial Attached SCSI (SAS) fabrics.\n\n.. image:: https://img.shields.io/pypi/v/sasutils.svg\n :target: https://pypi.python.org/pypi/sasutils/\n\n.. image:: https://img.shields.io/pypi/pyversions/sasutils.svg\n :target: https://pypi.python.org/pypi/sasutils/\n :alt: Supported Python Versions\n\n.. image:: https://img.shields.io/pypi/l/sasutils.svg\n :target: https://pypi.python.org/pypi/sasutils/\n :alt: License\n\nsasutils command-line tools\n===========================\n\n* sas_counters\n* sas_devices\n* sas_discover\n* ses_report\n\nAlso, two \"zeroconf\" udev scripts for use in udev rules that create friendly device aliases using SES-2 subenclosure nicknames.\n\n* sas_mpath_snic_alias\n* sas_sd_snic_alias\n\n.. note::\n\n While **sasutils** gets most of the system data from sysfs (/sys), `sg_ses` (available in sg3_utils or sg3-utils)\n and `smp_discover` (available in smp_utils or smp-utils) are required for some SES features to work.\n\nsas_counters\n------------\n\n**sas_counters** reports SAS/SES/SD I/O and phy error counters and provides SAS topology information in an output suitable for Carbon/Graphite.\nThis command also supports SES-2 nicknames as seen in the example below (``io1-sassw1`` is the nickname of a SAS switch and ``io1-jbod1-0`` is the nickname of a JBOD SIM).\n\n .. code-block::\n\n $ sas_counters\n ...\n oak-io1-s1.SAS9300-8e.0x500605b00ab01234.Switch184.io1-sassw1.JB4602_SIM_0.io1-jbod1-0.bays.41.ST8000NM0075.0x5000c50084c79876.ioerr_cnt 2 1487457378\n oak-io1-s1.SAS9300-8e.0x500605b00ab01234.Switch184.io1-sassw1.JB4602_SIM_0.io1-jbod1-0.bays.41.ST8000NM0075.0x5000c50084c79876.iodone_cnt 7154904 1487457378\n oak-io1-s1.SAS9300-8e.0x500605b00ab01234.Switch184.io1-sassw1.JB4602_SIM_0.io1-jbod1-0.bays.41.ST8000NM0075.0x5000c50084c79876.iorequest_cnt 7154906 1487457378\n ...\n oak-io1-s1.SAS9300-8e.0x500605b00ab05678.Switch184.io1-sassw2.phys.15.invalid_dword_count 5 1487457378\n oak-io1-s1.SAS9300-8e.0x500605b00ab05678.Switch184.io1-sassw2.phys.15.loss_of_dword_sync_count 1 1487457378\n oak-io1-s1.SAS9300-8e.0x500605b00ab05678.Switch184.io1-sassw2.phys.15.phy_reset_problem_count 0 1487457378\n oak-io1-s1.SAS9300-8e.0x500605b00ab05678.Switch184.io1-sassw2.phys.15.running_disparity_error_count 1 1487457378\n ...\n\n\nsas_discover\n------------\n\nDisplay SAS topology. By default, **sas_discover** tries to fold common devices (like disks). Use ``-v``, ``-vv`` or ``-vvv`` and ``--addr`` to display more details.\n\n .. code-block::\n\n $ sas_discover -v\n oak-io1-s1\n |--host35 SAS9300-8e\n | `--8x--expander-35:0 ASTEK\n | |--1x--end_device-35:0:0\n | | `--enclosure io1-sassw1 ASTEK\n | `--4x--expander-35:1 QCT\n | |-- 60 x end_device -- disk\n | `-- 1 x end_device -- enclosure io1-jbod1-0 QCT\n `--host36 SAS9300-8e\n `--8x--expander-36:0 ASTEK\n |--1x--end_device-36:0:0\n | `--enclosure io1-sassw2 ASTEK\n `--4x--expander-36:1 QCT\n |-- 60 x end_device -- disk\n `-- 1 x end_device -- enclosure io1-jbod1-1 QCT\n\n\nsas_devices\n-----------\n\nZeroconf tool that scans SAS devices and resolves associated enclosures. Useful to quickly check cabling and hardware setup.\n\nWhen used with -v, **sas_devices** will also display all disk devices with serial numbers.\n\nThe following example shows a proper detection of a 60-disk JBOD with 2 SIMs (an \"enclosure group\").\n\n .. code-block::\n\n $ sas_devices\n Found 2 SAS hosts\n Found 4 SAS expanders\n Found 1 enclosure groups\n Enclosure group: [io1-jbod1-0][io1-jbod1-1]\n NUM VENDOR MODEL REV PATHS\n 60 x SEAGATE ST8000NM0075 E002 2\n Total: 60 block devices in enclosure group\n\n\nses_report\n----------\n\nSES status and environmental metrics.\n\nUsed with -c, this command will find all enclosures and then use SES-2 nicknames and use sg_ses to output results suitable for Carbon/Graphite.\n\n .. code-block::\n\n $ ses_report -c --prefix=datacenter.stanford\n datacenter.stanford.io1-sassw1.Cooling.Left_Fan.speed_rpm 19560 1476486766\n datacenter.stanford.io1-sassw1.Cooling.Right_Fan.speed_rpm 19080 1476486766\n datacenter.stanford.io1-sassw1.Cooling.Center_Fan.speed_rpm 19490 1476486766\n ...\n\nUse -s to get the status of all detected SES Element Descriptors.\n\n .. code-block::\n\n # ses_report -s --prefix=datacenter.stanford | grep SIM\n datacenter.stanford.io1-jbod1-0.Enclosure_services_controller_electronics.SIM_00 OK\n datacenter.stanford.io1-jbod1-0.Enclosure_services_controller_electronics.SIM_01 OK\n datacenter.stanford.io1-jbod1-0.SAS_expander.SAS_Expander_SIM_0 OK\n datacenter.stanford.io1-jbod1-0.SAS_expander.SAS_Expander_ISIM_2 OK\n datacenter.stanford.io1-jbod1-0.SAS_expander.SAS_Expander_ISIM_0 OK\n datacenter.stanford.io1-jbod1-1.Enclosure_services_controller_electronics.SIM_00 OK\n datacenter.stanford.io1-jbod1-1.Enclosure_services_controller_electronics.SIM_01 OK\n datacenter.stanford.io1-jbod1-1.SAS_expander.SAS_Expander_SIM_1 OK\n datacenter.stanford.io1-jbod1-1.SAS_expander.SAS_Expander_ISIM_3 OK\n datacenter.stanford.io1-jbod1-1.SAS_expander.SAS_Expander_ISIM_1 OK\n\n.. warning::\n\n **ses_report** requires a recent version of *sg3_utils* and won't work with the version shipped with CentOS 6 for example.\n\n\nsas_sd_snic_alias\n-----------------\n\nGenerate udev aliases using the SES-2 subenclosure nickname and bay identifier of each device.\n\nFor example, add the following to your udev rules:\n\n .. code-block::\n\n KERNEL==\"sd*\", PROGRAM=\"/usr/bin/sas_sd_snic_alias %k\", SYMLINK+=\"%c\"\n\nThis should generate udev aliases made of the device subenclosure nickname followed by the bay identifier. In the following case, *io1-jbod1-0* is the subenclosure nickname (here SIM 0 of JBOD #1).\n\n .. code-block::\n\n $ ls -l /dev/io1-jbod1-0-bay26\n lrwxrwxrwx 1 root root 4 Oct 14 21:00 /dev/io1-jbod1-0-bay26 -> sdab\n\n.. note::\n\n Use `sg_ses --nickname=...` to define SES-2 subenclosure nicknames.\n\nsas_mpath_snic_alias\n--------------------\n\nThis utility is very similar to **sas_sd_snic_alias** but only accepts device-mapper devices. Add the following line to your udev rules:\n\n .. code-block::\n\n KERNEL==\"dm-[0-9]*\", PROGRAM=\"/usr/bin/sas_mpath_snic_alias %k\", SYMLINK+=\"mapper/%c\"\n\nThis will result in useful symlinks.\n\n .. code-block::\n\n $ ls -l /dev/mapper/io1-jbod1-bay26\n lrwxrwxrwx 1 root root 8 Oct 14 21:00 /dev/mapper/io1-jbod1-bay26 -> ../dm-31\n\n.. note::\n\n For **sas_mpath_snic_alias** to work with a JBOD having two SIMs, both enclosure nicknames should have a common prefix (eg. \"myjbodX-\") that will be automatically used.\n\n\nsasutils Python library\n=======================\n\nDocumentation will be available on the `wiki`_.\n\n* the following example will list all SAS hosts (controllers) found in sysfs\n\n .. code-block:: python\n\n from sasutils.sas import SASHost\n from sasutils.sysfs import sysfs\n\n # sysfs is a helper to walk through sysfs (/sys)\n for node in sysfs.node('class').node('sas_host'):\n\n # Instantiate SASHost with the sas_host sysfs device class\n host = SASHost(node.node('device'))\n\n # To get its sysfs name, use:\n print(host.name)\n # To get attributes from scsi_host, use:\n print(' %s' % host.scsi_host.attrs.host_sas_address)\n print(' %s' % host.scsi_host.attrs.version_fw)\n\n* See also https://github.com/stanford-rc/sasutils/wiki/Code-snippets\n\n:Author: Stephane Thiell - Stanford Research Computing Center\n\n.. _wiki: https://github.com/stanford-rc/sasutils/wiki\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/stanford-rc/sasutils", "keywords": "SAS", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "sasutils", "package_url": "https://pypi.org/project/sasutils/", "platform": "GNU/Linux", "project_url": "https://pypi.org/project/sasutils/", "project_urls": { "Homepage": "https://github.com/stanford-rc/sasutils" }, "release_url": "https://pypi.org/project/sasutils/0.3.9/", "requires_dist": null, "requires_python": "", "summary": "Serial Attached SCSI (SAS) Linux utilities", "version": "0.3.9" }, "last_serial": 3133278, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "19ae832e393892b64d447c10f3ff1849", "sha256": "3c01bad1a977642a5675e753a93241917bf8d64e46ba28ffd4c37d2765b165e4" }, "downloads": -1, "filename": "sasutils-0.1.3.tar.gz", "has_sig": false, "md5_digest": "19ae832e393892b64d447c10f3ff1849", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12102, "upload_time": "2016-10-10T22:02:24", "url": "https://files.pythonhosted.org/packages/56/78/0c376cb5c241f19f04d6262ea57356c7970a30137876995881f8cab7cb09/sasutils-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "34da9ab0ad3e7b5ba393b99dd7f6f587", "sha256": "4bb8f374e53f4ff7a9f3f63c18c08f2ef9a93881f00b93e2fd7bafa128170e95" }, "downloads": -1, "filename": "sasutils-0.1.4.tar.gz", "has_sig": false, "md5_digest": "34da9ab0ad3e7b5ba393b99dd7f6f587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13166, "upload_time": "2016-10-11T03:22:44", "url": "https://files.pythonhosted.org/packages/c0/bc/c22b9fd2da35ed25897c26c7d65c39fb8cb5c403233e700d989314dda5aa/sasutils-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e5de42032362327da0e23fb5e9f8d377", "sha256": "a2d9eea45779a09ef3d3863d1963b9f357ad47dcd10da24ae79e9701eea31c49" }, "downloads": -1, "filename": "sasutils-0.1.5.tar.gz", "has_sig": false, "md5_digest": "e5de42032362327da0e23fb5e9f8d377", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13695, "upload_time": "2016-10-11T06:58:19", "url": "https://files.pythonhosted.org/packages/02/0b/de5df3746842ac863ad9e99c535ad7cf43eefdf54314078efcd787bf8472/sasutils-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "40fed4423415ea6e2b4cd132e5f78850", "sha256": "7ee574ab89ebf7b3a74d59a1c21cef0969c1254f5e4e807b6b8b01b521503054" }, "downloads": -1, "filename": "sasutils-0.1.6.tar.gz", "has_sig": false, "md5_digest": "40fed4423415ea6e2b4cd132e5f78850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15319, "upload_time": "2016-10-14T23:26:42", "url": "https://files.pythonhosted.org/packages/f8/a7/2917174f8cbb9a4ef216151e9a074c861a207b65d2fb8eec9494a57b35fb/sasutils-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "6bf0a0103dcffce0e98ab1e88ee881b7", "sha256": "e898e545252d668f917df89bb1b4233a69b1346c5f3665c9cb710d8ed86e82a6" }, "downloads": -1, "filename": "sasutils-0.1.7.tar.gz", "has_sig": false, "md5_digest": "6bf0a0103dcffce0e98ab1e88ee881b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16674, "upload_time": "2016-10-15T05:35:40", "url": "https://files.pythonhosted.org/packages/74/de/dd95d09e9572e6ea9876c181a126b9f45972552dca09c39822717caf5f01/sasutils-0.1.7.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "62bdd8cc3fd508b03f5b95ecd8e23e0c", "sha256": "e57d7cf92e261b0a5d6ada824bdc72a5f8486c2d201dbb0932d84e9c7a75a4a6" }, "downloads": -1, "filename": "sasutils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "62bdd8cc3fd508b03f5b95ecd8e23e0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17463, "upload_time": "2016-10-19T06:26:15", "url": "https://files.pythonhosted.org/packages/b1/3f/c530556fe2a0e12dd62edb9d04a49635221ea9fd6024043231329f7f269a/sasutils-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d78c8448c2c4738a0cb12ad3a730ee29", "sha256": "88ef113e0201728d24bfb50693dc8501f78466ff4fa103f4b971e3eb55ffee78" }, "downloads": -1, "filename": "sasutils-0.2.1.tar.gz", "has_sig": false, "md5_digest": "d78c8448c2c4738a0cb12ad3a730ee29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17717, "upload_time": "2016-11-01T05:30:53", "url": "https://files.pythonhosted.org/packages/a5/69/0d44c02650cf6aec369b6009e120e8e86feb69ab21e4fbcdb04bfc622e0c/sasutils-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1fe1b452796d9edafdb1fef473440a0b", "sha256": "02fd8fc71dd567c6f176cc30cb3272f2c407bf3ad3072a4109d1b0a170c64a82" }, "downloads": -1, "filename": "sasutils-0.2.2.tar.gz", "has_sig": false, "md5_digest": "1fe1b452796d9edafdb1fef473440a0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17874, "upload_time": "2016-11-01T17:35:24", "url": "https://files.pythonhosted.org/packages/11/90/355edf32221d6f118424092224ade9bd14c45ed6db5599f6f591cfb27d89/sasutils-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "8cf3ea1c4ea28df3130ce0bf05dbca2f", "sha256": "f8ba23fce0126ff9e90ac5c0771717d279cbe62e9ad8ade39b2c00f5cbc05b0c" }, "downloads": -1, "filename": "sasutils-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8cf3ea1c4ea28df3130ce0bf05dbca2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17998, "upload_time": "2016-11-08T23:17:47", "url": "https://files.pythonhosted.org/packages/eb/fe/7e21f9ce633c7bc061cae955174ab53664b5d31e010b12d15b1884ae1839/sasutils-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "c0cb068e7a8bc64b058884c0c4e27c8f", "sha256": "43a70ff4d750c3a48cd105e4eac494cdba5cb4002f5c227236df89d24245dc0a" }, "downloads": -1, "filename": "sasutils-0.2.4.tar.gz", "has_sig": false, "md5_digest": "c0cb068e7a8bc64b058884c0c4e27c8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18088, "upload_time": "2016-12-05T18:56:16", "url": "https://files.pythonhosted.org/packages/eb/82/9d57452c7bdc84907f25d8917a0890e6150a612226855e84f70890c98782/sasutils-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "6c43134d75cba3083865f2fd8e6e28d4", "sha256": "0d418ac781b2509629db4b93035cf3e841c9ac4a9578ca66e8566fef603647af" }, "downloads": -1, "filename": "sasutils-0.2.5.tar.gz", "has_sig": false, "md5_digest": "6c43134d75cba3083865f2fd8e6e28d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18083, "upload_time": "2016-12-09T22:33:05", "url": "https://files.pythonhosted.org/packages/0a/1c/4fcb5286c300341846aa38a30cd50ca9960db90644ad22299480ff79a4d8/sasutils-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6dc100553862c6d4b46e380098b9ddc0", "sha256": "fec06592f2a9f26e3285279d2f58d3b2ffb2908f03903201dd01f9a500eb04c1" }, "downloads": -1, "filename": "sasutils-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6dc100553862c6d4b46e380098b9ddc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19917, "upload_time": "2017-02-20T04:35:53", "url": "https://files.pythonhosted.org/packages/6d/7f/37b013d83171973c1289af3e00d2e444aa0d217b3abb3fb0e8d721df2133/sasutils-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a05224f9e550c29766557d8ec95c80ee", "sha256": "8ef1657606af9ed1dd11a5f36122ba8b7e9534192a23140dbd0672e478e3297f" }, "downloads": -1, "filename": "sasutils-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a05224f9e550c29766557d8ec95c80ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19939, "upload_time": "2017-02-20T17:20:45", "url": "https://files.pythonhosted.org/packages/c2/00/b0c0236848aca7283f36683c085acad773fde2c92c1bfe206a446b3d6d00/sasutils-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "373a2dc6f0fe03322b2eeed093f74b7d", "sha256": "1d1cf27e31413e441c1bafa1d380c16580a5f1645f5b051314db91cc2476dad8" }, "downloads": -1, "filename": "sasutils-0.3.2.tar.gz", "has_sig": false, "md5_digest": "373a2dc6f0fe03322b2eeed093f74b7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20269, "upload_time": "2017-04-04T21:39:40", "url": "https://files.pythonhosted.org/packages/7e/2c/e6b35c5e10e8b7135c24815f7af8ef46fafaf25335fcd2b475e8a674cb20/sasutils-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "503e707c5153996759d398dfcf6aed04", "sha256": "ea40379a388f31da527625041ea2bc7a9f1c282b66c660da1fd8356c4c16b651" }, "downloads": -1, "filename": "sasutils-0.3.3.tar.gz", "has_sig": false, "md5_digest": "503e707c5153996759d398dfcf6aed04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20457, "upload_time": "2017-05-21T06:28:58", "url": "https://files.pythonhosted.org/packages/79/1c/5b46a97e3ebf31dea3f2f5b3ad7fdc860c970095fbf52c3ec0d0b6d117de/sasutils-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "0e607644eb78586ba464e51ebf818192", "sha256": "27fc0e21131781cdb86f97017a50696aed7846c0034e9775ee89f611c2afa7ea" }, "downloads": -1, "filename": "sasutils-0.3.4.tar.gz", "has_sig": false, "md5_digest": "0e607644eb78586ba464e51ebf818192", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24998, "upload_time": "2017-07-04T19:13:08", "url": "https://files.pythonhosted.org/packages/0f/77/7315e1cc2b858dc4e2d5065d3513f221ec76b3a81b9b0dd7867376956193/sasutils-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "ed255a0e5d471b8a1b795d85e85b9f4e", "sha256": "9edf090823190c449bd16f3ba21b8c4c053e6da223d56dc8c32aca6324569689" }, "downloads": -1, "filename": "sasutils-0.3.5.tar.gz", "has_sig": false, "md5_digest": "ed255a0e5d471b8a1b795d85e85b9f4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24913, "upload_time": "2017-08-16T17:26:16", "url": "https://files.pythonhosted.org/packages/76/cf/2926035ceca499f074d0ec1a26da260a28ca4e84b1294f186fbdb6bb5437/sasutils-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "6aeeb67787df75281cdae19acd5decbe", "sha256": "9a6a49d9de92a5396dbc5845367b8a81df3e9fb9967c7d4f89dad84b88148172" }, "downloads": -1, "filename": "sasutils-0.3.6.tar.gz", "has_sig": false, "md5_digest": "6aeeb67787df75281cdae19acd5decbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24902, "upload_time": "2017-08-18T21:23:02", "url": "https://files.pythonhosted.org/packages/6a/09/f43685824037b9f21e9fc16429324d1ce0828d6dc4983adfec4537f5ec59/sasutils-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "251019911e18ea47b56f50e143bc64e1", "sha256": "01e6d679984e22ca54c9893322f827b97172cb8d6b46a7a19cf3be6ff573cb4c" }, "downloads": -1, "filename": "sasutils-0.3.7.tar.gz", "has_sig": false, "md5_digest": "251019911e18ea47b56f50e143bc64e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23373, "upload_time": "2017-08-18T22:35:38", "url": "https://files.pythonhosted.org/packages/8a/de/350715aa38cb09963a0eb9bf0f126de044ffbc04a9dcfe15ae7826502ac2/sasutils-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "fe8172293371befee2d1fca99d1ced65", "sha256": "e2dd5311062c3707a47d5d71ad6a5b47cd8ef1d3011abf665caaa6032c29aea8" }, "downloads": -1, "filename": "sasutils-0.3.8.tar.gz", "has_sig": false, "md5_digest": "fe8172293371befee2d1fca99d1ced65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27858, "upload_time": "2017-08-18T22:55:02", "url": "https://files.pythonhosted.org/packages/03/84/54534b9fb887fdd00bbed58c18def5ec4f95fd89acffe263eae4f40b8b00/sasutils-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "c3ba58daf01cd9e2182cd7ea3cbe3d31", "sha256": "dd1a7f7d191d3821addce03e262288225d1af8b5a178907544acc8abf91ed3bb" }, "downloads": -1, "filename": "sasutils-0.3.9.tar.gz", "has_sig": false, "md5_digest": "c3ba58daf01cd9e2182cd7ea3cbe3d31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27857, "upload_time": "2017-08-29T22:48:56", "url": "https://files.pythonhosted.org/packages/47/cc/55b3e293c1b325bbcf901707f0a67d791735209dfabf72cb5b53dc4f1fa8/sasutils-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3ba58daf01cd9e2182cd7ea3cbe3d31", "sha256": "dd1a7f7d191d3821addce03e262288225d1af8b5a178907544acc8abf91ed3bb" }, "downloads": -1, "filename": "sasutils-0.3.9.tar.gz", "has_sig": false, "md5_digest": "c3ba58daf01cd9e2182cd7ea3cbe3d31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27857, "upload_time": "2017-08-29T22:48:56", "url": "https://files.pythonhosted.org/packages/47/cc/55b3e293c1b325bbcf901707f0a67d791735209dfabf72cb5b53dc4f1fa8/sasutils-0.3.9.tar.gz" } ] }