ds-caselaw-marklogic-api-client 41.0.0__tar.gz → 41.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 (95) hide show
  1. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/PKG-INFO +1 -1
  2. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/pyproject.toml +3 -3
  3. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/factories.py +2 -0
  4. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/__init__.py +27 -0
  5. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/LICENSE.md +0 -0
  6. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/README.md +0 -0
  7. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/Client.py +0 -0
  8. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/__init__.py +0 -0
  9. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/client_helpers/__init__.py +0 -0
  10. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/client_helpers/search_helpers.py +0 -0
  11. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/content_hash.py +0 -0
  12. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/errors.py +0 -0
  13. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/identifier_resolution.py +0 -0
  14. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/__init__.py +0 -0
  15. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/body.py +0 -0
  16. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/comparison.py +0 -0
  17. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/exceptions.py +0 -0
  18. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/statuses.py +0 -0
  19. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/transforms/html.xsl +0 -0
  20. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/documents/xml.py +0 -0
  21. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/__init__.py +0 -0
  22. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/collection.py +0 -0
  23. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/exceptions.py +0 -0
  24. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/fclid.py +0 -0
  25. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/neutral_citation.py +0 -0
  26. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/press_summary_ncn.py +0 -0
  27. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/identifiers/unpacker.py +0 -0
  28. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/judgments.py +0 -0
  29. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/neutral_citation_mixin.py +0 -0
  30. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/parser_logs.py +0 -0
  31. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/press_summaries.py +0 -0
  32. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/utilities/__init__.py +0 -0
  33. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/utilities/aws.py +0 -0
  34. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/utilities/dates.py +0 -0
  35. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/models/utilities/move.py +0 -0
  36. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/py.typed +0 -0
  37. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/responses/__init__.py +0 -0
  38. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/responses/search_response.py +0 -0
  39. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/responses/search_result.py +0 -0
  40. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/responses/xsl/search_match.xsl +0 -0
  41. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/search_parameters.py +0 -0
  42. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/types.py +0 -0
  43. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xml_helpers.py +0 -0
  44. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/break_judgment_checkout.xqy +0 -0
  45. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/check_content_hash_unique_by_uri.xqy +0 -0
  46. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/checkin_judgment.xqy +0 -0
  47. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/checkout_judgment.xqy +0 -0
  48. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/copy_document.xqy +0 -0
  49. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/delete_judgment.xqy +0 -0
  50. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/document_collections.xqy +0 -0
  51. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/document_exists.xqy +0 -0
  52. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_combined_stats_table.xqy +0 -0
  53. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_components_for_document.xqy +0 -0
  54. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_highest_enrichment_version.xqy +0 -0
  55. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_highest_parser_version.xqy +0 -0
  56. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_judgment.xqy +0 -0
  57. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_judgment_checkout_status.xqy +0 -0
  58. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_judgment_version.xqy +0 -0
  59. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_last_modified.xqy +0 -0
  60. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_missing_fclid.xqy +0 -0
  61. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_next_document_sequence_number.xqy +0 -0
  62. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_pending_enrichment_for_version.xqy +0 -0
  63. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_pending_parse_for_version.xqy +0 -0
  64. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_properties_for_search_results.xqy +0 -0
  65. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_property.xqy +0 -0
  66. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_property_as_node.xqy +0 -0
  67. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_recently_enriched.xqy +0 -0
  68. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_recently_parsed.xqy +0 -0
  69. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_version_annotation.xqy +0 -0
  70. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/get_version_created.xqy +0 -0
  71. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/insert_document.xqy +0 -0
  72. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/list_judgment_versions.xqy +0 -0
  73. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/resolve_from_identifier_slug.xqy +0 -0
  74. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/resolve_from_identifier_value.xqy +0 -0
  75. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_boolean_property.xqy +0 -0
  76. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_datetime_property.xqy +0 -0
  77. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_metadata_citation.xqy +0 -0
  78. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_metadata_court.xqy +0 -0
  79. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_metadata_jurisdiction.xqy +0 -0
  80. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_metadata_name.xqy +0 -0
  81. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_metadata_this_uri.xqy +0 -0
  82. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_metadata_work_expression_date.xqy +0 -0
  83. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_property.xqy +0 -0
  84. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/set_property_as_node.xqy +0 -0
  85. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/update_document.xqy +0 -0
  86. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/update_locked_judgment.xqy +0 -0
  87. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/user_has_privilege.xqy +0 -0
  88. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/user_has_role.xqy +0 -0
  89. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/validate_all_documents.xqy +0 -0
  90. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/validate_document.xqy +0 -0
  91. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/xslt.xqy +0 -0
  92. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery/xslt_transform.xqy +0 -0
  93. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xquery_type_dicts.py +0 -0
  94. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.1.0}/src/caselawclient/xslt/modify_xml_live.xsl +0 -0
  95. {ds_caselaw_marklogic_api_client-41.0.0 → ds_caselaw_marklogic_api_client-41.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: 41.0.0
3
+ Version: 41.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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ds-caselaw-marklogic-api-client"
3
- version = "41.0.0"
3
+ version = "41.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"
@@ -33,8 +33,8 @@ defusedxml = "^0.7.1"
33
33
 
34
34
  [tool.poetry.group.dev.dependencies]
35
35
  coverage = "7.10.6"
36
- pytest = "8.4.1"
37
- pytest-cov = "6.2.1"
36
+ pytest = "8.4.2"
37
+ pytest-cov = "6.3.0"
38
38
  beautifulsoup4 = "4.13.5"
39
39
  responses = "0.25.8"
40
40
  python-dotenv = "1.1.1"
@@ -61,6 +61,8 @@ class DocumentFactory:
61
61
  "source_name": "Example Uploader",
62
62
  "source_email": "uploader@example.com",
63
63
  "consignment_reference": "TDR-12345",
64
+ "first_published_datetime": None,
65
+ "has_ever_been_published": False,
64
66
  "assigned_to": "",
65
67
  "versions": [],
66
68
  }
@@ -312,10 +312,37 @@ class Document:
312
312
 
313
313
  @cached_property
314
314
  def first_published_datetime(self) -> Optional[datetime.datetime]:
315
+ """
316
+ Return the database value for the date and time this document was first published.
317
+
318
+ :return: The datetime value in the database for "first published".
319
+ """
315
320
  return self.api_client.get_datetime_property(self.uri, "first_published_datetime")
316
321
 
322
+ @cached_property
323
+ def first_published_datetime_display(self) -> Optional[datetime.datetime]:
324
+ """
325
+ Return the display value for the date and time this document was first published.
326
+
327
+ A value of 1970-01-01 00:00 indicates that the document has been published previously, but the exact date and time is unknown. In this case, return `None`. This can be used alongside `has_ever_been_published` to indicate an "unknown" state.
328
+
329
+ :return: The datetime value to be displayed to end users for "first published".
330
+ """
331
+
332
+ if self.first_published_datetime == datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc):
333
+ return None
334
+
335
+ return self.first_published_datetime
336
+
317
337
  @cached_property
318
338
  def has_ever_been_published(self) -> bool:
339
+ """
340
+ Do we consider this document to have ever been published?
341
+
342
+ This is `True` if either the document is currently published, or if `first_published_datetime` has any value (including the sentinel value).
343
+
344
+ :return: A boolean indicating if the document has ever been published.
345
+ """
319
346
  return self.is_published or self.first_published_datetime is not None
320
347
 
321
348
  @cached_property