У меня вопрос о том, где хранить XML данные, необходимые для выполнения вызовов API, в пакете python, который я собираю. Для некоторых вызовов API в моем пакете мне нужно предоставить двоичную строку xml в запросе. Прямо сейчас я читаю его из того же каталога, в котором хранится мой исходный код. Каков наилучший способ сохранить этот XML для использования во время выполнения после того, как мой проект был упакован и установлен через pip? Я прочитал о package_data
из пакета setuptools, но я не уверен, как вы открываете файлы, включенные в него, когда выполняется вызов API.
Ниже приведен пример того, как я сейчас выполняю один из этих вызовов API. и текущая структура каталогов.
def make_api_call(self):
# line below just extracts creds for api call from db
API_CREDENTIALS = self.stage_request()
#request_input.xml contains xml needed to make request
data = open('./request_input.xml', 'rb').read()
r = requests.post(url='apiurl',data=data,auth=(API_CREDENTIALS[0], API_CREDENTIALS[1]),headers={'Content-Type': 'text/xml'})
-----Package
-------Packages
---------module1.py
---------module2.py
---------module3.py
---------request_input.xml
-----setup.py
-----README.md