{ "info": { "author": "Herkermer Sherwood", "author_email": "theherk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "License :: Other/Proprietary License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Utilities" ], "description": "pinkopy\n=======\n\n|Build Status| |PyPI Version| |PyPI Downloads| |Join the chat at\nhttps://gitter.im/theherk/pinkopy|\n\npinkopy is a Python wrapper for the Commvault api. Support for Commvault\nv11 api was added in v2.0.0.\n\nInstallation\n------------\n\nfrom PyPI\n~~~~~~~~~\n\n::\n\n pip install pinkopy\n\nfrom source\n~~~~~~~~~~~\n\n::\n\n git clone git@github.com:theherk/pinkopy.git\n pip install pinkopy\n\nUsage\n-----\n\n.. code:: python\n\n from pinkopy import CommvaultSession\n\n config = {\n 'service': 'service url',\n 'user': 'username',\n 'pw': 'password'\n }\n\n with CommvaultSession(**config) as commvault:\n client_jobs = commvault.jobs.get_jobs('1234', job_filter=\"Backup\")\n cust_jobs = commvault.jobs.get_subclient_jobs(client_jobs, '12345678', last=3)\n # multi status\n for job in cust_jobs:\n job_id = job['jobSummary']['jobId']\n job_details = commvault.jobs.get_job_details('1234', job_id)\n job_vmstatus = commvault.jobs.get_job_vmstatus(job_details)\n\npinkopy doesn't have to be used as a context manager.\n\n.. code:: python\n\n commvault = CommvaultSession(**config)\n\npinkopy used to have all the methods on one class. Now, the methods are\ndivided among several classes and are similar to how the api, itself, is\nlaid out. However, the methods that existed when the modularity was\nintroduced, a shim was also introduced to be backwards compatible. So\nthose methods can be called on the CommvaultSession instance directly.\n\n.. code:: python\n\n client_properties = commvault.clients.get_client_properties('2234')\n # or the old way\n client_properties = commvault.get_client_properties('2234')\n\nThis way, you old code works. In addition, you can instantiate just the\nsession you need if you prefer.\n\n.. code:: python\n\n with SubclientSession(**config) as subclients:\n subclients = subclients.get_subclients('2234')\n\nCache\n~~~~~\n\nThe biggest introduction in 2.0.0 was an improved take on caching.\nRather than implementing our own ill-conceived cache, we implemented a\ngreat\n`ttl\\_cache `__\nthat uses\n`lru\\_cache `__\nfrom the core library. It is from a library called\n`cachetools `__. The\nimplementation allows you to pass in a list of methods you want to use\nthis cache or provides very sensible defaults if you don't.\n\nThe cache, for the duration of ``cache_ttl``, will respond with the\nprevious return value without running the function. So, for instance,\nthe ``get_clients`` call could take several seconds on the first call,\nbut only a few milliseconds on following calls.\n\nBy default, we cache for 20 minutes, but you can set this value, too.\n\n.. code:: python\n\n cache_methods = ['get_clients', 'get_subclients']\n with CommvaultSession(cache_ttl=120, cache_methods=cache_methods, **config) as commvault:\n clients1 = commvault.clients.get_clients() # slow\n clients2 = commvault.clients.get_clients() # fast\n # ... fast\n\nOr turn off the cache entirely.\n\n.. code:: python\n\n with CommvaultSession(use_cache=False, **config) as commvault:\n clients1 = commvault.clients.get_clients() # slow\n clients2 = commvault.clients.get_clients() # slow but fresh\n\nContribution\n------------\n\nPlease do contribute to this repository. It currently only supports a\nsmall set of the api provided by Commvault. However, if you do\ncontribute, please follow these guidelines.\n\nGuidelines\n~~~~~~~~~~\n\n- Use\n `Gitflow `__.\n Your pull requests must come from a Gitflow branch.\n\n - feature/yourfeature\n - bugfix/issuenumber\n\n- **ONLY** imperative commit messages. Line one is one imperative,\n brief sentence. Following lines may have more details.\n- Builds must pass (which should be pretty easy right now, since there\n are no tests).\n- Never commit binary files.\n- Make sure you are committing with your Github user.\n\n--------------\n\nName\n^^^^\n\nThe name was originally going to be commpy, but then I liked commiepy.\nFrom here it was only a small leap to pinkopy, a tribute to a dear\nfriend of mine.\n\n.. |Build Status| image:: https://travis-ci.org/theherk/pinkopy.svg\n :target: https://travis-ci.org/theherk/pinkopy\n.. |PyPI Version| image:: https://img.shields.io/pypi/v/pinkopy.svg\n :target: https://pypi.python.org/pypi/pinkopy\n.. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/pinkopy.svg\n :target: https://pypi.python.org/pypi/pinkopy\n.. |Join the chat at https://gitter.im/theherk/pinkopy| image:: https://badges.gitter.im/theherk/pinkopy.svg\n :target: https://gitter.im/theherk/pinkopy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/theherk/pinkopy/archive/2.1.2.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/theherk/pinkopy", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "pinkopy", "package_url": "https://pypi.org/project/pinkopy/", "platform": "all", "project_url": "https://pypi.org/project/pinkopy/", "project_urls": { "Download": "https://github.com/theherk/pinkopy/archive/2.1.2.zip", "Homepage": "https://github.com/theherk/pinkopy" }, "release_url": "https://pypi.org/project/pinkopy/2.1.2/", "requires_dist": null, "requires_python": null, "summary": "Python wrapper for Commvault api", "version": "2.1.2" }, "last_serial": 2369695, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "319979b4490d1aef28ca290e57e60874", "sha256": "866a0d94515e63225484e6d04b371edfe3c9ae909c4b68369f3f26afc1198252" }, "downloads": -1, "filename": "pinkopy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "319979b4490d1aef28ca290e57e60874", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5089, "upload_time": "2015-10-13T03:12:28", "url": "https://files.pythonhosted.org/packages/7e/1e/cd2ae3ff973caa2e7ea16852dad18418f1e91831aa6810d659fe77bac2e3/pinkopy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d6112552a1464f19682a6a872a37988e", "sha256": "4f28ed10938d9518e3f3a91889c8238e532d1b7ea0f37447fbaf5e6ee7a70d19" }, "downloads": -1, "filename": "pinkopy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d6112552a1464f19682a6a872a37988e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5160, "upload_time": "2015-10-13T18:06:54", "url": "https://files.pythonhosted.org/packages/8e/54/86acb6e5f938f86f2ebb75a4c507bc1b7ba34fcee4c8e67db977d76cef8c/pinkopy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "280b7903a9e01409938bdb0352b0fc2d", "sha256": "8442f44692c32334ba90616f9618ec0695c77e17b5ec134d426381c0d5c5cc25" }, "downloads": -1, "filename": "pinkopy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "280b7903a9e01409938bdb0352b0fc2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5246, "upload_time": "2015-10-22T17:38:04", "url": "https://files.pythonhosted.org/packages/49/d8/f0ddd035123565906906449a253ddec622a999dc2ca08e762ca251e08164/pinkopy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "023eba6d1ca4f1ced16d3cb55dbcf38a", "sha256": "23cc7ecbefeb3928ac74f531a1ce366f38d86cb9d443944b5ae7d6ca75dd854d" }, "downloads": -1, "filename": "pinkopy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "023eba6d1ca4f1ced16d3cb55dbcf38a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5465, "upload_time": "2015-10-27T22:56:38", "url": "https://files.pythonhosted.org/packages/5a/af/cb3634f130dd8a62d4133572603e5c72d23b12e7c4eaddd2db00b0cdb4d0/pinkopy-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "3f264f58fdb52251c940eae754c95014", "sha256": "9b80646a63f181343d8654d1f29298ccfb7eea469bbbaf6274d6eed5d35a8cba" }, "downloads": -1, "filename": "pinkopy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "3f264f58fdb52251c940eae754c95014", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6116, "upload_time": "2015-11-09T22:05:17", "url": "https://files.pythonhosted.org/packages/3e/ce/0147ba2fe014e0ac57d94ffdaac7af15fd72225db581f559cced60dbea75/pinkopy-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "47b7321dfcee1b89e1e1d564f6df994c", "sha256": "909fb98ee14694f101cac91fa477b9dbe22b9e31adda6c79feb74fb902fddd19" }, "downloads": -1, "filename": "pinkopy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "47b7321dfcee1b89e1e1d564f6df994c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6286, "upload_time": "2015-11-12T16:41:49", "url": "https://files.pythonhosted.org/packages/6b/2b/410cd02d4e1b38838523aa81100b2869afaa1817819a97e769c430d1e9f7/pinkopy-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "9fc2bb3ea7c2f299b788579810279a5d", "sha256": "eb8b69ecbb0ec3480ad85c033a302975126778620572a93e6c51902d2fe8f5f5" }, "downloads": -1, "filename": "pinkopy-1.1.0.tar.gz", "has_sig": false, "md5_digest": "9fc2bb3ea7c2f299b788579810279a5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6464, "upload_time": "2015-11-13T23:47:33", "url": "https://files.pythonhosted.org/packages/27/ba/b11c7422f7f9818e0b3bc4eee8e55aa2598f3599d17a7593c310af9a2605/pinkopy-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "64b24937fd321f108b40f01583f37d7c", "sha256": "0ae5044f47bb5af6abb72a0dc32c3545657d34f4e9b736bca56355145d5e6894" }, "downloads": -1, "filename": "pinkopy-1.2.0.tar.gz", "has_sig": false, "md5_digest": "64b24937fd321f108b40f01583f37d7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6466, "upload_time": "2015-11-19T23:23:40", "url": "https://files.pythonhosted.org/packages/59/27/dc6ffa5d556b8c1e0c94c11107aec7c42330558fb856e1f1c3f3e435d64a/pinkopy-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "0b473a194a538070319b7403ad6094a0", "sha256": "48e1436b6e5bddb8749bcf96f1696fdc77fdc9143fb68467f0bbe2603bb1d020" }, "downloads": -1, "filename": "pinkopy-1.2.1.tar.gz", "has_sig": false, "md5_digest": "0b473a194a538070319b7403ad6094a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7023, "upload_time": "2016-03-01T22:43:36", "url": "https://files.pythonhosted.org/packages/d9/a9/e3c0734f01f1b589396ffb5898f525a4fe754f156f863e87329f1c26753d/pinkopy-1.2.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "17a08bdd56b9a8f3db2c490854f90d74", "sha256": "9bf6b49272fde9bbe9f50c66a2d9f452886e64450c311709a92be9d0fb252624" }, "downloads": -1, "filename": "pinkopy-2.0.0.tar.gz", "has_sig": false, "md5_digest": "17a08bdd56b9a8f3db2c490854f90d74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9059, "upload_time": "2016-03-10T03:31:17", "url": "https://files.pythonhosted.org/packages/05/f9/6f1f5c10caa04d464539af1b143bd50e983533b21f039a9d4c468911efe3/pinkopy-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "aa1c3db0c250d634831866a28ba4b8e7", "sha256": "8f7ef52e53aa980752c92aa48c299e312cb3827f09e30d1a1a80166b0dcb5bc6" }, "downloads": -1, "filename": "pinkopy-2.0.1.tar.gz", "has_sig": false, "md5_digest": "aa1c3db0c250d634831866a28ba4b8e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9063, "upload_time": "2016-03-10T03:36:14", "url": "https://files.pythonhosted.org/packages/a4/e2/7d9c033dbea85ab5e66aadacfc211473c346535021f903b4d278e5c846e8/pinkopy-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "f03367f9aaefa35674850206b5d0a521", "sha256": "139b52d3d259eac189b2571085badaa6ab468f18b6fe6cda6cb5e39d8c5631da" }, "downloads": -1, "filename": "pinkopy-2.0.2.tar.gz", "has_sig": false, "md5_digest": "f03367f9aaefa35674850206b5d0a521", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9061, "upload_time": "2016-03-10T03:49:50", "url": "https://files.pythonhosted.org/packages/49/fe/6aa9486e1a09466aa81e9966951d0ba3f89c5042058590e6a2cb3f2f3134/pinkopy-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "3f59fc5bab80cecaed72aa2d2dc8067b", "sha256": "bab44d4d5092bd964a083c6fc927e98882c1ebf669b2927bfa191f547f708b4a" }, "downloads": -1, "filename": "pinkopy-2.0.3.tar.gz", "has_sig": false, "md5_digest": "3f59fc5bab80cecaed72aa2d2dc8067b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9346, "upload_time": "2016-03-10T04:06:19", "url": "https://files.pythonhosted.org/packages/94/f3/79b0dbc4da7727abe0676f4940f833a18325d967349d692f0c553c9fd34f/pinkopy-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "01d1cc163f0333ea36d721333d2a2f6f", "sha256": "9ce8a2b6f7bbd33d4d02e76272c1195d1e08f1332eb89bc64cc969bad9a1619a" }, "downloads": -1, "filename": "pinkopy-2.0.4.tar.gz", "has_sig": false, "md5_digest": "01d1cc163f0333ea36d721333d2a2f6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9346, "upload_time": "2016-03-11T01:47:33", "url": "https://files.pythonhosted.org/packages/5a/f7/fb69312d6658d9c5d3c709b86d162d3b9326def34362cbf38658109af089/pinkopy-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "356b8a7276a031aefc8200300dfc0cc1", "sha256": "24814a809bb8da0b1581f45eff92cf3a9230e7069f5c8471ac7186765025a578" }, "downloads": -1, "filename": "pinkopy-2.0.5.tar.gz", "has_sig": false, "md5_digest": "356b8a7276a031aefc8200300dfc0cc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11529, "upload_time": "2016-04-05T21:08:47", "url": "https://files.pythonhosted.org/packages/35/0c/b5bb3adb7882be02846861e994ce521829044c7810f667f6b26d150afab4/pinkopy-2.0.5.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "0499d6ffe977d6bec09727a0df90592e", "sha256": "4f5337a456ccce4698afdd51b357f31d5d1c24492e05f8c31563939a0bbb3018" }, "downloads": -1, "filename": "pinkopy-2.1.0.tar.gz", "has_sig": false, "md5_digest": "0499d6ffe977d6bec09727a0df90592e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11291, "upload_time": "2016-08-04T21:13:21", "url": "https://files.pythonhosted.org/packages/5d/af/05491a46a235cd7963c72cd1d4161dc008135297b7d688cfca57b50259e7/pinkopy-2.1.0.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "95eb74b9743f27d43025a31495524834", "sha256": "8be594a35bce418dd5326952290fc748c986bdc917ea0972fe3f241bbaac419d" }, "downloads": -1, "filename": "pinkopy-2.1.2.tar.gz", "has_sig": false, "md5_digest": "95eb74b9743f27d43025a31495524834", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11329, "upload_time": "2016-09-28T22:20:49", "url": "https://files.pythonhosted.org/packages/bb/e1/7589740bf65e59df966c75b5751f8621bc988515c1954ca71ccb3b1a0c32/pinkopy-2.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "95eb74b9743f27d43025a31495524834", "sha256": "8be594a35bce418dd5326952290fc748c986bdc917ea0972fe3f241bbaac419d" }, "downloads": -1, "filename": "pinkopy-2.1.2.tar.gz", "has_sig": false, "md5_digest": "95eb74b9743f27d43025a31495524834", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11329, "upload_time": "2016-09-28T22:20:49", "url": "https://files.pythonhosted.org/packages/bb/e1/7589740bf65e59df966c75b5751f8621bc988515c1954ca71ccb3b1a0c32/pinkopy-2.1.2.tar.gz" } ] }