Skip to main content
Question

AzureBlobStorageConnector FME Form 2024.0 python bug?


rogbak
Contributor
Forum|alt.badge.img+1

Hi
While converting an existing chain of workspaces from 2022.1 to 2024.0 version i ran into this issue:

The current FME process locale has been changed from 'Norwegian Bokmål_Norway.utf8' to 'C' and FME has restored it back to 'Norwegian Bokmål_Norway.utf8'. It is undefined behavior to call 'setlocale()' in plugin code and doing so may cause unexpected errors
..
Python version 3.12 loaded successfully
Python: There is a known Windows bug that may cause instability when using Python in the current locale. Please update to Windows 10 version 2004 and greater, or to Windows Server 2022. See http://fme.ly/nw5 for more details

C:\Users\%username%\AppData\Roaming\Safe Software\FME\Packages\24187-win64\python\safe.azurestorage\azure\storage\blob\_deserialization.py:657: SyntaxWarning: "is" with 'int' literal. Did you mean "=="?
  elif num_empty_lines is 2:

Message Type: fme::internal::_v0::py::Exception
Python Exception <Error>: unsupported locale setting
PythonFactory failed to load python symbol `fmepy_azurestorage.connector.AzureBlobStorageConnector'. An outdated FME packaged transformer may be in use. Please check Tools > FME Options > FME Packages to confirm that all FME Packages are up to date

PythonFactory script changed the current FME process locale from 'Norwegian Bokmål_Norway.utf8' to 'Norwegian Bokmål_Norway.1252' and FME has restored it back to 'Norwegian Bokmål_Norway.utf8'. It is undefined behavior to change locale and doing so may cause unexpected errors. For more information, visit http://fme.ly/PythonLocaleError

 

Edited the refered file for my user and chenged it to:

C:\Users\%username%\AppData\Roaming\Safe Software\FME\Packages\24187-win64\python\safe.azurestorage\azure\storage\blob\_deserialization.py

 

#XXX Added Code set locale

import locale

locale.setlocale(locale.LC_ALL, "Norwegian_Norway.1252")

 

#XXX Changed Code

            elif num_empty_lines == 2:

            #from this;  elif num_empty_lines is 2:

                batch_http_sub_response.body += line

 

The locale setting part corrupted the run

The elif num_empty_lines is 2: gave error but didn’t corrupt the run.
I haven’t put a debug on it to test if the code hist the specific if.

Suggested solution gave no errors.
Q: Are these known bugs, and what is the difference on the transformer from 2022 to 2024.

Best regards

Roger Bakkestuen

 

0 replies

Be the first to reply!

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings