Skip to main content

windowsml

Python bindings for the Windows AI Machine Learning API.

This package provides a ctypes-based wrapper around the WinML flat C API, enabling Python applications to discover and manage execution providers and model catalogs for ONNX Runtime on Windows.

Installation

pip install windowsml

ONNX Runtime dependency

To automatically install a matching version of ONNX Runtime, use the with-ort extra:

pip install windowsml[with-ort]

If you choose not to use [with-ort], you must install a compatible version of onnxruntime separately and ensure it matches the version expected by this package.

Quick Start

EP Catalog — discover execution providers

from windowsml import EpCatalog

with EpCatalog() as catalog:
    for ep in catalog.find_all_providers():
        print(f"{ep.name} v{ep.version} - {ep.ready_state.name}")

        # Ensure the provider is ready (downloads/installs if needed)
        ep.ensure_ready()

Model Catalog — discover and download models

from windowsml import ModelCatalogSource, ModelCatalog

with ModelCatalogSource.create_from_uri("https://example.com/catalog.json") as source:
    with ModelCatalog([source]) as catalog:
        for model in catalog.find_all_models():
            print(f"{model.name} v{model.version} by {model.publisher}")
            print(f"  Size: {model.model_size_in_bytes} bytes")
            print(f"  EPs:  {model.execution_providers}")

API Reference

Enums

  • EpReadyState — Ready, NotReady, NotPresent
  • EpCertification — Unknown, Certified, Uncertified
  • CatalogModelStatus — Ready, NotReady
  • CatalogModelInstanceStatus — Available, InProgress, Unavailable

Classes

EpCatalog()

Context manager for the EP catalog.

Method Description
find_all_providers() Returns list[ExecutionProvider]
close() Release the catalog

ExecutionProvider

Handle to a discovered EP (owned by the catalog).

Property / Method Type
name str
version str
package_family_name str
library_path str
package_root_path str
ready_state EpReadyState
certification EpCertification
ensure_ready() Blocks until ready
ensure_ready_async(on_complete, on_progress) Returns AsyncOperation

ModelCatalogSource

Represents a catalog source endpoint. Create via static factory methods.

Method / Property Description
create_from_uri(uri) Create from a URI or local path (blocking)
create_from_uri_async(uri, ...) Create from a URI (async)
create_from_uri_with_headers(uri, headers) Create with custom HTTP headers (blocking)
create_from_uri_with_headers_async(uri, headers, ...) Create with custom HTTP headers (async)
id str — source identifier
uri str — source URI
close() Release the source

ModelCatalog(sources)

Context manager for the model catalog. Created from a list of ModelCatalogSource.

Method / Property Description
execution_providers list[str] — configured EPs
set_execution_providers(providers) Set EP filter for queries
get_available_model(id_or_name) Returns CatalogModelInfo
get_available_models() Returns list[CatalogModelInfo]
find_model(id_or_name) Find a model (blocking)
find_model_async(id_or_name, ...) Find a model (async)
find_all_models() Find all models (blocking)
find_all_models_async(...) Find all models (async)
close() Release the catalog

CatalogModelInfo

Metadata about a model in the catalog.

Property / Method Type
id str
name str
publisher str
source_id str
version str
license str
license_uri str
license_text str
uri str
model_size_in_bytes int
execution_providers list[str]
status CatalogModelStatus
get_instance_async(...) Returns AsyncOperation → CatalogModelInstance
get_instance_with_headers_async(headers, ...) Returns AsyncOperation → CatalogModelInstance
close() Release the model info

CatalogModelInstance

A downloaded or local instance of a catalog model.

Property / Method Type
model_paths list[str] — local file paths
model_info CatalogModelInfo
close() Release the instance

AsyncOperation

Returned by async methods. Supports context-manager usage.

Method Description
wait() Block until complete
get_status(wait=False) Poll or wait for status
get_result() Extract the typed result (if applicable)
cancel() Request cancellation
close() Release async resources

Metadata

Release files for windowsml 2.5.96

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for windowsml 2.5.96
File Interpreter ABI Platform Actions
windowsml-2.5.96-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details for windowsml-2.5.96-py3-none-win_arm64.whl
windowsml-2.5.96-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for windowsml-2.5.96-py3-none-win_amd64.whl

Total release size: 887.6 kB

Release files / windowsml-2.5.96-py3-none-win_arm64.whl

Download URL windowsml-2.5.96-py3-none-win_arm64.whl
Size 444.2 kB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
c34a0783e28065e18e926bd99e8718c25e23bc42240178464ef9d671d5fbe6c2
BLAKE2b-256 checksum
How to use checksums
0d841b1737344b8a5a66c166a3c662138eaa4f969d656c56d84cef8c08db3121
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via RestSharp/106.13.0.0

Release files / windowsml-2.5.96-py3-none-win_amd64.whl

Download URL windowsml-2.5.96-py3-none-win_amd64.whl
Size 443.4 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3ac86cee803b45df34e9666715b0fa609860368315adb92fb3661314f2496600
BLAKE2b-256 checksum
How to use checksums
6cb3d86d8fadb310ecbbfbd98746dc2f5c405ab6b609208f7d25bbcf079e6cac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via RestSharp/106.13.0.0

Security for windowsml 2.5.96

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page