Skip to content

Commit

Permalink
Merge pull request #897 from google/py-magika-str
Browse files Browse the repository at this point in the history
python: implement str() and repr() for Magika object
  • Loading branch information
reyammer authored Jan 21, 2025
2 parents d9db8f1 + 177545a commit 22b1b76
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/python-build-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
- name: Install wheels
run: python3 -m pip install $(python -c "import glob; print(glob.glob('dist/*.whl')[0])")
- run: magika --version
- run: "python3 -c 'import magika; m = magika.Magika(); print(f\"Package version: {magika.__version__}\"); print(f\"Model name: {m.get_model_dir_name()}\")'"
- run: "python3 -c 'import magika; m = magika.Magika(); print(m)'"
- run: magika -r tests_data/basic
- run: python3 ./python/scripts/run_quick_test_magika_cli.py
# Windows' onnxruntime/ort returns different results wrt. Linux/MacOS. For
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-test-published-rc-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
uv add --prerelease ".\$wheel"
- name: Install magika with pip
run: python3 -m pip install --pre magika
- run: python3 -c 'import magika; m = magika.Magika(); print(m); print(magika.__version__)'
- run: python3 -c 'import magika; m = magika.Magika(); print(m)'
- run: magika --version
# The latest published model does not necessarily support detection for
# all types in our tests data; thus, for now we just check that the magika
Expand Down
2 changes: 1 addition & 1 deletion python/scripts/run_quick_test_magika_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
def main() -> None:
m = Magika(prediction_mode=PredictionMode.HIGH_CONFIDENCE)

print(f"Using model: {m.get_model_dir_name()}")
print(f"Magika instance details: {m}")

res = m.identify_bytes(b"text")
assert res.dl.label == ContentTypeLabel.UNDEFINED
Expand Down
15 changes: 12 additions & 3 deletions python/src/magika/magika.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,18 @@ def __init__(

self._onnx_session = self._init_onnx_session()

def __repr__(self) -> str:
return str(self)

def __str__(self) -> str:
return f'Magika(version="{self.get_version()}", model_name="{self.get_model_name()}")'

def get_version(self) -> str:
return str(__import__(self.__module__).__version__)

def get_model_name(self) -> str:
return self._model_dir.name

def identify_path(self, path: Path) -> MagikaResult:
if not isinstance(path, Path):
raise TypeError("Input path should be of type Path")
Expand Down Expand Up @@ -172,9 +184,6 @@ def _get_default_model_name() -> str:

return DEFAULT_MODEL_NAME

def get_model_dir_name(self) -> str:
return self._model_dir.name

@staticmethod
def _load_content_types_kb(
content_types_kb_json_path: Path,
Expand Down

0 comments on commit 22b1b76

Please sign in to comment.