PyCharm: автоматически вставлять код импортируемых функций - PullRequest
0 голосов
/ 09 сентября 2018

Я более или менее единственный в своем офисе, кто кодирует маленькие скрипты для анализа данных в Python. Следовательно, у меня есть небольшая библиотека вспомогательных функций, которые я сейчас использую каждый раз, а не в разных скриптах; эта библиотека размещена по центру в библиотеках Anaconda на моей машине.

Иногда, однако, я хочу "развернуть" сценарии как автономную версию, чтобы они могли быть запущены в простом дистрибутиве python, то есть без предварительной "установки" моих файлов библиотеки.

Есть ли способ в PyCharm автоматически заменить определенные операторы импорта на код импортируемых функций? Я знаю, что это может быть сложной задачей, чтобы определить, зависит ли встраиваемый код функции от других функций, которые также необходимо импортировать (но каким-то образом PyInstaller также получает эти зависимости). Но в основном я говорю о функциях, которые не имеют каких-либо дополнительных зависимостей или только внутри одного модуля ...

Для примера:

Может быть, моя библиотека выглядит так:

def readfile(filepath): 
   return ....

def readfileAsList(filepath):
   return readfile(filepath).splitlines()

def writefile(contents, filepath, writemode='w'):
   with open(filepath, writemode): 
     ...

А мой скрипт для некоторого анализа выглядит так:

import re
from myLib import readfileAsList
# ANALYSIS CODE GOES HERE ...

Теперь я хочу, чтобы PyCharm автоматически преобразовал код скрипта и вставил readfileAsList, а также readfile (из-за зависимостей).

Таким образом, код будет выглядеть так:

import re
def readfile(filepath): 
   return ....

def readfileAsList(filepath):
   return readfile(filepath).splitlines()

# ANALYSIS CODE GOES HERE ...

Заранее спасибо!

...