Image filenames should be encoded as URI before being hashed.
Also assume that filenames are already utf8 because the community
has been advertiseing utf8 usage since the beginning of this centry.
Calling .encode("utf8") on strings that are already in utf8 simply
raises the following exception:
UnicodeDecodeError: 'ascii' codec can't decode byte ...
for non-ascii (already utf8) strings.
It's in fact impossible to precisely determine pathname encoding
because different components within the path may have different
encodings, e.g., a utf8 directory name followed by an MBCS filename
is valid on Linux native filesystems.
It's the user's responsibility to keep the iocharset consistent.
Directly calling subprocess.Popen without checking the presence of the
program is the optimal solution because:
1) Avoids race condition, where the program disappears between the
check and the Popen call.
2) Popen will raise exception if the program is absent anyway,
no race condition here.
This code copies all files in the default (program install location) Path\Tools folder to the user's working tools folder when they setup the ToolBit working directories for the first time.
The profile operation is forcing cut side to `Outside` when profiling whole models. This change in code also allows for profiling `Inside` of entire models. Apart from limiting profiling capabilities of entire models, this override could cause problems with profiling of selected faces or edges in very specific use cases. Also, this fix removes the property assignment of a key control property within the execution code, which should not happen, apart from feedback properties.
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`