git: d48062ec61d4 - main - textproc/py-extract-msg: Update to 0.45.0

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Wed, 04 Oct 2023 20:02:49 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d48062ec61d4ec3420833c451f146e15a38bd9bb

commit d48062ec61d4ec3420833c451f146e15a38bd9bb
Author:     Jesús Daniel Colmenares Oviedo <DtxdF@disroot.org>
AuthorDate: 2023-10-01 22:18:39 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-10-04 19:59:56 +0000

    textproc/py-extract-msg: Update to 0.45.0
    
    * Add devel/py-red-black-tree-mod dependency.
    
    ChangeLog:
    https://github.com/TeamMsgExtractor/msg-extractor/blob/v0.45.0/CHANGELOG.md
    
    * BREAKING: Changed parsing of string multiple properties to remove the trailing
      null byte. This *will* cause the output of parsing them to differ.
    * Updated typing information for some functions and classes.
    * Fixed a bug with `MessageSignedBase.attachments` that would cause it to return
      None instead of an empty list if the number of normal attachments was 0 was
      the error behavior was set to ignore violations of the standard.
    * Updated `MessageSignedBase.attachments` to use `functools.cached_property`
      instead of `property`.
    * Fixed spelling errors in some exception strings.
    * Made `NamedPropertyBase` a subclass of `abc.ABC`.
    * Cleaned up some of the code for named properties to remove unused variables and
      remove inefficient code.
    * Changed `PropBase` to be a subclass of `abc.ABC`.
    * Added detailed versioning info to the README.
    * Deprecated many private functions, including methods on many of the classes.
      Of primary note are `_getStream` and `_getStringStream`, which have been
      moved to the public API as `getStream` and `getStringStream`. Any
      deprecated functions still exist and will forward to a public API function
      if they are not being removed. Additionally, all internal usage of them has
      been removed. This change is one of the big preparations that is needed for
      the `1.0.0` release.
        * As mentioned, a number of these deprecated functions have been moved to
          the public API. It is recommended that you run tests with your code
          after enabling deprecation warnings to see what should be changed.
    * Removed items deprecated in or before `0.42.0`.
    * Changed the API for the private method `_genRecipient`. This is not intended for
      use outside of the module *except* for subclasses. The change removed the
      allowance of ints for the second argument, requiring that it be a valid
      enum type.
    * Convert many enum types to `IntEnum`.
    * Extended functionality of `PropertiesStore` to allow for integer property names
      and getting a property based on just the ID. You can also get a list of all
      properties that use a given ID.
    * Added new function `PropertiesStore.getProperties` which gets a list of all
      properties matching the property ID. Return type is a list of `PropBase`
      instances.
    * Added new function `PropertiesStore.getValue` which looks for the first matching
      `FixedLengthProp` and returns the value from it.
    * Improved internal code related to getting a property with a potentially unknown
      type.
    * Added a number of entirely new functions to the public API on `MSGFile`,
      `AttachmentBase`, `PropertiesStore`, and `Recipient` objects:
        * `getMultipleBinary`: Gets a multiple binary property as a list of `bytes`
           objects.
        * `getSingleOrMultipleBinary`: A combination of `getStream` and `getMultipleBinary`
           which prefers a single binary stream. Returns a single `bytes` object or a
           list of `bytes` objects.
        * `getMultipleString`: Gets a multiple string property as a list of `str` objects.
        * `getSingleOrMultipleString`: A combination of `getStringStream` and
          `getMultipleString` which prefers a single string stream. Returns
          a single bytes objecct or a list of bytes objects.
        * `getPropertyVal`: Shortcut for `instance.props.getValue` that allows new behavior
          to be added by overriding it.
        * `getNamedProp`: Shortcut for `instance.namedProperties.get((propertyName, guid), default)`
          that allows new behavior to be added by overriding it.
    * Removed `Named._getStringStream` and `Named.sExists`. The named properties storage will
      *always* use regular streams and not string streams.
    * Changed all `Named` methods to no longer have a prefix argument. The prefix should
      *always* be false sense the named property mapping will only exist in the top level directory.
    * Adjusted `tryGetMimeType` to allows any attachments whose `data` property would return a
      `bytes` instance.
    * Changed internal code to use public API functions wherever possible. This includes making many
      private API functions use calls to the public API for getting bits of data.
    * Fixed potential issue with `AttachmentBase.clsid` which had the potential to cause some
      attachments to fail to generate a CLSID.
    * Outright removed or changed a significant portion of the private API. I have rarely, if ever,
      seen references to these parts, so this should cause you no issues. Some of these have also
      been moved to the public API, either identically or with changes, and the mapping is as such:
        * `_getNamedAs` -> `getNamedAs`: Changed to *always* require a conversion argument. If you
          were previously using it to plainly get a named property or to handle the properly being
          None or a real value, you should use the return value of `getNamedProp` instead.
        * `_getPropertyAs` -> `getPropertyAs`: Same as above, use `getPropertyVal` instead for None
          or plain access.
        * `_getStreamAs` -> `getStreamAs`, `getStringStreamAs`: Once again, see above. Use `getStream`
          and `getStringStream`, respectively.
    
    PR:             273123
---
 textproc/py-extract-msg/Makefile | 3 ++-
 textproc/py-extract-msg/distinfo | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/textproc/py-extract-msg/Makefile b/textproc/py-extract-msg/Makefile
index 25fca306a0cb..42358e103206 100644
--- a/textproc/py-extract-msg/Makefile
+++ b/textproc/py-extract-msg/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	extract-msg
-DISTVERSION=	0.44.0
+DISTVERSION=	0.45.0
 CATEGORIES=	textproc python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -19,6 +19,7 @@ RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.11.1:www/py-beautifulsoup@$
 		${PYTHON_PKGNAMEPREFIX}imapclient>=2.1.0:mail/py-imapclient@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}olefile>=0.46:devel/py-olefile@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pytz-deprecation-shim>0:devel/py-pytz-deprecation-shim@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}red-black-tree-mod>=0:devel/py-red-black-tree-mod@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}RTFDE>=0.0.2:textproc/py-RTFDE@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}tzlocal>=4.2:devel/py-tzlocal@${PY_FLAVOR}
 
diff --git a/textproc/py-extract-msg/distinfo b/textproc/py-extract-msg/distinfo
index b09ba1fb69c5..c7f12e8e1033 100644
--- a/textproc/py-extract-msg/distinfo
+++ b/textproc/py-extract-msg/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1691703145
-SHA256 (extract_msg-0.44.0.tar.gz) = 6f51ca87ffdbc2c8d28589d7221bfb8710e6af164037a3ee574bef35f4470397
-SIZE (extract_msg-0.44.0.tar.gz) = 292825
+TIMESTAMP = 1691959858
+SHA256 (extract_msg-0.45.0.tar.gz) = 6814865cf2ba806bd69af53af688a13e000a95d4991cce6a0416b3bdeb739496
+SIZE (extract_msg-0.45.0.tar.gz) = 298409