-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
Using the NetStandard20 .dlls under thermofisherlsms/RawFileReader/libs/NetStandard20 and on the following platform
Platform Info:
OS: macOS (x86_64-apple-darwin21.4.0)
CPU: 16 × Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
Threads: 1 on 16 virtual cores
I get an error if I do not use the mono runtime. A working example using the mono runtime:
python3> import pythonnet
python3> import clr
python3> clr.AddReference('/Users/n.t.wamsley/Projects/Julia_Testing/ThermoFisher.CommonCore.RawFileReader')
python3> from ThermoFisher.CommonCore.RawFileReader import RawFileReaderAdapter
python3> rawFile = RawFileReaderAdapter.FileFactory("/Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw")
python3> print("Is Open? ", rawFile.IsOpen)
Is Open? True
python3>print("Is Error? ", rawFile.IsError)
Is Error? False
python3> pythonnet.get_runtime_info()
RuntimeInfo(kind='Mono', version='6.12.0.182 (2020-02/6051b710727)', initialized=True, shutdown=False)
This works. However, the following results in an error.
python3> import pythonnet
python3> from pythonnet import load
python3> load("coreclr")
python3> pythonnet.get_runtime_info()
RuntimeInfo(kind='CoreCLR', version='<undefined>', initialized=True, shutdown=False)
import clr
python3> clr.AddReference('/Users/n.t.wamsley/Projects/Julia_Testing/ThermoFisher.CommonCore.RawFileReader')
python3> from ThermoFisher.CommonCore.RawFileReader import RawFileReaderAdapter
python3> rawFile = RawFileReaderAdapter.FileFactory("/Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw")
python3> print("Is Open? ", rawFile.IsOpen)
Is Open? False
python3> print("Is Error? ", rawFile.IsError)
Is Open? True
I can further diagnose as follows.
python3> rawFile.FileError.WarningMessage
'Information: Creating mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\nInformation: Created mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\nInformation: Release mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\nInformation: Close mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\n'
python3> rawFile.FileError.ErrorMessage
' /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw'
Note the leading space prepended to the filename in the error message. I can replicate this same error in the Julia programming language using a package, "DotNET.jl" that provides interop between Julia and Common Language Runtime.
julia> using DotNET
julia> reader = T"System.Reflection.Assembly".LoadFrom(raw"/Users/n.t.wamsley/Projects/Julia_Testing/ThermoFisher.CommonCore.RawFileReader.dll")
julia> rawfilereaderadapter = reader.GetType("ThermoFisher.CommonCore.RawFileReader.RawFileReaderAdapter", true, true)
julia> filefactory = rawfilereaderadapter.GetMethod("FileFactory")
julia> filepath = convert(CLRObject, raw"/Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw")
julia> raw_file = filefactory.Invoke(filefactory, [filepath])
julia> raw_file.FileError.WarningMessage
"Information: Creating mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\nInformation: Created mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\nInformation: Release mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\nInformation: Close mutex for: /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw\n"
julia> raw_file.FileError.ErrorMessage
" /Users/n.t.wamsley/Projects/SAGE_TESTING/MA4358_FFPE_HPVpos_01_071522.raw"
Note again the leading space prepended to the file name. I am not sure what is causing this error, but with python at least, I need mono to use the libraries.
EstrellaXD
Metadata
Metadata
Assignees
Labels
No labels