Я новичок в Python и недавно начал писать сценарий, который по существу читает базу данных MySQL и архивирует некоторые файлы, загружая их на ледник Амазонки. Я использую модуль Amazon boto
вместе с несколькими другими модулями.Как потреблять/интегрировать сторонние модули в Python
Я заметил, что я, кажется, повторяю один и тот же шаблон снова и снова при установке и использовании этих модулей, которые подключаются к внешним службам. Во-первых, я пишу модуль-оболочку, который считывает мои глобальные значения конфигурации, а затем определяет функцию соединения, затем начинаю писать функции в этом модуле, которые выполняют различные задачи. Например, на данный момент мой оберточный модуль boto
имеет имя awsbox
и состоит из таких функций, как getConnection
и glacierUpload
. Вот краткий пример:
import config,sys,os
import boto,uuid
_awsConfig = config.get()['aws']
def getGlacierConnection():
return boto.connect_glacier(aws_access_key_id=_awsConfig['access_key_id'],
aws_secret_access_key=_awsConfig['secret_access_key'])
def glacierUpload(filePath):
if not os.path.isfile(filePath):
return False
awsConnect = getGlacierConnection()
vault = awsConnect.get_vault(_awsConfig['vault'])
vault.upload_archive(filePath)
return True
Вопрос в том, должен ли я писать эти «оберточные» модули? Это питоновский способ использовать эти сторонние модули? Этот метод имеет смысл для меня, но мне интересно, создает ли эти интерфейсы мой код менее портативный или модульный, или нет или нет лучшего способа интегрировать эти различные разрозненные модули в мою основную структуру скриптов.
Извините, но ваше объяснение довольно абстрактно. Можете ли вы показать нам какой-то код, чтобы лучше понять, что вы делаете? –
Я добавил простой пример: мой оберточный модуль 'boto' – oliakaoil