{ "info": { "author": "Jo\u00e3o Pinto", "author_email": "lamego.pinto@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: Freely Distributable", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Testing", "Topic :: Utilities" ], "description": "# dinterpol\n\n[![PyPI Version][pypi-v-image]][pypi-v-link]\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/ambv/black)\n---\n\ndinterpol is a python library for data interpolation that supports both scalar and structured types generation.\n\n\n## Motivation\nWhen dealing with structured data types like dictionaries, or data formats like JSON and YAML it can be useful to generate scalar or structured types resulting from the interpolation of multiple input elements. Python3 provides several standard string interpolation mechanisms: [string.Template()], [f-strings] and [str.format()], but because they all return strings, they are not suitable for structured with non string data interpolation.\n\n\n[string.Template()]: https://docs.python.org/3/library/string.html#string.Template\n[f-strings]: https://docs.python.org/3/reference/lexical_analysis.html#f-strings\n[str.format()]: https://docs.python.org/3/library/stdtypes.html#str.format\n\nUsage example:\n\n```python\nfrom dinterpol import Template\n\ndata = {\n \"product\": \"pie\",\n \"quantity\": 33,\n \"price\": 14,\n \"details\": { \"size\": 10, \"flavour\": \"orange\"}\n}\n\n# simple key interpolation for string generation\nTemplate(\"We have $quantity$ $product$(s)\").render(data)\n'We have 33 pie(s)'\n\n# python expression for string generation, expression result concatnated with string\nTemplate(\"Total price is $quantity * price$\").render(data)\n'Total price is 426'\n\n# python expression for dict generation, type inferred directly from expression's eval()\nTemplate({ \"total\": \"$quantity * price$\"}).render(data)\n{'total': 426}\n\n# Use attribute style references for key access\nTemplate(\"$details.size$\").render(data)\n10\n\n```\n\n\n## Code of Conduct\n\nEveryone interacting in the dinterpol project's codebase, issue trackers, chat\nrooms, and mailing lists is expected to follow the [PyPA Code of Conduct].\n\n\n[appveyor-image]: https://img.shields.io/appveyor/ci/d0ugal/Openpipe/master.svg\n[appveyor-link]: https://ci.appveyor.com/project/d0ugal/Openpipe\n[codecov-image]: http://codecov.io/github/Openpipe/dinterpol/coverage.svg?branch=master\n[codecov-link]: http://codecov.io/github/Openpipe/dinterpol?branch=master\n[landscape-image]: https://landscape.io/github/Openpipe/dinterpol/master/landscape.svg?style=flat\n[landscape-link]: https://landscape.io/github/Openpipe/dinterpol/master\n[pypi-v-image]: https://img.shields.io/pypi/v/dinterpol.svg\n[pypi-v-link]: https://pypi.org/project/dinterpol/\n[travis-image]: https://img.shields.io/travis/Openpipe/dinterpol/master.svg\n[travis-link]: https://travis-ci.org/Openpipe/dinterpol\n\n[dinterpol]: https://dinterpol.Openpipe.org\n[PyPA Code of Conduct]: https://www.pypa.io/en/latest/code-of-conduct/\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/Openpipe/dinterpol", "keywords": "", "license": "Apache-2", "maintainer": "", "maintainer_email": "", "name": "dinterpol", "package_url": "https://pypi.org/project/dinterpol/", "platform": "", "project_url": "https://pypi.org/project/dinterpol/", "project_urls": { "Homepage": "https://github.com/Openpipe/dinterpol" }, "release_url": "https://pypi.org/project/dinterpol/0.3.2/", "requires_dist": [ "pyyaml", "click" ], "requires_python": "", "summary": "data interpolation templating engine", "version": "0.3.2" }, "last_serial": 5107912, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "66390618e7410c5a9d37aef9cdfbccb4", "sha256": "15f813dc9518ca37d450f12ad6620acdcd3b478c75ae71ae67dea34bc2a834f8" }, "downloads": -1, "filename": "dinterpol-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66390618e7410c5a9d37aef9cdfbccb4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4953, "upload_time": "2018-11-19T17:55:36", "url": "https://files.pythonhosted.org/packages/10/6d/3d511814cd29971aa99ed837487999fb84343280edb2a70b48537f7c497b/dinterpol-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99da842a06e74eccbfb68a34975bff33", "sha256": "fc125817cbbcc4734eb72eea0f7c3f4b8de5c236b9e857eab1a207ef1f430bc9" }, "downloads": -1, "filename": "dinterpol-0.1.0.tar.gz", "has_sig": false, "md5_digest": "99da842a06e74eccbfb68a34975bff33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4677, "upload_time": "2018-11-19T17:55:38", "url": "https://files.pythonhosted.org/packages/15/55/d896df616edcf3fcb39e01d955829a8d6fffbaeaf1060a636bd39b6947fb/dinterpol-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c6d62f1111d9b2a795f2978b5a5f59a1", "sha256": "663c16806413cc22dcc91145af371d02a6fab44fda3668d047496bbb75e335b3" }, "downloads": -1, "filename": "dinterpol-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c6d62f1111d9b2a795f2978b5a5f59a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4949, "upload_time": "2018-11-19T21:36:40", "url": "https://files.pythonhosted.org/packages/a7/22/2a3a751d399a316083ab6ed0172a8a5973166af33abc6964377fb0938b39/dinterpol-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4a92d55c758d1614baecd3804e58e52", "sha256": "644bb4f39b3ab38b8584ff0a6c3914108607e143d211c9f414e33c3133952527" }, "downloads": -1, "filename": "dinterpol-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e4a92d55c758d1614baecd3804e58e52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4635, "upload_time": "2018-11-19T21:36:42", "url": "https://files.pythonhosted.org/packages/cd/8a/451aa281329da611f31405a658ff536e350c0c9b1188b3efb0aaee5a463a/dinterpol-0.1.1.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "5a11ee12bcafa9e49139fcd2a820162f", "sha256": "7abe9800725e5d4d14aed70f7940d1822086fe3b0ffaf375361872e2c2afbce2" }, "downloads": -1, "filename": "dinterpol-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5a11ee12bcafa9e49139fcd2a820162f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5037, "upload_time": "2018-12-04T14:45:58", "url": "https://files.pythonhosted.org/packages/20/75/fe2d2e32ed3246dd4cb609d54022be3b7fe78b369bb6c86b7f6e990c6ce9/dinterpol-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "624334e20ce42431d7c5a302df2ae4b9", "sha256": "1d27014b313128af131a3289378fdd86328b6b7efc5f86fd3fcb507325311716" }, "downloads": -1, "filename": "dinterpol-0.1.4.tar.gz", "has_sig": false, "md5_digest": "624334e20ce42431d7c5a302df2ae4b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4719, "upload_time": "2018-12-04T14:45:59", "url": "https://files.pythonhosted.org/packages/87/c2/2aafd814ea5f0f89b5aa621b080a3c7d715e850b779a59e407bd4d5cc3e7/dinterpol-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "430bd0e2acdbdb2565e92f00074f0edc", "sha256": "3695a1acf09493658d2529cb16ee62916658bb25022cb9d527a468803dce2197" }, "downloads": -1, "filename": "dinterpol-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "430bd0e2acdbdb2565e92f00074f0edc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9176, "upload_time": "2019-02-08T10:35:44", "url": "https://files.pythonhosted.org/packages/2f/8a/4885656d023a7aff4f1bb5ae9ca0afadd3bd3ce56f77e1a190ee25c78c36/dinterpol-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1a5e2ef0422620a4d546735c6af8bb7", "sha256": "35f9c93743e1fc950b7db41f169881def4a46e3b630e41c476e2c1a6bf2f0fd2" }, "downloads": -1, "filename": "dinterpol-0.1.5.tar.gz", "has_sig": false, "md5_digest": "b1a5e2ef0422620a4d546735c6af8bb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4244, "upload_time": "2019-02-08T10:35:45", "url": "https://files.pythonhosted.org/packages/19/2b/0ab59b622096cdfed1ab909439be225c220853c9c2617df72f60082bdee2/dinterpol-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "477dac5f16e4998807700705d2dc167d", "sha256": "e28e10d138ceeabf015f22e383198c03d73f96b5e3a9c7e065807d5b823171c3" }, "downloads": -1, "filename": "dinterpol-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "477dac5f16e4998807700705d2dc167d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9480, "upload_time": "2019-03-22T11:43:54", "url": "https://files.pythonhosted.org/packages/57/9f/722539e94fe047b55210d1c4da3b255ba4d79103ee874c084add4bd1ed30/dinterpol-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4fbbd4d2b6772252fbc9f904e9b0536", "sha256": "52f8382428d9a2d9f7a3fa576f691d9d29245de66fb46aa9c8e842d6bc8ebe01" }, "downloads": -1, "filename": "dinterpol-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c4fbbd4d2b6772252fbc9f904e9b0536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8641, "upload_time": "2019-03-22T11:43:56", "url": "https://files.pythonhosted.org/packages/4f/85/f163e8bf5d47d368382a8477095607020624d5358ac3b8b15b9c10997df4/dinterpol-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "deef2875ef74451033a0be823dddc092", "sha256": "052c1c070b6c7bf881ec14c9fc70bdad39789ace93fc4417cc6252ff18fbc665" }, "downloads": -1, "filename": "dinterpol-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "deef2875ef74451033a0be823dddc092", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9488, "upload_time": "2019-03-22T13:40:13", "url": "https://files.pythonhosted.org/packages/72/86/49eefcf532071155e490e06df4f5b4151287468c540bce96c005354eca37/dinterpol-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aec8bcbee5ef77c0dfef668b3ba584a9", "sha256": "bf9d145eeb2b556bcd5d23a161b1412f21d9a87e9953824e1ab517a64c5e2510" }, "downloads": -1, "filename": "dinterpol-0.2.1.tar.gz", "has_sig": false, "md5_digest": "aec8bcbee5ef77c0dfef668b3ba584a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8655, "upload_time": "2019-03-22T13:40:14", "url": "https://files.pythonhosted.org/packages/76/ba/4db0738c8e514142ebd10fbb0177f87d243dc1ab83de48e6e28e9a4f1e56/dinterpol-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "97af02700bca8c42c0c00c19ee5eff85", "sha256": "026dae71188b1bb0d9d00af830c9f2fd28cfbc0fe68c489857e37b7e75795c74" }, "downloads": -1, "filename": "dinterpol-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "97af02700bca8c42c0c00c19ee5eff85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9481, "upload_time": "2019-03-23T12:06:15", "url": "https://files.pythonhosted.org/packages/2d/c9/abde11fd399bfe7212eea28f5c57ba116a7113edada896922bab16155a0d/dinterpol-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "facc7798eacddebc4c218d60ef57ee40", "sha256": "08aa0bc6027549468a197ad81962706a10d8879d9ec4ce71462491422a609a85" }, "downloads": -1, "filename": "dinterpol-0.2.2.tar.gz", "has_sig": false, "md5_digest": "facc7798eacddebc4c218d60ef57ee40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4752, "upload_time": "2019-03-23T12:06:16", "url": "https://files.pythonhosted.org/packages/dc/8e/fdef167b8e817c8fae308e685dcad06d349ca363836d9abe360cabc6bf93/dinterpol-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "33629aa911604bc538994e6789a8519e", "sha256": "463fa065e99ca3fbf1b2efe4e1f915ae11690373b36e50dd6d46f5f656d1b659" }, "downloads": -1, "filename": "dinterpol-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "33629aa911604bc538994e6789a8519e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10714, "upload_time": "2019-04-06T13:56:28", "url": "https://files.pythonhosted.org/packages/0e/af/7db626413f05eb04bd07362373e928afec33cae0d28fd662da59438afed3/dinterpol-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f30fa205e63abc755ae4e7daba693069", "sha256": "ae8622dd958b01360254bcc8bd5a4ba8327688a90a7b241e5871a5291568868c" }, "downloads": -1, "filename": "dinterpol-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f30fa205e63abc755ae4e7daba693069", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5529, "upload_time": "2019-04-06T13:56:29", "url": "https://files.pythonhosted.org/packages/fb/8e/ce776fa39ec2923663af58fd8efb6d07f3dc9129b3afc27a26acec92a30d/dinterpol-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "4706136b28c9500bae5c793bf3a657ba", "sha256": "7daeb7b807a499c9419f96a95e8ac42135c44e3a4a3e52bc755aa7e02d58e394" }, "downloads": -1, "filename": "dinterpol-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4706136b28c9500bae5c793bf3a657ba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10725, "upload_time": "2019-04-06T14:46:29", "url": "https://files.pythonhosted.org/packages/d3/3c/e09817daf644a8abd4b5d3ff438d5e1833bb68f9befa2cf26e9b8639f92e/dinterpol-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "911e8446e0c449f79cd938db8ba15abd", "sha256": "92eb0ea1a8201bbadd230851e1e8fab4dfd33906d3fb5186de86fa61e780e0a8" }, "downloads": -1, "filename": "dinterpol-0.3.1.tar.gz", "has_sig": false, "md5_digest": "911e8446e0c449f79cd938db8ba15abd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5547, "upload_time": "2019-04-06T14:46:30", "url": "https://files.pythonhosted.org/packages/9c/4a/7a52525b5deaa4ef1d89e52e1f741f5a9d90409c10aab4203f4fbd9ac634/dinterpol-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "92401c259e2e9534d5fb637969b44882", "sha256": "4f20e2b64961276e94b418598057833ad2c9a5e4f97fa7112ac05bd7b23dfc14" }, "downloads": -1, "filename": "dinterpol-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "92401c259e2e9534d5fb637969b44882", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10726, "upload_time": "2019-04-06T18:03:20", "url": "https://files.pythonhosted.org/packages/56/66/38973b60416653f6ac22fefa0aeebfc78b8590ffe74c560089d91c08b71c/dinterpol-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d296597ddedb4d62b64dc08a92c0a2b5", "sha256": "9dbc31d287041a084a5dd94424815f2960415de5b4868beb88d549eda8ab6a16" }, "downloads": -1, "filename": "dinterpol-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d296597ddedb4d62b64dc08a92c0a2b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5546, "upload_time": "2019-04-06T18:03:21", "url": "https://files.pythonhosted.org/packages/c4/be/765bba1389cd472abb18981631f78fe61444a43173209809a0062a536262/dinterpol-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "92401c259e2e9534d5fb637969b44882", "sha256": "4f20e2b64961276e94b418598057833ad2c9a5e4f97fa7112ac05bd7b23dfc14" }, "downloads": -1, "filename": "dinterpol-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "92401c259e2e9534d5fb637969b44882", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10726, "upload_time": "2019-04-06T18:03:20", "url": "https://files.pythonhosted.org/packages/56/66/38973b60416653f6ac22fefa0aeebfc78b8590ffe74c560089d91c08b71c/dinterpol-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d296597ddedb4d62b64dc08a92c0a2b5", "sha256": "9dbc31d287041a084a5dd94424815f2960415de5b4868beb88d549eda8ab6a16" }, "downloads": -1, "filename": "dinterpol-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d296597ddedb4d62b64dc08a92c0a2b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5546, "upload_time": "2019-04-06T18:03:21", "url": "https://files.pythonhosted.org/packages/c4/be/765bba1389cd472abb18981631f78fe61444a43173209809a0062a536262/dinterpol-0.3.2.tar.gz" } ] }