moleg-api 0.2.3__tar.gz → 0.2.4__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 (128) hide show
  1. {moleg_api-0.2.3 → moleg_api-0.2.4}/PKG-INFO +1 -1
  2. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/dispatch.py +1 -0
  3. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api.egg-info/PKG-INFO +1 -1
  4. {moleg_api-0.2.3 → moleg_api-0.2.4}/pyproject.toml +1 -1
  5. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_cli.py +40 -0
  6. {moleg_api-0.2.3 → moleg_api-0.2.4}/LICENSE +0 -0
  7. {moleg_api-0.2.3 → moleg_api-0.2.4}/README.md +0 -0
  8. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/__init__.py +0 -0
  9. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/__main__.py +0 -0
  10. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/__init__.py +0 -0
  11. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/catalog.py +0 -0
  12. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/constants.py +0 -0
  13. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/data.py +0 -0
  14. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/foundation.py +0 -0
  15. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/main.py +0 -0
  16. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/parser.py +0 -0
  17. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/signal_helpers.py +0 -0
  18. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/signals.py +0 -0
  19. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_cli/signals_meta.py +0 -0
  20. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/__init__.py +0 -0
  21. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/admin_scope.py +0 -0
  22. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/annex_tables.py +0 -0
  23. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api.py +0 -0
  24. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_admin_rules.py +0 -0
  25. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_annex.py +0 -0
  26. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_article_context.py +0 -0
  27. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_authority_context.py +0 -0
  28. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_bundle.py +0 -0
  29. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_comparable.py +0 -0
  30. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_compare.py +0 -0
  31. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_delegated_criteria.py +0 -0
  32. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_followups.py +0 -0
  33. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_history.py +0 -0
  34. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_institutional.py +0 -0
  35. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_interpretations.py +0 -0
  36. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_judicial.py +0 -0
  37. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_law_loaders.py +0 -0
  38. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_query_expansion.py +0 -0
  39. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_search.py +0 -0
  40. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_structure.py +0 -0
  41. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/api_versions.py +0 -0
  42. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/article_gaps.py +0 -0
  43. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/authority_article_gaps.py +0 -0
  44. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/authority_context_details.py +0 -0
  45. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/authority_context_pipeline.py +0 -0
  46. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/authority_sources.py +0 -0
  47. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/authority_temporal_filters.py +0 -0
  48. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/authority_temporal_gaps.py +0 -0
  49. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bridge.py +0 -0
  50. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bundle_candidates.py +0 -0
  51. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bundle_eager.py +0 -0
  52. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bundle_finalize.py +0 -0
  53. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bundle_modes.py +0 -0
  54. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bundle_primary.py +0 -0
  55. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/bundle_state.py +0 -0
  56. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/candidates.py +0 -0
  57. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/config.py +0 -0
  58. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/context_load_gaps.py +0 -0
  59. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/delegated_criteria_details.py +0 -0
  60. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/delegated_criteria_pipeline.py +0 -0
  61. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/delegated_scope.py +0 -0
  62. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_basic.py +0 -0
  63. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_hits.py +0 -0
  64. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_identities.py +0 -0
  65. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_routing.py +0 -0
  66. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_routing_authority.py +0 -0
  67. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_routing_bundle.py +0 -0
  68. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/followup_searches.py +0 -0
  69. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/foundation.py +0 -0
  70. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/history_identity.py +0 -0
  71. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/identity_params.py +0 -0
  72. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/institutional_candidates.py +0 -0
  73. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/institutional_pipeline.py +0 -0
  74. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/institutional_resolution.py +0 -0
  75. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/limits_intents.py +0 -0
  76. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/ranking.py +0 -0
  77. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/requested_load_gaps.py +0 -0
  78. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/source_matching.py +0 -0
  79. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/support.py +0 -0
  80. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/temporal_gaps.py +0 -0
  81. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_laws/validation.py +0 -0
  82. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/__init__.py +0 -0
  83. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/admin.py +0 -0
  84. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/annex.py +0 -0
  85. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/authority.py +0 -0
  86. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/bundles.py +0 -0
  87. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/followups.py +0 -0
  88. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/laws.py +0 -0
  89. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/query.py +0 -0
  90. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/serialization.py +0 -0
  91. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_models/types.py +0 -0
  92. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/__init__.py +0 -0
  93. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/annex.py +0 -0
  94. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/article_units.py +0 -0
  95. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/articles.py +0 -0
  96. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/authority.py +0 -0
  97. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/candidates.py +0 -0
  98. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/delegation.py +0 -0
  99. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/history_events.py +0 -0
  100. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/history_html.py +0 -0
  101. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/identities.py +0 -0
  102. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/primitives.py +0 -0
  103. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/references.py +0 -0
  104. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/row_format.py +0 -0
  105. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/source_refs.py +0 -0
  106. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/structure.py +0 -0
  107. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/_normalization/unwrap.py +0 -0
  108. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/cli.py +0 -0
  109. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/errors.py +0 -0
  110. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/laws.py +0 -0
  111. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/models.py +0 -0
  112. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/normalization.py +0 -0
  113. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/py.typed +0 -0
  114. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api/source.py +0 -0
  115. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api.egg-info/SOURCES.txt +0 -0
  116. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api.egg-info/dependency_links.txt +0 -0
  117. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api.egg-info/entry_points.txt +0 -0
  118. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api.egg-info/requires.txt +0 -0
  119. {moleg_api-0.2.3 → moleg_api-0.2.4}/moleg_api.egg-info/top_level.txt +0 -0
  120. {moleg_api-0.2.3 → moleg_api-0.2.4}/setup.cfg +0 -0
  121. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_laws.py +0 -0
  122. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_live_smoke.py +0 -0
  123. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_models.py +0 -0
  124. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_refactor_compat.py +0 -0
  125. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_sdk_fixes_0_2_1.py +0 -0
  126. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_sdk_fixes_0_2_2.py +0 -0
  127. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_source.py +0 -0
  128. {moleg_api-0.2.3 → moleg_api-0.2.4}/tests/test_versions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: moleg-api
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: Task-level Python interface for loading Korean legal sources from law.go.kr
5
5
  Author: MOLEG-API maintainers
6
6
  License-Expression: MIT
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from .foundation import *
4
4
  from .constants import CliError, EXIT_USAGE, FOLLOWUP_HANDOFFS, FOLLOWUP_INTERFACES
5
+ from .data import _statute_args
5
6
  from .signals_meta import parse_as_of
6
7
 
7
8
  def _call(api: MolegApi, args: argparse.Namespace) -> Any:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: moleg-api
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: Task-level Python interface for loading Korean legal sources from law.go.kr
5
5
  Author: MOLEG-API maintainers
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "moleg-api"
7
- version = "0.2.3"
7
+ version = "0.2.4"
8
8
  description = "Task-level Python interface for loading Korean legal sources from law.go.kr"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -24,6 +24,7 @@ from moleg_api.models import (
24
24
  AnnexFormText,
25
25
  AuthorityContext,
26
26
  BundleRequest,
27
+ CandidateContext,
27
28
  ContextGap,
28
29
  DelegationGraph,
29
30
  JudicialDecisionHit,
@@ -32,6 +33,7 @@ from moleg_api.models import (
32
33
  LawIdentity,
33
34
  LawStructure,
34
35
  LawText,
36
+ LegalContextBundle,
35
37
  LoadedContext,
36
38
  StructuredTableData,
37
39
  )
@@ -301,6 +303,16 @@ class StubApi:
301
303
  return method
302
304
 
303
305
 
306
+ class RecordingInstitutionalApi(StubApi):
307
+ def __init__(self, result=None):
308
+ super().__init__(result=result)
309
+ self.calls = []
310
+
311
+ def load_institutional_system(self, statute_identifiers, **kwargs):
312
+ self.calls.append((statute_identifiers, kwargs))
313
+ return self._result
314
+
315
+
304
316
  def _run(argv, api):
305
317
  return main(argv, api=api)
306
318
 
@@ -366,6 +378,34 @@ def test_main_success_envelope_shape(capsys):
366
378
  assert "data" in out
367
379
 
368
380
 
381
+ def test_main_load_institutional_system_dispatches_statutes(capsys):
382
+ bundle = LegalContextBundle(
383
+ request=BundleRequest(
384
+ query=None,
385
+ mode="institutional_system",
386
+ budget="minimal",
387
+ articles=["제1조"],
388
+ statute_ids=["001638"],
389
+ ),
390
+ loaded=LoadedContext(),
391
+ candidates=CandidateContext(),
392
+ )
393
+ api = RecordingInstitutionalApi(result=bundle)
394
+
395
+ code = _run(
396
+ ["load-institutional-system", "--statute", "001638", "--article", "제1조", "--budget", "minimal"],
397
+ api,
398
+ )
399
+
400
+ out = json.loads(capsys.readouterr().out)
401
+ assert code == 0
402
+ assert api.calls == [(["001638"], {"articles": ["제1조"], "budget": "minimal", "as_of": None})]
403
+ assert out["ok"] is True
404
+ assert out["command"] == "load-institutional-system"
405
+ assert out["kind"] == "legal_context_bundle"
406
+ assert out["data"]["request"]["statute_ids"] == ["001638"]
407
+
408
+
369
409
  def test_catalog_lists_conventions_and_kinds(capsys):
370
410
  code = _run(["catalog"], StubApi())
371
411
  out = json.loads(capsys.readouterr().out)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes