Metadata-Version: 2.1
Name: nilql
Version: 0.0.0a2
Summary: Library for working with encrypted data within nilDB queries and replies.
License: MIT
Project-URL: Repository, https://github.com/nillionnetwork/nilql-py
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: bcl~=2.3
Provides-Extra: docs
Requires-Dist: toml~=0.10.2; extra == "docs"
Requires-Dist: sphinx~=5.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme~=2.0.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints~=1.23.0; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest~=8.2; extra == "test"
Requires-Dist: pytest-cov~=5.0; extra == "test"
Provides-Extra: lint
Requires-Dist: pylint~=3.2.0; extra == "lint"
Provides-Extra: coveralls
Requires-Dist: coveralls~=4.0; extra == "coveralls"
Provides-Extra: publish
Requires-Dist: build~=0.10; extra == "publish"
Requires-Dist: twine~=4.0; extra == "publish"

=====
nilql
=====

Library for working with encrypted data within nilDB queries and replies.

|actions|

.. |actions| image:: https://github.com/nillionnetwork/nilql-py/workflows/lint-test-cover-docs/badge.svg#
   :target: https://github.com/nillionnetwork/nilql-py/actions/workflows/lint-test-cover-docs.yml
   :alt: GitHub Actions status.

Installation and Usage
----------------------
The library can be imported in the usual ways:

.. code-block:: python

    import nilql
    from nilql import *

Development
-----------
All installation and development dependencies are fully specified in ``pyproject.toml``. The ``project.optional-dependencies`` object is used to `specify optional requirements <https://peps.python.org/pep-0621>`__ for various development tasks. This makes it possible to specify additional options (such as ``docs``, ``lint``, and so on) when performing installation using `pip <https://pypi.org/project/pip>`__:

.. code-block:: bash

    python -m pip install ".[docs,lint]"

Documentation
^^^^^^^^^^^^^
The documentation can be generated automatically from the source files using `Sphinx <https://www.sphinx-doc.org>`__:

.. code-block:: bash

    python -m pip install ".[docs]"
    cd docs
    sphinx-apidoc -f -E --templatedir=_templates -o _source .. && make html

Testing and Conventions
^^^^^^^^^^^^^^^^^^^^^^^
All unit tests are executed and their coverage is measured when using `pytest <https://docs.pytest.org>`__ (see the ``pyproject.toml`` file for configuration details):

.. code-block:: bash

    python -m pip install ".[test]"
    python -m pytest

The subset of the unit tests included in the module itself and can be executed using `doctest <https://docs.python.org/3/library/doctest.html>`__:

.. code-block:: bash

    python src/nilql/nilql.py -v

Style conventions are enforced using `Pylint <https://pylint.readthedocs.io>`__:

.. code-block:: bash

    python -m pip install ".[lint]"
    python -m pylint src/nilql test/test_nilql.py

Contributions
^^^^^^^^^^^^^
In order to contribute to the source code, open an issue or submit a pull request on the `GitHub page <https://github.com/nillionnetwork/nilql-py>`__ for this library.

Versioning
^^^^^^^^^^
The version number format for this library and the changes to the library associated with version number increments conform with `Semantic Versioning 2.0.0 <https://semver.org/#semantic-versioning-200>`__.
