Metadata-Version: 2.1
Name: prosuite
Version: 1.7.1.0
Summary: An API to configure quality assurance tests for geodata and execute quality verifications on a ProSuite Server
Keywords: prosuite,gis,arcgis,geodata,spatial-data,quality,quality-assurance,qa,test
Author-Email: Dira GeoSystems <programmers@dirageosystems.ch>
License: MIT
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Project-URL: Homepage, https://dirageosystems.ch/prosuite/doc/api
Requires-Python: >=3.11
Requires-Dist: lxml
Requires-Dist: grpcio>1.4.0
Requires-Dist: protobuf<5.0dev,>=4.21.6
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: grpcio-health-checking>=1.62.3
Description-Content-Type: text/markdown

# Dira ProSuite Python Client

## Functionality

The Dira ProSuite Python Client is the Python API for the ProSuite Quality Verification Server. ProSuite is a suite of high-end productivity tools for ArcGIS for data production, quality assurance, and cartographic refinement.

The ProSuite Python Client API is a lightweight package that provides access to the ProSuite QA functionality. It has been specifically designed as an easy-to-use programming interface that supports intellisense and comes with a documentation and samples.
Quality specifications containing QA tests for geodata can be fully defined in Python and executed on a ProSuite server which runs either locally or on a remote machine. Alternatively, an existing XML specification or a specification stored in the configuration database (data dictionary) can be executed with just a few lines of code.

Find out more about ProSuite at [Dira GeoSystems](https://dirageosystems.ch/prosuite).

## Installation
``pip install prosuite``

Alternatively, if you have a wheel file (e.g. `prosuite-1.0.3-py3-none-any.whl`), install it directly:
```powershell
pip install prosuite-1.0.3-py3-none-any.whl
```

## Connecting to the QA microservice

`Service` needs a host and port. To take them from the standard channel configuration
(`prosuite.microservice.qa.client.config.yml`, looked up in the documented locations, falling back to
`localhost:5151`) use `QAMicroserviceClient`, which will also start a local server if the configuration names
`localhost` and nothing is serving there yet:

```python
import prosuite

with prosuite.QAMicroserviceClient.from_config_file() as client:
    service = prosuite.Service(client.host_name, client.port, client.credentials)
    for response in service.verify(specification=spec, output_dir=out_dir):
        print(response.message)
```

Leaving the `with` block stops the server **only** if this client started it, so a server you were already
running is never taken down. If the server should outlive the script - as it must inside ArcGIS Pro, where the
next tool run would otherwise pay process startup again - call it without the context manager:

```python
client = prosuite.QAMicroserviceClient.from_config_file()
client.allow_starting_local_server()
service = prosuite.Service(client.host_name, client.port, client.credentials)
```

`Service` itself is unchanged and can still be constructed with an explicit host and port.

## Documentation
See [ProSuite Python](https://dirageosystems.ch/prosuite/doc/api).

