jetstream-api 0.20.2__tar.gz → 0.20.3__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 (30) hide show
  1. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/PKG-INFO +7 -1
  2. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/README.md +6 -0
  3. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/__init__.py +1 -1
  4. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/admin.py +19 -14
  5. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/jetstream_api.egg-info/PKG-INFO +7 -1
  6. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/pyproject.toml +1 -1
  7. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/LICENSE.txt +0 -0
  8. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/_codec.py +0 -0
  9. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/_consumer.py +0 -0
  10. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/_groupwire.py +0 -0
  11. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/_qleader.py +0 -0
  12. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/admintopic.py +0 -0
  13. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/common.py +0 -0
  14. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/connectivity.py +0 -0
  15. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/exception.py +0 -0
  16. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/msg.py +0 -0
  17. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/partitioner.py +0 -0
  18. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/pattern.py +0 -0
  19. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/producer.py +0 -0
  20. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/properties.py +0 -0
  21. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/py.typed +0 -0
  22. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/qmgr.py +0 -0
  23. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/topic.py +0 -0
  24. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/ilink/util.py +0 -0
  25. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/jetstream_api.egg-info/SOURCES.txt +0 -0
  26. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/jetstream_api.egg-info/dependency_links.txt +0 -0
  27. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/jetstream_api.egg-info/requires.txt +0 -0
  28. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/jetstream_api.egg-info/top_level.txt +0 -0
  29. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/setup.cfg +0 -0
  30. {jetstream_api-0.20.2 → jetstream_api-0.20.3}/tests/test_example.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jetstream-api
3
- Version: 0.20.2
3
+ Version: 0.20.3
4
4
  Summary: Python client API for iLink M.O.M. (Message Oriented Middleware)
5
5
  Author: snowjeans
6
6
  License: Boost Software License - Version 1.0 - August 17th, 2003
@@ -60,6 +60,12 @@ lz4 배치 압축을 쓰려면 `pip install "jetstream-api[lz4]"`, zstd 배치
60
60
  ## 설치 방법
61
61
  pip install jetstream-api
62
62
 
63
+ ## 0.20.3 변경 - 토픽 파티션 격리본 재주입 (자바 v2.16.3 과 같음, 짝 엔진 7.0.1.3512 이상 - 토픽 격리본은 7.0.1.3553 이상)
64
+
65
+ - 격리본 토픽 파티션(엔진 7.0.1.3553 QUARTOOL-2): `reinjectQuarantine` 의 큐 인자를 선택으로 바꿨다 - 토픽 파티션 격리본은 큐를 비우고
66
+ 부른다(큐 격리본에 비우면 엔진이 `MIMQE_INVALID_ARGUMENT (QUEUE required)`). 0.20.2 는 빈 큐를 보내기 전에 막았다. 토픽 격리본의
67
+ SINCE 는 **오프셋**이고(빈 값 = 격리 때 잘라 낸 시작, `"ALL"` = 전부), 목록 · 검사 원문에 `P` · `T` 줄과 `offset <시작>` 머리가 온다.
68
+
63
69
  ## 0.20.2 변경 - 관제 명령 관리 API · 강제 선출 · 리더십 표 · 격리본 (자바 v2.16.2 와 같음, 짝 엔진 7.0.1.3512 이상 - 리더십 표 · 격리본 · 키 단위 강제 선출은 7.0.1.3552 이상)
64
70
 
65
71
  - **리더십 표 · 격리본**(엔진 7.0.1.3552 이상, 그 전 엔진은 `MIMQE_INVALID_REQ_CODE`):
@@ -10,6 +10,12 @@ lz4 배치 압축을 쓰려면 `pip install "jetstream-api[lz4]"`, zstd 배치
10
10
  ## 설치 방법
11
11
  pip install jetstream-api
12
12
 
13
+ ## 0.20.3 변경 - 토픽 파티션 격리본 재주입 (자바 v2.16.3 과 같음, 짝 엔진 7.0.1.3512 이상 - 토픽 격리본은 7.0.1.3553 이상)
14
+
15
+ - 격리본 토픽 파티션(엔진 7.0.1.3553 QUARTOOL-2): `reinjectQuarantine` 의 큐 인자를 선택으로 바꿨다 - 토픽 파티션 격리본은 큐를 비우고
16
+ 부른다(큐 격리본에 비우면 엔진이 `MIMQE_INVALID_ARGUMENT (QUEUE required)`). 0.20.2 는 빈 큐를 보내기 전에 막았다. 토픽 격리본의
17
+ SINCE 는 **오프셋**이고(빈 값 = 격리 때 잘라 낸 시작, `"ALL"` = 전부), 목록 · 검사 원문에 `P` · `T` 줄과 `offset <시작>` 머리가 온다.
18
+
13
19
  ## 0.20.2 변경 - 관제 명령 관리 API · 강제 선출 · 리더십 표 · 격리본 (자바 v2.16.2 와 같음, 짝 엔진 7.0.1.3512 이상 - 리더십 표 · 격리본 · 키 단위 강제 선출은 7.0.1.3552 이상)
14
20
 
15
21
  - **리더십 표 · 격리본**(엔진 7.0.1.3552 이상, 그 전 엔진은 `MIMQE_INVALID_REQ_CODE`):
@@ -1,6 +1,6 @@
1
1
  """iLink - Python client API for iLink M.O.M. (Message Oriented Middleware)."""
2
2
 
3
- __version__ = "0.20.2"
3
+ __version__ = "0.20.3"
4
4
 
5
5
  # --- Admin / Service ---
6
6
  from .admin import ILAdminService, ILAdminQmgr, ILLogBrowser, ILQueueBrowser
@@ -4236,7 +4236,8 @@ class ILAdminQmgr:
4236
4236
  Returns:
4237
4237
  str: 엔진이 준 텍스트 그대로. 첫 줄 ``QL1|<격리 루트>``, 그다음
4238
4238
  ``D|<디렉터리>|<NODE|GROUP|TOPIC|?>|<파일 수>|<바이트>|<기준 시각 또는 ->|<FORK.txt 첫 줄 또는 ->`` 와
4239
- ``Q|<디렉터리>|<큐>|<세그먼트 수>|<재주입 건수>`` 줄.
4239
+ ``Q|<디렉터리>|<큐>|<세그먼트 수>|<재주입 건수>`` 줄. 엔진 7.0.1.3553 부터 토픽 파티션 격리본 줄
4240
+ ``P|<디렉터리>|<토픽>/<파티션>|<잘라 낸 시작 오프셋 또는 ->|<재주입 건수>`` 도 온다.
4240
4241
 
4241
4242
  Raises:
4242
4243
  ILOperationException: 엔진이 거절했을 때(7.0.1.3552 전 엔진은 ``MIMQE_INVALID_REQ_CODE``).
@@ -4254,15 +4255,19 @@ class ILAdminQmgr:
4254
4255
 
4255
4256
  Args:
4256
4257
  directory (str): 격리 디렉터리 이름(한 단계 - ``/`` ``\\`` ``:`` 금지).
4257
- queueName (str | None): 큐. ``None`` 이면 그 디렉터리의 모든 큐 요약.
4258
- since (str | int | None): 기준. ``None`` 이면 디렉터리 기준 시각, ``"ALL"`` 이면 전부,
4259
- ``"yyyymmddhhmmss"`` 문자열이나 epoch 밀리초 숫자.
4258
+ queueName (str | None): 큐. ``None`` 이면 그 디렉터리의 모든 큐 요약. 토픽 파티션 격리본(엔진 7.0.1.3553 이상)은
4259
+ 디렉터리 종류로 엔진이 가르므로 비워 둔다.
4260
+ since (str | int | None): 기준. 큐 격리본은 ``None`` 이면 디렉터리 기준 시각, ``"ALL"`` 이면 전부,
4261
+ ``"yyyymmddhhmmss"`` 문자열이나 epoch 밀리초 숫자. ☠ **토픽 격리본은 뜻이 다르다** - ``None`` 이면 격리 때 기록한
4262
+ 잘라 낸 시작 오프셋(CUT.txt, 없는 옛 격리본은 거절), ``"ALL"`` 이면 사본 전부, 숫자는 그 **오프셋**부터.
4260
4263
 
4261
4264
  Returns:
4262
4265
  str: 엔진이 준 텍스트 그대로. 첫 줄 ``QS1|<디렉터리>|<큐 또는 *>|<기준>``, 큐마다
4263
4266
  ``S|<큐>|<전체>|<LIVE>|<CANDIDATE>|<OLD>|<DONE>``, 큐를 줬으면 재주입 대상 앞 500건
4264
4267
  ``M|C|<IndexId>|<PUT 시각>|<바이트>|<MsgId>``. LIVE = 지금 큐에 있음, CANDIDATE = 재주입 대상, OLD = 기준 전(소비됐을
4265
- 가능성), DONE = 이미 재주입.
4268
+ 가능성), DONE = 이미 재주입. 토픽 격리본(엔진 7.0.1.3553 이상)이면 첫 줄 넷째 칸이 ``offset <시작>`` 이고,
4269
+ ``S|<토픽>/<파티션>|<사본 전체>|<KEPT = 시작 앞>|<CANDIDATE>|0|<DONE>``, 앞 500건은 M 줄 대신
4270
+ ``T|C|<오프셋>|<배치 시각>|<값 바이트>|<키 또는 ->`` 줄이다.
4266
4271
 
4267
4272
  Raises:
4268
4273
  ILOperationException: 엔진이 거절했을 때(디렉터리 · 큐가 없으면 ``MIMQE_OBJECT_NOT_FOUND`` 등).
@@ -4276,7 +4281,7 @@ class ILAdminQmgr:
4276
4281
  except Exception as exc:
4277
4282
  raise ILException(exc) from exc
4278
4283
 
4279
- def reinjectQuarantine(self, directory: str, queueName: str, since=None) -> "ILQuarantineReinjectResult":
4284
+ def reinjectQuarantine(self, directory: str, queueName: str | None = None, since=None) -> "ILQuarantineReinjectResult":
4280
4285
  """격리본의 재주입 대상(CANDIDATE)을 **그 큐의 지금 리더에 다시 넣는다** - ilsc ``REINJECT`` (0.20.2, 엔진 7.0.1.3552).
4281
4286
 
4282
4287
  원래 MsgId · CorrelId 로 PUT 하고 100건마다 커밋한다. 넣은 것은 기록되어 다시 넣지 않는다. **먼저**
@@ -4284,28 +4289,28 @@ class ILAdminQmgr:
4284
4289
 
4285
4290
  Args:
4286
4291
  directory (str): 격리 디렉터리 이름.
4287
- queueName (str): 큐(필수).
4288
- since (str | int | None): 기준(:meth:`scanQuarantine` 과 같다).
4292
+ queueName (str | None): 큐. 큐 격리본에는 필수다(비우면 엔진이 ``MIMQE_INVALID_ARGUMENT (QUEUE required)``).
4293
+ 토픽 파티션 격리본(엔진 7.0.1.3553 이상)은 비운다 - 그 파티션에 다시 발행한다.
4294
+ since (str | int | None): 기준(:meth:`scanQuarantine` 과 같다 - 토픽 격리본은 오프셋).
4289
4295
 
4290
4296
  Returns:
4291
4297
  ILQuarantineReinjectResult: 넣은 건수 · 넣은 리더 · 메모. 메모가 ``stopped: ...`` 면 중간에 멈춘 것이다 - 넣은 만큼은
4292
4298
  커밋됐고 다시 부르면 나머지만 넣는다.
4293
4299
 
4294
4300
  Raises:
4295
- UnsupportedOperationException: 큐를 주지 않았을 때(보내기 전에 막는다).
4296
- ILOperationException: 엔진이 거절했을 때 - ``MIMQE_OBJECT_NOT_FOUND``, 토픽 격리본이면
4301
+ ILOperationException: 엔진이 거절했을 때 - ``MIMQE_OBJECT_NOT_FOUND``, 큐 격리본에 큐가 없으면
4302
+ ``MIMQE_INVALID_ARGUMENT (QUEUE required)``, 7.0.1.3553 전 엔진에 토픽 격리본이면
4297
4303
  ``MIMQE_UNSUPPORTED_OPERATION``, 리더가 없으면 ``MIMQE_CLUSTER_NO_LEADER``, 리더 접속 실패 사유.
4298
4304
  ILException: 통신 실패.
4299
4305
 
4300
4306
  Warning:
4301
4307
  ☠ **중복이 생길 수 있다** - ``since="ALL"`` 로 OLD(이미 소비됐을 수 있는 것)까지 넣으면 같은 메시지가 두 번 처리될 수
4302
4308
  있다. 넣은 메시지는 **큐 맨 뒤에** 붙는다(원래 순서 자리로 가지 않는다). 건수에 비례해 오래 걸릴 수 있으니 관리 연결의
4303
- 세션 타임아웃을 넉넉히 둔다(ilsc 는 120초).
4309
+ 세션 타임아웃을 넉넉히 둔다(ilsc 는 120초). 토픽 격리본을 다시 발행한 레코드는 **새 오프셋 · 새 시각**을 받는다
4310
+ (키 · 헤더 · 값은 그대로).
4304
4311
  """
4305
- if not queueName:
4306
- raise UnsupportedOperationException("queueName is required for reinject")
4307
4312
  try:
4308
- res = self.service.request(self.qmgrName, ILC.MIMQ_QUARANTINE_REINJECT, directory or "", queueName,
4313
+ res = self.service.request(self.qmgrName, ILC.MIMQ_QUARANTINE_REINJECT, directory or "", queueName or "",
4309
4314
  self._quarantineSince(since))
4310
4315
  if res is None or res.getCode() != ILC.MIMQ_SUCCESSFUL_CLUSTER_OPERATION:
4311
4316
  raise ILOperationException(res.getArg2() if res is not None else "no response")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jetstream-api
3
- Version: 0.20.2
3
+ Version: 0.20.3
4
4
  Summary: Python client API for iLink M.O.M. (Message Oriented Middleware)
5
5
  Author: snowjeans
6
6
  License: Boost Software License - Version 1.0 - August 17th, 2003
@@ -60,6 +60,12 @@ lz4 배치 압축을 쓰려면 `pip install "jetstream-api[lz4]"`, zstd 배치
60
60
  ## 설치 방법
61
61
  pip install jetstream-api
62
62
 
63
+ ## 0.20.3 변경 - 토픽 파티션 격리본 재주입 (자바 v2.16.3 과 같음, 짝 엔진 7.0.1.3512 이상 - 토픽 격리본은 7.0.1.3553 이상)
64
+
65
+ - 격리본 토픽 파티션(엔진 7.0.1.3553 QUARTOOL-2): `reinjectQuarantine` 의 큐 인자를 선택으로 바꿨다 - 토픽 파티션 격리본은 큐를 비우고
66
+ 부른다(큐 격리본에 비우면 엔진이 `MIMQE_INVALID_ARGUMENT (QUEUE required)`). 0.20.2 는 빈 큐를 보내기 전에 막았다. 토픽 격리본의
67
+ SINCE 는 **오프셋**이고(빈 값 = 격리 때 잘라 낸 시작, `"ALL"` = 전부), 목록 · 검사 원문에 `P` · `T` 줄과 `offset <시작>` 머리가 온다.
68
+
63
69
  ## 0.20.2 변경 - 관제 명령 관리 API · 강제 선출 · 리더십 표 · 격리본 (자바 v2.16.2 와 같음, 짝 엔진 7.0.1.3512 이상 - 리더십 표 · 격리본 · 키 단위 강제 선출은 7.0.1.3552 이상)
64
70
 
65
71
  - **리더십 표 · 격리본**(엔진 7.0.1.3552 이상, 그 전 엔진은 `MIMQE_INVALID_REQ_CODE`):
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jetstream-api"
7
- version = "0.20.2"
7
+ version = "0.20.3"
8
8
  description = "Python client API for iLink M.O.M. (Message Oriented Middleware)"
9
9
  authors = [{name = "snowjeans"}]
10
10
  readme = "README.md"
File without changes