imopen.pyi 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from typing import Literal, Type, TypeVar, overload
  2. from ..plugins.opencv import OpenCVPlugin
  3. from ..plugins.pillow import PillowPlugin
  4. from ..plugins.pyav import PyAVPlugin
  5. from ..plugins.rawpy import RawPyPlugin
  6. from ..plugins.tifffile_v3 import TifffilePlugin
  7. from ..typing import ImageResource
  8. from .legacy_plugin_wrapper import LegacyPlugin
  9. from .v3_plugin_api import PluginV3
  10. CustomPlugin = TypeVar("CustomPlugin", bound=PluginV3)
  11. @overload
  12. def imopen(
  13. uri: ImageResource,
  14. io_mode: Literal["r", "w"],
  15. *,
  16. extension: str = None,
  17. format_hint: str = None,
  18. ) -> PluginV3: ...
  19. @overload
  20. def imopen(
  21. uri: ImageResource,
  22. io_mode: Literal["r", "w"],
  23. *,
  24. plugin: str = None,
  25. format_hint: str = None,
  26. extension: str = None,
  27. legacy_mode: Literal[True],
  28. **kwargs,
  29. ) -> LegacyPlugin: ...
  30. @overload
  31. def imopen(
  32. uri: ImageResource,
  33. io_mode: Literal["r", "w"],
  34. *,
  35. format_hint: str = None,
  36. extension: str = None,
  37. legacy_mode: Literal[False] = False,
  38. ) -> PluginV3: ...
  39. @overload
  40. def imopen(
  41. uri: ImageResource,
  42. io_mode: Literal["r", "w"],
  43. *,
  44. plugin: Literal["pillow"],
  45. extension: str = None,
  46. format_hint: str = None,
  47. ) -> PillowPlugin: ...
  48. @overload
  49. def imopen(
  50. uri: ImageResource,
  51. io_mode: Literal["r", "w"],
  52. *,
  53. plugin: Literal["rawpy"],
  54. extension: str = None,
  55. format_hint: str = None,
  56. ) -> RawPyPlugin: ...
  57. @overload
  58. def imopen(
  59. uri: ImageResource,
  60. io_mode: Literal["r", "w"],
  61. *,
  62. plugin: Literal["pyav"],
  63. extension: str = None,
  64. format_hint: str = None,
  65. container: str = None,
  66. ) -> PyAVPlugin: ...
  67. @overload
  68. def imopen(
  69. uri,
  70. io_mode: Literal["r", "w"],
  71. *,
  72. plugin: Literal["opencv"],
  73. extension: str = None,
  74. format_hint: str = None,
  75. ) -> OpenCVPlugin: ...
  76. @overload
  77. def imopen(
  78. uri,
  79. io_mode: Literal["r", "w"],
  80. *,
  81. plugin: Literal["tifffile"],
  82. extension: str = None,
  83. format_hint: str = None,
  84. ) -> TifffilePlugin: ...
  85. @overload
  86. def imopen(
  87. uri: ImageResource,
  88. io_mode: Literal["r", "w"],
  89. *,
  90. plugin: Type[CustomPlugin],
  91. extension: str = None,
  92. format_hint: str = None,
  93. **kwargs,
  94. ) -> CustomPlugin: ...