liferoad commented on code in PR #31501:
URL: https://github.com/apache/beam/pull/31501#discussion_r1627672538
##########
sdks/python/apache_beam/ml/transforms/base_test.py:
##########
@@ -500,6 +507,87 @@ def test_handler_with_inconsistent_keys(self):
self.embedding_conig))
+class FakeImageModel:
+ def __call__(self, example: List[PIL_Image]) -> List[PIL_Image]:
+ for i in range(len(example)):
+ if not isinstance(example[i], PIL_Image):
+ raise TypeError('Input must be an Image')
+ return example
+
+
+class FakeImageModelHandler(ModelHandler):
+ def run_inference(
+ self,
+ batch: Sequence[PIL_Image],
+ model: Any,
+ inference_args: Optional[Dict[str, Any]] = None):
+ return model(batch)
+
+ def load_model(self):
+ return FakeImageModel()
+
+
+class FakeImageEmbeddingsManager(base.EmbeddingsManager):
+ def __init__(self, columns, **kwargs):
+ super().__init__(columns=columns, **kwargs)
+
+ def get_model_handler(self) -> ModelHandler:
+ FakeModelHandler.__repr__ = lambda x: 'FakeImageEmbeddingsManager' #
type: ignore[assignment]
+ return FakeImageModelHandler()
+
+ def get_ptransform_for_processing(self, **kwargs) -> beam.PTransform:
+ return (RunInference(model_handler=base._ImageEmbeddingHandler(self)))
+
+ def __repr__(self):
+ return 'FakeImageEmbeddingsManager'
+
+
+class TestImageEmbeddingHandler(unittest.TestCase):
+ def setUp(self) -> None:
+ self.embedding_config = FakeImageEmbeddingsManager(columns=['x'])
+ self.artifact_location = tempfile.mkdtemp()
+
+ def tearDown(self) -> None:
+ shutil.rmtree(self.artifact_location)
+
+ @unittest.skipIf(PIL is None, 'PIL module is not installed.')
+ def test_handler_with_incompatible_datatype(self):
+ text_handler = base._ImageEmbeddingHandler(
Review Comment:
you mean image_handler?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]