Monja is mongo jinja query evaluator
pip install -r requirements.txtfrom monja import Monja
Monja.configure(queries_path='path-to-monja-queries-folder')
data1: list = Monja.get('1')
data2: list = Monja.get('1.monja')| import os | |
| from jinja2 import FileSystemLoader, Environment | |
| class Monja: | |
| """ | |
| Monja | |
| ~~~~~ | |
| Monja is mongo jinja query evaluator | |
| >>> from monja import Monja | |
| >>> Monja.configure(queries_path='path-to-monja-queries-folder') | |
| >>> data1: list = Monja.get('1') | |
| >>> data2: list = Monja.get('1.monja') | |
| """ | |
| __slots__ = () | |
| @staticmethod | |
| def configure(queries_path): | |
| os.environ.setdefault('MONJA_QUERIES_FOLDER', str(queries_path)) | |
| @staticmethod | |
| def get(name, **kwargs): | |
| query_path = os.environ.get('MONJA_QUERIES_FOLDER') | |
| if query_path is None: | |
| raise EnvironmentError('MONJA_QUERIES_FOLDER is not set as environment variable. ' | |
| 'Set MONJA_QUERIES_FOLDER as environment variable or ' | |
| 'run `Monja.configure()` before using it.') | |
| if not name.endswith('.monja'): | |
| name += '.monja' | |
| if not os.path.isfile(os.path.join(query_path, name)): | |
| raise FileNotFoundError('No such query file: {}'.format(name)) | |
| loader = FileSystemLoader(searchpath=query_path) | |
| env = Environment(loader=loader) | |
| template = env.get_template(name) | |
| string = template.render(**kwargs) | |
| return eval(string) |
| Jinja2==2.11.2 | |
| MarkupSafe==1.1.1 |