opencv/modules/python/src2/typing_stubs_generation
Vadim Levin 0c5d74ec1a
Merge pull request #24066 from VadimLevin:dev/vlevin/python-typing-register-dnn-layer
Python typing refinement for dnn_registerLayer/dnn_unregisterLayer functions #24066

This patch introduces typings generation for `dnn_registerLayer`/`dnn_unregisterLayer` manually defined in [`cv2/modules/dnn/misc/python/pyopencv_dnn.hpp`](https://github.com/opencv/opencv/blob/4.x/modules/dnn/misc/python/pyopencv_dnn.hpp)

Updates:

- Add `LayerProtocol` to `cv2/dnn/__init__.pyi`:

    ```python
    class LayerProtocol(Protocol):
        def __init__(
            self, params: dict[str, DictValue],
            blobs: typing.Sequence[cv2.typing.MatLike]
        ) -> None: ...

        def getMemoryShapes(
            self, inputs: typing.Sequence[typing.Sequence[int]]
        ) -> typing.Sequence[typing.Sequence[int]]: ...

        def forward(
            self, inputs: typing.Sequence[cv2.typing.MatLike]
        ) -> typing.Sequence[cv2.typing.MatLike]: ...
    ```

- Add `dnn_registerLayer` function to `cv2/__init__.pyi`:

    ```python
    def dnn_registerLayer(layerTypeName: str,
                          layerClass: typing.Type[LayerProtocol]) -> None: ...
    ```

- Add `dnn_unregisterLayer` function to `cv2/__init__.pyi`:

    ```python
    def dnn_unregisterLayer(layerTypeName: str) -> None: ...
    ```
### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2023-07-27 11:28:00 +03:00
..
nodes Merge pull request #24066 from VadimLevin:dev/vlevin/python-typing-register-dnn-layer 2023-07-27 11:28:00 +03:00
__init__.py Merge pull request #20370 from ddacw:stub-gen-next 2023-05-26 18:25:46 +03:00
api_refinement.py Merge pull request #24066 from VadimLevin:dev/vlevin/python-typing-register-dnn-layer 2023-07-27 11:28:00 +03:00
ast_utils.py Merge pull request #24066 from VadimLevin:dev/vlevin/python-typing-register-dnn-layer 2023-07-27 11:28:00 +03:00
generation.py Merge pull request #24066 from VadimLevin:dev/vlevin/python-typing-register-dnn-layer 2023-07-27 11:28:00 +03:00
predefined_types.py Merge pull request #24022 from VadimLevin:dev/vlevin/python-typing-cuda 2023-07-19 16:51:41 +03:00
types_conversion.py Merge pull request #20370 from ddacw:stub-gen-next 2023-05-26 18:25:46 +03:00