Metadata-Version: 2.4
Name: vws-python
Version: 2026.2.15
Summary: Interact with the Vuforia Web Services (VWS) API.
Author-email: Adam Dangoor <adamdangoor@gmail.com>
License-Expression: MIT
Project-URL: Documentation, https://vws-python.github.io/vws-python/
Project-URL: Source, https://github.com/VWS-Python/vws-python
Keywords: client,vuforia,vws
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.13
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: beartype>=0.22.9
Requires-Dist: requests>=2.32.3
Requires-Dist: urllib3>=2.2.3
Requires-Dist: vws-auth-tools>=2024.7.12
Provides-Extra: dev
Requires-Dist: actionlint-py==1.7.10.24; extra == "dev"
Requires-Dist: check-manifest==0.51; extra == "dev"
Requires-Dist: deptry==0.24.0; extra == "dev"
Requires-Dist: doc8==2.0.0; extra == "dev"
Requires-Dist: doccmd==2026.1.31.3; extra == "dev"
Requires-Dist: freezegun==1.5.5; extra == "dev"
Requires-Dist: furo==2025.12.19; extra == "dev"
Requires-Dist: interrogate==1.7.0; extra == "dev"
Requires-Dist: mypy[faster-cache]==1.19.1; extra == "dev"
Requires-Dist: mypy-strict-kwargs==2026.1.12; extra == "dev"
Requires-Dist: prek==0.3.2; extra == "dev"
Requires-Dist: pydocstringformatter==0.7.5; extra == "dev"
Requires-Dist: pydocstyle==6.3; extra == "dev"
Requires-Dist: pygments==2.19.2; extra == "dev"
Requires-Dist: pylint[spelling]==4.0.4; extra == "dev"
Requires-Dist: pylint-per-file-ignores==3.2.0; extra == "dev"
Requires-Dist: pyproject-fmt==2.16.0; extra == "dev"
Requires-Dist: pyrefly==0.52.0; extra == "dev"
Requires-Dist: pyright==1.1.408; extra == "dev"
Requires-Dist: pyroma==5.0.1; extra == "dev"
Requires-Dist: pytest==9.0.2; extra == "dev"
Requires-Dist: pytest-cov==7.0.0; extra == "dev"
Requires-Dist: pyyaml==6.0.3; extra == "dev"
Requires-Dist: ruff==0.15.1; extra == "dev"
Requires-Dist: shellcheck-py==0.11.0.1; extra == "dev"
Requires-Dist: shfmt-py==3.12.0.2; extra == "dev"
Requires-Dist: sphinx==9.1.0; extra == "dev"
Requires-Dist: sphinx-copybutton==0.5.2; extra == "dev"
Requires-Dist: sphinx-lint==1.0.2; extra == "dev"
Requires-Dist: sphinx-pyproject==0.3.0; extra == "dev"
Requires-Dist: sphinx-substitution-extensions==2026.1.12; extra == "dev"
Requires-Dist: sphinxcontrib-spelling==8.0.2; extra == "dev"
Requires-Dist: sybil==9.3.0; extra == "dev"
Requires-Dist: ty==0.0.16; extra == "dev"
Requires-Dist: types-requests==2.32.4.20260107; extra == "dev"
Requires-Dist: vulture==2.14; extra == "dev"
Requires-Dist: vws-python-mock==2026.2.15.4; extra == "dev"
Requires-Dist: vws-test-fixtures==2023.3.5; extra == "dev"
Requires-Dist: yamlfix==1.19.1; extra == "dev"
Requires-Dist: zizmor==1.22.0; extra == "dev"
Provides-Extra: release
Requires-Dist: check-wheel-contents==0.6.3; extra == "release"
Dynamic: license-file

|Build Status| |PyPI|

vws-python
==========

Python library for the Vuforia Web Services (VWS) API and the Vuforia
Web Query API.

Installation
------------

.. code-block:: shell

   pip install vws-python

This is tested on Python |minimum-python-version|\+. Get in touch with
``adamdangoor@gmail.com`` if you would like to use this with another
language.

Getting Started
---------------

.. code-block:: python

   """Add a target to VWS and then query it."""

   import os
   import pathlib
   import uuid

   from vws import VWS, CloudRecoService

   server_access_key = os.environ["VWS_SERVER_ACCESS_KEY"]
   server_secret_key = os.environ["VWS_SERVER_SECRET_KEY"]
   client_access_key = os.environ["VWS_CLIENT_ACCESS_KEY"]
   client_secret_key = os.environ["VWS_CLIENT_SECRET_KEY"]

   vws_client = VWS(
       server_access_key=server_access_key,
       server_secret_key=server_secret_key,
   )

   cloud_reco_client = CloudRecoService(
       client_access_key=client_access_key,
       client_secret_key=client_secret_key,
   )

   name = "my_image_name_" + uuid.uuid4().hex

   image = pathlib.Path("high_quality_image.jpg")
   with image.open(mode="rb") as my_image_file:
       target_id = vws_client.add_target(
           name=name,
           width=1,
           image=my_image_file,
           active_flag=True,
           application_metadata=None,
       )

   vws_client.wait_for_target_processed(target_id=target_id)

   with image.open(mode="rb") as my_image_file:
       matching_targets = cloud_reco_client.query(image=my_image_file)

   assert matching_targets[0].target_id == target_id

Full Documentation
------------------

See the `full documentation <https://vws-python.github.io/vws-python/>`__.

.. |Build Status| image:: https://github.com/VWS-Python/vws-python/actions/workflows/ci.yml/badge.svg?branch=main
   :target: https://github.com/VWS-Python/vws-python/actions
.. |PyPI| image:: https://badge.fury.io/py/VWS-Python.svg
   :target: https://badge.fury.io/py/VWS-Python
.. |minimum-python-version| replace:: 3.13
