### VarWizard
***
1. Introduction
VarWizard is a language model-based tool to help generate more meaningful variable names in source code than the original version. It supports 10 programming languages: c, cpp, java, javascript, go, python, php, c\_sharp, ruby, rust.
2. Installation
You can easily install this package by the command
```bash
pip install varwizard
```
3. Usage
* Command-line
You can use VarWizard by running the command
```bash
varwizard [--model-name {bloom-560m, codet5-base} (default: bloom-560m)]
--input INPUT --lang {c,cpp,java,php,go,javascript,ruby,rust,python,c_sharp}
[--output-path OUTPUT_PATH (default: None)] [--max-input-len MAX_INPUT_LEN (default: 400)]
[--device DEVICE (default: cpu)] [--penalty-alpha PENALTY_ALPHA (default: 0.6)] [--top-k TOP_K (default: 4)] [--max-new-tokens MAX_NEW_TOKENS (default: 100)]
```
Details for each argument can be found by
```varwizard --help```
* Python API
Another way is to Python methods.
Here is a simple example of VarWizard.
```python
from varwizard import VarWizard
model = VarWizard(model_name = "codet5-base")
code = """
function chunkData(str, chunk) {
var chunk = [];
var length = str.length;
var i = 0;
for (; i < length; i += chunk) {
if (i + chunk < length) {
chunk.push(str.substring(i, i + chunk));
} else {
chunk.push(str.substring(i, length));
}
}
return chunk;
}
"""
print(model.make_new_code(code, 'javascript', device = 'cuda:0'))
```
VarWizard produces the output
```javascript
function chunkData(str, chunk) {
var chunk = [];
var length = str.length;
var i = 0;
for (; i < length; i += chunk) {
if (i + chunk < length) {
chunk.push(str.substring(i, i + chunk));
} else {
chunk.push(str.substring(i, length));
}
}
return chunk;
}
```
4. Playground: You can play at the link: https://varwizard.loca.lt. At the first time to access, you may need to enter: 4.193.50.237
5. Examples
There are some examples for varWizard's usage. We can navigate to the folder $examples$ and then go to any subfolder to run the script.
Raw data
{
"_id": null,
"home_page": "https://github.com/FSoft-AI4Code/VarWizard",
"name": "varwizard",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "variable renaming,language models,code quality",
"author": "FSoft-AI4Code",
"author_email": "support.aic@fpt.com",
"download_url": "https://files.pythonhosted.org/packages/7f/d6/ae9bc48ddd0eae0e3b39e5837e4aa803ad9c924eb08035cf6c85079017a0/varwizard-0.2.2.tar.gz",
"platform": null,
"description": "### VarWizard\n***\n1. Introduction\n\nVarWizard is a language model-based tool to help generate more meaningful variable names in source code than the original version. It supports 10 programming languages: c, cpp, java, javascript, go, python, php, c\\_sharp, ruby, rust.\n\n2. Installation\n\nYou can easily install this package by the command\n```bash\n pip install varwizard\n```\n3. Usage\n * Command-line\n \n You can use VarWizard by running the command\n```bash\nvarwizard [--model-name {bloom-560m, codet5-base} (default: bloom-560m)]\n --input INPUT --lang {c,cpp,java,php,go,javascript,ruby,rust,python,c_sharp} \n [--output-path OUTPUT_PATH (default: None)] [--max-input-len MAX_INPUT_LEN (default: 400)]\n [--device DEVICE (default: cpu)] [--penalty-alpha PENALTY_ALPHA (default: 0.6)] [--top-k TOP_K (default: 4)] [--max-new-tokens MAX_NEW_TOKENS (default: 100)]\n```\nDetails for each argument can be found by \n```varwizard --help```\n\n\n * Python API\n\n Another way is to Python methods.\nHere is a simple example of VarWizard.\n```python\nfrom varwizard import VarWizard\n\nmodel = VarWizard(model_name = \"codet5-base\")\ncode = \"\"\"\nfunction chunkData(str, chunk) {\n var chunk = [];\n var length = str.length;\n var i = 0;\n for (; i < length; i += chunk) {\n if (i + chunk < length) {\n chunk.push(str.substring(i, i + chunk));\n } else {\n chunk.push(str.substring(i, length));\n }\n }\n return chunk;\n}\n\"\"\"\nprint(model.make_new_code(code, 'javascript', device = 'cuda:0'))\n```\nVarWizard produces the output\n```javascript\nfunction chunkData(str, chunk) {\n var chunk = [];\n var length = str.length;\n var i = 0;\n for (; i < length; i += chunk) {\n if (i + chunk < length) {\n chunk.push(str.substring(i, i + chunk));\n } else {\n chunk.push(str.substring(i, length));\n }\n }\n return chunk;\n}\n```\n\n4. Playground: You can play at the link: https://varwizard.loca.lt. At the first time to access, you may need to enter: 4.193.50.237\n5. Examples\n\nThere are some examples for varWizard's usage. We can navigate to the folder $examples$ and then go to any subfolder to run the script.",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "An Automated Tool for Improving Code Quality Through Variable Name Refinement with Language Models",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/FSoft-AI4Code/VarWizard",
"Repository": "https://github.com/FSoft-AI4Code/VarWizard"
},
"split_keywords": [
"variable renaming",
"language models",
"code quality"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "65ae05b48221e8f370cc5ce59b214956a2e804351baffa4799ffe68ec5d581f0",
"md5": "e687ba9983f916500d95fa4929fcf33a",
"sha256": "c40f397a269e8cac531397719a2391b57398886ee417153109db26d5f16624aa"
},
"downloads": -1,
"filename": "varwizard-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e687ba9983f916500d95fa4929fcf33a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1129310,
"upload_time": "2023-05-27T18:13:11",
"upload_time_iso_8601": "2023-05-27T18:13:11.755425Z",
"url": "https://files.pythonhosted.org/packages/65/ae/05b48221e8f370cc5ce59b214956a2e804351baffa4799ffe68ec5d581f0/varwizard-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7fd6ae9bc48ddd0eae0e3b39e5837e4aa803ad9c924eb08035cf6c85079017a0",
"md5": "e9c2e946042e2ed42817d435c50a3088",
"sha256": "a00466ad12299a2cb07a85b9436d5c2cd45cbd4acebc042250c206589528b564"
},
"downloads": -1,
"filename": "varwizard-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "e9c2e946042e2ed42817d435c50a3088",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 1102286,
"upload_time": "2023-05-27T18:13:15",
"upload_time_iso_8601": "2023-05-27T18:13:15.942098Z",
"url": "https://files.pythonhosted.org/packages/7f/d6/ae9bc48ddd0eae0e3b39e5837e4aa803ad9c924eb08035cf6c85079017a0/varwizard-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-27 18:13:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "FSoft-AI4Code",
"github_project": "VarWizard",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "varwizard"
}