ds-caselaw-marklogic-api-client 21.0.0__tar.gz → 22.0.1__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 (64) hide show
  1. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/PKG-INFO +2 -2
  2. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/pyproject.toml +2 -2
  3. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/documents.py +9 -3
  4. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/responses/search_result.py +22 -6
  5. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/LICENSE.md +0 -0
  6. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/README.md +0 -0
  7. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/Client.py +0 -0
  8. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/__init__.py +0 -0
  9. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/client_helpers/__init__.py +0 -0
  10. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/client_helpers/search_helpers.py +0 -0
  11. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/content_hash.py +0 -0
  12. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/errors.py +0 -0
  13. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/__init__.py +0 -0
  14. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/judgments.py +0 -0
  15. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/neutral_citation_mixin.py +0 -0
  16. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/press_summaries.py +0 -0
  17. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/utilities/__init__.py +0 -0
  18. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/utilities/aws.py +0 -0
  19. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/models/utilities/move.py +0 -0
  20. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/py.typed +0 -0
  21. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/responses/__init__.py +0 -0
  22. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/responses/search_response.py +0 -0
  23. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/responses/xsl/search_match.xsl +0 -0
  24. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/search_parameters.py +0 -0
  25. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xml_helpers.py +0 -0
  26. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xml_tools.py +0 -0
  27. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/break_judgment_checkout.xqy +0 -0
  28. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/checkin_judgment.xqy +0 -0
  29. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/checkout_judgment.xqy +0 -0
  30. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/copy_document.xqy +0 -0
  31. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/delete_judgment.xqy +0 -0
  32. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/document_collections.xqy +0 -0
  33. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/document_exists.xqy +0 -0
  34. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_combined_stats_table.xqy +0 -0
  35. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_highest_enrichment_version.xqy +0 -0
  36. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_highest_parser_version.xqy +0 -0
  37. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_judgment.xqy +0 -0
  38. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_judgment_checkout_status.xqy +0 -0
  39. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_judgment_version.xqy +0 -0
  40. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_last_modified.xqy +0 -0
  41. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_pending_enrichment_for_version.xqy +0 -0
  42. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_pending_parse_for_version.xqy +0 -0
  43. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_properties_for_search_results.xqy +0 -0
  44. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_property.xqy +0 -0
  45. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_version_annotation.xqy +0 -0
  46. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/get_version_created.xqy +0 -0
  47. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/insert_document.xqy +0 -0
  48. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/list_judgment_versions.xqy +0 -0
  49. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_boolean_property.xqy +0 -0
  50. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_metadata_citation.xqy +0 -0
  51. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_metadata_court.xqy +0 -0
  52. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_metadata_jurisdiction.xqy +0 -0
  53. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_metadata_name.xqy +0 -0
  54. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_metadata_this_uri.xqy +0 -0
  55. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_metadata_work_expression_date.xqy +0 -0
  56. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/set_property.xqy +0 -0
  57. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/update_document.xqy +0 -0
  58. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/update_locked_judgment.xqy +0 -0
  59. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/user_has_privilege.xqy +0 -0
  60. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/user_has_role.xqy +0 -0
  61. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/validate_all_documents.xqy +0 -0
  62. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/xslt.xqy +0 -0
  63. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery/xslt_transform.xqy +0 -0
  64. {ds_caselaw_marklogic_api_client-21.0.0 → ds_caselaw_marklogic_api_client-22.0.1}/src/caselawclient/xquery_type_dicts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ds-caselaw-marklogic-api-client
3
- Version: 21.0.0
3
+ Version: 22.0.1
4
4
  Summary: An API client for interacting with the underlying data in Find Caselaw.
5
5
  Home-page: https://github.com/nationalarchives/ds-caselaw-custom-api-client
6
6
  Keywords: national archives,caselaw
@@ -14,7 +14,7 @@ Requires-Dist: boto3 (>=1.26.112,<2.0.0)
14
14
  Requires-Dist: certifi (>=2022.12.7,<2024.0.0)
15
15
  Requires-Dist: charset-normalizer (>=3.0.0,<4.0.0)
16
16
  Requires-Dist: django-environ (>=0.11.0,<0.12.0)
17
- Requires-Dist: ds-caselaw-utils (>=1.3.3,<2.0.0)
17
+ Requires-Dist: ds-caselaw-utils (>=1.4.1,<2.0.0)
18
18
  Requires-Dist: idna (>=3.4,<4.0)
19
19
  Requires-Dist: lxml (>=5.0.0,<6.0.0)
20
20
  Requires-Dist: memoization (>=0.4.0,<0.5.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ds-caselaw-marklogic-api-client"
3
- version = "21.0.0"
3
+ version = "22.0.1"
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"
@@ -21,7 +21,7 @@ requests-toolbelt = ">=0.10.1,<1.1.0"
21
21
  urllib3 = "^1.26.15"
22
22
  memoization = "^0.4.0"
23
23
  lxml = "^5.0.0"
24
- ds-caselaw-utils = "^1.3.3"
24
+ ds-caselaw-utils = "^1.4.1"
25
25
  boto3 = "^1.26.112"
26
26
  typing-extensions = "^4.7.1"
27
27
  mypy-boto3-s3 = "^1.26.104"
@@ -62,6 +62,7 @@ if TYPE_CHECKING:
62
62
 
63
63
 
64
64
  DocumentURIString = NewType("DocumentURIString", str)
65
+ CourtIdentifierString = NewType("CourtIdentifierString", str)
65
66
 
66
67
 
67
68
  class CannotPublishUnpublishableDocument(Exception):
@@ -209,8 +210,11 @@ class Document:
209
210
  )
210
211
 
211
212
  @property
212
- def court_and_jurisdiction(self) -> str:
213
- return "/".join((self.court, self.jurisdiction))
213
+ def court_and_jurisdiction_identifier_string(self) -> CourtIdentifierString:
214
+ if self.jurisdiction != "":
215
+ return CourtIdentifierString("/".join((self.court, self.jurisdiction)))
216
+ else:
217
+ return CourtIdentifierString(self.court)
214
218
 
215
219
  @cached_property
216
220
  def document_date_as_string(self) -> str:
@@ -435,7 +439,9 @@ class Document:
435
439
  @cached_property
436
440
  def has_valid_court(self) -> bool:
437
441
  try:
438
- return bool(courts.get_by_code(self.court))
442
+ return bool(
443
+ courts.get_by_code(self.court_and_jurisdiction_identifier_string)
444
+ )
439
445
  except CourtNotFoundException:
440
446
  return False
441
447
 
@@ -192,13 +192,29 @@ class SearchResult:
192
192
  """
193
193
  :return: The court of the search result
194
194
  """
195
-
195
+ court = None
196
196
  court_code = self._get_xpath_match_string("search:extracted/uk:court/text()")
197
- try:
198
- court = courts.get_by_code(court_code)
199
- except CourtNotFoundException:
200
- court = None
201
-
197
+ jurisdiction_code = self._get_xpath_match_string(
198
+ "search:extracted/uk:jurisdiction/text()"
199
+ )
200
+ if jurisdiction_code:
201
+ court_code_with_jurisdiction = "%s/%s" % (court_code, jurisdiction_code)
202
+ try:
203
+ court = courts.get_by_code(court_code_with_jurisdiction)
204
+ except CourtNotFoundException:
205
+ logging.warning(
206
+ "Court not found with court code %s and jurisdiction code %s for judgment with NCN %s, falling back to court."
207
+ % (court_code, jurisdiction_code, self.neutral_citation)
208
+ )
209
+ if court is None:
210
+ try:
211
+ court = courts.get_by_code(court_code)
212
+ except CourtNotFoundException:
213
+ logging.warning(
214
+ "Court not found with court code %s for judgment with NCN %s, returning None."
215
+ % (court_code, self.neutral_citation)
216
+ )
217
+ court = None
202
218
  return court
203
219
 
204
220
  @property