pyproc 0.3__tar.gz → 0.3.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 (65) hide show
  1. {pyproc-0.3 → pyproc-0.3.1}/PKG-INFO +2 -2
  2. {pyproc-0.3 → pyproc-0.3.1}/README.md +1 -1
  3. {pyproc-0.3 → pyproc-0.3.1}/pyproc/__init__.py +1 -1
  4. {pyproc-0.3 → pyproc-0.3.1}/pyproc/lpse.py +6 -3
  5. {pyproc-0.3 → pyproc-0.3.1}/pyproject.toml +1 -1
  6. {pyproc-0.3 → pyproc-0.3.1}/tests/test_lpse_unit.py +14 -0
  7. {pyproc-0.3 → pyproc-0.3.1}/.github/workflows/pyproc-pypi.yml +0 -0
  8. {pyproc-0.3 → pyproc-0.3.1}/.github/workflows/test.yml +0 -0
  9. {pyproc-0.3 → pyproc-0.3.1}/.gitignore +0 -0
  10. {pyproc-0.3 → pyproc-0.3.1}/CHANGELOG.md +0 -0
  11. {pyproc-0.3 → pyproc-0.3.1}/LICENSE +0 -0
  12. {pyproc-0.3 → pyproc-0.3.1}/Makefile +0 -0
  13. {pyproc-0.3 → pyproc-0.3.1}/docs/assets/README_ASSET_PROMPTS.md +0 -0
  14. {pyproc-0.3 → pyproc-0.3.1}/docs/assets/logo.png +0 -0
  15. {pyproc-0.3 → pyproc-0.3.1}/docs/assets/pyproc-mcp-banner.png +0 -0
  16. {pyproc-0.3 → pyproc-0.3.1}/plan/API_AND_CLI_WRAPPER_OPTIMIZATION_PLAN.md +0 -0
  17. {pyproc-0.3 → pyproc-0.3.1}/plan/PYPROC_MCP_REBRAND_AND_IMPLEMENTATION_PLAN.md +0 -0
  18. {pyproc-0.3 → pyproc-0.3.1}/pyproc/cache.py +0 -0
  19. {pyproc-0.3 → pyproc-0.3.1}/pyproc/cli.py +0 -0
  20. {pyproc-0.3 → pyproc-0.3.1}/pyproc/exceptions.py +0 -0
  21. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/__init__.py +0 -0
  22. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/errors.py +0 -0
  23. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/hosts.py +0 -0
  24. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/prompts.py +0 -0
  25. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/resources.py +0 -0
  26. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/schemas.py +0 -0
  27. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/search_index.py +0 -0
  28. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/server.py +0 -0
  29. {pyproc-0.3 → pyproc-0.3.1}/pyproc/mcp/tools.py +0 -0
  30. {pyproc-0.3 → pyproc-0.3.1}/pyproc/text.py +0 -0
  31. {pyproc-0.3 → pyproc-0.3.1}/pyproc/utils.py +0 -0
  32. {pyproc-0.3 → pyproc-0.3.1}/tests/.gitignore +0 -0
  33. {pyproc-0.3 → pyproc-0.3.1}/tests/__init__.py +0 -0
  34. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/README.md +0 -0
  35. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/darurat_pemenang.html +0 -0
  36. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/darurat_pengumuman.html +0 -0
  37. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/dt_darurat_list.json +0 -0
  38. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/dt_lelang.json +0 -0
  39. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/dt_lelang_data_only.json +0 -0
  40. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/dt_nonspk.json +0 -0
  41. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/dt_swakelola.json +0 -0
  42. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/error_page.html +0 -0
  43. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/hasil_evaluasi.html +0 -0
  44. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/jadwal.html +0 -0
  45. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/lelang_page.html +0 -0
  46. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/nonspk_pemenang_berkontrak.html +0 -0
  47. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/nonspk_pemenang_bug_10941898000.html +0 -0
  48. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/nonspk_pengumuman.html +0 -0
  49. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/not_found_page.html +0 -0
  50. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/pemenang.html +0 -0
  51. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/pengumuman_lelang.html +0 -0
  52. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/peserta.html +0 -0
  53. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/swakelola_pelaksana.html +0 -0
  54. {pyproc-0.3 → pyproc-0.3.1}/tests/fixtures/swakelola_pengumuman.html +0 -0
  55. {pyproc-0.3 → pyproc-0.3.1}/tests/supporting_files/list-host-with-filename.txt +0 -0
  56. {pyproc-0.3 → pyproc-0.3.1}/tests/supporting_files/list-host.txt +0 -0
  57. {pyproc-0.3 → pyproc-0.3.1}/tests/test_cache.py +0 -0
  58. {pyproc-0.3 → pyproc-0.3.1}/tests/test_cli_unit.py +0 -0
  59. {pyproc-0.3 → pyproc-0.3.1}/tests/test_downloader.py +0 -0
  60. {pyproc-0.3 → pyproc-0.3.1}/tests/test_lpse.py +0 -0
  61. {pyproc-0.3 → pyproc-0.3.1}/tests/test_mcp_hosts.py +0 -0
  62. {pyproc-0.3 → pyproc-0.3.1}/tests/test_mcp_schemas.py +0 -0
  63. {pyproc-0.3 → pyproc-0.3.1}/tests/test_mcp_search_index.py +0 -0
  64. {pyproc-0.3 → pyproc-0.3.1}/tests/test_mcp_tools.py +0 -0
  65. {pyproc-0.3 → pyproc-0.3.1}/tests/test_utils_unit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyproc
3
- Version: 0.3
3
+ Version: 0.3.1
4
4
  Summary: MCP tools for real-time Indonesian public procurement data from SPSE/Inaproc
5
5
  Project-URL: Homepage, https://github.com/wakataw/pyproc
6
6
  Project-URL: Issues, https://github.com/wakataw/pyproc/issues
@@ -46,7 +46,7 @@ Description-Content-Type: text/markdown
46
46
  </p>
47
47
 
48
48
  <p align="center">
49
- <a href="https://pypi.org/project/pyproc/"><img src="https://img.shields.io/badge/version-v0.3-blue" alt="PyPI version"></a>
49
+ <a href="https://pypi.org/project/pyproc/"><img src="https://img.shields.io/badge/version-v0.3.1-blue" alt="PyPI version"></a>
50
50
  <a href="https://pypi.org/project/pyproc/"><img src="https://img.shields.io/badge/python-≥3.9-yellow" alt="Python ≥3.9"></a>
51
51
  <a href="https://github.com/wakataw/pyproc/actions/workflows/test.yml?query=branch%3Amaster"><img src="https://github.com/wakataw/pyproc/actions/workflows/test.yml/badge.svg?branch=master" alt="Test Status"></a>
52
52
  <a href="https://github.com/wakataw/pyproc/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License: MIT"></a>
@@ -11,7 +11,7 @@
11
11
  </p>
12
12
 
13
13
  <p align="center">
14
- <a href="https://pypi.org/project/pyproc/"><img src="https://img.shields.io/badge/version-v0.3-blue" alt="PyPI version"></a>
14
+ <a href="https://pypi.org/project/pyproc/"><img src="https://img.shields.io/badge/version-v0.3.1-blue" alt="PyPI version"></a>
15
15
  <a href="https://pypi.org/project/pyproc/"><img src="https://img.shields.io/badge/python-≥3.9-yellow" alt="Python ≥3.9"></a>
16
16
  <a href="https://github.com/wakataw/pyproc/actions/workflows/test.yml?query=branch%3Amaster"><img src="https://github.com/wakataw/pyproc/actions/workflows/test.yml/badge.svg?branch=master" alt="Test Status"></a>
17
17
  <a href="https://github.com/wakataw/pyproc/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License: MIT"></a>
@@ -1,6 +1,6 @@
1
1
  from .lpse import Lpse, JenisPengadaan, TipeSwakelola, By, KontrakStatus
2
2
 
3
- __version__ = '0.3'
3
+ __version__ = '0.3.1'
4
4
  __author__ = 'Agung Pratama'
5
5
  __all__ = [
6
6
  'Lpse',
@@ -254,7 +254,8 @@ class Lpse(object):
254
254
  )
255
255
 
256
256
  def get_paket_non_tender(self, start=0, length=0, data_only=False, kategori=None, search_keyword=None,
257
- order=By.KODE, tahun=None, ascending=False, instansi_id=None):
257
+ order=By.KODE, tahun=None, ascending=False, instansi_id=None,
258
+ rekanan=None, nama_penyedia=None):
258
259
  """
259
260
  Wrapper pencarian paket non tender
260
261
  :param start: index data awal
@@ -262,14 +263,16 @@ class Lpse(object):
262
263
  :param data_only: hanya menampilkan data tanpa menampilkan informasi lain
263
264
  :param kategori: kategori pengadaan (lihat di pypro.kategori)
264
265
  :param search_keyword: keyword pencarian paket pengadaan
265
- :param nama_penyedia: filter berdasarkan nama penyedia
266
266
  :param order: Mengurutkan data berdasarkan kolom
267
267
  :param tahun: Tahun pengadaan
268
268
  :param ascending: Ascending, descending jika diset False
269
269
  :param instansi_id: Filter pencarian berdasarkan instansi atau satker tertentu
270
+ :param rekanan: filter berdasarkan nama penyedia/rekanan
271
+ :param nama_penyedia: alias lama untuk rekanan
270
272
  :return: dictionary dari hasil pencarian paket (atau list jika data_only=True)
271
273
  """
272
- return self.get_paket('pl', start, length, data_only, kategori, search_keyword, None, order, tahun,
274
+ rekanan = rekanan or nama_penyedia
275
+ return self.get_paket('pl', start, length, data_only, kategori, search_keyword, rekanan, order, tahun,
273
276
  ascending, instansi_id)
274
277
 
275
278
  def get_paket_pencatatan_non_tender(self, start=0, length=0, data_only=False, kategori=None,
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyproc"
7
- version = "0.3"
7
+ version = "0.3.1"
8
8
  authors = [
9
9
  { name="Agung Pratama", email="workwithagung@gmail.com"}
10
10
  ]
@@ -250,6 +250,20 @@ class TestGetPaket(unittest.TestCase):
250
250
  'pl', 0, 5, False, None, None, None, By.KODE, None, False, None
251
251
  )
252
252
 
253
+ def test_get_paket_non_tender_accepts_rekanan(self):
254
+ self.lpse.get_paket = MagicMock(return_value={'data': []})
255
+ self.lpse.get_paket_non_tender(start=0, length=5, rekanan='PT A')
256
+ self.lpse.get_paket.assert_called_once_with(
257
+ 'pl', 0, 5, False, None, None, 'PT A', By.KODE, None, False, None
258
+ )
259
+
260
+ def test_get_paket_non_tender_accepts_legacy_nama_penyedia_alias(self):
261
+ self.lpse.get_paket = MagicMock(return_value={'data': []})
262
+ self.lpse.get_paket_non_tender(start=0, length=5, nama_penyedia='PT Legacy')
263
+ self.lpse.get_paket.assert_called_once_with(
264
+ 'pl', 0, 5, False, None, None, 'PT Legacy', By.KODE, None, False, None
265
+ )
266
+
253
267
  def test_get_paket_pencatatan_non_tender_calls_get_paket(self):
254
268
  self.lpse.get_paket = MagicMock(return_value={'data': []})
255
269
  self.lpse.get_paket_pencatatan_non_tender(start=0, length=5, rekanan='PT A')
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
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
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
File without changes
File without changes
File without changes