familon16 / XComment.io

Removes comments from source files for a list of programming languages.

Home Page:http://xcomment.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XComment

Table of Contents

Installation

$ pip install XComment

Usage

Use the project's CLI to interact with the script.

Processing files

Say, you are working with the file ./tests/sources/HTML/index.html.

Precondition: virtualenv is activated (of course).

To remove comments (output code without comments to output file) invoke

`shell $ comments_remover ./tests/sources/HTML/input.html HTML ./ This will take ./tests/sources/HTML/input.html`, designated as HTML file, and put the copy of the former (with HTML-specific comments removed, obviously) to ./ named rc.input.html. The latter is the name of the original file prefixed with rc. by default.

To highlight comments (outputs comments only to output file) invoke

$ comments_remover ./tests/sources/HTML/input.html HTML -p ./

Processing directories

If on start been specified directory path, script will be processing directory recursively with all subdirs for sources by specified language.

Archives

For processing archived sources use option -a

Examples:

$ # remove comments
$ comments_remover ./tmp/test.zip -a Python

$ # highlight comments
$ comments_remover ./tmp/test.zip -a -p Python

Logging

-l option enable logging (in stdout by default)

-f < path > specify path to log file

Example:

$ comments_remover ./tmp/test.py -l -f ./remove.log Python

Get supported language list

For get list supported languages use -i option. Result list will returned in json format

$ comments_remover -i

["PHP", "Python", "CSS", "HTML", "JavaScript", "ActionScript", "Ruby",
"Assembly", "AppleScript", "Bash", "CSharp", "VB", "XML", "SQL", "C"]

To see full CLI specification, run

$ comments_remover

Development

Getting Up-and-Running Locally

Tested with the following configuration:

  • Ubuntu 16.04 / 17
  • Python 3.6.

Note: the below occurences of `./` refer to the project root unless explicitly stated otherwise.

Setting Things Up on Ubuntu

  1. Enter the shell.
  2. Install pyenv via [pyenv-installer](https://github.com/pyenv/pyenv-installer):

    $ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

    image

  3. Follow the instructions on how to initialize pyenv on shell startup, for instance:

    $ echo 'export PATH="/root/.pyenv/bin:$PATH"' >> ~/.bash_profile
    $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
    $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

    image

  4. Install Python 3.6.x via pyenv, say Python 3.6.2 (latest micro release versions are preferred):

    $ pyenv install 3.6.2

    image

  5. Create a virtualenv for the project:

    $ pyenv virtualenv 3.6.2 comments_remover

  6. Switch to whatever directory you wish the project to reside in, say `~`:

    $ cd ~

  7. Clone the project from GitHub:
    • either via SSH (the preferred way):
    $ git clone git@github.com:Singapore-Tech-Entrepreneurs/comments_remover.git

    image

    • or via HTTPS:
    $ git clone https://github.com/Singapore-Tech-Entrepreneurs/comments_remover.git

    image

  8. Switch to the project directory:

    $ cd comments_remover

    image

  9. Activate the virtualenv:

    $ pyenv activate comments_remover

    image

  10. Install project dependencies:

    $ pip install -U -r ./requirements.txt

    image

  11. Install dependencies for testing:

    $ pip install -U -r ./requirements-test.txt

    image

  12. (optional) Install [IPython](https://ipython.org/) interactive shell to speed up development:

    $ pip install ipython==6.1.0

    image

To run tests, simply

$ pytest ./

image

To also see coverage report,

pytest --cov ./

image

You should be good to go now.

Deployment

Pip registry

Install dependencies
$ python install -r requirements-deploy.txt
Set pypi credentials
$ export TWINE_USERNAME=<pypi username>
$ export TWINE_PASSWORD=<pypi password>
Create distribution
$ python setup.py sdist bdist_wheel
Upload
$ twine upload dist/XComment-x.y.z.tar.gz

Tips

If you're not using [PyCharm](https://www.jetbrains.com/pycharm/) yet, make sure to at least consider this as an option. Also check out [JetBrains Toolbox](https://www.jetbrains.com/toolbox/), a single tool to rule them all (the JetBrains products). To stay up-to-date, follow [PyCharm Blog](https://blog.jetbrains.com/pycharm/).

About

Removes comments from source files for a list of programming languages.

http://xcomment.io


Languages

Language:HTML 32.8%Language:Python 18.5%Language:PLpgSQL 16.2%Language:C# 7.6%Language:C 5.7%Language:Ruby 3.5%Language:ActionScript 3.2%Language:AppleScript 3.0%Language:JavaScript 2.9%Language:Java 2.3%Language:Assembly 1.5%Language:Visual Basic 1.4%Language:Shell 0.9%Language:CSS 0.3%Language:PHP 0.2%