Metadata-Version: 2.4
Name: conjuror
Version: 0.1.2
Summary: Medical Physics Synthetic Image generator and RT Plan generator
Author-email: Joao Silveira <jsilveira@radformation.com>, James Kerns <jkerns@radformation.com>
License-Expression: MIT
Keywords: medical,physics,image,analysis,RT Plan
Requires-Python: <3.12,>=3.11
Description-Content-Type: text/x-rst
Requires-Dist: pydantic>=2.0
Requires-Dist: pydicom~=2.4.0
Requires-Dist: numpy~=1.23.0
Requires-Dist: plotly~=5.8
Requires-Dist: scikit-image~=0.20.0
Provides-Extra: docs
Requires-Dist: sphinx-autobuild>=2025.8.25; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
Requires-Dist: sphinx-design>=0.6.1; extra == "docs"
Requires-Dist: sphinx-plotly-directive>=0.1.3; extra == "docs"
Requires-Dist: sphinx>=8.2.3; extra == "docs"
Requires-Dist: furo>=2025.9.25; extra == "docs"
Provides-Extra: developer
Requires-Dist: nox>=2025.5.1; extra == "developer"
Requires-Dist: parameterized>=0.9.0; extra == "developer"
Requires-Dist: pytest>=8.4.2; extra == "developer"
Requires-Dist: pytest-cov>=7.0.0; extra == "developer"
Requires-Dist: pytest-xdist>=3.8.0; extra == "developer"
Requires-Dist: google-cloud-storage>=3.4.0; extra == "developer"
Requires-Dist: py-linq~=1.4.0; extra == "developer"
Requires-Dist: pre-commit>=4.3.0; extra == "developer"

========
Conjuror
========

This is a Python library for creating synthetic RT DICOM images, usually for testing of machine QA analysis software
such as ``pylinac``. It can also generate RT DICOM Plan files for use in delivering machine QA plans.

Installation
============

Conjuror can be installed via pip:

.. code-block:: console

    pip install conjuror

Developer Installation
======================

To install the development version of Conjuror, clone the repository and install it in editable mode:

.. code-block:: console

     uv venv
     uv pip install .[developer]

Additionally, the developer should install ``pre-commit`` hooks to ensure linting and format consistency:

.. code-block:: console

    pre-commit install

For one-off checks of the repo:

.. code-block:: console

   pre-commit run --all-files

Usage
=====

.. code-block:: python

    from conjuror import PlanGenerator, PicketFence
    conjuror = PlanGenerator()
    conjuror.add_beamset(PicketFence(num_pickets=7))
