Flesh out MIME type utilities in RBTools.

Review Request #13567 — Created Feb. 21, 2024 and submitted

Information

RBTools
release-5.x

Reviewers

RBTools had some MIME type stuff already to deal with the content types
for the API, living in rbtools.api.utils. This change takes the
generic parts of that and moves them into a new module,
rbtools.utils.mimetypes. This also adds two new methods inspired by
similar code in Review Board for guessing the MIME type of a file and
for checking to see if a MIME type matches a given accept-type pattern.

I would like to replace the file-based MIME type detection with
Google's newly open sourced magika project. At the moment, magika does
not support Python 3.12, so we have to go with this as-is.

Testing Done:
- Ran unit tests.
- Used the MIME type parsing, guessing, and matching in other changes.


 
Summary ID
Flesh out MIME type utilities in RBTools.
RBTools had some MIME type stuff already to deal with the content types for the API, living in `rbtools.api.utils`. This change takes the generic parts of that and moves them into a new module, `rbtools.utils.mimetypes`. This also adds two new methods inspired by similar code in Review Board for guessing the MIME type of a file and for checking to see if a MIME type matches a given accept-type pattern. I would like to replace the `file`-based MIME type detection with Google's newly open sourced `magika` project. At the moment, magika does not support Python 3.12, so we have to go with this as-is. Testing Done: - Ran unit tests. - Used the MIME type parsing, guessing, and matching in other changes.
22ebafd11551a8f7f8b23647c4fe5b598e869839
Description From Last Updated

Should these go at the top of the file in a block after the imports?

maubinmaubin
maubin
  1. 
      
  2. rbtools/utils/mimetypes.py (Diff revision 1)
     
     
     
    Show all issues

    Should these go at the top of the file in a block after the imports?

    1. These are only used for guess_mimetype. I'd rather keep their definitions close to that.

    2. Got it.

  3. 
      
maubin
  1. Ship It!
  2. 
      
chipx86
  1. Ship It!
  2. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to release-5.x (8ca93a7)