{ "info": { "author": "Md Nazrul Islam", "author_email": "email2nazrul@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "Framework :: Plone :: 5.2", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": ".. image:: https://img.shields.io/pypi/status/collective.recipe.vscode.svg\n :target: https://pypi.org/project/collective.recipe.vscode/\n :alt: Package Status\n\n.. image:: https://travis-ci.org/nazrulworld/collective.recipe.vscode.svg?branch=master\n :target: https://travis-ci.org/nazrulworld/collective.recipe.vscode\n :alt: Travis Build Status\n\n.. image:: https://coveralls.io/repos/github/nazrulworld/collective.recipe.vscode/badge.svg?branch=master\n :target: https://coveralls.io/github/nazrulworld/collective.recipe.vscode?branch=master\n :alt: Test Coverage\n.. image:: https://img.shields.io/pypi/pyversions/collective.recipe.vscode.svg\n :target: https://pypi.org/project/collective.recipe.vscode/\n :alt: Python Versions\n\n.. image:: https://img.shields.io/pypi/v/collective.recipe.vscode.svg\n :target: https://pypi.org/project/collective.recipe.vscode/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/l/collective.recipe.vscode.svg\n :target: https://pypi.org/project/collective.recipe.vscode/\n :alt: License\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\n.. contents::\n\nIntroduction\n============\n\n``collective.recipe.vscode`` is the buildout recipe for `Visual Studio Code`_ lover who wants python `autocomplete and intelliSense`_ features while developing python `Buildout`_ based project,\nnormally buildout eggs are not available in python path even if you provide virtualenv python path.\nThis tool will help not only adding eggs path as ``python extraPath`` but also you can manage per project basis vscode settings\nfor linter, autoformatting. \n\nA general question may arise that why we will use this tool, whether we can create `Visual Studio Code`_ project settings easily (we have better knowledge over `Visual Studio Code`_ configuration)?\nWell i completely agree with you, but if you want to get benefited from `Visual Studio Code`_ autocompletion feature (basically I am lover of autocompletion), you have to add all eggs links and it is hard to manage eggs links manually\nif the size of project is big (think about any `Plone`_ powered project),\nbeside it is good practice allways use project specific linter path. For example my global ``flake8`` linter doesn't work\nfor my python3 project!\n\nInstallation\n============\n\nInstall ``collective.recipe.vscode`` is simple enough, just need to create a section for ``vscode`` to your buildout.\nBefore using ``collective.recipe.vscode``, if you are going to use linter feature, make those are added in eggs section or globally installed. \n\n Example Buildout::\n\n [buildout]\n parts += vscode\n\n [vscode]\n recipe = collective.recipe.vscode\n eggs = ${buildout:eggs}\n flake8-enabled = True\n flake8-path = ${buildout:directory}/bin/flake8\n black-enabled = True\n black-args = ----line-length 88\n\nAvailable Options\n-----------------\n\neggs\n Required: Yes\n\n Default: None\n\n Your project's list of eggs, those are going to be added as extra path for `autocomplete and intelliSense`_.\n\npython-path\n Required: No\n\n Default: ``collective.recipe.vscode`` will find current python executable path.\n\n The python executable path for current project, if you are using virtual environment then should be that python path. FYI: ${home} and ${project} variable should work.\n\nflake8-enabled\n\n Required: No\n\n Default: False\n\n Flag that indicates flake8 based linting. \n\nflake8-path\n Required: No\n\n Default: try to find flake8 executable path automatically.\n\nflake8-args\n Required: No\n\n Default: \"\"\n\n\npylint-enabled\n\n Required: No\n Default: False\n\npylint-path\n Required: No\n\n Default: try to find pylint executable path automatically.\n\npylint-args\n Required: No\n\n Default:\n\npep8-enabled\n Required: No\n\n Default: False\n\npep8-path\n Required: No\n\n Default: try to find pep8 executable path automatically.\n\npep8-args\n Required: No\n\n Default: \"\"\n\njedi-enabled\n Required: No\n\n Default: False\n\njedi-path\n Required: No\n\n Default: \"\"\n\nomelette-location\n Required: No\n\n Default: ${buildout:directory}/parts/omelette - the default omelette location.\n\nautocomplete-use-omelette\n Required: No\n\n Default: False\n\nblack-enabled\n Required: No\n\n Default: False\n\nblack-path\n Required: No\n\n Default: try to find black executable path automatically.\n\n You could provide buildout specific black executable. It is very flexible way to avoid using global pylint.\n Example of relative path usecase:\n i.) `${buildout:directory}/bin/black`\n ii.) `$project_path/bin/black`\n iii.) `./bin/black`\n iv.) `~/path/bin/black`\n\nblack-args\n Required: No\n\n Default: ''\n\nisort-enabled\n Required: No\n\n Default: False\n\n Flag that indicates isort is enabled. \n\nisort-path\n Required: No\n\n Default: try to find isort executable path automatically.\n\nisort-args\n Required: No\n\n Default: ''\n\nignore-develop\n Required: No\n\n Default: False\n\n If you don't want development eggs, should go for autocompletion.\n\nignores\n Required: No\n\n Default: \"\"\n\n If you want specific eggs should not go for autocompletion.\n\npackages\n Required: No\n\n Default: \"\"\n\n Location of some python scripts or non standard modules (don't have setup file), you want to be in system path.\n\ngenerate-envfile\n Required: No\n\n Default: false\n\n Generate .env file to add eggs to PYTHONPATH\n\nLinks\n=====\n\nCode repository:\n\n https://github.com/nazrulworld/collective.recipe.vscode\n\nContinuous Integration:\n\n https://travis-ci.org/nazrulworld/collective.recipe.vscode\n\nIssue Tracker:\n\n https://github.com/nazrulworld/collective.recipe.vscode/issues\n\n\n\n.. _`Visual Studio Code`: https://code.visualstudio.com/\n.. _`Buildout`: http://www.buildout.org/en/latest/\n.. _`Plone`: https://plone.org/\n.. _`Flake8`: https://pypi.python.org/pypi/flake8\n.. _`Python`: https://www.python.org/\n.. _`autocomplete and intelliSense`: https://code.visualstudio.com/docs/languages/python#_autocomplete-and-intellisense\n\n\nExample Usage\n=============\n\nInstall vscode recipe with stndard settings::\n\n >>> write(sample_buildout, 'buildout.cfg',\n ... \"\"\"\n ... [buildout]\n ... develop =\n ... %(test_dir)s/develop/vscodetest_pkg1\n ... eggs =\n ... vscodetest_pkg1\n ... zc.recipe.egg\n ... zc.buildout\n ... parts = vscode\n ...\n ... [vscode]\n ... recipe = collective.recipe.vscode\n ... packages = %(test_dir)s/Products\n ... ignore-develop = False\n ... eggs = ${buildout:eggs}\n ... flake8-enabled = True\n ... flake8-path = ${buildout:directory}/bin/flake8\n ... black-enabled = True\n ... black-path = $project_path/bin/black\n ... black-args = --line-length 88 \n ... --skip-string-normalization\n ... \"\"\" % globals())\n >>> output_lower = system(buildout + ' -c buildout.cfg').lower()\n >>> \"installing vscode.\" in output_lower\n True\n >>> 'tests/develop/vscodetest_pkg1' in output_lower\n True\n >>> ls(sample_buildout)\n - .installed.cfg\n d .vscode\n d bin\n - buildout.cfg\n d develop-eggs\n d eggs\n d parts\n \n >>> import json\n >>> import os\n >>> from collective.recipe.vscode.recipes import mappings\n >>> settings_dir = os.path.join(sample_buildout, \".vscode\")\n >>> vsc_settings = json.loads(read(settings_dir, 'settings.json'))\n >>> len(vsc_settings[mappings['autocomplete-extrapaths']]) == 4\n True\n >>> mappings['flake8-enabled'] in vsc_settings\n True\n >>> vsc_settings[mappings['formatting-provider']] == \"black\"\n True\n\nVS Code settings with all default options::\n >>> os.unlink(os.path.join(settings_dir, 'settings.json'))\n >>> write(sample_buildout, 'buildout.cfg',\n ... \"\"\"\n ... [buildout]\n ... develop =\n ... %(test_dir)s/develop/vscodetest_pkg1\n ... eggs =\n ... vscodetest_pkg1\n ... zc.recipe.egg\n ... parts = vscode\n ...\n ... [vscode]\n ... recipe = collective.recipe.vscode\n ... eggs = ${buildout:eggs}\n ... \"\"\" % globals())\n >>> output = system(buildout + ' -c buildout.cfg').lower()\n >>> vsc_settings = json.loads(read(settings_dir, 'settings.json'))\n >>> mappings['flake8-path'] not in vsc_settings\n True\n >>> len(vsc_settings[mappings['autocomplete-extrapaths']]) == 3\n True\n\nContributors\n============\n\n- Md Nazrul Islam, Original Author.\n- Matteo Parrucci\n\n\nChangelog\n=========\n\n0.1.4 (2019-05-28)\n------------------\n\n- Issue#3 `Fixed typo `_ [parruc]\n- Issue#4 `Documented isort `_ [parruc]\n- Issue#5 `Automatic .env file generation `_ [parruc]\n\n\n\n0.1.3 (2019-03-12)\n------------------\n\nBug fixes\n\n- Issue#2 `Linter disabling simply not working `_\n\n\n0.1.2 (2019-02-14)\n------------------\n\nNew features\n\n- default ``files.associations`` and ``files.exclude`` for python file now will be automatically included\n if those are not in existing ``settings.json``\n\nBug fixes\n\n- Normally buildout removed generated file/directory first if exists, that's why previously ``settings.json`` file \n removed and ultimately existing settings were lost! [nazrulworld]\n\n\n0.1.1 (2019-02-11)\n------------------\n\nBug fixes\n\n- Issue#1 `pep8 enabling configuration added even not mentioned in buildout `_\n\n- Open existing settings file (mode was missing while opening file)\n\n\n0.1.0 (2019-02-10)\n------------------\n\n- Initial release.\n [nazrulworld]\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nazrulworld/collective.recipe.vscode", "keywords": "python buildout plone vscode jedi sublimelinter buildout-recipe anaconda", "license": "GPL version 2", "maintainer": "", "maintainer_email": "", "name": "collective.recipe.vscode", "package_url": "https://pypi.org/project/collective.recipe.vscode/", "platform": "", "project_url": "https://pypi.org/project/collective.recipe.vscode/", "project_urls": { "Homepage": "https://github.com/nazrulworld/collective.recipe.vscode" }, "release_url": "https://pypi.org/project/collective.recipe.vscode/0.1.4/", "requires_dist": [ "setuptools", "zc.buildout", "zc.recipe.egg", "zope.testing ; extra == 'test'", "zc.buildout[test] ; extra == 'test'", "zc.recipe.egg ; extra == 'test'" ], "requires_python": "", "summary": "Visual Studio Code configuration for buildout-based Python projects", "version": "0.1.4" }, "last_serial": 5326550, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a9609b13136f4b2c2651810086f5d1f8", "sha256": "ecda318b416b06b4185ea1cd36bb7f41c45d2da11f1765efb259195d00770af5" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a9609b13136f4b2c2651810086f5d1f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18259, "upload_time": "2019-02-10T17:24:11", "url": "https://files.pythonhosted.org/packages/9c/7c/940735ffc7e54504827eb9d451371b7a3470c2d07b0711ba8122b5492605/collective.recipe.vscode-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "748bb6347e08a38add65404d6553c7f1", "sha256": "99fc98c9135a3d5b21ecbf00edb0462fffdceda33c601079affd258ac744bbd4" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.0.tar.gz", "has_sig": false, "md5_digest": "748bb6347e08a38add65404d6553c7f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16361, "upload_time": "2019-02-10T17:24:13", "url": "https://files.pythonhosted.org/packages/f1/51/1850accf4bb9f0f871f868a2d9876da438dd4c512c9cc4b426fd37a92ddf/collective.recipe.vscode-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d2bd317192d4c2445d567ee359e228fc", "sha256": "218dd268d891c500e8615b287205a6a30e91b85dadf327fd2784ccf2c6995467" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d2bd317192d4c2445d567ee359e228fc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18431, "upload_time": "2019-02-11T07:24:15", "url": "https://files.pythonhosted.org/packages/d1/d3/bd3f162a7c07123dce9f9924342a0cc034aabe0c6d2a1014733583cfb20b/collective.recipe.vscode-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4397acdf64016a8773e6462ec2c6bce4", "sha256": "bf8d5b26a229fb594522ad94eaf46a4ac89e6a2577170596011f52e66e6c61e5" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4397acdf64016a8773e6462ec2c6bce4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16658, "upload_time": "2019-02-11T07:24:17", "url": "https://files.pythonhosted.org/packages/42/25/d791ecb9175428df5ef527f33ebe28f33942c5d2d20be7f4276fad0a13fc/collective.recipe.vscode-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "fb193aa206daafae2abdb5314cf175e2", "sha256": "05a387c4dd7b9d8aae74a947fe0e7ef7188a3ba0e6e9f1567a43cff42f605c15" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fb193aa206daafae2abdb5314cf175e2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19100, "upload_time": "2019-02-14T15:34:11", "url": "https://files.pythonhosted.org/packages/a1/94/e82ffbcffe5d8e9db39d77cbcf9af200466da70d7e58984bf152d6ec505d/collective.recipe.vscode-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5c6bc20819aa114d7ce3fa125f131ed", "sha256": "22051940fbe2a62f3be9c416682741607be6cedf3f4366e2d95b5e074aeca985" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d5c6bc20819aa114d7ce3fa125f131ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17490, "upload_time": "2019-02-14T15:34:13", "url": "https://files.pythonhosted.org/packages/41/2e/77e43b02d8c53ff2b0b2bac932fde27efd988c404d6eabdf400fca35c7bf/collective.recipe.vscode-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b712637bef89e3611ab146868b1a8e0d", "sha256": "a040663828fde209bbc4e44e619696fd34c98fe875d28c1a07021af8dff8d948" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b712637bef89e3611ab146868b1a8e0d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19719, "upload_time": "2019-03-12T08:41:29", "url": "https://files.pythonhosted.org/packages/a3/f9/804a37db6df8499f65fb6489502c417ab07c7371ab34546b6937709636d8/collective.recipe.vscode-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72b91054a64dd82b708070651525a8aa", "sha256": "7a6df2bb575023261fa94e6d95a1ef7ffd6410895ece7234b6245664a24f9625" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.3.tar.gz", "has_sig": false, "md5_digest": "72b91054a64dd82b708070651525a8aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18133, "upload_time": "2019-03-12T08:41:31", "url": "https://files.pythonhosted.org/packages/41/6c/256f29927584457d990d2e1e0ba63397936f6ab0c89a47faf4a2d66ab5f5/collective.recipe.vscode-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "345785acc4ae724f73baaee76e3b6232", "sha256": "aa5e81e185e7556123652fc06bedd687048324bdc3a6537993f3e3b1af7368d0" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "345785acc4ae724f73baaee76e3b6232", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20099, "upload_time": "2019-05-28T12:27:53", "url": "https://files.pythonhosted.org/packages/2a/58/2f1e6c1eff8eb71142d31c1cb0f882001b119761498e95ef34c49814c245/collective.recipe.vscode-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae2557140a5d5ede3582f2cce71ffc59", "sha256": "6ed28eea47efcbc21318d116937fac3da2fa57d7141d3d3e1c9d46f1a6da08f6" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ae2557140a5d5ede3582f2cce71ffc59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18811, "upload_time": "2019-05-28T12:27:56", "url": "https://files.pythonhosted.org/packages/03/cb/ef136a348051ce45b929de2a26a6a9299b8758ff1ce824d5a1a63e934282/collective.recipe.vscode-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "345785acc4ae724f73baaee76e3b6232", "sha256": "aa5e81e185e7556123652fc06bedd687048324bdc3a6537993f3e3b1af7368d0" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "345785acc4ae724f73baaee76e3b6232", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20099, "upload_time": "2019-05-28T12:27:53", "url": "https://files.pythonhosted.org/packages/2a/58/2f1e6c1eff8eb71142d31c1cb0f882001b119761498e95ef34c49814c245/collective.recipe.vscode-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae2557140a5d5ede3582f2cce71ffc59", "sha256": "6ed28eea47efcbc21318d116937fac3da2fa57d7141d3d3e1c9d46f1a6da08f6" }, "downloads": -1, "filename": "collective.recipe.vscode-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ae2557140a5d5ede3582f2cce71ffc59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18811, "upload_time": "2019-05-28T12:27:56", "url": "https://files.pythonhosted.org/packages/03/cb/ef136a348051ce45b929de2a26a6a9299b8758ff1ce824d5a1a63e934282/collective.recipe.vscode-0.1.4.tar.gz" } ] }