Package: pyproc
PyProcPyProc (Python Procurement) merupakan wrapper untuk API SPSE Versi 4 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.PemasanganPemasangan PyProc viapip:$pipinstallpyprocUpgrade PyProc viapip:$pipinstallpyproc--upgradeInstalasi versi unstable:$pipinstallgit+https://github.com/wakataw/pyproc.gitatau, Download executeable file (.exe) untuk windowsdi sini(experimental).TestingAnda bisa menjalankan beberapa Test Case untuk memastikan semua fungsi berjalan dengan baik.
Clone repository ini lalu jalankan perintah berikut:$gitclonehttps://github.com/wakataw/pyproc.git
$cdpyproc
$pythonsetup.pytestPenggunaan Command Line InterfaceDownload Data LPSEFormat Command$pyproc[ARGUMENT]DAFTAR_LPSEArgumentsargumencontohdiperlukandefaultketeranganDAFTAR_LPSEpyproc http://lpse.pu.go.idYa-Daftar alamat LPSE yang akan diunduh.Format Daftar LPSE-h --helppyproc --helpoptional-menampilkan keterangan dan bantuan-k --keywordpyproc --keyword "mobil dinas" ...optional-filter pencarian index paket berdasarkan kata kunci tertentu-t --tahun-anggaranpyproc --tahun-anggaran 2021 ...optionalTahun BerjalanFilter pencarian index paket berdasarkan tahun anggaran tertentu. Fungsi ini hanya berlaku mulai dari SPSE 4.4.Format Penulisan:ALL: mengunduh seluruh data2021: mengunduh data untuk tahun 20212015,2018,2019: mengunduh data untuk tahun 2015, 2018, dan 20192011-2020mengunduh data untuk tahun 2011 s.d. 2020--kategoripyproc --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-penyediapyproc --nama-penyedia "PT SUKA MAJU" ...optional-Filter pencarian index paket berdasarkan nama penyedia-c --chunk-sizepyproc --chunk-size 25 ...optional25Jumlah 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 --workerspyproc --workers 4 ...optional8Jumlah koneksi yang berjalan secara bersamaan saat mengunduh detil paket dengan maksimal 10 worker.-x --timeoutpyproc --timeout 60 ...optional30Waktu tunggu jika koneksi lambat (dalam detik)-n --non-tenderpyproc --non-tender ...optionalFALSETambahkan argumen ini untuk mengunduh data non-tender/pengadaan langsung-d --index-download-delaypyproc --index-download-delay 5 ...optional1Waktu jeda download index paket untuk setiap halaman/batch-o --outputpyproc --ouput csv ...optionalcsvJenis 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-indexpyproc --keep-index ...optinalFALSEpyproc 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 --resumepyproc --resume ...optinalFALSETambahkan 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 --seppyproc --sep ";" https://lpse.comoptional;titik komaSet custom separator untuk output format csv--logpyproc --log INFO ...optionalINFOArgumen untuk setting informasi yang ditampilkan pyproc pada terminal. Daftar nilai yang didukung:DEBUG: menampilkan informasi sedetil mungkinINFO: menampilkan informasi penting sajaWARNING: hanya menampilkan informasi yang bersifat warningERROR: hanya menampilkan errorCRITICAL: hanya menampilkan permasalahan yang bersifat kritis sajaFormat Daftar LPSE (lanjutan)PyProc dapat mengunduh data dari 1 atau lebih LPSE. Proses tersebut akan berjalan sesuai dengan nilaiDAFTAR_LPSEyang diberikan user. Beberapa format yang didukung oleh PyProc adalah sebagai berikut:Download data dengan menyertakan nama file hasil downloadUntuk set nama file secara manual, gunakan format"alamatlpse[titik_koma]namafile".$pyproc"http://lpse.pu.go.id;namaoutput"--outputjsonperintah ini akan mengunduh data LPSE PU dan mengekspor data ke filenamaoutput.jsonDownload data lebih dari 1 LPSEUntuk mengunduh lebih dari 1 lpse secara bersamaan, gunakan format"alamat1[koma]alamat2[koma]alamat3"$pyprochttps://lpse.jakarta.go.id,http://lpse.pu.go.idatau dengan menyertakan namafile dengan format"alamat1[titikkoma]nama1[koma]alamat2[titikkoma]nama2"$pyproc"https://lpse.jakarta.go.id;filejakarta,http://lpse.pu.go.id;filepu"Download data berdasrakan daftar lpse pada file csv
Download paket LPSE dengan sumber alamat dari file$pyprocdaftarlpse.csv# konten daftarlpse.csvlpse.sumbarprov.go.id
lpse.pu.go.id
lpse.kemenkeu.go.id# konten daftarlpse.csv dengan nama hasil downloadlpse.sumbarprov.go.id;lpse-sumbar
lpse.pu.go.id;lpse-pu.csv
lpse.kemenkeu.go.id;lpse-kemenkeuDownload Daftar LPSEUntuk mengunduh daftar alamat LPSE berdasarkan situs inaproc (https://inaproc.id/lpse), jalankan perintah berikut:$pyprocdaftarlpsePerintah tersebut akan mengunduh daftar alamat lpse dan mengekspornya ke filedaftarlpse.csv.Penggunaan PyProc Sebagai PackageUntuk dapat menggunakan PyProc, anda harus mengimpornya terlebih dahulu dan menginisiasi objekLpsefrompyprocimportLpse# Inisiasi objek lpse kementerian pulpse=Lpse('http://lpse.pu.go.id')# Print versi dan last update aplikasi SPSEprint(lpse.version)print(lpse.last_update)Pencarian Daftar Paket LelangfrompyprocimportLpselpse=Lpse('http://lpse.pu.go.id')# mendapatkan daftar paket lelangdaftar_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 tertentufrompyprocimportLpsefrompyproc.lpseimportBylpse=Lpse('http://lpse.padang.go.id')# pencarian daftar lelang, urutkan berdasarkan Harga Perkiraan Sendiridaftar_lelang=lpse.get_paket_tender(start=0,length=30,order=By.HPS)Filter pencarian paket berdasarkan kategori pengadaanfrompyprocimportLpsefrompyprocimportJenisPengadaanlpse=Lpse('http://lpse.padang.go.id')# Kategori Pengadaan Barangpaket_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 lainnyaPencarian Detil Paket LelangfrompyprocimportLpselpse=Lpse('http://lpse.padang.go.id')# mendapatkan semua detil paket lelangdetil=lpse.detil_paket_tender(id_paket='48658064')detil.get_all_detil()print(detil)# mendapatkan hanya pemenang lelangpemenang=detil.get_pemenang()print(pemenang)UninstallUntuk uninstall package jalankan perintah berikut:$pipuninstallpyprocLicensePaket ini di-release di bawah lisensi MIT.Donatur ☕️Orang-orang yang berjasa menyediakan kopi sehingga pengembangan paket tetap berjalanAngga Rinaldi Rizal (50 cangkir ☕️)