There is the downside that I don't know Python at all, and learning yet another 
object-oriented language with completely different syntax isn't high on my list 
of priorities.  That said, if we can get past the support issues on various 
platforms, I have no problem with Schorsch and others making contributions they 
wish to support on an ongoing basis, or ones that are unlikely to require 
support.

For this reason, I don't have much enthusiasm for converting something as 
complex as genBSDF to Python, where I couldn't understand or fix any problems 
that arise in future.

Cheers,
-Greg

> From: Georg Mischler <schor...@schorsch.com>
> Subject: [Radiance-dev] Python scripts for Radiance
> Date: March 21, 2016 9:02:03 AM PDT
> 
> Hi again!
> 
> I have converted some of the original Radiance shell scripts into Python.
>  https://github.com/gmischler/PyRad
> 
> The examples so far are exact drop-in replacements of the original csh
> or Perl versions, but with some extra functionality and benefits.
> 
> * usage instructions (-H)
> * progress report (-V)
> * dry-run mode (-N)
> * detailed error diagnostics
> * compatible with Python 2.7 and Python 3.x
> * self contained (all functionality can be combined in one file)
> * truly cross-platform (no dependencies other than Python and Radiance)
> * direct process management (no intermediate shell calls)
> * immune to whitespace in file names
> * tamper-proof use of temporary files
> * instrumented for building a single-file *.exe with pyinstaller
> 
> 
> The current selection is still small, the examples were chosen for
> varying reasons:
> 
> * falsecolor.py
>  This one has been sitting on my disk (in much less refined form) for
>  many years. Now I've updated it to using color palettes and to satisfy
>  all the points above.
> 
> * phisto.py
> * rlux.py
> * pveil.py
>  Those three became test candidates because they are simple and have
>  a straightforward command line.
> 
> I'm looking for ideas (and contributions) on where to continue next.
> 
> Good candidates are scripts that are commonly used.
> It is also very helpful if a script includes documentation about what
> it's actually supposed to do. Ideally with a set of test data to
> verify that it really does that.
> Actually, a solid set of test cases for the current collection would
> be very helpful too.
> 
> Some of the csh/Perl scripts present a challenge, because they have
> rather unconventional command lines. In those cases, we might want to
> consider changing the interface to something more regular, provided
> this is possible.
> 
> Not all of the existing scripts are really worth the effort.
> The Python versions with the extra functionality are definitively not
> as simple as the originals. Flexibility and safety has its price.
> On the other hand, they will definitively be *much* easier to maintain.
> 
> Many of the current scripts (csh *and* Perl) blindly assume the
> existence of a unix type shell, a number of other posix tools
> (grep/awk/sed/etc.), and they often fail with spaces in file and
> directory names. Fixing this would introduce additional overhead
> in any language.
> 
> 
> Why Python?
> 
> For developers, it is simply one of the most productive tools around.
> Python has grown into one of the most popular languages just by its
> practical merits, without any corporate backing, and without a very
> strong web appeal.
> 
> Most Radiance users will already have it installed, no matter the
> platform.
> 
> On unix, scripts can be invoked by "#!" (like any other).
> 
> Any script can be "compiled" into a standalone executable file.
> This is important on Windows, because invoking scripts (Python,
> *.bat, or otherwise) from within programs is a real hassle there.
> In fact, it ended up being the simplest way to get winimage to
> perform falsecolor analysis.
> (This could also be done with Perl, but...)
> 
> 
> I expect Python to play an increasing role in Radiance development in
> the future, with or without my own involvement.  So we might just as
> well embrace it.
> 
> I would like to suggest adding Python versions of the most commonly
> used scripts to the distribution. There are several possible
> configurations how this could be done, so we'd have to discuss a
> number of technical details first. And yes, verification before
> inclusion would be an important step.
> 
> Opinions?
> 
> -schorsch

_______________________________________________
Radiance-dev mailing list
Radiance-dev@radiance-online.org
http://www.radiance-online.org/mailman/listinfo/radiance-dev

Reply via email to