{ "info": { "author": "Brett Francis", "author_email": "brett_francis@me.com", "bugtrack_url": null, "classifiers": [], "description": "Copyright (c) 2015 Brett Francis\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nDescription: pyutu\n -----\n .. image:: https://img.shields.io/pypi/v/pyutu.svg\n :target: https://pypi.python.org/pypi/pyutu\n \n .. image:: https://img.shields.io/pypi/dm/pyutu.svg\n :target: https://pypi.python.org/pypi/pyutu\n \n .. image:: https://secure.travis-ci.org/lashex/pyutu.png?branch=master\n :target: http://travis-ci.org/lashex/pyutu\n \n A Python-based CLI and library for cloud pricing APIs. Currently covering `AWS Pricing `_.\n \n **utu** \u2013 from the `Maori `_ language, can be a verb that means to repay, pay, ...\n \n **pyutu** \u2013 when said fast, sounds like \"pay you too\" ... which seems appropriate.\n \n Initially, this library just strives to simplify pulling product details and pricing\n terms from a Service's Offer File for a given Region. That being said, if you\n have some ideas feel free to open an Issue labeled as an `enhancement`.\n \n Installation\n ~~~~~~~~~~~~\n \n .. code-block:: bash\n \n pip install pyutu\n \n \n CLI Examples\n ~~~~~~~~~~~~\n Activate ``help``\n \n .. code-block:: bash\n \n pyutu --help\n \n \n A CLI example that shows details from the pricing index file.\n \n .. code-block:: bash\n \n $> pyutu index\n Format Version: v1.0\n Publication Date: 2015-12-15T23:51:56Z\n Services Offered: AmazonDynamoDB, AmazonVPC, AmazonSimpleDB, AmazonGlacier,\n AmazonEC2, AmazonS3, AmazonSES, AmazonRoute53, AmazonElastiCache, AmazonRDS,\n AmazonRedshift, awskms, AmazonCloudFront\n ...snip...\n \n A CLI example showing how to get EC2 Linux on-demand prices in the default\n region for the ``m4.large`` instance type.\n \n .. code-block:: bash\n \n $> pyutu price ec2 -a operatingSystem Linux -a instanceType m4.large\n Service Alias: AmazonEC2\n URL: https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json\n Region: us-west-2\n Product Terms: OnDemand\n Filtering Attributes: {'instanceType': 'm4.large', 'operatingSystem': 'Linux'}\n Rate Code: 8ZSNJR8WJ5729VXM.JRTCKXETXF.6YS6EN2CT7 price: {\n \"beginRange\": \"0\",\n \"description\": \"$0.139 per Dedicated Usage Linux m4.large Instance Hour\",\n \"effectiveDate\": \"2015-12-01T00:00:00Z\",\n \"endRange\": \"Inf\",\n \"pricePerUnit\": {\n \"USD\": \"0.1390000000\"\n },\n \"regionId\": \"us-west-2\",\n \"sku\": \"8ZSNJR8WJ5729VXM\",\n \"term_description\": \"OnDemand\",\n \"unit\": \"Hrs\"\n }\n Rate Code: B2M25Y2U9824Q5TG.JRTCKXETXF.6YS6EN2CT7 price: {\n \"beginRange\": \"0\",\n \"description\": \"$0.126 per On Demand Linux m4.large Instance Hour\",\n \"effectiveDate\": \"2015-12-01T00:00:00Z\",\n \"endRange\": \"Inf\",\n \"pricePerUnit\": {\n \"USD\": \"0.1260000000\"\n },\n \"regionId\": \"us-west-2\",\n \"sku\": \"B2M25Y2U9824Q5TG\",\n \"term_description\": \"OnDemand\",\n \"unit\": \"Hrs\"\n }\n Rate Code: 62WK2ZX9BN3SYAXW.JRTCKXETXF.6YS6EN2CT7 price: {\n \"beginRange\": \"0\",\n \"description\": \"$0.000 per Linux m4.large Dedicated Host Instance hour\",\n \"effectiveDate\": \"2015-12-01T00:00:00Z\",\n \"endRange\": \"Inf\",\n \"pricePerUnit\": {\n \"USD\": \"0.0000000000\"\n },\n \"regionId\": \"us-west-2\",\n \"sku\": \"62WK2ZX9BN3SYAXW\",\n \"term_description\": \"OnDemand\",\n \"unit\": \"Hrs\"\n }\n Total Prices Found: 3\n Time: 5.768927000000001 secs\n \n \n A CLI example showing how to get EC2 Linux product details in the default region for the shared tenancy ``m4.large`` instance type\n \n .. code-block:: bash\n \n $> pyutu product ec2 -a operatingSystem Linux -a instanceType m4.large -a tenancy Shared\n Service Alias: AmazonEC2\n URL: https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json\n Region: us-west-2\n Product Terms: OnDemand\n Filtering Attributes: {'operatingSystem': 'Linux', 'tenancy': 'Shared', 'instanceType': 'm4.large'}\n Product SKU: B2M25Y2U9824Q5TG product: {\n \"offerCode\": \"AmazonEC2\",\n \"product\": {\n \"attributes\": {\n \"clockSpeed\": \"2.4 GHz\",\n \"currentGeneration\": \"Yes\",\n \"dedicatedEbsThroughput\": \"450 Mbps\",\n \"enhancedNetworkingSupported\": \"Yes\",\n \"instanceFamily\": \"General purpose\",\n \"instanceType\": \"m4.large\",\n \"licenseModel\": \"No License required\",\n \"location\": \"US West (Oregon)\",\n \"locationType\": \"AWS Region\",\n \"memory\": \"8 GiB\",\n \"networkPerformance\": \"Moderate\",\n \"operatingSystem\": \"Linux\",\n \"operation\": \"RunInstances\",\n \"physicalProcessor\": \"Intel Xeon E5-2676 v3 (Haswell)\",\n \"preInstalledSw\": \"NA\",\n \"processorArchitecture\": \"64-bit\",\n \"processorFeatures\": \"Intel AVX; Intel AVX2; Intel Turbo\",\n \"servicecode\": \"AmazonEC2\",\n \"storage\": \"EBS only\",\n \"tenancy\": \"Shared\",\n \"usagetype\": \"USW2-BoxUsage:m4.large\",\n \"vcpu\": \"2\"\n },\n \"productFamily\": \"Compute Instance\",\n \"sku\": \"B2M25Y2U9824Q5TG\"\n },\n \"regionId\": \"us-west-2\",\n \"term\": {\n \"B2M25Y2U9824Q5TG.JRTCKXETXF\": {\n \"effectiveDate\": \"2015-12-01T00:00:00Z\",\n \"offerTermCode\": \"JRTCKXETXF\",\n \"priceDimensions\": {\n \"B2M25Y2U9824Q5TG.JRTCKXETXF.6YS6EN2CT7\": {\n \"appliesTo\": [],\n \"beginRange\": \"0\",\n \"description\": \"$0.126 per On Demand Linux m4.large Instance Hour\",\n \"endRange\": \"Inf\",\n \"pricePerUnit\": {\n \"USD\": \"0.1260000000\"\n },\n \"rateCode\": \"B2M25Y2U9824Q5TG.JRTCKXETXF.6YS6EN2CT7\",\n \"unit\": \"Hrs\"\n }\n },\n \"sku\": \"B2M25Y2U9824Q5TG\",\n \"termAttributes\": {}\n }\n },\n \"term_description\": \"OnDemand\"\n }\n Total Products Found: 1\n Time: 5.734775 secs\n \n \n A CLI example showing how to get all on-demand DDB prices in the default region.\n \n .. code-block:: bash\n \n $> pyutu price ddb\n Service Alias: AmazonDynamoDB\n URL: https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/index.json\n Region: us-west-2\n Product Terms: OnDemand\n Filtering Attributes: {}\n Rate Code: VTDJ9RVHJGJP999U.JRTCKXETXF.6YS6EN2CT7 price: {\n \"beginRange\": \"0\",\n \"description\": \"$0.00 per GB - US West (Oregon) data transfer from EUC1 (FRA)\",\n \"effectiveDate\": \"2015-07-01T00:00:00Z\",\n \"endRange\": \"Inf\",\n \"pricePerUnit\": {\n \"USD\": \"0.0000000000\"\n },\n \"regionId\": \"us-west-2\",\n \"sku\": \"VTDJ9RVHJGJP999U\",\n \"term_description\": \"OnDemand\",\n \"unit\": \"GB\"\n }\n ...snip...\n Total Prices Found: 31\n Time: 0.417241 secs\n \nPlatform: UNKNOWN\nClassifier: Intended Audience :: Developers\nClassifier: Natural Language :: English\nClassifier: Environment :: Web Environment\nClassifier: License :: OSI Approved :: MIT License\nClassifier: Operating System :: OS Independent\nClassifier: Development Status :: 4 - Beta\nClassifier: Programming Language :: Python\nClassifier: Programming Language :: Python :: 2.7\nClassifier: Programming Language :: Python :: 3.2\nClassifier: Programming Language :: Python :: 3.3\nClassifier: Programming Language :: Python :: 3.4\nClassifier: Programming Language :: Python :: 3.5\nClassifier: Topic :: Software Development :: Libraries :: Python Modules\nClassifier: Topic :: Utilities\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/lashex/pyutu", "keywords": "", "license": "The MIT License (MIT)", "maintainer": "", "maintainer_email": "", "name": "pyutu", "package_url": "https://pypi.org/project/pyutu/", "platform": "", "project_url": "https://pypi.org/project/pyutu/", "project_urls": { "Homepage": "https://github.com/lashex/pyutu" }, "release_url": "https://pypi.org/project/pyutu/0.4.7/", "requires_dist": [ "CacheControl (>=0.11.5)", "click (>=6.2)", "lockfile (>=0.12.2)", "requests (>=2.9.1)" ], "requires_python": "", "summary": "Python library for interaction with the AWS Pricing API", "version": "0.4.7" }, "last_serial": 2250220, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "047b13a80d19b3b8f96e81df39238402", "sha256": "e3d99d76157082edcfc9c3baeda1ea66036c9431ff2cce47cc19ed8ff3b99bb1" }, "downloads": -1, "filename": "pyutu-0.4.0-py3.5.egg", "has_sig": false, "md5_digest": "047b13a80d19b3b8f96e81df39238402", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 4073, "upload_time": "2015-12-28T19:12:25", "url": "https://files.pythonhosted.org/packages/ef/e8/a6cbcd6f57ea4770d62efd0fe5d0704ab98662239d0c01e2b4debbdac70e/pyutu-0.4.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "e98a1650c258a3430048505e787a8945", "sha256": "959ec5ae512f84a96144ff7d6849a124c71133e414db682358109337f6f9c4aa" }, "downloads": -1, "filename": "pyutu-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e98a1650c258a3430048505e787a8945", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4570, "upload_time": "2015-12-28T19:12:32", "url": "https://files.pythonhosted.org/packages/74/4e/6bb7399c77c709840ad6935cb1f56939905c253c45c502a26cda92d1dc84/pyutu-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ab5a519c3a53d89682cdb923a2d4d3f0", "sha256": "a7be9ca015d92864bb7083b1b9e03267bd93e8b82dfe457dae43247736ec26af" }, "downloads": -1, "filename": "pyutu-0.4.1-py3.5.egg", "has_sig": false, "md5_digest": "ab5a519c3a53d89682cdb923a2d4d3f0", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 4065, "upload_time": "2015-12-28T19:48:08", "url": "https://files.pythonhosted.org/packages/36/73/bd7e5007500186ea7547871d3734e64247253a55d5632171ab62a2e6a687/pyutu-0.4.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "fcfd31b534aea0bcdffc0939af84b0da", "sha256": "33344addb96633b081b96ad69c0cc03422b6a57f8ea6997ed9fd6c060ecc7f46" }, "downloads": -1, "filename": "pyutu-0.4.1.tar.gz", "has_sig": false, "md5_digest": "fcfd31b534aea0bcdffc0939af84b0da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4563, "upload_time": "2015-12-28T19:48:15", "url": "https://files.pythonhosted.org/packages/a5/06/1b3762a37e7cb0e7ad07b2993d5eef9baeec64b9a51ec54a5717c77a8f12/pyutu-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "e0dfe1060f590af3f1eabec336f10eb9", "sha256": "393c8529c6c4d703c5f95ff802402f8bb2de3585ce61b95f27247fb71b121e9c" }, "downloads": -1, "filename": "pyutu-0.4.2-py3.5.egg", "has_sig": false, "md5_digest": "e0dfe1060f590af3f1eabec336f10eb9", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 4066, "upload_time": "2015-12-28T19:49:36", "url": "https://files.pythonhosted.org/packages/10/fe/d0a386744b7b482c9c0354524b313ef66fe62d1172cfe5c1c67bfa549ca7/pyutu-0.4.2-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "7c108bcbb7a53101081d50d37db64665", "sha256": "cd5bbd08373bf0a6d84a568401357c8655c2a254e5c2aee7970d46f010857d63" }, "downloads": -1, "filename": "pyutu-0.4.2.tar.gz", "has_sig": false, "md5_digest": "7c108bcbb7a53101081d50d37db64665", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4563, "upload_time": "2015-12-28T19:49:41", "url": "https://files.pythonhosted.org/packages/a1/5e/6289ba7f1796f3daef29989391c126a099443b02ca95d4d10a40fa61e6c0/pyutu-0.4.2.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "9740a18209457d93326d17ace687f59a", "sha256": "c076ac4edcb6e7f7ca276271d44bc06651b24ab272356d4a6cb6b90de33f8d13" }, "downloads": -1, "filename": "pyutu-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9740a18209457d93326d17ace687f59a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7975, "upload_time": "2016-07-28T17:19:59", "url": "https://files.pythonhosted.org/packages/8d/b8/96ac525ab08015815d7b8da614b54e7a6ac450483ca5f2dcd2a4bfbc8dac/pyutu-0.4.4-py2.py3-none-any.whl" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "86d4a666b1937fde127a49a2fe365b0d", "sha256": "6331c78d0c1a3ed9e86931c69bf3ac5c9b1b97b6e7b53e81546bee469c7a1c54" }, "downloads": -1, "filename": "pyutu-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "86d4a666b1937fde127a49a2fe365b0d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12886, "upload_time": "2016-07-28T20:44:59", "url": "https://files.pythonhosted.org/packages/77/9c/a76899e975c692d74cb165e9abddc97115932c43b92e918d1366e609997b/pyutu-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00a908861dce111cb0a82bbaf0eec806", "sha256": "044e33ebc0ba89ab608c175a6320f51b57c3a340c2fc1dff3c09567cfbc05543" }, "downloads": -1, "filename": "pyutu-0.4.5.tar.gz", "has_sig": false, "md5_digest": "00a908861dce111cb0a82bbaf0eec806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8594, "upload_time": "2016-07-28T20:45:02", "url": "https://files.pythonhosted.org/packages/9d/2a/0ed88804e6c8454b9015f0ba14b0802b33c62f7425d441d54719030bb8b7/pyutu-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "b21cfd58df0222400b532e5a88cd90e3", "sha256": "a416ad24e0f895d5f42501948de09914cecfe5748c5c41d2e9e94be47df1be56" }, "downloads": -1, "filename": "pyutu-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b21cfd58df0222400b532e5a88cd90e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12906, "upload_time": "2016-07-28T21:06:53", "url": "https://files.pythonhosted.org/packages/be/93/088e5c3410c9619e94ca2ebb30e5a161ba6478d868167029463598ca09d5/pyutu-0.4.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f837a4253ccf1a5ea9782df00632a8c", "sha256": "4f74767bff0393b8e6c2768a6892d2ea020e7fe7dc4b80262a49c2759e6e2430" }, "downloads": -1, "filename": "pyutu-0.4.6.tar.gz", "has_sig": false, "md5_digest": "9f837a4253ccf1a5ea9782df00632a8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8610, "upload_time": "2016-07-28T21:06:55", "url": "https://files.pythonhosted.org/packages/53/bd/7877fbdbdc708664697dd2eed8578fc09dc63a5c921630817cc171a05ca0/pyutu-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "099c53c0472b5840bab0be1273073152", "sha256": "a5236257fdc5be9b6766598cdbb81278e5adde2e1057f0069cec428e4363fa50" }, "downloads": -1, "filename": "pyutu-0.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "099c53c0472b5840bab0be1273073152", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12933, "upload_time": "2016-07-28T23:05:00", "url": "https://files.pythonhosted.org/packages/86/f5/f7fecbb74860049484954741fb7b86d01e3d1b04db40d320df6e575a901f/pyutu-0.4.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "607ca843e9b103bcb9e0009bbc77a444", "sha256": "d9edfb671ec0cad1a44de0b3d0e81196d75f44d56064b1cbf63870a984575170" }, "downloads": -1, "filename": "pyutu-0.4.7.tar.gz", "has_sig": false, "md5_digest": "607ca843e9b103bcb9e0009bbc77a444", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8633, "upload_time": "2016-07-28T23:05:03", "url": "https://files.pythonhosted.org/packages/9a/dd/1fb73a029348c4d06e318288baa381c1568dd6efd493086003462013f911/pyutu-0.4.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "099c53c0472b5840bab0be1273073152", "sha256": "a5236257fdc5be9b6766598cdbb81278e5adde2e1057f0069cec428e4363fa50" }, "downloads": -1, "filename": "pyutu-0.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "099c53c0472b5840bab0be1273073152", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12933, "upload_time": "2016-07-28T23:05:00", "url": "https://files.pythonhosted.org/packages/86/f5/f7fecbb74860049484954741fb7b86d01e3d1b04db40d320df6e575a901f/pyutu-0.4.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "607ca843e9b103bcb9e0009bbc77a444", "sha256": "d9edfb671ec0cad1a44de0b3d0e81196d75f44d56064b1cbf63870a984575170" }, "downloads": -1, "filename": "pyutu-0.4.7.tar.gz", "has_sig": false, "md5_digest": "607ca843e9b103bcb9e0009bbc77a444", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8633, "upload_time": "2016-07-28T23:05:03", "url": "https://files.pythonhosted.org/packages/9a/dd/1fb73a029348c4d06e318288baa381c1568dd6efd493086003462013f911/pyutu-0.4.7.tar.gz" } ] }