I have a .NET project at work that provides a couple of (Iron)Python scripts to the customers, to allow them to customize the output of the program. The application generates code for certain machines, and supports a couple of different formats.
Until recently, we only provided a script for one format. We're expanding upon that to include support for the others. If the user is using a script, they select their input script before generating the output code. A script designed for
Format1 output is going to cause errors if they're trying to generate
Format2 output. I need to deal with this.
One option would just be to let the customers use common sense, and if they load the wrong script it will just fail, or worse, produce inaccurate data. I'm inclined to provide a little more protection than that.
At the moment I'm considering putting a shebang-style comment line at the top of the script, ala:
# OUTPUT - Format1
If the user tries to run a
Format2 process with a
Format1 script, it will warn them. Alternatively I could create different file extensions for the input scripts that vary by type.
The file-type comment approach helps prevent the script from actually loading improperly, at the cost of failing to warn the user until they've already selected it, via a dialog box. Using different file extensions would allow me to cut down on visual clutter when providing a File Dialog, but doesn't actually stop them from loading the wrong script.
So I'm really not sure if the right approach is to just leave it alone, or provide some safeguards.