{ "info": { "author": "suzhen", "author_email": "suzhen@homeinpocket.net", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3.0", "Topic :: Software Development :: Code Generators" ], "description": "# Godefine\n\nreplace marco in template,and generate output\n\n## License\n\n![license](https://img.shields.io/badge/license-MIT-brightgreen.svg)\n\n\n## FIRST: THIS SCRIPT BASED ON PYTHON3!\n\n## Install Guide\n\n```bash\npip3 install -U godefine\n```\n\nto get latest version from `pypi`,you should add `--isolated` on command-line\n\n## ThirdPart Modules\n\n|Module|IsRequired?|\n|---|--- |\n|wcwidth|\u2757|\n|tabulate|\u2705|\n\nalthough `wcwidth` is optional, but it's higly recommended to install.\n\n`wcwidth` help `tabulate` handle pagecode issue.\n\n\n\n## Get Start\n\n\nwe have a template file such as **\"sample.go.template\"**\n\nit's contains code like:\n\n```go\nconst Foo = ${foo} // foo??? no idea @default=\"simple\";\nconst Bar = ${bar} // some bar...whatever @default=1231;\n```\n\nrun script:\n\n```bash\ngodefine.py -t sample.go.template -o sample.go \n```\n\nsample.go:\n\n```go\nconst Foo = \"simple\" // foo??? no idea @default=\"simple\";\nconst Bar = 1231 // some bar...whatever @default=1231;\n```\n\n## Script Syntax\n\n### default:\n\n`godefine` will replace '${something}' with the value user provide.\n\nif var's value not specified, `godefine` will look for the `default value` \nin the comment after `//`\n\ndefault value should apply syntax as follows : '@default=your value;'\n\n### include:\n\nlike `#include ` we often used in Cpp language`.\n\nyou can use `@include()` to put an exist config file into current config file.\n\nfor example:\n\nwe have `foo/bar/base.in` and `foo/someone_debug.in` \n\nfoo/bar/base.in:\n\n```ini\nfoo=bar\nbar=foo\n```\n\nfoo/someone_debug.in:\n\n```ini\n@include(bar/base.in)\nname=someone\nfoo=override bar\n```\n\n`godefine` will see vars below:\n\n```ini\nbar=foo\nname=someone\nfoo=override bar\n```\n\ngodefine support both `relative` and `absolute` path\n\n## Advance\n\n### pass vars from command-line (Simple, but `not suggest` :bangbang:)\n\npass your custom vars after `-v` option\n\n\n```bash\ngodefine.py -v foo=11 bar=222 -t sample.go.template -o sample.go \n```\n\nthis way is not suggested.\nif your value have such special char eg: `blank str`,`\"`, \nit's hard to handle with it.\n\n### use vars form specified file (Suggest :smirk: :thumbsup:)\n\ndefine your vars in `config.in`\n\n```ini\nfoo=\"abc 112 333\"\nbar= bar\nweb site=https://www.google.com\nhandsome author=ooopSnake \ud83c\udf89\n\n```\n\ntemplate file `env.go.template`:\n\n```go\npackage env\n\nconst Foo = \"abc 112 333\" // foo??? @default=\"\u4e2d\u6587~\";\nvar Website = \"https://www.google.com\" // homepage\nconst Bar = \" bar\" // barss\nvar Author = ooopSnake \ud83c\udf89 // author name @default=snake!;\n\n```\n\nrun `godefine`\n\n```bash\ngodefine.py -i config.in -t env.go.template -o env.go \n```\n\noutput `env.go`:\n\n```go\npackage env\n\nconst Foo = \"abc 112 333\" // foo??? @default=\"\u4e2d\u6587~\";\nvar Website = \"https://www.google.com\" // homepage\nconst Bar = \" bar\" // barss\nvar Author = \"ooopSnake \ud83c\udf89\" // author name @default=snake!;\n```\n\nas you can see ,foo's value has some `space(blank)` char.\n\n`godefine` script will handle them correctly.\n\n\n### override vars in config\n\n\ngodefine always override that vars if they have been defined previously.\n\nfor example:\nif var below `@include` declare, vars will override vars that defined in `@include`\n \nif var above `@include` declare,\n`@include` defined vars will override vars that pervious defined.\n\n\n### error handling :interrobang:\n\nif you forgot to assign any one vars ,an error will be raised.\n\nanyway, you still want to generate output, `-f` will be useful.\n\nif `-f` applied, any error will be ignored,\nthe var who not assigned with value,will keep itself original state \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/ooopSnake/godefine", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "godefine", "package_url": "https://pypi.org/project/godefine/", "platform": "all", "project_url": "https://pypi.org/project/godefine/", "project_urls": { "Homepage": "https://github.com/ooopSnake/godefine" }, "release_url": "https://pypi.org/project/godefine/1.1.4/", "requires_dist": null, "requires_python": ">=3.4", "summary": "preprocess marcos tool", "version": "1.1.4", "yanked": false, "yanked_reason": null }, "last_serial": 8250530, "releases": { "1.0.5": [ { "comment_text": "", "digests": { "md5": "aee15f1dd4cf0eb6408ef93149c76829", "sha256": "3dad0771247be626b6dce4b3170e9faca802e76f5fc96e73888e61b74fffef51" }, "downloads": -1, "filename": "godefine-1.0.5.tar.gz", "has_sig": false, "md5_digest": "aee15f1dd4cf0eb6408ef93149c76829", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 4668, "upload_time": "2019-10-15T11:32:57", "upload_time_iso_8601": "2019-10-15T11:32:57.518461Z", "url": "https://files.pythonhosted.org/packages/9e/be/8ed5585bf70accf14611c1b900e80f39b738a37e56211361b4f2af3fa300/godefine-1.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "59ea394ff70d36b05d16c97be145ed50", "sha256": "124f7dcad16e4d88f577fdeaddd6efaf10520cbd564ba648fa7036d4d177bbde" }, "downloads": -1, "filename": "godefine-1.0.6.tar.gz", "has_sig": false, "md5_digest": "59ea394ff70d36b05d16c97be145ed50", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 4990, "upload_time": "2019-10-16T04:51:01", "upload_time_iso_8601": "2019-10-16T04:51:01.088831Z", "url": "https://files.pythonhosted.org/packages/81/86/f9d5a52f2eefdb0c21a475e9f0d9fcbf07298c3a658bd925a0220e1b5b74/godefine-1.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "9a6020f02df8de5aa7f68b7a738ff891", "sha256": "a1329b8e4c0bd659f0261c38da1c2cbefb72e46ad9f9eb72f4233d2fbf42f0ea" }, "downloads": -1, "filename": "godefine-1.0.7.tar.gz", "has_sig": false, "md5_digest": "9a6020f02df8de5aa7f68b7a738ff891", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5161, "upload_time": "2019-10-16T09:11:08", "upload_time_iso_8601": "2019-10-16T09:11:08.462785Z", "url": "https://files.pythonhosted.org/packages/e9/d8/e3dac16f2a4d65f30e7c278eb5ce87a4eed6832c28121f747cbfb702d511/godefine-1.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "c7519c5c17745170b38a239a7e3a7a4c", "sha256": "92c0147a6898ae4747895b432b82cff9a09578435759c2adae61ff5aec4a2f7e" }, "downloads": -1, "filename": "godefine-1.0.8.tar.gz", "has_sig": false, "md5_digest": "c7519c5c17745170b38a239a7e3a7a4c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5589, "upload_time": "2019-10-16T09:55:42", "upload_time_iso_8601": "2019-10-16T09:55:42.289722Z", "url": "https://files.pythonhosted.org/packages/29/f2/8cc1769ce0a64bff6e231c89005002c20bf982d77ace652a2fc6cfd1fbc8/godefine-1.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "8d2ec47dbc8871df40ec81099fcab4bf", "sha256": "e18fc71f640cda1776be7052b2f76c8cbe6deddf440127a276a714d0ee7590b9" }, "downloads": -1, "filename": "godefine-1.0.9.tar.gz", "has_sig": false, "md5_digest": "8d2ec47dbc8871df40ec81099fcab4bf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5597, "upload_time": "2019-10-24T08:56:06", "upload_time_iso_8601": "2019-10-24T08:56:06.197057Z", "url": "https://files.pythonhosted.org/packages/06/d8/20baf74423ade6dd303dfe40519c0ab7c8d6e2f418fb7f04ef5332f9358e/godefine-1.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d2939f2a0ba9980d3be875f7fd1f0ca5", "sha256": "ebebb8f0a8c66600ab6bb252a320e9c1178bde648ba871aa804d75484a6ff69c" }, "downloads": -1, "filename": "godefine-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d2939f2a0ba9980d3be875f7fd1f0ca5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5612, "upload_time": "2019-10-24T11:06:17", "upload_time_iso_8601": "2019-10-24T11:06:17.987274Z", "url": "https://files.pythonhosted.org/packages/00/82/414843922c06e9b3de643b9047054ab4158e86096b1933652c9b698c2556/godefine-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "79fcbed2ebb974ec67ca9b5cf68ec076", "sha256": "5bc3e06f245bab4dbed475c011fc6a0cf40cd628b7a15f139a8e3c84e3e4f0a8" }, "downloads": -1, "filename": "godefine-1.1.1.tar.gz", "has_sig": false, "md5_digest": "79fcbed2ebb974ec67ca9b5cf68ec076", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5598, "upload_time": "2019-11-12T03:43:47", "upload_time_iso_8601": "2019-11-12T03:43:47.990401Z", "url": "https://files.pythonhosted.org/packages/60/ac/0c67d5e1f472cfb84586c6c740f7509a956f85446c419fc3bb2fa8e4c588/godefine-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "4eef653c3b4bceba4852e7769e485176", "sha256": "5dcf37c6cafb19a9f0746a4e89ed92edc89156a2bd67066a21726cd2acf27ec4" }, "downloads": -1, "filename": "godefine-1.1.2.tar.gz", "has_sig": false, "md5_digest": "4eef653c3b4bceba4852e7769e485176", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5590, "upload_time": "2019-11-13T04:41:05", "upload_time_iso_8601": "2019-11-13T04:41:05.293423Z", "url": "https://files.pythonhosted.org/packages/ab/99/7e4011ae460dc20ae02c83e598ecd5dd06e67bb8491e079a40f5e6a3a1d1/godefine-1.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "b66d150692582f932648f92c148c4bb3", "sha256": "1ddac44ba269e92aef03610daf8c97925a1de8c351ef25e83030f0990c4b45b3" }, "downloads": -1, "filename": "godefine-1.1.3.tar.gz", "has_sig": false, "md5_digest": "b66d150692582f932648f92c148c4bb3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5524, "upload_time": "2019-11-13T05:30:41", "upload_time_iso_8601": "2019-11-13T05:30:41.571393Z", "url": "https://files.pythonhosted.org/packages/f1/bd/b3edb516faa9b840a38dceab40c18eae70907f0bf4a47a6a26a97a9d5c1b/godefine-1.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "98eb318e0283c4cf72e488c3099df1f1", "sha256": "7c2acd2ee2686ee60fbf0aad0eb5f53f4f58c97c85c1f55f493bb003d05ba966" }, "downloads": -1, "filename": "godefine-1.1.4.tar.gz", "has_sig": false, "md5_digest": "98eb318e0283c4cf72e488c3099df1f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5890, "upload_time": "2020-09-23T06:51:31", "upload_time_iso_8601": "2020-09-23T06:51:31.437783Z", "url": "https://files.pythonhosted.org/packages/00/a9/7868f0d3adbc1b7f30b5b41252fee3b760f18ef14bc90a49ff59a3266194/godefine-1.1.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "98eb318e0283c4cf72e488c3099df1f1", "sha256": "7c2acd2ee2686ee60fbf0aad0eb5f53f4f58c97c85c1f55f493bb003d05ba966" }, "downloads": -1, "filename": "godefine-1.1.4.tar.gz", "has_sig": false, "md5_digest": "98eb318e0283c4cf72e488c3099df1f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 5890, "upload_time": "2020-09-23T06:51:31", "upload_time_iso_8601": "2020-09-23T06:51:31.437783Z", "url": "https://files.pythonhosted.org/packages/00/a9/7868f0d3adbc1b7f30b5b41252fee3b760f18ef14bc90a49ff59a3266194/godefine-1.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }