Skip to main content

Python SDK for Siroquant API V5

Project description

PYSQ - Siroquant SDK for Python

Python SDK for Siroquant V5 API.

Website: https://www.siroquant.com/

Siroquant is a commercial software package designed for quantitative phase analysis using X-ray diffraction (XRD) data, primarily through the Rietveld refinement method. It enables users to determine the composition of crystalline materials—such as minerals, cements, coals, and clays—by fitting full XRD powder patterns without needing physical standards, making it a standardless technique.

Getting Started

# create a virtual environment and activate it
python -m venv venv
source venv\Scripts\activate

# Install the package
pip install pysq

# Update the package (optional)
pip install --upgrade pysq

Usage Examples

Simple Example

from pysq import SQAPI, SQAPIConfig

config = SQAPIConfig(lib_dir=r".\lib", dll_path=r".\lib\sq_api.dll")

with SQAPI(config) as api:
    api.initialize()
    task_info = api.open_task("task.tsk")
    results = api.refine(task_info.job_handle)
    print(f"Results: {results}")

Advanced Example

import os
from pysq import SQAPI, SQAPIConfig, SQAPIError, RefinementParams, ReportResultsFlags, SaveTaskFlags, TaskContext

TASK_FILE = r".\tasks\demo.tsk"
LIB_DIR   = r".\lib"
DLL_PATH  = r".\lib\sq_api.dll"


def main() -> None:
    config = SQAPIConfig(lib_dir=LIB_DIR, dll_path=DLL_PATH)

    try:
        with SQAPI(config) as api:
            api.initialize()

            with TaskContext(api, TASK_FILE) as (job_handle, task_info):
                print(f"Task: {task_info}")

                params = RefinementParams(
                    n_auto_prescale=1,
                    n_refs=1,
                    cutoff=0.5,
                    error_cutoff=1.0,
                    error_pc=0.75,
                    flags=0,
                )
                results = api.refine(job_handle, params=params, report_flags=ReportResultsFlags.CORRECTED)

                print(f"\nResults: {results}")
                if results.phases:
                    print(f"\n{'No.':<4} {'Phase Name':<20} {'Weight (%)':<12} {'Error (%)':<10}")
                    print("-" * 50)
                    for i, phase in enumerate(results.phases, 1):
                        print(f"{i:<4} {phase.phase_name:<20} {phase.weight_pc:<12.2f} {phase.error_of_fit:<10.2f}")

                # No path — saves back to the original task file.
                api.save_task(job_handle)
                print(f"\nTask saved to: {TASK_FILE}")

    except SQAPIError as e:
        print(f"\nSQ API Error: {e}")
        if e.error_code is not None:
            print(f"  Code: {e.error_code}")
    except Exception as e:
        print(f"\nError: {e}")


if __name__ == "__main__":
    main()

Configuration

Set paths via environment variables or code:

  • SQ_LIB_DIR: Library directory path
  • SQ_DLL_PATH: DLL path (optional, auto-detected)

Requirements

  • Python 3.8+
  • Windows (x64)
  • Siroquant V5

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysq-0.1.5.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysq-0.1.5-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file pysq-0.1.5.tar.gz.

File metadata

  • Download URL: pysq-0.1.5.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pysq-0.1.5.tar.gz
Algorithm Hash digest
SHA256 9dd0b98ee447c50ff6b0fcd598d73250d770f2aa230ac76a040e322571c3b8ef
MD5 347d058c683b9daa607591e8464b4ecc
BLAKE2b-256 4460701717df5f885a998b5220ab01b3c63e4eecde0843f61f28e3c723e5a5da

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysq-0.1.5.tar.gz:

Publisher: publish-pysq.yml on bevolv/sq-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pysq-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: pysq-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pysq-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 69ec8e8020af94bc33c81bf7a4e52e6fa2a2e8f2a215b6d45ff57dfcff81247d
MD5 73ba1f01a0a46f25f39999db85134a5a
BLAKE2b-256 7aff9ce4199b0910894c8c673848948d9937377902f307d5421768d3f0123edb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysq-0.1.5-py3-none-any.whl:

Publisher: publish-pysq.yml on bevolv/sq-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page