ds-caselaw-marklogic-api-client 39.0.0__tar.gz → 39.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/PKG-INFO +2 -1
  2. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/pyproject.toml +6 -4
  3. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/Client.py +15 -10
  4. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/documents/__init__.py +7 -3
  5. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/judgments.py +1 -0
  6. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/parser_logs.py +1 -0
  7. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/press_summaries.py +1 -0
  8. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/LICENSE.md +0 -0
  9. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/README.md +0 -0
  10. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/__init__.py +0 -0
  11. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/client_helpers/__init__.py +0 -0
  12. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/client_helpers/search_helpers.py +0 -0
  13. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/content_hash.py +0 -0
  14. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/errors.py +0 -0
  15. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/factories.py +0 -0
  16. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/identifier_resolution.py +0 -0
  17. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/__init__.py +0 -0
  18. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/documents/body.py +0 -0
  19. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/documents/exceptions.py +0 -0
  20. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/documents/statuses.py +0 -0
  21. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/documents/transforms/html.xsl +0 -0
  22. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/documents/xml.py +0 -0
  23. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/__init__.py +0 -0
  24. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/collection.py +0 -0
  25. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/exceptions.py +0 -0
  26. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/fclid.py +0 -0
  27. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/neutral_citation.py +0 -0
  28. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/press_summary_ncn.py +0 -0
  29. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/identifiers/unpacker.py +0 -0
  30. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/neutral_citation_mixin.py +0 -0
  31. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/utilities/__init__.py +0 -0
  32. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/utilities/aws.py +0 -0
  33. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/utilities/dates.py +0 -0
  34. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/models/utilities/move.py +0 -0
  35. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/py.typed +0 -0
  36. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/responses/__init__.py +0 -0
  37. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/responses/search_response.py +0 -0
  38. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/responses/search_result.py +0 -0
  39. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/responses/xsl/search_match.xsl +0 -0
  40. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/search_parameters.py +0 -0
  41. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/types.py +0 -0
  42. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xml_helpers.py +0 -0
  43. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/break_judgment_checkout.xqy +0 -0
  44. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/checkin_judgment.xqy +0 -0
  45. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/checkout_judgment.xqy +0 -0
  46. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/copy_document.xqy +0 -0
  47. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/delete_judgment.xqy +0 -0
  48. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/document_collections.xqy +0 -0
  49. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/document_exists.xqy +0 -0
  50. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_combined_stats_table.xqy +0 -0
  51. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_components_for_document.xqy +0 -0
  52. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_highest_enrichment_version.xqy +0 -0
  53. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_highest_parser_version.xqy +0 -0
  54. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_judgment.xqy +0 -0
  55. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_judgment_checkout_status.xqy +0 -0
  56. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_judgment_version.xqy +0 -0
  57. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_last_modified.xqy +0 -0
  58. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_missing_fclid.xqy +0 -0
  59. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_next_document_sequence_number.xqy +0 -0
  60. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_pending_enrichment_for_version.xqy +0 -0
  61. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_pending_parse_for_version.xqy +0 -0
  62. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_properties_for_search_results.xqy +0 -0
  63. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_property.xqy +0 -0
  64. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_property_as_node.xqy +0 -0
  65. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_recently_enriched.xqy +0 -0
  66. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_recently_parsed.xqy +0 -0
  67. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_version_annotation.xqy +0 -0
  68. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/get_version_created.xqy +0 -0
  69. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/insert_document.xqy +0 -0
  70. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/list_judgment_versions.xqy +0 -0
  71. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/resolve_from_identifier_slug.xqy +0 -0
  72. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/resolve_from_identifier_value.xqy +0 -0
  73. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_boolean_property.xqy +0 -0
  74. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_metadata_citation.xqy +0 -0
  75. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_metadata_court.xqy +0 -0
  76. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_metadata_jurisdiction.xqy +0 -0
  77. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_metadata_name.xqy +0 -0
  78. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_metadata_this_uri.xqy +0 -0
  79. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_metadata_work_expression_date.xqy +0 -0
  80. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_property.xqy +0 -0
  81. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/set_property_as_node.xqy +0 -0
  82. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/update_document.xqy +0 -0
  83. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/update_locked_judgment.xqy +0 -0
  84. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/user_has_privilege.xqy +0 -0
  85. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/user_has_role.xqy +0 -0
  86. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/validate_all_documents.xqy +0 -0
  87. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/validate_document.xqy +0 -0
  88. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/xslt.xqy +0 -0
  89. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery/xslt_transform.xqy +0 -0
  90. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xquery_type_dicts.py +0 -0
  91. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xslt/modify_xml_live.xsl +0 -0
  92. {ds_caselaw_marklogic_api_client-39.0.0 → ds_caselaw_marklogic_api_client-39.1.0}/src/caselawclient/xslt/sample.xsl +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ds-caselaw-marklogic-api-client
3
- Version: 39.0.0
3
+ Version: 39.1.0
4
4
  Summary: An API client for interacting with the underlying data in Find Caselaw.
5
5
  Keywords: national archives,caselaw
6
6
  Author: The National Archives
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.13
13
13
  Requires-Dist: boto3 (>=1.26.112,<2.0.0)
14
14
  Requires-Dist: certifi (>=2025.7.9,<2025.8.0)
15
15
  Requires-Dist: charset-normalizer (>=3.0.0,<4.0.0)
16
+ Requires-Dist: defusedxml (>=0.7.1,<0.8.0)
16
17
  Requires-Dist: django-environ (>=0.12.0)
17
18
  Requires-Dist: ds-caselaw-utils (>=2.0.0,<3.0.0)
18
19
  Requires-Dist: idna (>=3.4,<4.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ds-caselaw-marklogic-api-client"
3
- version = "39.0.0"
3
+ version = "39.1.0"
4
4
  description = "An API client for interacting with the underlying data in Find Caselaw."
5
5
  authors = ["The National Archives"]
6
6
  homepage = "https://github.com/nationalarchives/ds-caselaw-custom-api-client"
@@ -29,9 +29,10 @@ pytz = ">2024"
29
29
  python-dateutil = "^2.9.0-post.0"
30
30
  saxonche = "^12.5.0"
31
31
  sqids = "^0.5.0"
32
+ defusedxml = "^0.7.1"
32
33
 
33
34
  [tool.poetry.group.dev.dependencies]
34
- coverage = "7.9.2"
35
+ coverage = "7.10.1"
35
36
  pytest = "8.4.1"
36
37
  beautifulsoup4 = "4.13.4"
37
38
  responses = "0.25.7"
@@ -69,14 +70,15 @@ line-length = 120
69
70
 
70
71
  [tool.ruff.lint]
71
72
  ignore = ["E501", "G004", "PLR2004", "RUF005", "RUF012", "UP040"] # longlines, fstrings in logs, magic values, consider not concat, mutable classbits, type instead of TypeAlias
72
- extend-select = ["W", "I", "SLF", "SIM"]
73
- # extend-select = [ "B", "Q", "C90", "I", "UP", "YTT", "ASYNC", "S", "BLE", "A", "COM", "C4", "DTZ", "T10", "DJ", "EM", "EXE", "FA",
73
+ extend-select = ["W", "I", "SLF", "SIM", "C90", "S"]
74
+ # extend-select = [ "B", "Q", "I", "UP", "YTT", "ASYNC", "BLE", "A", "COM", "C4", "DTZ", "T10", "DJ", "EM", "EXE", "FA",
74
75
  # "ISC", "ICN", "G", "INP", "PIE", "T20", "PYI", "PT", "Q", "RSE", "RET", "SLOT", "TID", "TCH", "INT", "PTH",
75
76
  # "FIX", "PGH", "PL", "TRY", "FLY", "PERF", "RUF"]
76
77
  unfixable = ["ERA"]
77
78
 
78
79
  [tool.ruff.lint.extend-per-file-ignores]
79
80
  "tests/*" = ["S101"] # `assert` is fine in tests
81
+ "smoketest/*" = ["S101"] # `assert` is fine in tests
80
82
  "tests/client/test_client.py" = ["SLF001"] # TODO: This really shouldn't be the case, but it's not important to fix right now.
81
83
 
82
84
  # things skipped:
@@ -7,11 +7,12 @@ import warnings
7
7
  from datetime import datetime, time, timedelta
8
8
  from pathlib import Path
9
9
  from typing import Any, Optional, Type, Union
10
- from xml.etree import ElementTree
11
- from xml.etree.ElementTree import Element, ParseError, fromstring
10
+ from xml.etree.ElementTree import Element
12
11
 
13
12
  import environ
14
13
  import requests
14
+ from defusedxml import ElementTree
15
+ from defusedxml.ElementTree import ParseError, fromstring
15
16
  from ds_caselaw_utils.types import NeutralCitationString
16
17
  from lxml import etree
17
18
  from requests.auth import HTTPBasicAuth
@@ -258,10 +259,12 @@ class MarklogicApiClient:
258
259
  return "Unknown error, Marklogic returned a null or empty response"
259
260
  try:
260
261
  xml = fromstring(content_as_xml)
261
- return xml.find(
262
- "message-code",
263
- namespaces={"": "http://marklogic.com/xdmp/error"},
264
- ).text # type: ignore
262
+ return str(
263
+ xml.find(
264
+ "message-code",
265
+ namespaces={"": "http://marklogic.com/xdmp/error"},
266
+ ).text
267
+ )
265
268
  except (ParseError, TypeError, AttributeError):
266
269
  return "Unknown error, Marklogic returned a null or empty response"
267
270
 
@@ -682,10 +685,12 @@ class MarklogicApiClient:
682
685
  if content == "":
683
686
  return None
684
687
  response_xml = ElementTree.fromstring(content)
685
- return response_xml.find(
686
- "dls:annotation",
687
- namespaces={"dls": "http://marklogic.com/xdmp/dls"},
688
- ).text # type: ignore
688
+ return str(
689
+ response_xml.find(
690
+ "dls:annotation",
691
+ namespaces={"dls": "http://marklogic.com/xdmp/dls"},
692
+ ).text
693
+ )
689
694
 
690
695
  def get_judgment_version(
691
696
  self,
@@ -63,6 +63,9 @@ class Document:
63
63
  document_noun_plural = "documents"
64
64
  """ The noun for a plural of this document type. """
65
65
 
66
+ _default_reparse_document_type: Optional[str] = None
67
+ """ The default noun to pass to the parser when reparsing given the document type if known. This is used to determine how the document should be parsed and processed."""
68
+
66
69
  type_collection_name: str
67
70
 
68
71
  attributes_to_validate: list[tuple[str, bool, str]] = [
@@ -465,7 +468,6 @@ class Document:
465
468
  now = datetime.datetime.now(datetime.timezone.utc)
466
469
  self.api_client.set_property(self.uri, "last_sent_to_parser", now.isoformat())
467
470
 
468
- parser_type_noun = {"judgment": "judgment", "press summary": "pressSummary"}[self.document_noun]
469
471
  checked_date: Optional[str] = (
470
472
  self.body.document_date_as_date.isoformat()
471
473
  if self.body.document_date_as_date and self.body.document_date_as_date > datetime.date(1001, 1, 1)
@@ -477,16 +479,18 @@ class Document:
477
479
  # values are "" from the API, we should pass None instead in this case.
478
480
 
479
481
  parser_instructions: ParserInstructionsDict = {
480
- "documentType": parser_type_noun,
481
482
  "metadata": {
482
483
  "name": self.body.name or None,
483
484
  "cite": None,
484
485
  "court": self.body.court or None,
485
486
  "date": checked_date,
486
487
  "uri": self.uri,
487
- },
488
+ }
488
489
  }
489
490
 
491
+ if self._default_reparse_document_type:
492
+ parser_instructions["documentType"] = self._default_reparse_document_type
493
+
490
494
  ## TODO: Remove this hack around the fact that NCNs are assumed to be present for all documents' metadata, but actually different document classes may have different metadata
491
495
  if hasattr(self, "neutral_citation"):
492
496
  parser_instructions["metadata"]["cite"] = self.neutral_citation
@@ -24,6 +24,7 @@ class Judgment(NeutralCitationMixin, Document):
24
24
  document_noun = "judgment"
25
25
  document_noun_plural = "judgments"
26
26
  type_collection_name = "judgment"
27
+ _default_reparse_document_type = "judgment"
27
28
 
28
29
  def __init__(self, uri: DocumentURIString, *args: Any, **kwargs: Any) -> None:
29
30
  super().__init__(self.document_noun, uri, *args, **kwargs)
@@ -11,3 +11,4 @@ class ParserLog(Document):
11
11
  document_noun = "parser log"
12
12
  document_noun_plural = "parser logs"
13
13
  type_collection_name = "parser-log"
14
+ _default_reparse_document_type = "parserLog"
@@ -25,6 +25,7 @@ class PressSummary(NeutralCitationMixin, Document):
25
25
  document_noun = "press summary"
26
26
  document_noun_plural = "press summaries"
27
27
  type_collection_name = "press-summary"
28
+ _default_reparse_document_type = "pressSummary"
28
29
 
29
30
  def __init__(self, uri: DocumentURIString, *args: Any, **kwargs: Any) -> None:
30
31
  super().__init__(self.document_noun, uri, *args, **kwargs)