Removed deprecation and other warnings. (#1105)
This commit is contained in:
@@ -3,7 +3,6 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
import shutil
|
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
from .__about__ import __version__
|
from .__about__ import __version__
|
||||||
from ._markitdown import MarkItDown, DocumentConverterResult
|
from ._markitdown import MarkItDown, DocumentConverterResult
|
||||||
@@ -75,8 +74,6 @@ def main():
|
|||||||
parser.add_argument("filename", nargs="?")
|
parser.add_argument("filename", nargs="?")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
which_exiftool = shutil.which("exiftool")
|
|
||||||
|
|
||||||
if args.use_docintel:
|
if args.use_docintel:
|
||||||
if args.endpoint is None:
|
if args.endpoint is None:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
@@ -84,11 +81,9 @@ def main():
|
|||||||
)
|
)
|
||||||
elif args.filename is None:
|
elif args.filename is None:
|
||||||
raise ValueError("Filename is required when using Document Intelligence.")
|
raise ValueError("Filename is required when using Document Intelligence.")
|
||||||
markitdown = MarkItDown(
|
markitdown = MarkItDown(docintel_endpoint=args.endpoint)
|
||||||
exiftool_path=which_exiftool, docintel_endpoint=args.endpoint
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
markitdown = MarkItDown(exiftool_path=which_exiftool)
|
markitdown = MarkItDown()
|
||||||
|
|
||||||
if args.filename is None:
|
if args.filename is None:
|
||||||
result = markitdown.convert_stream(sys.stdin.buffer)
|
result = markitdown.convert_stream(sys.stdin.buffer)
|
||||||
|
|||||||
@@ -967,18 +967,6 @@ class MediaConverter(DocumentConverter):
|
|||||||
|
|
||||||
def _get_metadata(self, local_path, exiftool_path=None):
|
def _get_metadata(self, local_path, exiftool_path=None):
|
||||||
if not exiftool_path:
|
if not exiftool_path:
|
||||||
which_exiftool = shutil.which("exiftool")
|
|
||||||
if which_exiftool:
|
|
||||||
warn(
|
|
||||||
f"""Implicit discovery of 'exiftool' is disabled. If you would like to continue to use exiftool in MarkItDown, please set the exiftool_path parameter in the MarkItDown consructor. E.g.,
|
|
||||||
|
|
||||||
md = MarkItDown(exiftool_path="{which_exiftool}")
|
|
||||||
|
|
||||||
This warning will be removed in future releases.
|
|
||||||
""",
|
|
||||||
DeprecationWarning,
|
|
||||||
)
|
|
||||||
|
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
@@ -1499,34 +1487,25 @@ class MarkItDown:
|
|||||||
if exiftool_path is None:
|
if exiftool_path is None:
|
||||||
exiftool_path = os.environ.get("EXIFTOOL_PATH")
|
exiftool_path = os.environ.get("EXIFTOOL_PATH")
|
||||||
|
|
||||||
# Handle deprecation notices
|
# Still none? Check well-known paths
|
||||||
#############################
|
if exiftool_path is None:
|
||||||
if mlm_client is not None:
|
candidate = shutil.which("exiftool")
|
||||||
if llm_client is None:
|
if candidate:
|
||||||
warn(
|
candidate = os.path.abspath(candidate)
|
||||||
"'mlm_client' is deprecated, and was renamed 'llm_client'.",
|
if any(
|
||||||
DeprecationWarning,
|
d == os.path.dirname(candidate)
|
||||||
)
|
for d in [
|
||||||
llm_client = mlm_client
|
"/usr/bin",
|
||||||
mlm_client = None
|
"/usr/local/bin",
|
||||||
else:
|
"/opt",
|
||||||
raise ValueError(
|
"/opt/bin",
|
||||||
"'mlm_client' is deprecated, and was renamed 'llm_client'. Do not use both at the same time. Just use 'llm_client' instead."
|
"/opt/local/bin",
|
||||||
)
|
"/opt/homebrew/bin" "C:\\Windows\\System32",
|
||||||
|
"C:\\Program Files",
|
||||||
if mlm_model is not None:
|
"C:\\Program Files (x86)",
|
||||||
if llm_model is None:
|
]
|
||||||
warn(
|
):
|
||||||
"'mlm_model' is deprecated, and was renamed 'llm_model'.",
|
exiftool_path = candidate
|
||||||
DeprecationWarning,
|
|
||||||
)
|
|
||||||
llm_model = mlm_model
|
|
||||||
mlm_model = None
|
|
||||||
else:
|
|
||||||
raise ValueError(
|
|
||||||
"'mlm_model' is deprecated, and was renamed 'llm_model'. Do not use both at the same time. Just use 'llm_model' instead."
|
|
||||||
)
|
|
||||||
#############################
|
|
||||||
|
|
||||||
self._llm_client = llm_client
|
self._llm_client = llm_client
|
||||||
self._llm_model = llm_model
|
self._llm_model = llm_model
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import shutil
|
|||||||
import pytest
|
import pytest
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from warnings import catch_warnings, resetwarnings
|
|
||||||
|
|
||||||
from markitdown import MarkItDown
|
from markitdown import MarkItDown
|
||||||
|
|
||||||
skip_remote = (
|
skip_remote = (
|
||||||
@@ -277,18 +275,6 @@ def test_markitdown_local() -> None:
|
|||||||
reason="do not run if exiftool is not installed",
|
reason="do not run if exiftool is not installed",
|
||||||
)
|
)
|
||||||
def test_markitdown_exiftool() -> None:
|
def test_markitdown_exiftool() -> None:
|
||||||
# Test the automatic discovery of exiftool throws a warning
|
|
||||||
# and is disabled
|
|
||||||
try:
|
|
||||||
with catch_warnings(record=True) as w:
|
|
||||||
markitdown = MarkItDown()
|
|
||||||
result = markitdown.convert(os.path.join(TEST_FILES_DIR, "test.jpg"))
|
|
||||||
assert len(w) == 1
|
|
||||||
assert w[0].category is DeprecationWarning
|
|
||||||
assert result.text_content.strip() == ""
|
|
||||||
finally:
|
|
||||||
resetwarnings()
|
|
||||||
|
|
||||||
# Test explicitly setting the location of exiftool
|
# Test explicitly setting the location of exiftool
|
||||||
which_exiftool = shutil.which("exiftool")
|
which_exiftool = shutil.which("exiftool")
|
||||||
markitdown = MarkItDown(exiftool_path=which_exiftool)
|
markitdown = MarkItDown(exiftool_path=which_exiftool)
|
||||||
@@ -306,40 +292,6 @@ def test_markitdown_exiftool() -> None:
|
|||||||
assert target in result.text_content
|
assert target in result.text_content
|
||||||
|
|
||||||
|
|
||||||
def test_markitdown_deprecation() -> None:
|
|
||||||
try:
|
|
||||||
with catch_warnings(record=True) as w:
|
|
||||||
test_client = object()
|
|
||||||
markitdown = MarkItDown(mlm_client=test_client)
|
|
||||||
assert len(w) == 1
|
|
||||||
assert w[0].category is DeprecationWarning
|
|
||||||
assert markitdown._llm_client == test_client
|
|
||||||
finally:
|
|
||||||
resetwarnings()
|
|
||||||
|
|
||||||
try:
|
|
||||||
with catch_warnings(record=True) as w:
|
|
||||||
markitdown = MarkItDown(mlm_model="gpt-4o")
|
|
||||||
assert len(w) == 1
|
|
||||||
assert w[0].category is DeprecationWarning
|
|
||||||
assert markitdown._llm_model == "gpt-4o"
|
|
||||||
finally:
|
|
||||||
resetwarnings()
|
|
||||||
|
|
||||||
try:
|
|
||||||
test_client = object()
|
|
||||||
markitdown = MarkItDown(mlm_client=test_client, llm_client=test_client)
|
|
||||||
assert False
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
try:
|
|
||||||
markitdown = MarkItDown(mlm_model="gpt-4o", llm_model="gpt-4o")
|
|
||||||
assert False
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif(
|
@pytest.mark.skipif(
|
||||||
skip_llm,
|
skip_llm,
|
||||||
reason="do not run llm tests without a key",
|
reason="do not run llm tests without a key",
|
||||||
@@ -364,5 +316,4 @@ if __name__ == "__main__":
|
|||||||
# test_markitdown_remote()
|
# test_markitdown_remote()
|
||||||
# test_markitdown_local()
|
# test_markitdown_local()
|
||||||
test_markitdown_exiftool()
|
test_markitdown_exiftool()
|
||||||
# test_markitdown_deprecation()
|
|
||||||
# test_markitdown_llm()
|
# test_markitdown_llm()
|
||||||
|
|||||||
Reference in New Issue
Block a user