Saya mencari fitur ini, tetapi tidak melihatnya di dokumentasi jadi saya membuka permintaan fitur.
Saya ingin melihat pemecah masalah yang menggunakan kode yang kompatibel dengan Python 2/3 dan menghapus dukungan Python 2 sebaik mungkin.
Ini akan:
__future__
( print_function
misalnya)from future import standard_library
dan standard_library.install_aliases()
from builtins import *
barisfrom future.utils import python_2_unicode_compatible
Jika pemecah masalah seperti itu sudah ada, saya ingin mengetahuinya.
Sejumlah klien saya menggunakan future
untuk meningkatkan kode mereka ke Python 3 dan kemudian menghentikan dukungan Python 2 segera setelah itu dan pemecah masalah semacam itu akan sangat membantu mereka.
Jika ada, maka tidak didokumentasikan dengan baik. Saya harus menghapus semua itu secara manual. Penggunaan perlengkapan yang dijalankan secara otomatis mungkin dengan tanda seperti -3
berarti hanya refactor untuk 3 kepatuhan dan mengabaikan kompatibilitas python2 akan lebih baik.
Saya membuat beberapa transformasi sendiri dan menggabungkannya menjadi sebuah skrip. Saat ini tersedia di sini: https://github.com/purplediane/drop2
Alat terkait, dengan beberapa tumpang tindih (yaitu impor __future__
):
Hal penting lainnya:
u
(object)
dari definisi class
super()
mock
Yang mengatakan, saya dapat menggunakan sed
untuk standard_library
:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
Saya berencana melakukan hal yang sama untuk:
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
Saya sudah mengetahui pyupgrade dan telah menggunakannya. Hal ini sangat membantu.
pyupgrade
(ditambah kait pra-komit) adalah alat yang hebat untuk tujuan ini. Bisakah kita menutup FR ini karena alternatifnya tersedia?
Komentar yang paling membantu
Saya membuat beberapa transformasi sendiri dan menggabungkannya menjadi sebuah skrip. Saat ini tersedia di sini: https://github.com/purplediane/drop2