{
"info": {
"author": "damnever",
"author_email": "dxc.wolf@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Topic :: Utilities"
],
"description": "f-strings(Python 3.6) style literal string interpolation.\n==========================================================\n\n.. image:: https://img.shields.io/travis/damnever/fmt.svg?style=flat-square\n :target: https://travis-ci.org/damnever/fmt\n\n.. image:: https://img.shields.io/pypi/v/fmt.svg?style=flat-square\n :target: https://pypi.python.org/pypi/fmt\n\n\nUsing `f-strings(PEP 498) `_ style literal string interpolation without Python 3.6.\n\n\nUsages\n------\n\n- Accessing the globals and locals.\n\n .. code:: python\n\n import os\n import fmt as f\n\n g_foo = 'global-foo'\n g_bar = 'global-bar'\n g_num = 23\n g_ls = [1, 2, 3]\n\n def scope():\n l_foo = 'local-foo'\n l_bar = 'local-bar'\n print( f('{l_foo}, {l_bar}') ) # 'local-foo, local-bar'\n print( f('{g_foo}, {g_bar!r}') ) # \"global-foo, 'global-bar'\"\n\n scope()\n print( f('{{ }}') ) # '{ }'\n print( f('hex: {g_num:#x}') ) # '0x17'\n print( f('{os.EX_OK}') ) # '0'\n print( f('{g_ls[0]}, {g_ls[1]}, {g_ls[2]}') ) # '1, 2, 3'\n\n\n- **NOTE**: **Closure** will be a little tricky, must pass the outside scope variables as arguments to f,\n which added a reference to inside the closure in order this can work.\n\n .. code:: python\n\n import fmt as f\n\n def outer(x='xx'):\n y = 'yy'\n def inner():\n print( f('{x}, {y}', x, y) ) # \"xx, yy\"\n return inner\n\n outer()()\n\n\n- Expression evaluation.\n\n .. code:: python\n\n from datetime import datetime\n import fmt as f\n\n class S(object):\n def __str__(self):\n return 'hello'\n def __repr__(self):\n return 'hi'\n def __format__(self, fmt):\n return 'abcdefg'[int(fmt)]\n\n print( f('{1234567890:,}') ) # '1,234,567,890'\n print( f('{1 + 2}') ) # '3'\n print( f('{str(1 + 2)!r}') ) # \"'3'\"\n print( f('{[i for i in range(5)]}') ) # '[0, 1, 2, 3, 4]'\n ls = range(5)\n print( f('{{i for i in ls}}') ) # 'set([0, 1, 2, 3, 4])' or '{0, 1, 2, 3, 4}'\n print( f('{{k:v for k,v in zip(range(3), range(3, 6))}}') ) # '{0: 3, 1: 4, 2: 5}'\n print( f('{datetime(1994, 11, 6):%Y-%m-%d}') ) # '1994-11-06'\n print( f('{list(map(lambda x: x+1, range(3)))}') ) # '[1, 2, 3]'\n print( f('{S()!s}, {S()!r}, {S():1}') ) # 'hello, hi, b'\n\n\n- Also, you can register some namespaces for convenience.\n\n .. code:: python\n\n import fmt as f\n\n f.mregister({'x': 1, 'y': 2}) # register multiple\n f.register('z', 3) # register only one\n\n def func(x, y):\n return x + y\n\n print( f('{func(x, y)}') ) # '3'\n print( f('{func(x, z)}') ) # '4'\n print( f('{func(y, z)}') ) # '5'\n\n\n- **NOTE**: ``locals()`` maybe cover the ``globals()``, ``globals()`` maybe cover the namespaces that you registered.\n\n\nInstallation\n------------\n\nInstall by pip: ::\n\n [sudo] pip install fmt -U\n\n\nLICENSE\n-------\n\n`The BSD 3-Clause License `_",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/damnever/fmt",
"keywords": "f-strings,format,literal string interpolation",
"license": "The BSD 3-Clause License",
"maintainer": "",
"maintainer_email": "",
"name": "fmt",
"package_url": "https://pypi.org/project/fmt/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/fmt/",
"project_urls": {
"Homepage": "https://github.com/damnever/fmt"
},
"release_url": "https://pypi.org/project/fmt/0.3.1/",
"requires_dist": null,
"requires_python": "",
"summary": "f-strings(Python 3.6) style literal string interpolation.",
"version": "0.3.1"
},
"last_serial": 2585065,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "73fb0777f09a5964a479d4793a64e25a",
"sha256": "bba8ecfb4c6e5147f448132b098f3f8ee7a1a75d107e6e66784e729ac70088f3"
},
"downloads": -1,
"filename": "fmt-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "73fb0777f09a5964a479d4793a64e25a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7459,
"upload_time": "2016-09-28T13:09:56",
"url": "https://files.pythonhosted.org/packages/a1/5f/0a0be1ea5d7c7aa721bd49d2fd53ad36f699f4785912c452ad65a691e420/fmt-0.1.0-py2.py3-none-any.whl"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "dcb04a8e623ffd28010383701ecfdefb",
"sha256": "aea1d4a3afcefe5df3420a1f1d3a0ecd820023db60d40fe58b08b211ef6eed24"
},
"downloads": -1,
"filename": "fmt-0.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "dcb04a8e623ffd28010383701ecfdefb",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7551,
"upload_time": "2016-09-28T14:40:52",
"url": "https://files.pythonhosted.org/packages/c4/48/cff05528b5b64c963b0235898f0f4763d481ee24a5a277c1aa78efc6ecb6/fmt-0.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4589d4eb7d90d143f6ef1f13fcde24da",
"sha256": "98ad874d90503b5a13d7546651b93b64078fff3654922c05bf20a9e6c057bec5"
},
"downloads": -1,
"filename": "fmt-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "4589d4eb7d90d143f6ef1f13fcde24da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5392,
"upload_time": "2016-09-29T01:40:04",
"url": "https://files.pythonhosted.org/packages/a2/86/54fc99feb6ab014b8eb03f13d3fb5a84a297975d5829ae03f3cba746891c/fmt-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "3738ed357a5207a2a50d8807306884f0",
"sha256": "b44a34651b94ce9536f001fa32e18cd654ce43da854da16edee23128b44babec"
},
"downloads": -1,
"filename": "fmt-0.1.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "3738ed357a5207a2a50d8807306884f0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7554,
"upload_time": "2016-10-28T11:46:50",
"url": "https://files.pythonhosted.org/packages/bf/f4/10dfc6816fbf7982a6a475894a288efefbfeab4b2c0ff2b9ba04e41bda07/fmt-0.1.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5bf1b04a5aea4a15baa8442bdf8288d3",
"sha256": "34a36eced07e028547886ed97dee0d55c893b2a48e07c5a77388a8ab37f23d71"
},
"downloads": -1,
"filename": "fmt-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "5bf1b04a5aea4a15baa8442bdf8288d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5403,
"upload_time": "2016-10-28T11:47:09",
"url": "https://files.pythonhosted.org/packages/d0/46/82e2e672d8efb0b208e72328593313a49071e9f18be702a2699928596269/fmt-0.1.2.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "6535b3dd847527973aedf62368ff7ad1",
"sha256": "df122a9e3b654e8c12039bb48b0b5de02d6230a0c5b23cc706636ae586c53a63"
},
"downloads": -1,
"filename": "fmt-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6535b3dd847527973aedf62368ff7ad1",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7602,
"upload_time": "2016-11-26T03:51:45",
"url": "https://files.pythonhosted.org/packages/06/7a/848e7217291cd8ff5c6bc0f343e38724e4a9d9fd3e916ea6671e83a49afa/fmt-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "20ffd5e04e15c3cbea9ab34aa327ad58",
"sha256": "42617f45326c0185b0bc2510194bdcce7228a1a324691019e78dd4334d0065be"
},
"downloads": -1,
"filename": "fmt-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "20ffd5e04e15c3cbea9ab34aa327ad58",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5426,
"upload_time": "2016-11-26T03:51:58",
"url": "https://files.pythonhosted.org/packages/d3/2e/ed2eda4a08e37abc50e2ad52607aaf36378da6b0c98cd11d5025f9a3a71c/fmt-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "1e8cb4b6a55041fffaf9d0025a2c827e",
"sha256": "8858661355a84db54cf30ae9e3295f0a646c1312fcc8844cda57bc99eb9cadf8"
},
"downloads": -1,
"filename": "fmt-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1e8cb4b6a55041fffaf9d0025a2c827e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7600,
"upload_time": "2016-11-30T03:08:22",
"url": "https://files.pythonhosted.org/packages/bb/81/7f8f0292f1d6e9d4a671fddca2052af4752123fa95bb110e1fc7828ea10a/fmt-0.2.1-py2.py3-none-any.whl"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "901ea2d3cb9a7864b40369df412dc656",
"sha256": "2b6af8e8506f6761c835f279b097413a71decc2dff3b0f4f32196c7517624d3c"
},
"downloads": -1,
"filename": "fmt-0.2.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "901ea2d3cb9a7864b40369df412dc656",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7592,
"upload_time": "2016-11-30T06:39:16",
"url": "https://files.pythonhosted.org/packages/3c/d5/723d5fc5fc8d077e3c8d5f079c19a20859cf7e9a9ed7573dbf252c989c77/fmt-0.2.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c467e0fb9f02a77c85e7f77074ac09fb",
"sha256": "b2341739e46c331224fbb1d25b73afc817d0b476a9ce29d2f822727e549c7a32"
},
"downloads": -1,
"filename": "fmt-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "c467e0fb9f02a77c85e7f77074ac09fb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5416,
"upload_time": "2016-11-30T06:39:31",
"url": "https://files.pythonhosted.org/packages/bd/07/631495fb202f5d6bf7d4a0f90a468b4a7ee30269e929a31f79a2cf662d96/fmt-0.2.2.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "b4d1368e4fd0d3e850c1735b1fc62888",
"sha256": "737de0013b9f37892abec7500353ef2c1fd5d504406f9488a4e57961fbf1fd13"
},
"downloads": -1,
"filename": "fmt-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b4d1368e4fd0d3e850c1735b1fc62888",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 7898,
"upload_time": "2016-12-30T15:54:15",
"url": "https://files.pythonhosted.org/packages/c9/71/29fba958d862f3995578f7e8ddd78450cca04b1b0b871e613ce9491e9e1d/fmt-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b373c4ab132d28c229ee9ede67217fe0",
"sha256": "d8ebd6d0169d2bef8fee573b896da854703404aa9db2afc4f6cceb9842f61b2d"
},
"downloads": -1,
"filename": "fmt-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "b373c4ab132d28c229ee9ede67217fe0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5724,
"upload_time": "2016-12-30T15:54:02",
"url": "https://files.pythonhosted.org/packages/5c/92/a1846809666a292c4de4967ddc60969137fe86004d41c7cd4a9c9fee421a/fmt-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "dec69e083f1a2938a93fc60f92394efe",
"sha256": "ea6658900a51b12d8c9e0fe118279c6904daba6e77596e6aed7e8851461c8e33"
},
"downloads": -1,
"filename": "fmt-0.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "dec69e083f1a2938a93fc60f92394efe",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8086,
"upload_time": "2017-01-19T14:21:41",
"url": "https://files.pythonhosted.org/packages/77/05/6b4e068e35400b137a9d59fcf8d0f482693259f6e2c4f0ee967ee86f6e68/fmt-0.3.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c574f596f417e938427d74f950a9555e",
"sha256": "7665aa8cf3258d16557a20e4f657434d274d9d0e1755259a7a064c18875cbfa3"
},
"downloads": -1,
"filename": "fmt-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "c574f596f417e938427d74f950a9555e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5933,
"upload_time": "2017-01-19T14:21:56",
"url": "https://files.pythonhosted.org/packages/45/ab/4f3a1184fe37a288df89bc609882256a47a663190683d70a477b35c90b2d/fmt-0.3.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "dec69e083f1a2938a93fc60f92394efe",
"sha256": "ea6658900a51b12d8c9e0fe118279c6904daba6e77596e6aed7e8851461c8e33"
},
"downloads": -1,
"filename": "fmt-0.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "dec69e083f1a2938a93fc60f92394efe",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8086,
"upload_time": "2017-01-19T14:21:41",
"url": "https://files.pythonhosted.org/packages/77/05/6b4e068e35400b137a9d59fcf8d0f482693259f6e2c4f0ee967ee86f6e68/fmt-0.3.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c574f596f417e938427d74f950a9555e",
"sha256": "7665aa8cf3258d16557a20e4f657434d274d9d0e1755259a7a064c18875cbfa3"
},
"downloads": -1,
"filename": "fmt-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "c574f596f417e938427d74f950a9555e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5933,
"upload_time": "2017-01-19T14:21:56",
"url": "https://files.pythonhosted.org/packages/45/ab/4f3a1184fe37a288df89bc609882256a47a663190683d70a477b35c90b2d/fmt-0.3.1.tar.gz"
}
]
}