# Plover Q&A
[![Build Status][Build Status image]][Build Status url] [![PyPI - Version][PyPI version image]][PyPI url] [![PyPI - Downloads][PyPI downloads image]][PyPI url] [![linting: pylint][linting image]][linting url]
This [Plover][] [extension][] [plugin][] contains [metas][] for your
dictionaries that can assist with [Q&A][] (Question and Answer): the process of
recording lines of questioning in a conversation involving multiple people,
usually in a legal context.
More information about the concept of Q&A can be found at:
- [Platinum Steno Lesson 27 QA video][]
More information about the creation of, and reasoning behind, the outlines that
originally informed this plugin can be found at the following blog post:
- _[Plover For the Record][]_
You can see a video of the plugin in action here:
- [Steno Legal Q&A Test with Plover and Vim][]
(And if you are a [Vim][] user and want the syntax highlighting, you can find it
in the [Vim Steno Q&A][] plugin)
## Install
1. In the Plover application, open the Plugins Manager (either click the Plugins
Manager icon, or from the `Tools` menu, select `Plugins Manager`).
2. From the list of plugins, find `plover-q-and-a`
3. Click "Install/Update"
4. When it finishes installing, restart Plover
5. After re-opening Plover, open the Configuration screen (either click the
Configuration icon, or from the main Plover application menu, select
`Preferences...`)
6. Open the Plugins tab
7. Check the box next to `plover_q_and_a` to activate the plugin
## Config and Dictionaries
See the [`examples`][] directory for example configuration and dictionaries to
help you get up and running with using this plugin for Q&A.
## How To Use
See the [`INSTRUCTIONS`][] page.
## Development
Clone from GitHub with [git][]:
```console
git clone git@github.com:paulfioravanti/plover-q-and-a.git
cd plover-q-and-a
python -m pip install --editable ".[test]"
```
If you are a [Tmuxinator][] user, you may find my [plover_q_and_a project
file][] of reference.
### Python Version
Plover's Python environment currently uses version 3.9 (see Plover's
[`workflow_context.yml`][] to confirm the current version).
So, in order to avoid unexpected issues, use your runtime version manager to
make sure your local development environment also uses Python 3.9.x.
### Testing
- [Pytest][] is used for testing in this plugin.
- [Coverage.py][] and [pytest-cov][] are used for test coverage, and to run
coverage within Pytest
- [Pylint][] is used for code quality
- [Mypy][] is used for static type checking
Currently, the only parts able to be tested are ones that do not rely directly
on Plover.
Run tests, coverage, and linting with the following commands:
```console
pytest --cov --cov-report=term-missing
pylint plover_q_and_a
mypy plover_q_and_a
```
To get a HTML test coverage report:
```console
coverage run --module pytest
coverage html
open htmlcov/index.html
```
If you are a [`just`][] user, you may find the [`justfile`][] useful during
development in running multiple test commands. You can run the following command
from the project root directory:
```console
just --working-directory . --justfile test/justfile
```
### Deploying Changes
After making any code changes, install the plugin into Plover with the following
command:
```console
plover --script plover_plugins install --editable .
```
> Where `plover` in the command is a reference to your locally installed version
> of Plover. See the [Invoke Plover from the command line][] page for details on
> how to create that reference.
When necessary, the plugin can be uninstalled via the command line with the
following command:
```console
plover --script plover_plugins uninstall plover-q-and-a
```
[Build Status image]: https://github.com/paulfioravanti/plover-q-and-a/actions/workflows/ci.yml/badge.svg
[Build Status url]: https://github.com/paulfioravanti/plover-q-and-a/actions/workflows/ci.yml
[Coverage.py]: https://github.com/nedbat/coveragepy
[`examples`]: ./examples
[extension]: https://plover.readthedocs.io/en/latest/plugin-dev/extensions.html
[git]: https://git-scm.com/
[Invoke Plover from the command line]: https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line
[`INSTRUCTIONS`]: ./INSTRUCTIONS.md
[`just`]: https://github.com/casey/just
[`justfile`]: ./test/justfile
[linting image]: https://img.shields.io/badge/linting-pylint-yellowgreen
[linting url]: https://github.com/pylint-dev/pylint
[metas]: https://plover.readthedocs.io/en/latest/plugin-dev/metas.html
[Mypy]: https://github.com/python/mypy
[Platinum Steno]: https://www.youtube.com/@PlatinumSteno
[Platinum Steno Lesson 27 QA video]: https://www.youtube.com/watch?v=tEgaJ7hWIvg
[Plover]: https://www.openstenoproject.org/
[Plover For the Record]: https://www.paulfioravanti.com/blog/plover-for-the-record/
[plover_q_and_a project file]: https://github.com/paulfioravanti/dotfiles/blob/master/tmuxinator/plover_q_and_a.yml
[plugin]: https://plover.readthedocs.io/en/latest/plugins.html#types-of-plugins
[Pylint]: https://github.com/pylint-dev/pylint
[PyPI downloads image]:https://img.shields.io/pypi/dm/plover-q-and-a
[PyPI version image]: https://img.shields.io/pypi/v/plover-q-and-a
[PyPI url]: https://pypi.org/project/plover-q-and-a/
[Pytest]: https://pytest.org/
[pytest-cov]: https://github.com/pytest-dev/pytest-cov/
[Q&A]: http://ilovesteno.com/2014/02/03/the-different-types-of-q-a/
[Steno Legal Q&A Test with Plover and Vim]: https://www.youtube.com/watch?v=wZFj0q0d9uo
[Tmuxinator]: https://github.com/tmuxinator/tmuxinator
[Vim]: https://www.vim.org/
[Vim Steno Q&A]: https://github.com/paulfioravanti/vim-steno-q-and-a
[`workflow_context.yml`]: https://github.com/openstenoproject/plover/blob/master/.github/workflows/ci/workflow_context.yml
Raw data
{
"_id": null,
"home_page": "https://github.com/paulfioravanti/plover-q-and-a",
"name": "plover-q-and-a",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "plover plover_plugin",
"author": "Paul Fioravanti",
"author_email": "paul@paulfioravanti.com",
"download_url": "https://files.pythonhosted.org/packages/76/df/e7d6666de93c7d08b3ce4f55f41e7ff4672c87f2d59fe5707c25bb15d0e0/plover_q_and_a-0.4.4.tar.gz",
"platform": null,
"description": "# Plover Q&A\n\n[![Build Status][Build Status image]][Build Status url] [![PyPI - Version][PyPI version image]][PyPI url] [![PyPI - Downloads][PyPI downloads image]][PyPI url] [![linting: pylint][linting image]][linting url]\n\nThis [Plover][] [extension][] [plugin][] contains [metas][] for your\ndictionaries that can assist with [Q&A][] (Question and Answer): the process of\nrecording lines of questioning in a conversation involving multiple people,\nusually in a legal context.\n\nMore information about the concept of Q&A can be found at:\n\n- [Platinum Steno Lesson 27 QA video][]\n\nMore information about the creation of, and reasoning behind, the outlines that\noriginally informed this plugin can be found at the following blog post:\n\n- _[Plover For the Record][]_\n\nYou can see a video of the plugin in action here:\n\n- [Steno Legal Q&A Test with Plover and Vim][]\n\n(And if you are a [Vim][] user and want the syntax highlighting, you can find it\nin the [Vim Steno Q&A][] plugin)\n\n## Install\n\n1. In the Plover application, open the Plugins Manager (either click the Plugins\n Manager icon, or from the `Tools` menu, select `Plugins Manager`).\n2. From the list of plugins, find `plover-q-and-a`\n3. Click \"Install/Update\"\n4. When it finishes installing, restart Plover\n5. After re-opening Plover, open the Configuration screen (either click the\n Configuration icon, or from the main Plover application menu, select\n `Preferences...`)\n6. Open the Plugins tab\n7. Check the box next to `plover_q_and_a` to activate the plugin\n\n## Config and Dictionaries\n\nSee the [`examples`][] directory for example configuration and dictionaries to\nhelp you get up and running with using this plugin for Q&A.\n\n## How To Use\n\nSee the [`INSTRUCTIONS`][] page.\n\n## Development\n\nClone from GitHub with [git][]:\n\n```console\ngit clone git@github.com:paulfioravanti/plover-q-and-a.git\ncd plover-q-and-a\npython -m pip install --editable \".[test]\"\n```\n\nIf you are a [Tmuxinator][] user, you may find my [plover_q_and_a project\nfile][] of reference.\n\n### Python Version\n\nPlover's Python environment currently uses version 3.9 (see Plover's\n[`workflow_context.yml`][] to confirm the current version).\n\nSo, in order to avoid unexpected issues, use your runtime version manager to\nmake sure your local development environment also uses Python 3.9.x.\n\n### Testing\n\n- [Pytest][] is used for testing in this plugin.\n- [Coverage.py][] and [pytest-cov][] are used for test coverage, and to run\n coverage within Pytest\n- [Pylint][] is used for code quality\n- [Mypy][] is used for static type checking\n\nCurrently, the only parts able to be tested are ones that do not rely directly\non Plover.\n\nRun tests, coverage, and linting with the following commands:\n\n```console\npytest --cov --cov-report=term-missing\npylint plover_q_and_a\nmypy plover_q_and_a\n```\n\nTo get a HTML test coverage report:\n\n```console\ncoverage run --module pytest\ncoverage html\nopen htmlcov/index.html\n```\n\nIf you are a [`just`][] user, you may find the [`justfile`][] useful during\ndevelopment in running multiple test commands. You can run the following command\nfrom the project root directory:\n\n```console\njust --working-directory . --justfile test/justfile\n```\n\n### Deploying Changes\n\nAfter making any code changes, install the plugin into Plover with the following\ncommand:\n\n```console\nplover --script plover_plugins install --editable .\n```\n\n> Where `plover` in the command is a reference to your locally installed version\n> of Plover. See the [Invoke Plover from the command line][] page for details on\n> how to create that reference.\n\nWhen necessary, the plugin can be uninstalled via the command line with the\nfollowing command:\n\n```console\nplover --script plover_plugins uninstall plover-q-and-a\n```\n\n[Build Status image]: https://github.com/paulfioravanti/plover-q-and-a/actions/workflows/ci.yml/badge.svg\n[Build Status url]: https://github.com/paulfioravanti/plover-q-and-a/actions/workflows/ci.yml\n[Coverage.py]: https://github.com/nedbat/coveragepy \n[`examples`]: ./examples\n[extension]: https://plover.readthedocs.io/en/latest/plugin-dev/extensions.html\n[git]: https://git-scm.com/\n[Invoke Plover from the command line]: https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line\n[`INSTRUCTIONS`]: ./INSTRUCTIONS.md\n[`just`]: https://github.com/casey/just\n[`justfile`]: ./test/justfile\n[linting image]: https://img.shields.io/badge/linting-pylint-yellowgreen\n[linting url]: https://github.com/pylint-dev/pylint\n[metas]: https://plover.readthedocs.io/en/latest/plugin-dev/metas.html\n[Mypy]: https://github.com/python/mypy\n[Platinum Steno]: https://www.youtube.com/@PlatinumSteno\n[Platinum Steno Lesson 27 QA video]: https://www.youtube.com/watch?v=tEgaJ7hWIvg\n[Plover]: https://www.openstenoproject.org/\n[Plover For the Record]: https://www.paulfioravanti.com/blog/plover-for-the-record/\n[plover_q_and_a project file]: https://github.com/paulfioravanti/dotfiles/blob/master/tmuxinator/plover_q_and_a.yml\n[plugin]: https://plover.readthedocs.io/en/latest/plugins.html#types-of-plugins\n[Pylint]: https://github.com/pylint-dev/pylint\n[PyPI downloads image]:https://img.shields.io/pypi/dm/plover-q-and-a\n[PyPI version image]: https://img.shields.io/pypi/v/plover-q-and-a\n[PyPI url]: https://pypi.org/project/plover-q-and-a/\n[Pytest]: https://pytest.org/\n[pytest-cov]: https://github.com/pytest-dev/pytest-cov/\n[Q&A]: http://ilovesteno.com/2014/02/03/the-different-types-of-q-a/\n[Steno Legal Q&A Test with Plover and Vim]: https://www.youtube.com/watch?v=wZFj0q0d9uo\n[Tmuxinator]: https://github.com/tmuxinator/tmuxinator\n[Vim]: https://www.vim.org/\n[Vim Steno Q&A]: https://github.com/paulfioravanti/vim-steno-q-and-a\n[`workflow_context.yml`]: https://github.com/openstenoproject/plover/blob/master/.github/workflows/ci/workflow_context.yml\n",
"bugtrack_url": null,
"license": "GNU General Public License v3 or later (GPLv3+)",
"summary": "Legal Q&A (Question and Answer) formatting output for Plover.",
"version": "0.4.4",
"project_urls": {
"Homepage": "https://github.com/paulfioravanti/plover-q-and-a"
},
"split_keywords": [
"plover",
"plover_plugin"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ecb71f8512e660585c74a7b3ddf984a79eee0bcf5bfd963697b231239e980e3e",
"md5": "69dc72323f37272098f6e8f9a34c5e6d",
"sha256": "2a0c7e8ed429509c21cb24916d8d0a8c285fafe36e11ae4d56a53230e90a828c"
},
"downloads": -1,
"filename": "plover_q_and_a-0.4.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "69dc72323f37272098f6e8f9a34c5e6d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 33890,
"upload_time": "2024-10-04T08:28:29",
"upload_time_iso_8601": "2024-10-04T08:28:29.528208Z",
"url": "https://files.pythonhosted.org/packages/ec/b7/1f8512e660585c74a7b3ddf984a79eee0bcf5bfd963697b231239e980e3e/plover_q_and_a-0.4.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "76dfe7d6666de93c7d08b3ce4f55f41e7ff4672c87f2d59fe5707c25bb15d0e0",
"md5": "bb6be2c6481de852808dae73d6a50914",
"sha256": "49bc3510faf26314e91140de9e0e2ac7834d8874b52c08fa5d49332dfd7dbcbf"
},
"downloads": -1,
"filename": "plover_q_and_a-0.4.4.tar.gz",
"has_sig": false,
"md5_digest": "bb6be2c6481de852808dae73d6a50914",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 28024,
"upload_time": "2024-10-04T08:28:30",
"upload_time_iso_8601": "2024-10-04T08:28:30.993135Z",
"url": "https://files.pythonhosted.org/packages/76/df/e7d6666de93c7d08b3ce4f55f41e7ff4672c87f2d59fe5707c25bb15d0e0/plover_q_and_a-0.4.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-04 08:28:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "paulfioravanti",
"github_project": "plover-q-and-a",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "plover-q-and-a"
}