@@ -448,6 +448,7 @@ static int handle_native_callbacks(struct JsonnetVm *vm, PyObject *native_callba
448
448
static PyObject * evaluate_file (PyObject * self , PyObject * args , PyObject * keywds )
449
449
{
450
450
const char * filename ;
451
+ const char * jpathdir = NULL ;
451
452
char * out ;
452
453
unsigned max_stack = 500 , gc_min_objects = 1000 , max_trace = 20 ;
453
454
double gc_growth_trigger = 2 ;
@@ -458,7 +459,7 @@ static PyObject* evaluate_file(PyObject* self, PyObject* args, PyObject *keywds)
458
459
PyObject * native_callbacks = NULL ;
459
460
struct JsonnetVm * vm ;
460
461
static char * kwlist [] = {
461
- "filename" ,
462
+ "filename" , "jpathdir" ,
462
463
"max_stack" , "gc_min_objects" , "gc_growth_trigger" , "ext_vars" ,
463
464
"ext_codes" , "tla_vars" , "tla_codes" , "max_trace" , "import_callback" ,
464
465
"native_callbacks" ,
@@ -468,8 +469,8 @@ static PyObject* evaluate_file(PyObject* self, PyObject* args, PyObject *keywds)
468
469
(void ) self ;
469
470
470
471
if (!PyArg_ParseTupleAndKeywords (
471
- args , keywds , "s|IIdOOOOIOO " , kwlist ,
472
- & filename ,
472
+ args , keywds , "s|sIIdOOOOIOO " , kwlist ,
473
+ & filename , & jpathdir ,
473
474
& max_stack , & gc_min_objects , & gc_growth_trigger , & ext_vars ,
474
475
& ext_codes , & tla_vars , & tla_codes , & max_trace , & import_callback ,
475
476
& native_callbacks )) {
@@ -481,6 +482,8 @@ static PyObject* evaluate_file(PyObject* self, PyObject* args, PyObject *keywds)
481
482
jsonnet_gc_min_objects (vm , gc_min_objects );
482
483
jsonnet_max_trace (vm , max_trace );
483
484
jsonnet_gc_growth_trigger (vm , gc_growth_trigger );
485
+ if (jpathdir != NULL )
486
+ jsonnet_jpath_add (vm , jpathdir );
484
487
if (!handle_vars (vm , ext_vars , 0 , 0 )) return NULL ;
485
488
if (!handle_vars (vm , ext_codes , 1 , 0 )) return NULL ;
486
489
if (!handle_vars (vm , tla_vars , 0 , 1 )) return NULL ;
@@ -502,6 +505,7 @@ static PyObject* evaluate_file(PyObject* self, PyObject* args, PyObject *keywds)
502
505
static PyObject * evaluate_snippet (PyObject * self , PyObject * args , PyObject * keywds )
503
506
{
504
507
const char * filename , * src ;
508
+ const char * jpathdir = NULL ;
505
509
char * out ;
506
510
unsigned max_stack = 500 , gc_min_objects = 1000 , max_trace = 20 ;
507
511
double gc_growth_trigger = 2 ;
@@ -512,7 +516,7 @@ static PyObject* evaluate_snippet(PyObject* self, PyObject* args, PyObject *keyw
512
516
PyObject * native_callbacks = NULL ;
513
517
struct JsonnetVm * vm ;
514
518
static char * kwlist [] = {
515
- "filename" , "src" ,
519
+ "filename" , "src" , "jpathdir" ,
516
520
"max_stack" , "gc_min_objects" , "gc_growth_trigger" , "ext_vars" ,
517
521
"ext_codes" , "tla_vars" , "tla_codes" , "max_trace" , "import_callback" ,
518
522
"native_callbacks" ,
@@ -522,8 +526,8 @@ static PyObject* evaluate_snippet(PyObject* self, PyObject* args, PyObject *keyw
522
526
(void ) self ;
523
527
524
528
if (!PyArg_ParseTupleAndKeywords (
525
- args , keywds , "ss|IIdOOOOIOO " , kwlist ,
526
- & filename , & src ,
529
+ args , keywds , "ss|sIIdOOOOIOO " , kwlist ,
530
+ & filename , & src , & jpathdir ,
527
531
& max_stack , & gc_min_objects , & gc_growth_trigger , & ext_vars ,
528
532
& ext_codes , & tla_vars , & tla_codes , & max_trace , & import_callback ,
529
533
& native_callbacks )) {
@@ -535,6 +539,8 @@ static PyObject* evaluate_snippet(PyObject* self, PyObject* args, PyObject *keyw
535
539
jsonnet_gc_min_objects (vm , gc_min_objects );
536
540
jsonnet_max_trace (vm , max_trace );
537
541
jsonnet_gc_growth_trigger (vm , gc_growth_trigger );
542
+ if (jpathdir != NULL )
543
+ jsonnet_jpath_add (vm , jpathdir );
538
544
if (!handle_vars (vm , ext_vars , 0 , 0 )) return NULL ;
539
545
if (!handle_vars (vm , ext_codes , 1 , 0 )) return NULL ;
540
546
if (!handle_vars (vm , tla_vars , 0 , 1 )) return NULL ;
0 commit comments