Metadata-Version: 2.4
Name: garner-dict
Version: 0.1.3
Summary: Look up words in the Garner Usage Dictionary from the command-line.
Author-email: Justin McGuire <jm@landedstar.com>
License: MIT License
        
        Copyright (c) 2026 Justin McGuire
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/jmcguire/garner
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: jellyfish<2,>=1.2
Requires-Dist: rich<16,>=15
Provides-Extra: release
Requires-Dist: build>=1.2; extra == "release"
Dynamic: license-file

# Garner

Garner is a command-line interface for the Garner Usage Dictionary.

## Install

On macOS or Linux with [Homebrew](https://brew.sh/):

```sh
brew install jmcguire/garner/garner-dict
```

Or, on any system with Python 3.9 or newer, install the Python package with
[pipx](https://pipx.pypa.io/):

```sh
pipx install garner-dict
```

Both install the command as `garner`. Try it with:

```sh
garner affect
garner --search accomodate
garner --help
```

Pipe a long entry through `less` for paged output:

```sh
garner affect | less
```

## About Distribution

This is an independent command-line interface and packaging project. It is not
an official publication of Bryan A. Garner or of the Garner Usage Dictionary.
The code is MIT licensed, but the dictionary content is copyrighted by Bryan A.
Garner and is not licensed by this repository. See [NOTICE](NOTICE).

The Homebrew package is intentionally published in the maintainer's personal
tap (`jmcguire/garner`), not in `homebrew/core`. That makes the source,
maintainer, and content notice explicit, and does not imply that the dictionary
content has been approved for official Homebrew distribution. The PyPI package
and Homebrew formula bundle the same compiled dictionary database. Anyone who
uses or redistributes it remains responsible for respecting the applicable
rights.

## Developer Notes

Clone this repository, then create a development environment:

```sh
python3 -m venv venv
./venv/bin/python -m pip install -r requirements.txt
```

The Markdown files in `definitions/` are the editable source of truth. Garner
builds them into an SQLite database for fast lookup and search. Build the local
database before trying source changes:

```sh
./venv/bin/garner --build
```

Then use the tool normally:

```sh
./venv/bin/garner affect
./venv/bin/garner --search accomodate
```

### Tests

Run the tests with:

```sh
./venv/bin/python -m unittest discover -s tests
```

The tests use a small fixture dictionary in `tests/fixtures/definitions`, not
the full definitions collection. They build a temporary SQLite database from
those entries and cover core lookup, search, forwarding, and formatting
behavior without making small source-formatting changes needlessly brittle.

### Licensing

The code in this repository is MIT licensed. See [LICENSE](LICENSE).

The dictionary content and bundled definitions are copyrighted by Bryan A.
Garner. See [NOTICE](NOTICE).

### Releases

Release preparation is scripted:

```sh
./venv/bin/python scripts/release 1.1.0
```

See [RELEASING.md](RELEASING.md) for the release and distribution checklist.
