2014-11-17 3 views
0

Я новичок в 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 

Вопрос в том, должен ли я писать эти «оберточные» модули? Это питоновский способ использовать эти сторонние модули? Этот метод имеет смысл для меня, но мне интересно, создает ли эти интерфейсы мой код менее портативный или модульный, или нет или нет лучшего способа интегрировать эти различные разрозненные модули в мою основную структуру скриптов.

+0

Извините, но ваше объяснение довольно абстрактно. Можете ли вы показать нам какой-то код, чтобы лучше понять, что вы делаете? –

+0

Я добавил простой пример: мой оберточный модуль 'boto' – oliakaoil

ответ

1

Вы используете модули как намеренные. Вы импортируете их, а затем используете их. Как я вижу, awsbox - это модуль, в котором реализованы функции, соответствующие вашим потребностям.

Так, отвечая на ваш cuestion:

я должен писать эти "обертки" модули?, да (вы можете перестать называть их «обертками»), ошибка будет заключаться в том, чтобы переписать эти установленные модули.

Это питоновский способ использовать эти сторонние модули?, Это путь Python. Авторы пишут модули для использования вами (импорт).

Смежные вопросы