.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples\gallery_examples\04-analyses\update_part_validation_properties.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_gallery_examples_04-analyses_update_part_validation_properties.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_gallery_examples_04-analyses_update_part_validation_properties.py:


.. _ref_sherlock_update_part_list_validation_props:

=================================
Run Part List Validation Analysis
=================================

This example demonstrates how to connect to the Sherlock gRPC service, import a project,
and configure part list validation analysis properties.

Description
-----------
Sherlock allows you to perform part list validation analysis.
This script performs the following steps:
- Connect to the Sherlock service.
- Import a project.
- Configure the properties for part list validation analysis.

.. GENERATED FROM PYTHON SOURCE LINES 37-49

.. code-block:: Python



    import os

    from examples.examples_globals import get_sherlock_tutorial_path

    from ansys.sherlock.core import launcher
    from ansys.sherlock.core.errors import (
        SherlockImportProjectZipArchiveError,
        SherlockUpdatePartListValidationAnalysisPropsError,
    )


.. GENERATED FROM PYTHON SOURCE LINES 51-54

Connect to Sherlock
===================
Connect to the Sherlock service and ensure proper initialization.

.. GENERATED FROM PYTHON SOURCE LINES 54-57

.. code-block:: Python


    sherlock = launcher.connect(port=9092, timeout=10)


.. GENERATED FROM PYTHON SOURCE LINES 58-61

Delete Project
==============
Delete the project if it already exists.

.. GENERATED FROM PYTHON SOURCE LINES 61-68

.. code-block:: Python


    try:
        sherlock.project.delete_project("Test")
        print("Project deleted successfully.")
    except Exception:
        pass


.. GENERATED FROM PYTHON SOURCE LINES 69-72

Import Tutorial Project
=======================
Import the tutorial project zip archive from the Sherlock tutorial directory.

.. GENERATED FROM PYTHON SOURCE LINES 72-83

.. code-block:: Python


    try:
        sherlock.project.import_project_zip_archive(
            project="Test",
            category="Demos",
            archive_file=os.path.join(get_sherlock_tutorial_path(), "Auto Relay Project.zip"),
        )
        print("Tutorial project imported successfully.")
    except SherlockImportProjectZipArchiveError as e:
        print(f"Error importing project zip archive: {e}")


.. GENERATED FROM PYTHON SOURCE LINES 84-87

Update Part List Validation Properties
======================================
Configure properties for part list validation analysis.

.. GENERATED FROM PYTHON SOURCE LINES 87-109

.. code-block:: Python


    try:
        # Update properties for part list validation analysis
        sherlock.analysis.update_part_list_validation_analysis_props(
            project="Test",
            properties_per_cca=[
                {
                    "cca_name": "Main Board",
                    "process_use_avl": True,
                    "process_use_wizard": True,
                    "process_check_confirmed_properties": False,
                    "process_check_part_numbers": False,
                    "matching_mode": "Part",
                    "avl_require_internal_part_number": False,
                    "avl_require_approved_description": True,
                    "avl_require_approved_manufacturer": False,
                }
            ],
        )
        print("Part list validation analysis properties updated successfully.")
    except SherlockUpdatePartListValidationAnalysisPropsError as e:
        print(f"Error updating part list validation analysis properties: {e}")


.. _sphx_glr_download_examples_gallery_examples_04-analyses_update_part_validation_properties.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: update_part_validation_properties.ipynb <update_part_validation_properties.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: update_part_validation_properties.py <update_part_validation_properties.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: update_part_validation_properties.zip <update_part_validation_properties.zip>`