From 6cbd79b6224170bf236d6a2e2110fe227d091bf2 Mon Sep 17 00:00:00 2001 From: Brendan Foley Date: Tue, 7 Jul 2026 11:21:12 -0700 Subject: [PATCH 1/2] Check for many contributions to warn of potential OOM and clarify use of ignore_dupes in docstring of submit_contributions --- mp_api/client/contribs/client.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mp_api/client/contribs/client.py b/mp_api/client/contribs/client.py index 0b6e4bd1..95c06866 100644 --- a/mp_api/client/contribs/client.py +++ b/mp_api/client/contribs/client.py @@ -1913,9 +1913,13 @@ def submit_contributions( updating. Set list entries to `None` for components that are to be left untouched during an update. + It is possible to quickly run Out Of Memory in the case of large/many contributions. + It is recommended to chunk your uploads to a reasonable size based on your machine capabilties + and contribution size. + Args: contributions (list): list of contribution dicts to submit - ignore_dupes (bool): force duplicate components to be submitted + ignore_dupes (bool): force duplicate components to be submitted. If your contributions intentionally share components, set this to True. timeout (int): cancel remaining requests if timeout exceeded (in seconds) skip_dupe_check (bool): skip duplicate check for contribution identifiers @@ -1925,10 +1929,15 @@ def submit_contributions( Raises: MPContribsClientError on malformed submitted data. """ - if not contributions or not isinstance(contributions, list): + if not contributions: raise MPContribsClientError( "Please provide list of contributions to submit." ) + many_contribs_flag = 5000 + if len(contributions) > many_contribs_flag: + MPCC_LOGGER.warning( + msg=f"Large number of contributions detected (>{many_contribs_flag}). OOM may occur. Batching recommended." + ) # get existing contributions tic = time.perf_counter() From d499a4616cd7304514380bd3648c2d567108c049 Mon Sep 17 00:00:00 2001 From: Brendan Foley Date: Tue, 7 Jul 2026 13:21:29 -0700 Subject: [PATCH 2/2] Fixed typo in docstring --- mp_api/client/contribs/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mp_api/client/contribs/client.py b/mp_api/client/contribs/client.py index 95c06866..fa3429c7 100644 --- a/mp_api/client/contribs/client.py +++ b/mp_api/client/contribs/client.py @@ -1914,7 +1914,7 @@ def submit_contributions( during an update. It is possible to quickly run Out Of Memory in the case of large/many contributions. - It is recommended to chunk your uploads to a reasonable size based on your machine capabilties + It is recommended to chunk your uploads to a reasonable size based on your machine capabilities and contribution size. Args: