Metadata-Version: 2.4
Name: kjxqz
Version: 1.1.1
Summary: Word list and anagram solver tools.
Author-email: Grant Jenks <contact@grantjenks.com>
License-Expression: Apache-2.0
Project-URL: Documentation, https://www.grantjenks.com/docs/kjxqz/
Project-URL: Homepage, https://www.kjxqz.com/
Project-URL: Repository, https://github.com/grantjenks/kjxqz.com
Project-URL: Issues, https://github.com/grantjenks/kjxqz.com/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: poethepoet; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Dynamic: license-file

KJXQZ
=====

`KJXQZ`_ is an Apache2 licensed collection of `anagram word solver`_ tools.

.. _`KJXQZ`: https://www.kjxqz.com/
.. _`anagram word solver`: https://www.kjxqz.com/

.. image:: https://github.com/grantjenks/kjxqz.com/actions/workflows/integration.yml/badge.svg
   :target: https://github.com/grantjenks/kjxqz.com/actions/workflows/integration.yml

.. image:: https://github.com/grantjenks/kjxqz.com/actions/workflows/release.yml/badge.svg
   :target: https://github.com/grantjenks/kjxqz.com/actions/workflows/release.yml

Quickstart
----------

Installing `KJXQZ`_ is simple with `pip <https://pypi.org/project/pip/>`_::

    $ pip install kjxqz

You can access documentation in the interpreter with Python's built-in `help`
function. The `help` works on modules, classes and methods in `KJXQZ`_.

.. code-block:: python

    >>> import kjxqz
    >>> help(kjxqz)
    >>> kjxqz.load()
    >>> results = kjxqz.search(letters='abcdef?', contains='hi')
    >>> words = list(kjxqz.isearch(letters='abcdef?', contains='hi'))

Build website assets from the packaged word list::

    $ python -m kjxqz
    $ python -m kjxqz build

The build updates ``www/dawg.js``, ``kjxqz/dawg.js``, and
``www/service-worker.js``.

Search from the command line::

    $ python -m kjxqz abcdef? hi
    $ python -m kjxqz search abcdef? hi

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

Install `uv <https://docs.astral.sh/uv/>`_ and sync dev dependencies::

    $ uv sync --extra dev

Run checks and tests::

    $ uv run poe check

Common tasks::

    $ uv run poe fmt
    $ uv run poe test
    $ uv run poe docs
    $ uv run poe build-dist

Publishing
----------

The `release workflow`_ builds distributions and publishes to PyPI using GitHub
Actions Trusted Publishing. Push a tag beginning with ``v`` to trigger release.

.. _`release workflow`: https://github.com/grantjenks/kjxqz.com/actions/workflows/release.yml

References
----------

- `Reference`_

.. _`Reference`: https://www.grantjenks.com/docs/kjxqz/reference.html

Useful Links
------------

- `KJXQZ Documentation`_
- `KJXQZ at PyPI`_
- `KJXQZ at Github`_
- `KJXQZ Issue Tracker`_

.. _`KJXQZ Documentation`: https://www.grantjenks.com/docs/kjxqz/
.. _`KJXQZ at PyPI`: https://pypi.org/project/kjxqz/
.. _`KJXQZ at Github`: https://github.com/grantjenks/kjxqz.com
.. _`KJXQZ Issue Tracker`: https://github.com/grantjenks/kjxqz.com/issues

KJXQZ License
-------------

Copyright 2018-2026 Grant Jenks

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
