Skip to content

Textract-py3 #543

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 22 commits into
base: master
Choose a base branch
from
Draft

Textract-py3 #543

wants to merge 22 commits into from

Conversation

KyleKing
Copy link

@KyleKing KyleKing commented Dec 4, 2024

Hi! FWIW I have been maintaining a very minimal published fork of textract to address the blocking issue with * dependencies. This PR is to track the differences if anyone wants to use textract-py3 while the long term maintenance of textract is resolved (#498). Once textract is released with a patch for #461, I will redirect users away from my fork because hopefully the upstream package will resume merging PRs, patching, and new version releases, but I unfortunately won't have the bandwidth to contribute beyond this fork.

TheElementalOfDestruction and others added 19 commits June 16, 2022 01:04
Clarification, _getStringStream *should* return `unicode` in Python 2, `str` in Python 3, IF the stream requested exists. If it does not exist, it returns `None`, which cannot be added to bytes. This commit adds a check for None, returning an empty bytes string if matched.
There are small typos in:
- docs/installation.rst
- textract/exceptions.py

Fixes:
- Should read `suppressed` rather than `supressed`.
- Should read `documentation` rather than `documenation`.
- Should read `accommodated` rather than `accomodated`.

Signed-off-by: Tim Gates <[email protected]>
As of now, the txt parser reads files in text mode as UTF-8 and fails with other encodings. This makes it return a bytes object, leaving the base `decode` to figure out the encoding and act accordingly.
docs: sync latest upstream changes
@KyleKing KyleKing marked this pull request as draft December 4, 2024 11:36
@KyleKing KyleKing changed the title textrat-py3 Tracker Textract-py3 Dec 4, 2024
@StevenMapes
Copy link

@KyleKing and chance you could update the deps on your fork please and release a new version. It's pinned to using a older version of msg-extractor which had a pinned dep that broke when BS4 was updated, they've patched their part now, please see
TeamMsgExtractor/msg-extractor#450

Great work on the fork though keep it going please!

@KyleKing
Copy link
Author

Of course! I’m glad that you’re finding it to be useful and I’m happy to accept PRs. I’m out of town now, but I’ll release no later than the 24th!

@KyleKing
Copy link
Author

My fork doesn't have any upper bound constraints on dependencies (https://github.com/KyleKing/textract-py3/blob/f3f509f8c36be05c85574ac841632693c2a19bd9/pyproject.toml#L22), so any project with Python >=3.8,<4.0 can install extract-msg==0.53.1

For textract-py3, I don't plan on dropping support of Python 3.7 yet, but the relaxed specifications shouldn't introduce artificial version limits

@anthonyhashemi
Copy link

anthonyhashemi commented Feb 26, 2025

Hey @KyleKing thanks for creating the fork and maintaing that for the moment.

I tried using it but my colleague pointed out that the reason one of our tests started to break was because textract-py3 was installing xlrd 2.1.0. xlrd 2 and upwards removed support for anything but .xls so textract would no longer support xlsx. I fixed it by explicitly requiring xlrd==1.2.0.

When you get the chance you may want to restrict xlrd in the toml to xlrd = ">=1.2.0,<2.0.0" (I think)

@KyleKing
Copy link
Author

Thanks @anthonyhashemi! You're right and I'll publish a release this afternoon

Long-term, maybe adapting changes to use openpyxl for xlsx from #433 would be worthwhile in the case that xlrd no longer works reliably for xlsx

Prevents upgrading xlrd
@KyleKing
Copy link
Author

I've released v2.1.1 with the patch. Thanks again!

https://pypi.org/project/textract-py3

@StevenMapes
Copy link

Moving over to use openpyxl for xlsx would be good as then the constraint on xlrd could be removed which would be useful for projects that also use pandas for XLS as that, pandas, now requires v2.0.1+ of xlrd when using the xlrd engine

@KyleKing
Copy link
Author

That would be great and I would be open to PRs! I don’t have a use case for Excel, so I wouldn’t make the changes otherwise

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants