Skip to main content

Python Inaproc SPSE SDK

Project description

PyProc

Build Status Version Python >=3.9 Open Source Love

PyProc (Python Procurement) merupakan wrapper untuk API SPSE yang ditulis dalam bahasa Python. Sistem Pengadaan Secara Elektronik (SPSE) SPSE merupakan aplikasi e-Procurement yang dikembangkan oleh LKPP untuk digunakan oleh LPSE di instansi pemerintah seluruh Indonesia.

DISCLAIMER:

Penulis tidak terafiliasi dengan pengembang SPSE atau pemilik aplikasi SPSE. Software ini dikembangkan dengan tujuan akademis, bentuk pengawasan oleh masyarakat, dan membantu pengusaha untuk mempermudah otomasi perolehan informasi pengadaan dari pemerintah.

Penggunaan yang tidak wajar dan mengganggu sebagian atau seluruh fungsi aplikasi SPSE pada satuan kerja menjadi tanggung jawab masing-masing pengguna.

PyProc ada karena SPSE ada, jadi gunakanlah dengan bijak dan secukupnya.

Pemasangan

Pemasangan PyProc via pip:

$ pip install pyproc

Upgrade PyProc via pip:

$ pip install pyproc --upgrade

Instalasi versi unstable:

$ pip install git+https://github.com/wakataw/pyproc.git

Penggunaan Command Line Interface

Download Data LPSE

Format Command

$ pyproc [ARGUMENT] DAFTAR_LPSE

Arguments

argumen contoh diperlukan default keterangan
DAFTAR_LPSE pyproc pu Ya - Daftar alamat LPSE yang akan diunduh.
Format Daftar LPSE
-h --help pyproc --help optional - menampilkan keterangan dan bantuan
-k --keyword pyproc --keyword "mobil dinas" ... optional - filter pencarian index paket berdasarkan kata kunci tertentu
-t --tahun-anggaran pyproc --tahun-anggaran 2021 ... optional Tahun Berjalan Filter pencarian index paket berdasarkan tahun anggaran tertentu. Fungsi ini hanya berlaku mulai dari SPSE 4.4.

Format Penulisan:
ALL: mengunduh seluruh data
2021: mengunduh data untuk tahun 2021
2015,2018,2019: mengunduh data untuk tahun 2015, 2018, dan 2019
2011-2020 mengunduh data untuk tahun 2011 s.d. 2020
--kategori pyproc --kategori PENGADAAN_BARANG ... optional - Filter pencarian berdasarkan kategori pengadaan.
Daftar kategori: PENGADAAN_BARANG, JASA_KONSULTANSI_BADAN_USAHA_NON_KONSTRUKSI, PEKERJAAN_KONSTRUKSI, JASA_LAINNYA, JASA_KONSULTANSI_PERORANGAN, JASA_KONSULTANSI_BADAN_USAHA_KONSTRUKSI
--nama-penyedia pyproc --nama-penyedia "PT SUKA MAJU" ... optional - Filter pencarian index paket berdasarkan nama penyedia
-c --chunk-size pyproc --chunk-size 25 ... optional 25 Jumlah daftar paket per halaman yang diunduh. Semakin besar jumlah tidak menjamin proses download semakin cepat. Gunakanlah jumlah data yang wajar sehingga tidak membebani server SPSE.
-w --workers pyproc --workers 4 ... optional 8 Jumlah koneksi yang berjalan secara bersamaan saat mengunduh detil paket dengan maksimal 10 worker.
-x --timeout pyproc --timeout 60 ... optional 30 Waktu tunggu jika koneksi lambat (dalam detik)
-n --non-tender pyproc --non-tender ... optional FALSE Tambahkan argumen ini untuk mengunduh data non-tender/pengadaan langsung
-d --index-download-delay pyproc --index-download-delay 5 ... optional 1 Waktu jeda download index paket untuk setiap halaman/batch
-o --output pyproc --ouput csv ... optional csv Jenis data keluaran/hasil dari download. Format yang didukung csv dan json. Karena keterbatasan format, tidak semua data ditampilkan pada format csv. Jika memerlukan data detil yang komprehensif, gunakan format json karena mencangkup semua data detail.
--keep-index pyproc --keep-index ... optinal FALSE pyproc akan membentuk file idx (sqlite3 database) saat proses download dan akan dihapus ketika proses selesai. Tambahkan argumen ini jika tidak ingin menghapus database tersebut.
-r --resume pyproc --resume ... optinal FALSE Tambahkan argument ini untuk melanjutkan proses yang gagal (karena internet putus atau gangguan koneksi lainnya). Namun pastikan bahwa seluruh index sudah berhasil diunduh karena argumen --resume akan melewati proses download index.
-s --sep pyproc --sep ";" kemenkeu optional ; titik koma Set custom separator untuk output format csv
--log pyproc --log INFO ... optional INFO Argumen untuk setting informasi yang ditampilkan pyproc pada terminal. Daftar nilai yang didukung:
DEBUG: menampilkan informasi sedetil mungkin
INFO: menampilkan informasi penting saja
WARNING: hanya menampilkan informasi yang bersifat warning
ERROR: hanya menampilkan error
CRITICAL: hanya menampilkan permasalahan yang bersifat kritis saja

Format Daftar LPSE (lanjutan)

PyProc dapat mengunduh data dari 1 atau lebih LPSE. Proses tersebut akan berjalan sesuai dengan nilai DAFTAR_LPSE yang diberikan user. Beberapa format yang didukung oleh PyProc adalah sebagai berikut:

  • Download data dengan menyertakan nama file hasil download

    Untuk set nama file secara manual, gunakan format "alamatlpse[titik_koma]namafile".

    $ pyproc "kemenkeu;namafileouputkemenkeu" --output json
    

    perintah ini akan mengunduh data LPSE PU dan mengekspor data ke file namafileouputkemenkeu.json

  • Download data lebih dari 1 LPSE

    Untuk mengunduh lebih dari 1 lpse secara bersamaan, gunakan format "alamat1[koma]alamat2[koma]alamat3"

    $ pyproc jakarta,pu,kemenkeu,sumbarprov
    

    atau dengan menyertakan namafile dengan format "alamat1[titikkoma]nama1[koma]alamat2[titikkoma]nama2"

    $ pyproc "jakarta;filejakarta,pu:filepu,kemenkeu:filekemenkeu,sumbarprov:filesumbarprov"
    
    • Download data berdasrakan daftar lpse pada file csv Download paket LPSE dengan sumber alamat dari file
    $ pyproc daftarlpse.csv
    
    # konten daftarlpse.csv
    sumbarprov
    pu
    kemenkeu
    
    # konten daftarlpse.csv dengan nama hasil download
    sumbarprov;lpse-sumbar
    pu;lpse-pu.csv
    kemenkeu;lpse-kemenkeu
    

Penggunaan PyProc Sebagai Package

Untuk dapat menggunakan PyProc, anda harus mengimpornya terlebih dahulu dan menginisiasi objek Lpse

from pyproc import Lpse

# Inisiasi objek lpse kementerian pu
lpse = Lpse('kemenkeu')

Pencarian Daftar Paket Lelang

from pyproc import Lpse

# Inisiasi objek lpse kementerian pu
lpse = Lpse('pu')

# mendapatkan daftar paket lelang
daftar_lelang = lpse.get_paket_tender(start=0, length=2)
print(daftar_lelang)

# pencarian paket non tender (penunjukkan langsung)
daftar_pl = lpse.get_paket_non_tender(start=0, length=30)

Pencarian Paket dengan mengurutkan berdasarkan kolom tertentu

from pyproc import Lpse
from pyproc.lpse import By

lpse = Lpse('sumbarprov')

# pencarian daftar lelang, urutkan berdasarkan Harga Perkiraan Sendiri
daftar_lelang = lpse.get_paket_tender(start=0, length=30, order=By.HPS)

Filter pencarian paket berdasarkan kategori pengadaan

from pyproc import Lpse
from pyproc import JenisPengadaan

# Inisiasi objek lpse kementerian padang
lpse = Lpse('padang')

# Kategori Pengadaan Barang
paket_pengadaan_barang = lpse.get_paket_tender(start=0, length=30, kategori=JenisPengadaan.PENGADAAN_BARANG)
paket_konstruksi = lpse.get_paket_tender(start=0, length=30, kategori=JenisPengadaan.PEKERJAAN_KONSTRUKSI)

# dst untuk kategori lainnya

Pencarian Detil Paket Lelang

from pyproc import Lpse

lpse = Lpse('jakarta')

# mendapatkan semua detil paket lelang
detil = lpse.detil_paket_tender(id_paket='48658064')
detil.get_all_detil()
print(detil)

# mendapatkan hanya pemenang lelang
pemenang = detil.get_pemenang()
print(pemenang)

Uninstall

Untuk uninstall package jalankan perintah berikut:

$ pip uninstall pyproc

License

Paket ini di-release di bawah lisensi MIT.

Donatur ☕️

Orang-orang yang berjasa menyediakan kopi sehingga pengembangan paket tetap berjalan

  • Angga Rinaldi Rizal (50 cangkir ☕️)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyproc-0.2.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyproc-0.2-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file pyproc-0.2.tar.gz.

File metadata

  • Download URL: pyproc-0.2.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyproc-0.2.tar.gz
Algorithm Hash digest
SHA256 be705fabf0a6846ed9e7cdb478e36e1559f77a095639553dc32b26f1d63da2c7
MD5 88431b80feee5251a20bb9f47e3a9c28
BLAKE2b-256 bc75aac07c0e7bb17b5889db55b5ebc94fe7737801d904722c5b974e132298a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproc-0.2.tar.gz:

Publisher: pyproc-pypi.yml on wakataw/pyproc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproc-0.2-py3-none-any.whl.

File metadata

  • Download URL: pyproc-0.2-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyproc-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d5ba48b1a17a54f23e43e59fac7736013c38e8dafe9af1d74b0f7252bfa3934b
MD5 c184cb3f330e276ad149462225a37c28
BLAKE2b-256 50e145e4202ab6a3d7862ca09a93356c952d5ad36445aec160d722ca1103c439

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproc-0.2-py3-none-any.whl:

Publisher: pyproc-pypi.yml on wakataw/pyproc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page