Python-future: Fixer untuk menghapus __future__/impor masa depan dari kode futurized

Dibuat pada 28 Mei 2019  ·  5Komentar  ·  Sumber: PythonCharmers/python-future

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:

  • Hapus impor __future__ ( print_function misalnya)
  • Hapus baris from future import standard_library dan standard_library.install_aliases()
  • Hapus from builtins import * baris
  • Hapus from 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.

futurize script help wanted unscheduled wontfix / cantfix

Komentar yang paling membantu

Saya membuat beberapa transformasi sendiri dan menggabungkannya menjadi sebuah skrip. Saat ini tersedia di sini: https://github.com/purplediane/drop2

Semua 5 komentar

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__ ):

asottile/pyupgrade: Alat (dan kait pra-komit) untuk meningkatkan sintaks secara otomatis untuk versi bahasa yang lebih baru.

Hal penting lainnya:

  • Menghapus awalan u
  • Menghapus (object) dari definisi class
  • Memperbarui panggilan super()
  • Memperbarui impor 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?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat