Python

  • 06 Jul

    Python Thread Exec Mode setup within Limagito File Mover

    Python Thread Exec Mode setup within Limagito File Mover

    In version v2025.6.7.0 we added a “Global Python” setup option.

    limagito file mover global python setup

    The GIL (Global Interpreter Lock) in Python is a mutex (mutual exclusion lock) that protects access to Python objects, ensuring that only one thread executes Python bytecode at a time, even on multi-core processors.

    We added two Thread Exec Modes:

    New Interpreter

    • Each thread gets its own Python interpreter state (Py_NewInterpreter).
    • Shared global interpreter (GIL) lock, but separate Python states.
    • Useful when isolation between threads is desired.
    • Each interpreter is independent: global variables, modules, and sys state are not shared.
    • Not all Python C modules work well in sub-interpreters (some share global state unsafely).
    • Use this when:
      • You need full isolation between threads (like sandboxing).
      • You can tolerate potential issues with C extension compatibility.

    New Interpreter Own GIL

    • Same as “New Interpreter”, but each thread also manages its own GIL state.
    • This mode gives each thread its own Python interpreter + GIL state.
    • Makes thread-safe management of the Python GIL easier.
    • Internally uses PyEval_SaveThread / PyEval_RestoreThread.
    • Use this when:
      • You want per-thread interpreters with clean GIL handling.
      • You want Python output or state kept separate per thread (e.g. in logs).
      • This is the recommended mode when you want each thread to run Python independently.

    limagito file mover Python Thread Exec Mode

    If you need any help with this ‘Python Thread Exec Mode’ option, please let us know.

    Best Regards,

    Limagito Team

    #python #managedfiletransfer #filetransfer #filemanagement

    By Limagito-Team Python
  • 06 Jul

    Python within Limagito File Mover running as a windows service

    Python within Limagito File Mover running as a windows service

    In version v2025.7.6.0 we added a ‘Global Python’ setup option.

    limagito file mover global python setup

    One of the reasons we did this is by default we’ll use the latest registered Python version. The issue is that when you are using the File Mover as a Windows service and the ‘Logon As’ user of the File Mover service is not able to read the registry settings of the latest registered Python version then we’ll be not able to initialise the Global Python engine. To prevent this issue, it is a good ideae to register it for all users when installing the Python Distribution. Another option is to adjust the Global Python setup and use “Select Specific Version’ as Distribution Type.

    • Default Distribution Type: Latest Registered Version

    limagito file mover global python setup

    • Destination Python Setup, click F9 to execute Script
      • Error message: Global Engine not available
      • So the File Mover Service was not able to find the Python Distribution using the registry information

    limagito file mover global python engine not available

    To solve this we added the following Distribution Type:

    • Distribution Type: “Select Specific version”
      • Set Python DLL Name
      • Set Python Version
      • Set Python DLL Path (in the screenshot we used the 64bit version of Python)

    limagito file mover global python setup

    • Destination Python Setup, click <F9> to execute Script
      • Info message: Global Engine available, RegVersion: 3.13 – DLLName: python313.dll
      • So the File Mover Service was able to find the Python Distribution correctly

    limagito file mover python as destination

    • The Remote tool has an option to read the “Engine Log'” of the File Mover service. This will give you some information about the status of the Global Python Engine.

    limagito File Mover engine log option

    python windows service

    If you need any help with this ‘python windows service’ error, please let us know.

    Best Regards,

    Limagito Team

    #python #managedfiletransfer #filetransfer #filemanagement

    By Limagito-Team Python
  • 29 Jun

    How to use Python within Limagito File Mover

    How to use Python within Limagito File Mover

    In version v2025.6.29.0 we added a Python as Destination option. This is the first build so we know it still needs fine-tuning. Please tell us what you think and if you find any issues please let us know. Also, Python feature requests are welcome.

    Be sure to read the following blog article about using our new Python option with Limagito File Mover installed as a Windows Service: link

    python logo

    • 32-bit versions of Limagito File Mover will only work with 32-versions of Python
    • 64-bit versions of Limagito File Mover will only work with 64-bit versions of Python.
    • Our File Mover will use the default registered version of Python
    • We did our testing with Python v3.13
    • You can download a Python distribution from here: link
    • We’ve added quite some  Rule related Var, they always tart with ps (PythonScript):
      • Readable within Python (case sensitive):
        • String Var
          • psFileName
          • psFilePath
          • psFileDir
          • psFileSubDir
          • psFileSubDirFirst
          • psFileSubDirLast
          • psFilePath
          • psFileSubPath
          • psFileSubPathFirst
          • psFileSubPathLast
          • psSourcePath
          • psFileChecksum
          • psDestinationID
          • psRuleTempPath
          • psExitCode
          • psVSA
          • psVSB
          • psVSC
          • psVSD
          • psVSE
          • psRFD
          • psRFN
          • psRFW
          • psRFP
          • psQDC
          • psQSC
          • psQST
          • psFSO
          • psSTR
          • psDTR
          • psFCA
          • psFCB
          • psFCC
          • psFCD
          • psFCE
          • psLRT
          • psLCI
        • Integer
          • psDeleteAfterCopy
          • psDirectionID
          • psRuleID
        • Int64
          • psFileSize
          • psCounter
          • psTotalFiles
          • psTotalFilesSrcError
          • psTotalFilesDstError
          • psTotalControlSrcError
          • psTotalControlDstError
          • psCurrentFiles
          • psCurrentFilesSrcError
          • psCurrentFilesDstError
          • psCurrentControlSrcError
          • psCurrentControlDstError
          • psVIA
          • psVIB
          • psVIC
          • psVID
          • psVIE
        • DateTime as Float
          • psFileDateTime
          • psFileADateTime
          • psFileCDateTime
          • psFileMDateTime
      • Writeable within Python (case sensitive):
        • String
          • psVSA
          • psVSB
          • psVSC
          • psVSD
          • psVSE
          • psRFP
          • psRFN
          • psFCA
          • psFCB
          • psFCC
          • psFCD
          • psFCE
        • Integer
          • psExitCode
        • Int64
          • psVIA
          • psVIB
          • psVIC
          • psVID
          • psVIE
          • psTotalFiles
          • psTotalFilesSrcError
          • psTotalFilesDstError
          • psTotalControlSrcError
          • psTotalControlDstError
          • psCurrentFiles
          • psCurrentFilesSrcError
          • psCurrentFilesDstError
          • psCurrentControlSrcError
          • psCurrentControlDstError

     

    • In the following example we added two Python Destinations to a Rule:

    limagito file mover python as destination

    • First Python as Destination show some information about the two Var we will be using: psFileName and psFilePath

    limagito file mover python as destination setup

    • Second Python as Destination will use a file we found in the source to copy it to a Destination

    limagito file mover python as destination setup

    • RunTime Log Result:

    limagito file mover python as destination runtime log result

    If you need any help with this new ‘Python within Limagito’ option, please let us know.

    Best Regards,

    Limagito Team

    #python #managedfiletransfer #filetransfer #filemanagement

    By Limagito-Team Python
SEARCH