ProHoster > Blog > yönetim > Python ve Bash Dostluğunu Kurmak: Python-Shell ve smart-env v kitaplıklarının piyasaya sürülmesi. 1.0.1
Python ve Bash Dostluğunu Kurmak: Python-Shell ve smart-env v kitaplıklarının piyasaya sürülmesi. 1.0.1
Herkese İyi günler!
29 Şubat 2020 yıl kütüphanelerin resmi mikro sürümü gerçekleşti akıllı ortam и piton kabuğu. Bilmeyenler için öncelikle okumanızı öneririm. ilk gönderi.
Kısacası değişiklikler arasında komut tamamlama, komut çalıştırmaya yönelik genişletilmiş yetenekler, bazı yeniden düzenleme ve hata düzeltmeleri yer alıyor.
Ayrıntılar için lütfen kediye bakın.
Python-Shell'deki yenilikler neler?
Hemen tatlıyla başlayacağım.
Komut tamamlama
Katılıyorum - editör/IDE/terminalin sizden komutun adını ve hatta bazen çağrı parametrelerini istemesi uygun olur mu? Yani python-shell benzer işlevsellik sağlama konusunda yavaş yavaş ilerleme kaydediyor. Shell sınıfının başlık altındaki alanlarının fiili olarak kendi alanları (her yerde bulunan __getattr__) olmaması nedeniyle, otomatik tamamlama da sıfırdan oluşturuldu (sırasıyla __dir__ yönteminin aşırı yüklenmesiyle). Otomatik tamamlama şu anda BPython ve IPython ortamlarında çalışmaktadır. Elbette PyCharm gibi daha saygın ürünlerle entegrasyonu görmek isterim ve uygulama olanakları bu yönde araştırılıyor.
Özellikler ekleme
Sürümün bir parçası olarak, Shell sınıfı yeni bir last_command özelliği aldı. Buna olan ihtiyaç, sıfırdan farklı bir dönüş koduna sahip bir komut tarafından bir ShellException oluşturulduğunda, Command nesnesinin __call__() çağrısından komut nesnesine döndürülmemesi nedeniyle ortaya çıktı. Artık bunu yapmak için bir fırsat var:
Komut nesnesinin özelliklerinin listesi de genişletildi. Komut çıktısını hata akışına döndüren bir hata alanı eklendi.
Geçersiz Python adlarıyla komut çalıştırma
Hemen hemen her sistemde, adı Python'da tanımlayıcı olarak uygun olmayan en az bir program vardır (örneğin, iyi bilinen 2to3 yardımcı programı). Onu ara
Shell.2to3()
Eğer işe yaramazsa tercüman buna izin vermez.
Çözüm, komutu dolambaçlı bir şekilde çağırmaktır:
Shell("2to3") # возвращает объект команды
Aynı şekilde, yorumlayıcının bakış açısından geçerli olan komutları çalıştırabileceğinizi ve bunun da aşağıdaki gibi esnek komut dosyaları oluşturma fırsatını bıraktığını belirtmekte fayda var.
Command sınıfı nesnesinin __repr__() ve __str__() yöntemleri uygulandı ve bunlar artık sezgisel değerler üretiyor (sırasıyla parametrelere sahip bir komut ve bunun stdout çıktısı).
Küçük kod düzeltmeleri.
Test kapsamının eklenmesi ve mevcut olanların yeniden düzenlenmesi.
Amacı, alt süreç modülüyle çalışırken ek bir soyutlama düzeyi oluşturmak olan Alt Süreç ve Süreç sınıflarının eklenmesi. Çoğunlukla Python 2/3 ile çalışırken kod tekrarını ortadan kaldırmak için gereklidir, ancak potansiyel olarak başka bonuslar da sağlayabilir.
Smart-env'deki yenilikler neler?
Python-Shell'in aksine, smart-env kütüphanesinde daha az değişiklik olmuştur. Bunun nedeni basit: bazı potansiyel iyileştirmelerin (örneğin, ortam değişkenlerinin otomatik tamamlanması) bir sonraki sürüme taşınması nedeniyle boş zaman eksikliği.
Aslında kütüphanede aşağıdaki değişiklikler yapıldı:
Küçük kod düzeltmeleri.
Yeniden düzenleme.
Mevcut testlerin yeniden düzenlenmesi ve iyileştirilmesi.
Sonraki sürümler için planlar
python-kabuk kütüphanesi
Engellemeyen komut çağrıları için destek eklenmesi (yürütmenin paralelleştirilmesi).
akıllı-env kütüphanesi
ENV sınıfında ortam değişkenlerinin otomatik tamamlanmasının uygulanması.
Bir env değişkeninin varlığını kontrol etmek için in operatörü desteği.
ENV sınıfı için str() ve repr() işlevlerine yönelik desteğin uygulanması.
Sonraki yayınların tarihleri aşağıdaki iletişim kanallarında ayrıca duyurulacaktır: