Source code for honeybee_radiance_command.rcalc

"""rcalc command."""
from .options.rcalc import RcalcOptions
from ._command import Command
import warnings
import honeybee_radiance_command._typing as typing
try:
    basestring
except NameError:
    basestring = str


[docs]class Rcalc(Command): """rcalc command. Rcalc transforms "records" from each file according to the given set of literal and relational information. By default, records are separated by newlines, and contain numeric fields separated by tabs. The -tS option is used to specify an alternate tab character. Args: options: Rcalc command options. It will be set to Radiance default values if unspecified. output: Output file (Default: None). inputs: A collection of scene files (Default: None) Properties: * options * output * input """ __slots__ = ('_inputs',) def __init__(self, options=None, output=None, inputs=None): """Initialize Command.""" Command.__init__(self, output=output) self.inputs = inputs or [] self.options = options @property def options(self): """Rcalc options.""" return self._options @options.setter def options(self, value): if value is None: value = RcalcOptions() if not isinstance(value, RcalcOptions): raise ValueError('Expected RcalcOptions not {}'.format(type(value))) self._options = value @property def inputs(self): """Octree file. Get and set inputs files. """ return self._inputs @inputs.setter def inputs(self, value): if isinstance(value, basestring): value = [value] self._inputs = [typing.normpath(f) for f in value]
[docs] def to_radiance(self, stdin_input=False): """Rcalc in Radiance format. Args: stdin_input: A boolean that indicates if the input for this command comes from stdin. This is for instance the case when you pipe the input from another command (default: False). """ self.validate() command_parts = [self.command] if self.options: command_parts.append(self.options.to_radiance()) command_parts.append('' if stdin_input else ' '.join(self.inputs)) cmd = ' '.join(command_parts) if self.pipe_to: cmd = ' | '.join((cmd, self.pipe_to.to_radiance(stdin_input=True))) elif self.output: cmd = ' > '.join((cmd, self.output)) return ' '.join(cmd.split())
[docs] def validate(self): Command.validate(self)