ds-caselaw-marklogic-api-client 37.0.2__tar.gz → 37.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.

Potentially problematic release.


This version of ds-caselaw-marklogic-api-client might be problematic. Click here for more details.

Files changed (89) hide show
  1. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/PKG-INFO +1 -1
  2. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/pyproject.toml +1 -1
  3. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/Client.py +18 -0
  4. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/documents/__init__.py +12 -5
  5. ds_caselaw_marklogic_api_client-37.1.0/src/caselawclient/xquery/get_missing_fclid.xqy +25 -0
  6. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery_type_dicts.py +5 -0
  7. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/LICENSE.md +0 -0
  8. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/README.md +0 -0
  9. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/__init__.py +0 -0
  10. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/client_helpers/__init__.py +0 -0
  11. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/client_helpers/search_helpers.py +0 -0
  12. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/content_hash.py +0 -0
  13. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/errors.py +0 -0
  14. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/factories.py +0 -0
  15. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/identifier_resolution.py +0 -0
  16. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/__init__.py +0 -0
  17. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/documents/body.py +0 -0
  18. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/documents/exceptions.py +0 -0
  19. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/documents/statuses.py +0 -0
  20. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/documents/transforms/html.xsl +0 -0
  21. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/documents/xml.py +0 -0
  22. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/identifiers/__init__.py +0 -0
  23. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/identifiers/exceptions.py +0 -0
  24. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/identifiers/fclid.py +0 -0
  25. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/identifiers/neutral_citation.py +0 -0
  26. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/identifiers/press_summary_ncn.py +0 -0
  27. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/identifiers/unpacker.py +0 -0
  28. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/judgments.py +0 -0
  29. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/neutral_citation_mixin.py +0 -0
  30. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/parser_logs.py +0 -0
  31. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/press_summaries.py +0 -0
  32. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/utilities/__init__.py +0 -0
  33. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/utilities/aws.py +0 -0
  34. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/utilities/dates.py +0 -0
  35. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/models/utilities/move.py +0 -0
  36. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/py.typed +0 -0
  37. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/responses/__init__.py +0 -0
  38. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/responses/search_response.py +0 -0
  39. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/responses/search_result.py +0 -0
  40. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/responses/xsl/search_match.xsl +0 -0
  41. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/search_parameters.py +0 -0
  42. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/types.py +0 -0
  43. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xml_helpers.py +0 -0
  44. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/break_judgment_checkout.xqy +0 -0
  45. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/checkin_judgment.xqy +0 -0
  46. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/checkout_judgment.xqy +0 -0
  47. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/copy_document.xqy +0 -0
  48. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/delete_judgment.xqy +0 -0
  49. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/document_collections.xqy +0 -0
  50. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/document_exists.xqy +0 -0
  51. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_combined_stats_table.xqy +0 -0
  52. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_components_for_document.xqy +0 -0
  53. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_highest_enrichment_version.xqy +0 -0
  54. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_highest_parser_version.xqy +0 -0
  55. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_judgment.xqy +0 -0
  56. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_judgment_checkout_status.xqy +0 -0
  57. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_judgment_version.xqy +0 -0
  58. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_last_modified.xqy +0 -0
  59. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_next_document_sequence_number.xqy +0 -0
  60. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_pending_enrichment_for_version.xqy +0 -0
  61. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_pending_parse_for_version.xqy +0 -0
  62. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_properties_for_search_results.xqy +0 -0
  63. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_property.xqy +0 -0
  64. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_property_as_node.xqy +0 -0
  65. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_recently_enriched.xqy +0 -0
  66. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_recently_parsed.xqy +0 -0
  67. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_version_annotation.xqy +0 -0
  68. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/get_version_created.xqy +0 -0
  69. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/insert_document.xqy +0 -0
  70. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/list_judgment_versions.xqy +0 -0
  71. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/resolve_from_identifier_slug.xqy +0 -0
  72. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/resolve_from_identifier_value.xqy +0 -0
  73. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_boolean_property.xqy +0 -0
  74. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_metadata_citation.xqy +0 -0
  75. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_metadata_court.xqy +0 -0
  76. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_metadata_jurisdiction.xqy +0 -0
  77. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_metadata_name.xqy +0 -0
  78. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_metadata_this_uri.xqy +0 -0
  79. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_metadata_work_expression_date.xqy +0 -0
  80. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_property.xqy +0 -0
  81. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/set_property_as_node.xqy +0 -0
  82. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/update_document.xqy +0 -0
  83. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/update_locked_judgment.xqy +0 -0
  84. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/user_has_privilege.xqy +0 -0
  85. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/user_has_role.xqy +0 -0
  86. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/validate_all_documents.xqy +0 -0
  87. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/validate_document.xqy +0 -0
  88. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/xslt.xqy +0 -0
  89. {ds_caselaw_marklogic_api_client-37.0.2 → ds_caselaw_marklogic_api_client-37.1.0}/src/caselawclient/xquery/xslt_transform.xqy +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ds-caselaw-marklogic-api-client
3
- Version: 37.0.2
3
+ Version: 37.1.0
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ds-caselaw-marklogic-api-client"
3
- version = "37.0.2"
3
+ version = "37.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"
@@ -1198,6 +1198,24 @@ class MarklogicApiClient:
1198
1198
 
1199
1199
  return results
1200
1200
 
1201
+ def get_missing_fclid(
1202
+ self,
1203
+ maximum_records: int = 50,
1204
+ ) -> list[str]:
1205
+ """Retrieve the URIs of published documents which do not have an identifier in the `fclid` schema."""
1206
+ vars: query_dicts.GetMissingFclidDict = {
1207
+ "maximum_records": maximum_records,
1208
+ }
1209
+
1210
+ results: list[str] = get_multipart_strings_from_marklogic_response(
1211
+ self._send_to_eval(
1212
+ vars,
1213
+ "get_missing_fclid.xqy",
1214
+ )
1215
+ )
1216
+
1217
+ return results
1218
+
1201
1219
  def resolve_from_identifier_slug(
1202
1220
  self, identifier_slug: DocumentIdentifierSlug, published_only: bool = True
1203
1221
  ) -> IdentifierResolutions:
@@ -378,6 +378,16 @@ class Document:
378
378
  """
379
379
  return self.api_client.validate_document(self.uri)
380
380
 
381
+ def assign_fclid_if_missing(self) -> Optional[FindCaseLawIdentifier]:
382
+ """If the document does not have an FCLID already, mint a new one and save it."""
383
+ if len(self.identifiers.of_type(FindCaseLawIdentifier)) == 0:
384
+ document_fclid = FindCaseLawIdentifierSchema.mint(self.api_client)
385
+ self.identifiers.add(document_fclid)
386
+ self.save_identifiers()
387
+ return document_fclid
388
+
389
+ return None
390
+
381
391
  def publish(self) -> None:
382
392
  """
383
393
  :raises CannotPublishUnpublishableDocument: This document has not passed the checks in `is_publishable`, and as
@@ -386,11 +396,8 @@ class Document:
386
396
  if not self.is_publishable:
387
397
  raise CannotPublishUnpublishableDocument
388
398
 
389
- ## If it doesn't already have one, get a new FCLID for this document and assign
390
- if len(self.identifiers.of_type(FindCaseLawIdentifier)) < 1:
391
- document_fclid = FindCaseLawIdentifierSchema.mint(self.api_client)
392
- self.identifiers.add(document_fclid)
393
- self.save_identifiers()
399
+ ## Make sure the document has an FCLID
400
+ self.assign_fclid_if_missing()
394
401
 
395
402
  publish_documents(self.uri)
396
403
  self.api_client.set_published(self.uri, True)
@@ -0,0 +1,25 @@
1
+ xquery version "1.0-ml";
2
+
3
+ declare variable $maximum_records as xs:int? external := 1000;
4
+
5
+ for $doc in fn:subsequence(
6
+ cts:search(
7
+ fn:collection(),
8
+ cts:and-query(
9
+ (
10
+ cts:properties-fragment-query(
11
+ cts:element-value-query(xs:QName("published"), "true")
12
+ ),
13
+ cts:not-query(
14
+ cts:properties-fragment-query(
15
+ cts:element-value-query(xs:QName("namespace"), "fclid")
16
+ )
17
+ )
18
+ )
19
+ )
20
+ ),
21
+ 1,
22
+ $maximum_records
23
+ )
24
+
25
+ return fn:base-uri($doc)
@@ -86,6 +86,11 @@ class GetLastModifiedDict(MarkLogicAPIDict):
86
86
  uri: MarkLogicDocumentURIString
87
87
 
88
88
 
89
+ # get_missing_fclid.xqy
90
+ class GetMissingFclidDict(MarkLogicAPIDict):
91
+ maximum_records: Optional[int]
92
+
93
+
89
94
  # get_pending_enrichment_for_version.xqy
90
95
  class GetPendingEnrichmentForVersionDict(MarkLogicAPIDict):
91
96
  maximum_records: Optional[int]