howdoi


Namehowdoi JSON
Version 2.0.16 PyPI version JSON
download
home_pagehttps://github.com/gleitz/howdoi
SummaryInstant coding answers via the command line
upload_time2021-06-07 23:48:41
maintainerBenjamin Gleitzman
docs_urlNone
authorBenjamin Gleitzman
requires_python
licenseMIT
keywords howdoi help console command line answer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            howdoi
======

instant coding answers via the command line
-------------------------------------------

.. image:: https://img.shields.io/github/workflow/status/gleitz/howdoi/Python%20CI?style=plastic&color=78dce8
        :target: https://github.com/gleitz/howdoi/actions?query=workflow%3A%22Python+CI%22

.. image:: https://img.shields.io/badge/dynamic/json?style=plastic&color=ab9df2&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fhowdoi
        :target: https://pepy.tech/project/howdoi

.. image:: https://img.shields.io/pypi/pyversions/howdoi.svg?style=plastic&color=ff6188
        :target: https://pypi.python.org/pypi/howdoi

|

.. image:: http://sublimate.org/flyers/HowDoIcolor512.png
        :target: https://pypi.python.org/pypi/howdoi
        :alt: Sherlock, your neighborhood command-line sloth sleuth

Sherlock, your neighborhood command-line sloth sleuth.

----

Are you a hack programmer? Do you find yourself constantly Googling for
how to do basic programming tasks?

Suppose you want to know how to format a date in bash. Why open your browser
and read through blogs (risking major distraction) when you can simply stay
in the console and ask howdoi:

::

    $ howdoi format date bash
    > DATE=`date +%Y-%m-%d`

howdoi will answer all sorts of queries:

::

    $ howdoi print stack trace python
    > import traceback
    >
    > try:
    >     1/0
    > except:
    >     print '>>> traceback <<<'
    >     traceback.print_exc()
    >     print '>>> end of traceback <<<'
    > traceback.print_exc()

    $ howdoi convert mp4 to animated gif
    > video=/path/to/video.avi
    > outdir=/path/to/output.gif
    > mplayer "$video" \
    >         -ao null \
    >         -ss "00:01:00" \  # starting point
    >         -endpos 10 \ # duration in second
    >         -vo gif89a:fps=13:output=$outdir \
    >         -vf scale=240:180

    $ howdoi create tar archive
    > tar -cf backup.tar --exclude "www/subf3" www

.. image:: http://imgs.xkcd.com/comics/tar.png
        :target: https://xkcd.com/1168/

Installation
------------

::

    pip install howdoi

or

::

    pip install git+https://github.com/gleitz/howdoi.git#egg=howdoi

or

::

    python setup.py install

New to howdoi?
--------------

::

    howdoi howdoi

Usage
-----

::

    usage: howdoi [-h] [-p POS] [-n NUM] [-a] [-l] [-c] [-x] [-C] [-j] [-v] [-e [ENGINE]] [--save] [--view] [--remove] [--empty] [QUERY ...]

    instant coding answers via the command line

    positional arguments:
      QUERY                 the question to answer

    optional arguments:
      -h, --help            show this help message and exit
      -p POS, --pos POS     select answer in specified position (default: 1)
      -n NUM, --num NUM     number of answers to return (default: 1)
      -a, --all             display the full text of the answer
      -l, --link            display only the answer link
      -c, --color           enable colorized output
      -x, --explain         explain how answer was chosen
      -C, --clear-cache     clear the cache
      -j, --json            return answers in raw json format
      -v, --version         displays the current version of howdoi
      -e [ENGINE], --engine [ENGINE]
                            search engine for this query (google, bing, duckduckgo)
      --save, --stash       stash a howdoi answer
      --view                view your stash
      --remove              remove an entry in your stash
      --empty               empty your stash

    environment variable examples:
      HOWDOI_COLORIZE=1
      HOWDOI_DISABLE_CACHE=1
      HOWDOI_DISABLE_SSL=1
      HOWDOI_SEARCH_ENGINE=google
      HOWDOI_URL=serverfault.com

Using the howdoi stashing feature (for more advanced features view the `keep documentation <https://github.com/OrkoHunter/keep>`_).

::

    stashing: howdoi --save QUERY
    viewing:  howdoi --view
    removing: howdoi --remove (will be prompted which answer to delete)
    emptying: howdoi --empty (empties entire stash, will be prompted to confirm)

As a shortcut, if you commonly use the same parameters each time and don't want to type them, add something similar to your .bash_profile (or otherwise). This example gives you 5 colored results each time.

::

    alias h='function hdi(){ howdoi $* -c -n 5; }; hdi'

And then to run it from the command line simply type:

::

    $ h format date bash

You can also search other `StackExchange properties <https://stackexchange.com/sites#traffic>`_ for answers:

::

    HOWDOI_URL=cooking.stackexchange.com howdoi make pesto

or as an alias:

::

    alias hcook='function hcook(){ HOWDOI_URL=cooking.stackexchange.com howdoi $* ; }; hcook'
    hcook make pesto

Other useful aliases:

::

    alias hless='function hdi(){ howdoi $* -c | less --raw-control-chars --quit-if-one-screen --no-init; }; hdi'

Contributors
------------

-  Benjamin Gleitzman (`@gleitz <http://twitter.com/gleitz>`_)
-  Yanlam Ko (`@YKo20010 <https://github.com/YKo20010>`_)
-  Diana Arreola (`@diarreola <https://github.com/diarreola>`_)
-  Eyitayo Ogunbiyi (`@tayoogunbiyi <https://github.com/tayoogunbiyi>`_)
-  Chris Nguyen (`@chrisngyn <https://github.com/chrisngyn>`_)
-  Shageldi Ovezov (`@ovezovs <https://github.com/chrisngyn>`_)
-  Mwiza Simbeye (`@mwizasimbeye11 <https://github.com/mwizasimbeye11>`_)
-  Shantanu Verma (`@SaurusXI <https://github.com/SaurusXI>`_)
-  And `more! <https://github.com/gleitz/howdoi/graphs/contributors>`_

Notes
-----

-  Works with Python 3.5 and newer. Unfortunately Python 2.7 support has been discontinued :(
-  There is a `GUI that wraps howdoi <https://pypi.org/project/pysimplegui-howdoi/>`_.
-  There is a `Flask webapp that wraps howdoi <https://howdoi.maxbridgland.com>`_.
-  An Alfred Workflow for howdoi can be found at `http://blog.gleitzman.com/post/48539944559/howdoi-alfred-even-more-instant-answers <http://blog.gleitzman.com/post/48539944559/howdoi-alfred-even-more-instant-answers>`_.
-  Slack integration available through `slack-howdoi <https://github.com/ellisonleao/slack-howdoi>`_.
-  Telegram integration available through `howdoi-telegram <https://github.com/aahnik/howdoi-telegram>`_.
-  Howdoi uses a cache for faster access to previous questions. Caching functionality can be disabled by setting the HOWDOI_DISABLE_CACHE environment variable. The cache is stored in `~/.cache/howdoi`.
-  You can set the HOWDOI_URL environment variable to change the source url for answers (default: `stackoverflow.com`, also supported: `serverfault.com`, `pt.stackoverflow.com`, `full list <http://stackexchange.com/sites?view=list#traffic>`_).
-  You can set the HOWDOI_SEARCH_ENGINE environment variable to change the underlying search engine for StackOverflow links (default: `google`, also supported: `bing`, `duckduckgo`). The -e flag will switch the underlying engine for a single query.
-  Setting the HOWDOI_COLORIZE environment variable will colorize the output by default.
-  Special thanks to Rich Jones (`@miserlou <https://github.com/miserlou>`_) for the idea.
-  More thanks to `Ben Bronstein <https://benbronstein.com/>`_ for the logo.

Development
-----------

-  Checkout the repo
-  Run ``python -m howdoi QUERY`` (if you try running ``python howdoi/howdoi.py`` you might get ``ValueError: Attempted relative import in non-package``).
-  When you're ready to open a PR be sure to run ``python setup.py lint`` to make sure your code passes the checks.

If you would like to use howdoi from within a python script, just pass your query to `howdoi.howdoi()`:
::

    from howdoi import howdoi

    query = "for loop python"
    output = howdoi.howdoi(query)


Or parse it yourself (either work):

::

    from howdoi import howdoi

    query = "for loop python"
    parser = howdoi.get_parser()
    args = vars(parser.parse_args(query.split(' ')))

    output = howdoi.howdoi(args)

Or get the results as JSON:

::

    from howdoi import howdoi
    import json

    query = "for loop python"

    output_json = json.loads(howdoi.howdoi(f'{query} -j'))

Extension Development
---------------------

To simplify the process of integrating howdoi as a code editor extension, edit the files within the `extension/code-editor-integration folder <https://github.com/gleitz/howdoi/tree/master/extension/code-editor-integration>`_.

To improve upon the Visual Studio Code howdoi extension, edit the files within the `extension/vscode-ext folder <https://github.com/gleitz/howdoi/tree/master/extension/vscode-howdoi>`_ and republish the extension.

Code Editor Integration
~~~~~~~~~~~~~~~~~~~~~~~

Head over to the `README.md <https://github.com/gleitz/howdoi/blob/master/extension/code-editor-integration/README.md>`_ for an in depth explanation on beginning development for the howdoi code editor integration plug-in.

Visual Studio Code Extension
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To begin development for the Visual Studio Code extension, install all necessary packages:

::

    npm install

Then, precompile the extension:

::

    npm run precompile

To run and test the extension, utilize Visual Studio Code's `debugging tools <https://code.visualstudio.com/api/get-started/your-first-extension>`_.

Visual Studio Code Extension Installation
-----------------------------------------

howdoi can now be installed as an extension on Visual Studio Code! There are two ways to install it:

1.  On the Visual Studio Code MarketPlace:

   -  Head over to the `MarketPlace <https://marketplace.visualstudio.com/items?itemName=howdoi-org.howdoi>`_ to install the extension.

2.  Directly from the packaged extension:

   -  Head over `here <https://github.com/gleitz/howdoi/tree/master/extension/vscode-pkg/README.md>`_ to locally install the howdoi Visual Studio Code package.

Contributing
------------

I'm happy to accept pull requests that make howdoi better. If you're thinking of contributing and want a little feedback before you jump into the codebase, post an `issue <https://github.com/gleitz/howdoi/issues>`_ on Github.

Before PRs are accepted they must pass all `tests <https://github.com/gleitz/howdoi/actions?query=workflow%3A%22Python+CI+%28branches%29%22>`_ and not have any flake8 or pylint warnings or errors. This projects uses vanilla configuration files for both linters (``.flake8rc`` and ``.pylintrc`` in the root directory), but with a max line length of 119.


News
====

2.0.16
------
-  Fix GDPR issue for those using howdoi in countries outside the US
-  Better support for using `HOWDOI_URL`

2.0.15
------
-  Add explainability with `-x` or `--explain` options
-  Better error checking for when search engines block queries
-  Using improved DuckDuckGo endpoint
-  Answer pages now fetched in parallel for speed improvement

2.0.14
------
-  Fix a number of bugs by switching from parsing Google links to looking for URLs instead

2.0.13
------
-  More permanent fix for extracting Google links

2.0.12
------
-  Hotfix for Google link formatting

2.0.11
------
-  Hotfix for Google link formatting

2.0.10
------
-  Hotfix for new Google classnames
-  Separate requirements.txt files for prod and dev

2.0.9
------
-  Cleaner command line options that also include environment variables
-  README updates

2.0.8
------
-  Fix issue for answers that have no code in the answer but code in the comments
-  Add range checks for -n and -p flags
-  Moved from Travis to Github Actions
-  Dropped Python 2.7 support

2.0.7
------
-  Update for new Google CSS style

2.0.6
------
-  Fix issue where `-a` would not return a proper response due to updated CSS on StackOverflow

2.0.5
------
-  New logo and colors!

2.0.4
------
-  Cachelib rollback to support Python 2.7
-  Better error message when Google is being blocked (for example in China)

2.0.3
------
-  Bring back Python 2.7 support (for now)

2.0.2
------
-  Fixed keep support for stashing and viewing answers

2.0.1
------
-  Added JSON output with the -j flag (great for consuming howdoi results for use in other apps)
-  Added stashing ability for saving useful answer for later (based on https://github.com/OrkoHunter/keep)
-  Added caching for tests to prevent being rate limited by Google while developing
-  Added easier method for calling howdoi when imported (howdoi.howdoi)

1.2.1
------
-  Fix dependency issue

1.2.0
------
-  Massive speed improvements of startup, answer fetching, and caching
-  Command line flags for alternate search engines
-  Remove duplicate answers

1.1.14
------
-  Links displayed with markdown syntax
-  Improved performance and caching (again)

1.1.13
------
-  Improved performance and caching
-  More friendly answer display
-  Added support for Python 3.6
-  Removed support for Python 2.6

1.1.12
------
-  Add additional search engine support

1.1.11
------
-  Fix issue with UTF-8 encoding

1.1.10
------
-  Include the link in output when asking for >1 answer
-  Compatibility with linuxbrew

1.1.9
------
-  Fix issue with upload to PyPI

1.1.8
------
-  Fix colorization when HOWDOI_COLORIZE env variable is enabled
-  Fix certificate validation when SSL disabled

1.1.7
------
-  Add Localization support with HOWDOI_LOCALIZATION env variable (Currently only pt-br and en)

1.1.6
------
-  Updates for Python3
-  Updates for caching

1.1.5
------
-  Updates for Python3
-  Fix issues with cache
-  Allow disabling SSL when accessing Google

1.1.4
------
-  Added caching

1.1.3
------
-  Added fix to handle change in Google search page HTML
-  Updated Travis CI tests

1.1.2
------
-  Compatibility fixes for Python3.2
-  Travis CI tests now being run for Python 2.6, 2.7, 3.2, and 3.3

1.1.1
------
-  Added message when question has no answer

1.1
------
-  Added multiple answers with -n/--num-answers flag
-  Added colorized output with -c/--color flag
-  Added answer link to the bottom of questions with -a/--all flag
-  Unit tests now managed through Travis CI

1.0
------
-  Added support for Python3
-  Switched to the requests library instead of urllib2
-  Project status changed to Production/Stable
-  Added troubleshooting steps to the README

0.2
------
-  Added sane flags
-  Now using ``/usr/bin/env python`` instead of ``/usr/bin/python``
-  Updated README for brew installation instructions

0.1.2
------
-  Added Windows executable
-  Updated README for pip installation instructions

0.1.1
------
-  Added to PyPI

0.1
------
-  We're doing it live!
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gleitz/howdoi",
    "name": "howdoi",
    "maintainer": "Benjamin Gleitzman",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "gleitz@mit.edu",
    "keywords": "howdoi help console command line answer",
    "author": "Benjamin Gleitzman",
    "author_email": "gleitz@mit.edu",
    "download_url": "https://files.pythonhosted.org/packages/8c/af/f4b90c7a8662b7c284330a02ed4652a61aa93ac48fbcb510932c60cbc6e0/howdoi-2.0.16.tar.gz",
    "platform": "",
    "description": "howdoi\n======\n\ninstant coding answers via the command line\n-------------------------------------------\n\n.. image:: https://img.shields.io/github/workflow/status/gleitz/howdoi/Python%20CI?style=plastic&color=78dce8\n        :target: https://github.com/gleitz/howdoi/actions?query=workflow%3A%22Python+CI%22\n\n.. image:: https://img.shields.io/badge/dynamic/json?style=plastic&color=ab9df2&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fhowdoi\n        :target: https://pepy.tech/project/howdoi\n\n.. image:: https://img.shields.io/pypi/pyversions/howdoi.svg?style=plastic&color=ff6188\n        :target: https://pypi.python.org/pypi/howdoi\n\n|\n\n.. image:: http://sublimate.org/flyers/HowDoIcolor512.png\n        :target: https://pypi.python.org/pypi/howdoi\n        :alt: Sherlock, your neighborhood command-line sloth sleuth\n\nSherlock, your neighborhood command-line sloth sleuth.\n\n----\n\nAre you a hack programmer? Do you find yourself constantly Googling for\nhow to do basic programming tasks?\n\nSuppose you want to know how to format a date in bash. Why open your browser\nand read through blogs (risking major distraction) when you can simply stay\nin the console and ask howdoi:\n\n::\n\n    $ howdoi format date bash\n    > DATE=`date +%Y-%m-%d`\n\nhowdoi will answer all sorts of queries:\n\n::\n\n    $ howdoi print stack trace python\n    > import traceback\n    >\n    > try:\n    >     1/0\n    > except:\n    >     print '>>> traceback <<<'\n    >     traceback.print_exc()\n    >     print '>>> end of traceback <<<'\n    > traceback.print_exc()\n\n    $ howdoi convert mp4 to animated gif\n    > video=/path/to/video.avi\n    > outdir=/path/to/output.gif\n    > mplayer \"$video\" \\\n    >         -ao null \\\n    >         -ss \"00:01:00\" \\  # starting point\n    >         -endpos 10 \\ # duration in second\n    >         -vo gif89a:fps=13:output=$outdir \\\n    >         -vf scale=240:180\n\n    $ howdoi create tar archive\n    > tar -cf backup.tar --exclude \"www/subf3\" www\n\n.. image:: http://imgs.xkcd.com/comics/tar.png\n        :target: https://xkcd.com/1168/\n\nInstallation\n------------\n\n::\n\n    pip install howdoi\n\nor\n\n::\n\n    pip install git+https://github.com/gleitz/howdoi.git#egg=howdoi\n\nor\n\n::\n\n    python setup.py install\n\nNew to howdoi?\n--------------\n\n::\n\n    howdoi howdoi\n\nUsage\n-----\n\n::\n\n    usage: howdoi [-h] [-p POS] [-n NUM] [-a] [-l] [-c] [-x] [-C] [-j] [-v] [-e [ENGINE]] [--save] [--view] [--remove] [--empty] [QUERY ...]\n\n    instant coding answers via the command line\n\n    positional arguments:\n      QUERY                 the question to answer\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      -p POS, --pos POS     select answer in specified position (default: 1)\n      -n NUM, --num NUM     number of answers to return (default: 1)\n      -a, --all             display the full text of the answer\n      -l, --link            display only the answer link\n      -c, --color           enable colorized output\n      -x, --explain         explain how answer was chosen\n      -C, --clear-cache     clear the cache\n      -j, --json            return answers in raw json format\n      -v, --version         displays the current version of howdoi\n      -e [ENGINE], --engine [ENGINE]\n                            search engine for this query (google, bing, duckduckgo)\n      --save, --stash       stash a howdoi answer\n      --view                view your stash\n      --remove              remove an entry in your stash\n      --empty               empty your stash\n\n    environment variable examples:\n      HOWDOI_COLORIZE=1\n      HOWDOI_DISABLE_CACHE=1\n      HOWDOI_DISABLE_SSL=1\n      HOWDOI_SEARCH_ENGINE=google\n      HOWDOI_URL=serverfault.com\n\nUsing the howdoi stashing feature (for more advanced features view the `keep documentation <https://github.com/OrkoHunter/keep>`_).\n\n::\n\n    stashing: howdoi --save QUERY\n    viewing:  howdoi --view\n    removing: howdoi --remove (will be prompted which answer to delete)\n    emptying: howdoi --empty (empties entire stash, will be prompted to confirm)\n\nAs a shortcut, if you commonly use the same parameters each time and don't want to type them, add something similar to your .bash_profile (or otherwise). This example gives you 5 colored results each time.\n\n::\n\n    alias h='function hdi(){ howdoi $* -c -n 5; }; hdi'\n\nAnd then to run it from the command line simply type:\n\n::\n\n    $ h format date bash\n\nYou can also search other `StackExchange properties <https://stackexchange.com/sites#traffic>`_ for answers:\n\n::\n\n    HOWDOI_URL=cooking.stackexchange.com howdoi make pesto\n\nor as an alias:\n\n::\n\n    alias hcook='function hcook(){ HOWDOI_URL=cooking.stackexchange.com howdoi $* ; }; hcook'\n    hcook make pesto\n\nOther useful aliases:\n\n::\n\n    alias hless='function hdi(){ howdoi $* -c | less --raw-control-chars --quit-if-one-screen --no-init; }; hdi'\n\nContributors\n------------\n\n-  Benjamin Gleitzman (`@gleitz <http://twitter.com/gleitz>`_)\n-  Yanlam Ko (`@YKo20010 <https://github.com/YKo20010>`_)\n-  Diana Arreola (`@diarreola <https://github.com/diarreola>`_)\n-  Eyitayo Ogunbiyi (`@tayoogunbiyi <https://github.com/tayoogunbiyi>`_)\n-  Chris Nguyen (`@chrisngyn <https://github.com/chrisngyn>`_)\n-  Shageldi Ovezov (`@ovezovs <https://github.com/chrisngyn>`_)\n-  Mwiza Simbeye (`@mwizasimbeye11 <https://github.com/mwizasimbeye11>`_)\n-  Shantanu Verma (`@SaurusXI <https://github.com/SaurusXI>`_)\n-  And `more! <https://github.com/gleitz/howdoi/graphs/contributors>`_\n\nNotes\n-----\n\n-  Works with Python 3.5 and newer. Unfortunately Python 2.7 support has been discontinued :(\n-  There is a `GUI that wraps howdoi <https://pypi.org/project/pysimplegui-howdoi/>`_.\n-  There is a `Flask webapp that wraps howdoi <https://howdoi.maxbridgland.com>`_.\n-  An Alfred Workflow for howdoi can be found at `http://blog.gleitzman.com/post/48539944559/howdoi-alfred-even-more-instant-answers <http://blog.gleitzman.com/post/48539944559/howdoi-alfred-even-more-instant-answers>`_.\n-  Slack integration available through `slack-howdoi <https://github.com/ellisonleao/slack-howdoi>`_.\n-  Telegram integration available through `howdoi-telegram <https://github.com/aahnik/howdoi-telegram>`_.\n-  Howdoi uses a cache for faster access to previous questions. Caching functionality can be disabled by setting the HOWDOI_DISABLE_CACHE environment variable. The cache is stored in `~/.cache/howdoi`.\n-  You can set the HOWDOI_URL environment variable to change the source url for answers (default: `stackoverflow.com`, also supported: `serverfault.com`, `pt.stackoverflow.com`, `full list <http://stackexchange.com/sites?view=list#traffic>`_).\n-  You can set the HOWDOI_SEARCH_ENGINE environment variable to change the underlying search engine for StackOverflow links (default: `google`, also supported: `bing`, `duckduckgo`). The -e flag will switch the underlying engine for a single query.\n-  Setting the HOWDOI_COLORIZE environment variable will colorize the output by default.\n-  Special thanks to Rich Jones (`@miserlou <https://github.com/miserlou>`_) for the idea.\n-  More thanks to `Ben Bronstein <https://benbronstein.com/>`_ for the logo.\n\nDevelopment\n-----------\n\n-  Checkout the repo\n-  Run ``python -m howdoi QUERY`` (if you try running ``python howdoi/howdoi.py`` you might get ``ValueError: Attempted relative import in non-package``).\n-  When you're ready to open a PR be sure to run ``python setup.py lint`` to make sure your code passes the checks.\n\nIf you would like to use howdoi from within a python script, just pass your query to `howdoi.howdoi()`:\n::\n\n    from howdoi import howdoi\n\n    query = \"for loop python\"\n    output = howdoi.howdoi(query)\n\n\nOr parse it yourself (either work):\n\n::\n\n    from howdoi import howdoi\n\n    query = \"for loop python\"\n    parser = howdoi.get_parser()\n    args = vars(parser.parse_args(query.split(' ')))\n\n    output = howdoi.howdoi(args)\n\nOr get the results as JSON:\n\n::\n\n    from howdoi import howdoi\n    import json\n\n    query = \"for loop python\"\n\n    output_json = json.loads(howdoi.howdoi(f'{query} -j'))\n\nExtension Development\n---------------------\n\nTo simplify the process of integrating howdoi as a code editor extension, edit the files within the `extension/code-editor-integration folder <https://github.com/gleitz/howdoi/tree/master/extension/code-editor-integration>`_.\n\nTo improve upon the Visual Studio Code howdoi extension, edit the files within the `extension/vscode-ext folder <https://github.com/gleitz/howdoi/tree/master/extension/vscode-howdoi>`_ and republish the extension.\n\nCode Editor Integration\n~~~~~~~~~~~~~~~~~~~~~~~\n\nHead over to the `README.md <https://github.com/gleitz/howdoi/blob/master/extension/code-editor-integration/README.md>`_ for an in depth explanation on beginning development for the howdoi code editor integration plug-in.\n\nVisual Studio Code Extension\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo begin development for the Visual Studio Code extension, install all necessary packages:\n\n::\n\n    npm install\n\nThen, precompile the extension:\n\n::\n\n    npm run precompile\n\nTo run and test the extension, utilize Visual Studio Code's `debugging tools <https://code.visualstudio.com/api/get-started/your-first-extension>`_.\n\nVisual Studio Code Extension Installation\n-----------------------------------------\n\nhowdoi can now be installed as an extension on Visual Studio Code! There are two ways to install it:\n\n1.  On the Visual Studio Code MarketPlace:\n\n   -  Head over to the `MarketPlace <https://marketplace.visualstudio.com/items?itemName=howdoi-org.howdoi>`_ to install the extension.\n\n2.  Directly from the packaged extension:\n\n   -  Head over `here <https://github.com/gleitz/howdoi/tree/master/extension/vscode-pkg/README.md>`_ to locally install the howdoi Visual Studio Code package.\n\nContributing\n------------\n\nI'm happy to accept pull requests that make howdoi better. If you're thinking of contributing and want a little feedback before you jump into the codebase, post an `issue <https://github.com/gleitz/howdoi/issues>`_ on Github.\n\nBefore PRs are accepted they must pass all `tests <https://github.com/gleitz/howdoi/actions?query=workflow%3A%22Python+CI+%28branches%29%22>`_ and not have any flake8 or pylint warnings or errors. This projects uses vanilla configuration files for both linters (``.flake8rc`` and ``.pylintrc`` in the root directory), but with a max line length of 119.\n\n\nNews\n====\n\n2.0.16\n------\n-  Fix GDPR issue for those using howdoi in countries outside the US\n-  Better support for using `HOWDOI_URL`\n\n2.0.15\n------\n-  Add explainability with `-x` or `--explain` options\n-  Better error checking for when search engines block queries\n-  Using improved DuckDuckGo endpoint\n-  Answer pages now fetched in parallel for speed improvement\n\n2.0.14\n------\n-  Fix a number of bugs by switching from parsing Google links to looking for URLs instead\n\n2.0.13\n------\n-  More permanent fix for extracting Google links\n\n2.0.12\n------\n-  Hotfix for Google link formatting\n\n2.0.11\n------\n-  Hotfix for Google link formatting\n\n2.0.10\n------\n-  Hotfix for new Google classnames\n-  Separate requirements.txt files for prod and dev\n\n2.0.9\n------\n-  Cleaner command line options that also include environment variables\n-  README updates\n\n2.0.8\n------\n-  Fix issue for answers that have no code in the answer but code in the comments\n-  Add range checks for -n and -p flags\n-  Moved from Travis to Github Actions\n-  Dropped Python 2.7 support\n\n2.0.7\n------\n-  Update for new Google CSS style\n\n2.0.6\n------\n-  Fix issue where `-a` would not return a proper response due to updated CSS on StackOverflow\n\n2.0.5\n------\n-  New logo and colors!\n\n2.0.4\n------\n-  Cachelib rollback to support Python 2.7\n-  Better error message when Google is being blocked (for example in China)\n\n2.0.3\n------\n-  Bring back Python 2.7 support (for now)\n\n2.0.2\n------\n-  Fixed keep support for stashing and viewing answers\n\n2.0.1\n------\n-  Added JSON output with the -j flag (great for consuming howdoi results for use in other apps)\n-  Added stashing ability for saving useful answer for later (based on https://github.com/OrkoHunter/keep)\n-  Added caching for tests to prevent being rate limited by Google while developing\n-  Added easier method for calling howdoi when imported (howdoi.howdoi)\n\n1.2.1\n------\n-  Fix dependency issue\n\n1.2.0\n------\n-  Massive speed improvements of startup, answer fetching, and caching\n-  Command line flags for alternate search engines\n-  Remove duplicate answers\n\n1.1.14\n------\n-  Links displayed with markdown syntax\n-  Improved performance and caching (again)\n\n1.1.13\n------\n-  Improved performance and caching\n-  More friendly answer display\n-  Added support for Python 3.6\n-  Removed support for Python 2.6\n\n1.1.12\n------\n-  Add additional search engine support\n\n1.1.11\n------\n-  Fix issue with UTF-8 encoding\n\n1.1.10\n------\n-  Include the link in output when asking for >1 answer\n-  Compatibility with linuxbrew\n\n1.1.9\n------\n-  Fix issue with upload to PyPI\n\n1.1.8\n------\n-  Fix colorization when HOWDOI_COLORIZE env variable is enabled\n-  Fix certificate validation when SSL disabled\n\n1.1.7\n------\n-  Add Localization support with HOWDOI_LOCALIZATION env variable (Currently only pt-br and en)\n\n1.1.6\n------\n-  Updates for Python3\n-  Updates for caching\n\n1.1.5\n------\n-  Updates for Python3\n-  Fix issues with cache\n-  Allow disabling SSL when accessing Google\n\n1.1.4\n------\n-  Added caching\n\n1.1.3\n------\n-  Added fix to handle change in Google search page HTML\n-  Updated Travis CI tests\n\n1.1.2\n------\n-  Compatibility fixes for Python3.2\n-  Travis CI tests now being run for Python 2.6, 2.7, 3.2, and 3.3\n\n1.1.1\n------\n-  Added message when question has no answer\n\n1.1\n------\n-  Added multiple answers with -n/--num-answers flag\n-  Added colorized output with -c/--color flag\n-  Added answer link to the bottom of questions with -a/--all flag\n-  Unit tests now managed through Travis CI\n\n1.0\n------\n-  Added support for Python3\n-  Switched to the requests library instead of urllib2\n-  Project status changed to Production/Stable\n-  Added troubleshooting steps to the README\n\n0.2\n------\n-  Added sane flags\n-  Now using ``/usr/bin/env python`` instead of ``/usr/bin/python``\n-  Updated README for brew installation instructions\n\n0.1.2\n------\n-  Added Windows executable\n-  Updated README for pip installation instructions\n\n0.1.1\n------\n-  Added to PyPI\n\n0.1\n------\n-  We're doing it live!",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Instant coding answers via the command line",
    "version": "2.0.16",
    "split_keywords": [
        "howdoi",
        "help",
        "console",
        "command",
        "line",
        "answer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "657b18cc450978c56f71551aaa685d53",
                "sha256": "0257fbb328eb3a15ed3acc498314902f00908b130209073509eec21cb7235b2b"
            },
            "downloads": -1,
            "filename": "howdoi-2.0.16.tar.gz",
            "has_sig": false,
            "md5_digest": "657b18cc450978c56f71551aaa685d53",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 28483,
            "upload_time": "2021-06-07T23:48:41",
            "upload_time_iso_8601": "2021-06-07T23:48:41.690568Z",
            "url": "https://files.pythonhosted.org/packages/8c/af/f4b90c7a8662b7c284330a02ed4652a61aa93ac48fbcb510932c60cbc6e0/howdoi-2.0.16.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2021-06-07 23:48:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": null,
    "github_project": "gleitz",
    "error": "Could not fetch GitHub repository",
    "lcname": "howdoi"
}
        
Elapsed time: 0.28408s