Baca Dokumentasi Terbaru - Jelajahi Repositori Kode GitHub
urutkan impor Anda, jadi Anda tidak perlu melakukannya.
isort adalah utilitas/perpustakaan Python untuk mengurutkan impor berdasarkan abjad dan secara otomatis memisahkan menjadi beberapa bagian dan berdasarkan jenis. Ini menyediakan utilitas baris perintah, pustaka Python, dan plugin untuk berbagai editor untuk menyortir semua impor Anda dengan cepat. Ini memerlukan Python 3.8+ untuk dijalankan tetapi mendukung pemformatan kode Python 2 juga.
Sebelum diurutkan:
from my_lib import Object
import os
from my_lib import Object3
from my_lib import Object2
import sys
from third_party import lib15 , lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 , lib9 , lib10 , lib11 , lib12 , lib13 , lib14
import sys
from __future__ import absolute_import
from third_party import lib3
print ( "Hey" )
print ( "yo" )
Setelah isort:
from __future__ import absolute_import
import os
import sys
from third_party import ( lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 ,
lib9 , lib10 , lib11 , lib12 , lib13 , lib14 , lib15 )
from my_lib import Object , Object2 , Object3
print ( "Hey" )
print ( "yo" )
Menginstal isort semudah:
pip install isort
Dari baris perintah :
Untuk dijalankan pada file tertentu:
isort mypythonfile.py mypythonfile2.py
Untuk menerapkan secara rekursif:
isort .
Jika globstar diaktifkan, isort .
setara dengan:
isort ** / * .py
Untuk melihat perubahan yang diusulkan tanpa menerapkannya:
isort mypythonfile.py --diff
Terakhir, untuk menjalankan isort secara atomik terhadap suatu proyek, hanya menerapkan perubahan jika perubahan tersebut tidak menimbulkan kesalahan sintaksis:
isort --atomic .
(Catatan: ini dinonaktifkan secara default, karena mencegah isort dijalankan terhadap kode yang ditulis menggunakan versi Python berbeda.)
Dari dalam Python :
import isort
isort . file ( "pythonfile.py" )
atau:
import isort
sorted_code = isort . code ( "import b n import a n " )
Beberapa plugin telah ditulis yang memungkinkan penggunaan isort dari dalam berbagai editor teks. Anda dapat menemukan daftar lengkapnya di isort wiki. Selain itu, saya akan dengan antusias menerima permintaan penarikan yang menyertakan plugin untuk editor teks lain dan menambahkan dokumentasi untuk plugin tersebut saat saya diberitahu.
Anda akan melihat di atas pengaturan "multi_line_output". Pengaturan ini menentukan cara membungkus impor ketika melampaui batas panjang_garis dan memiliki 12 kemungkinan pengaturan.
Untuk mengubah tampilan indentasi konstan - cukup ubah properti indent dengan format yang diterima berikut ini:
Misalnya:
" "
setara dengan 4.
Untuk gaya impor yang menggunakan tanda kurung, Anda dapat mengontrol apakah akan menyertakan koma tambahan setelah impor terakhir atau tidak dengan opsi include_trailing_comma
(defaultnya adalah False
).
Pada isort 3.1.0, dukungan untuk impor multi-jalur seimbang telah ditambahkan. Dengan mengaktifkan ini, isort akan secara dinamis mengubah panjang impor ke yang menghasilkan grid paling seimbang, namun tetap di bawah panjang impor maksimum yang ditentukan.
Contoh:
from __future__ import ( absolute_import , division ,
print_function , unicode_literals )
Akan diproduksi sebagai pengganti:
from __future__ import ( absolute_import , division , print_function ,
unicode_literals )
Untuk mengaktifkan ini setel balanced_wrapping
ke True
di konfigurasi Anda atau teruskan opsi -e
ke utilitas baris perintah.
isort menyediakan opsi konfigurasi untuk mengubah hampir setiap aspek tentang cara impor diatur, diurutkan, atau dikelompokkan menjadi beberapa bagian.
Klik di sini untuk ikhtisar semua opsi ini.
Untuk membuat isort mengabaikan satu impor, cukup tambahkan komentar di akhir baris impor yang berisi teks isort:skip
:
import module # isort:skip
atau:
from xyz import ( abc , # isort:skip
yo ,
hey )
Untuk membuat isort melewatkan seluruh file cukup tambahkan isort:skip_file
ke string dokumen modul:
""" my_module.py
Best module ever
isort:skip_file
"""
import b
import a
isort dapat dijalankan atau dikonfigurasi untuk menambah/menghapus impor secara otomatis.
Lihat panduan lengkapnya di sini.
--check-only
isort juga dapat digunakan untuk memverifikasi bahwa kode diformat dengan benar dengan menjalankannya dengan -c
. File apa pun yang berisi impor yang diurutkan dan/atau diformat secara salah akan dikeluarkan ke stderr
.
isort ** / * .py -c -v
SUCCESS: /home/timothy/Projects/Open_Source/isort/isort_kate_plugin.py Everything Looks Good !
ERROR: /home/timothy/Projects/Open_Source/isort/isort/isort.py Imports are incorrectly sorted.
Salah satu tempat terbaik untuk menggunakan ini adalah dengan git hook pra-komit, seperti yang ini oleh @acdha:
https://Gist.github.com/acdha/8717683
Hal ini dapat membantu memastikan tingkat kualitas kode tertentu di seluruh proyek.
isort menyediakan fungsi hook yang dapat diintegrasikan ke dalam skrip pra-komit Git Anda untuk memeriksa kode Python sebelum melakukan.
Info lebih lanjut di sini.
Setelah instalasi, isort mengaktifkan perintah setuptools
yang memeriksa file Python yang dideklarasikan oleh proyek Anda.
Info lebih lanjut di sini.
Tempatkan lencana ini di bagian atas repositori Anda untuk memberi tahu orang lain bahwa proyek Anda menggunakan isort.
Untuk README.md:
[ ![ Imports: isort ] ( https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 )] ( https://pycqa.github.io/isort/ )
Atau README.pertama:
.. image :: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
:target: https://pycqa.github.io/isort/
Untuk melaporkan kerentanan keamanan, silakan gunakan kontak keamanan Tidelift. Tidelift akan mengoordinasikan perbaikan dan pengungkapan.
isort berarti pengurutan impor. Awalnya disebut "sortImports" namun saya bosan mengetik karakter tambahan dan menyadari bahwa camelCase bukan Pythonic.
Saya menulis isort karena di sebuah organisasi saya dulu bekerja di manajer datang dalam satu hari dan memutuskan semua kode harus diimpor berdasarkan abjad. Basis kodenya sangat besar - dan dia bermaksud agar kami melakukannya dengan tangan. Namun, sebagai seorang programmer - saya terlalu malas untuk menghabiskan 8 jam tanpa berpikir untuk menjalankan suatu fungsi, tetapi tidak terlalu malas untuk menghabiskan 16 jam untuk mengotomatisasinya. Saya diberi izin untuk open source sortImports dan inilah kami :)
Dapatkan isort yang didukung secara profesional dengan Berlangganan Tidelift
Dukungan profesional untuk isort tersedia sebagai bagian dari Langganan Tidelift. Tidelift memberi tim pengembangan perangkat lunak satu sumber untuk membeli dan memelihara perangkat lunak mereka, dengan jaminan tingkat profesional dari para ahli yang paling memahaminya, sekaligus berintegrasi secara mulus dengan alat yang ada.
Terima kasih dan saya harap isort bermanfaat bagi Anda!
~Timothy Crosley