I'd like to use my get_data() from /src/cool_api.py in:
- a)
cool_api.py's main block - b)
main.py's main block
get_data() needs to import the API key from config/api_config.yaml which results in FileNotFoundError when trying b). Is there a default (non-hacky) solution for imports like this from src?
I have the following file structure:
|─ config
│ ├─ api_config.yaml
|─ src # marked as Sources Root folder in Pycharm
│ ├─ cool_api.py
│ └─ ...
├─ tests
│ └─ test_cool_api.py
└─ main.py
my code:
# cool_api.py
def get_data():
import yaml
import requests
with open("../config/api_config.yaml") as f:
config = yaml.load(f, Loader=yaml.SafeLoader)
return f"cool_api.org?key={config['api_key']}"
if __name__ == "__main__":
print(get_data())
a) works.
# main.py
from cool_api.py import get_data
if __name__ == "__main__":
print(get_data())
b) results in a FileNotFoundError. No such file or directory: '../config/api_config.yaml'