Open shimwell opened 3 years ago
Yeah, we should probably check recursively for keys (i.e.: select.split(".")
would give ["my_reactor", "solid"]
and my_reactor
should be in source.keys()
and solid
in my_reactor
). Maybe there is a better (more direct) way to do this with Python than a for
loop...
I'm in for allowing :select: my_reactor.solid
(with the dot). :blush:
I shall give eval(source)
a try locally it should handle strings that have a variable or a variable with attribute.
It also returns an error if the variable / variable attribute combo is not found
When specifying the object to
:select:
there is a check to see if this object is thesource.keys()
If the object is not in the source keys then an error is raised. https://github.com/Peque/sphinxcadquery/blob/0b7050c0204b8b2c6f7e6912eaee97ca02b9e776/sphinxcadquery/sphinxcadquery.py#L69
In my case I have wrapped the CadQuery object with another object.
My cadquery object is not directly in the source so it is not found
For my use case it would be better if that
RaiseError
was swapped to aWarning
as and I would be able to enter:select: my_reactor.solid
For example here I have to do
cadquery_object = my_reactor.solid
and then set:select: cadquery_object
https://paramak--836.org.readthedocs.build/en/836/example_neutronics_simulations.html#ball-reactor-ipynbIdeally I would not include the
cadquery_object = my_reactor.solid
line in the example.I admit this is quite a niche use case but something for consideration