Kod kami sangat bergantung antara satu sama lain! Menambah kebergantungan pada projek ialah cara kod dilakukan.
Setiap kali seseorang bersin pergantungan baharu ditambahkan pada projek di suatu tempat.
Agak bagus bahawa kita berada di pihak ini dalam perdebatan hak cipta, di mana lalainya adalah membina perkara di atas kerja orang lain, dan tidak menembak ke arah semua orang, yang berani melihat ke arah kod saya . Tetapi... siapa yang akan menaik taraf semua kebergantungan ini sepanjang masa?
Dalam dunia yang sempurna, kita adalah komuniti dan kita semua memastikan lib dinaik taraf kepada versi terkini, bukan?
Salah! Devs perlu lembut didorong untuk melakukan perkara yang betul. Ya, dengan lembut, supaya mereka tidak perasan mereka sedang ditolak ????.
Kami menggunakan pytest, jadi langkah ini mudah untuk kami.
Bermula dari versi 3.1, pytest kini secara automatik menangkap amaran semasa pelaksanaan ujian dan memaparkannya pada akhir sesi:
- Pytest: Cara menangkap amaran
seperti ini:
============================= warnings summary ============================= test_bla_bla_bla.py::test_test .../some_file.py:65: PydanticDeprecatedSince20: `pydantic.config.Extra` is deprecated, use literal values instead (e.g. `extra='allow'`). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.9/migration/ extra=Extra.allow, .../marshmallow/fields.py:1186: RemovedInMarshammlow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. super().__init__(**kwargs) ======================= 1 passed, 2 warnings in 0.12s =======================
Saya melihat amaran marshmallow, melihat kod itu dan mendapati ia adalah penyelesaian yang mudah.
Jadi, saya memilih RemovedInMarshammlow4Warning.
Sekali lagi, kami menggunakan pytest, jadi langkah ini juga mudah untuk kami.
Tambahkan ini pada fail konfigurasi:
[tool.pytest.ini_options] ... filterwarnings = [ "error::marshmallow.warnings.RemovedInMarshmallow4Warning" ]
- Pytest: Mengawal amaran
Kini setiap ujian yang mencetuskan amaran penamatan ini akan gagal.
Malangnya, anda perlu mengambil satu untuk pasukan di sini. Anda perlu pergi dan betulkan semua tempat di mana amaran ini dicetuskan.
Saya tahu.. tidak adil.
Ia adalah kerja yang banyak, ia adalah kerja yang membosankan dan anda tidak akan dapat menyombongkan diri kepada bos anda mengenainya, kerana ia terlalu teknikal dan secara umumnya dianggap tidak relevan dari sudut pandangan mereka.
Dan semua perkara ini membantu orang seterusnya (yang bukan anda), yang akan menaik taraf marshmallow dan tiada apa-apa dalam kod akan rosak. Jadi, mereka juga tidak akan berterima kasih kepada anda, kerana mereka tidak akan perasan apa-apa telah dilakukan.
Jadi, ... apa yang saya katakan ialah: kadangkala anda perlu melakukan perkara yang betul, dan tiada siapa yang akan berterima kasih kepada anda untuknya.
Tetapi saya akan tahu. Dan anda akan tahu. ?
Akhirnya, mesti ada satu mesej tentang seseorang yang keliru: mereka menulis kod yang sama seperti kali terakhir, tetapi kali ini, ujian gagal, apa yang berlaku?
Dan anda boleh berkata: "oh, sukar untuk dikatakan, tetapi saya nampak ini adalah ciri yang tidak digunakan, itu pasti sebabnya". ?
Atas ialah kandungan terperinci Bagaimana untuk menggalakkan pembangun membetulkan amaran Python untuk ciri yang tidak digunakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!