ืืืืจ ืื ืขืืกืง ื-Python Gateway, ืคืจืืืงื ืงืืืืชื ืืงืื ืคืชืื ืขืืืจ ืคืืืคืืจืืช ืื ืชืื ืื InterSystems IRIS. ืคืจืืืงื ืื ืืืคืฉืจ ืื ืืชืืืจ ืื ืืืืืจืืชืื ืืืืืช ืืืื ื ืฉื ืืฆืจื ื-Python (ืืกืืืื ืืขืืงืจืืช ืขืืืจ ืืืขื ื ื ืชืื ืื ืจืืื), ืืืฉืชืืฉ ืืืกืคืจ ืจื ืฉื ืกืคืจืืืช ืืืื ืืช ืืื ืืืฆืืจ ืืืืืจืืช ืคืชืจืื ืืช AI/ML ืื ืืืืืื ืืกืชืืืื ืจืืืืืืื ืืคืืืคืืจืืช InterSystems IRIS. ืืืืืจ ืื, ืื ื ืืจืื ืื ืืืฆื InterSystems IRIS ืืืืื ืืชืืื ืชืืืืื Python, ืืืฆืข ืืขืืจืช ื ืชืื ืื ืื-ืืืืื ืืช ืืขืืื ืืืืฆืืจ ืชืืืืืื ืขืกืงืืื ืืืืื.
ืชืื ืืช
- ืืืื.
- ืืืื.
- ืืชืงื ื
- ื-API.
- ืืืืืช ืคืขืืื ืืืืืช.
- ืืืืจืช Jupyter.
- ืืกืงื ืืช.
- ืงืืฉืืจืื.
- M.L.Toolkit.
ืืืื
Python ืืื ืฉืคืช ืชืื ืืช ืืจืื ืืืืื ืขื ืืืจื ืืืืืช ืืืชืืงืืช ืืฉืืคืืจ ืคืจืืืืงืืืืืืช ืืคืชืืื ืืงืจืืืืช ืงืื. ืืกืืจืช ืืืืจืื ืื, ืืืืจ ืขื ืืคืฉืจืืืืช ืืฉืืืืฉ ืืฉืคืช Python ืืคืืืคืืจืืช InterSystems IRIS, ืืืฉืจ ืืืืงื ืืขืืงืจื ืฉื ืืืืจ ืื ืืื ืืฉืืืืฉ ื- Python ืืฉืคื ืืืฆืืจื ืืืืฉืื ืืืืืื ืฉื ืืืืืช ืืืื ื.
ืืืืืช ืืืื ื (ML) ืืื ืืืืงื ืฉื ืฉืืืืช ืืื ื ืืืืืืชืืช, ืฉืืชืืื ื ืืืืคืืื ืืช ืืื ืืื ื ืคืชืจืื ืืฉืืจ ืฉื ืืขืื, ืืื ืืืืื ืืชืืืื ืฉื ืคืชืจืื ืืขืืืช ืืืืืช ืจืืืช.
ืืืืืจืืชืืื ืืืืืืื ืฉื ืืืืืช ืืืื ื ืืืคืืื ื ืคืืฆืื ืืืชืจ ืืืืชืจ. ืืฉ ืืื ืกืืืืช ืจืืืช, ืืื ืืื ืืกืชืื ืื ืืืฉืืช, ืคืฉืืืช ืืืฉืืช ืชืืฆืืืช ืืขืฉืืืช. ืืื ืืฆืืจืช ืืืืืื ืฉื ืจืฉืชืืช ืขืฆืืืืช ืื ืืคืืื ืจืฉืชืืช ืขืฆืืื ืื ืืื ืืืืืื ืืืฉื?
ืืืืื ืฉืื, ืืื ืืืื ืืื ืฆืืจื ืืืชืื ืืืืช ืืืคื ืฉืืจืืช ืงืื ืืื ืืืคืขืื ืืืื ืืื, ืืขืืืืืช ืืืฆืืจื ืืืืืฉืื ืฉื ืืืืืื ืืืืืืช ืืงืื ืืช.
ืืืืื ืืชืคืชืืื - ืืขืื ืฉืืื ืื ื ืืืื AI/ML ืืืืืื ื GUI ืืืืืืื, ื ืืืจืช ืื ืืืชืงืืืืช ืฉืจืืื ื ืขื ืืืืงืืช ืจืืืช ืืืจืืช ืฉื ืืขืจืืืช ืืืืข ืืื BI (ืืืชืืืช ืงืื ืืฉืืืืฉ ืืืกืืจืืช ืืคืชืจืื ืืช ื ืืชื ืื ืืืืืจื ืืืืืื ื GUI) . ืืืืื ืืืฆืืจืช AI/ML. ืืืจ ืขืืจื ื ืืช ืฉืื ืืชืืืช ืืงืื ืืืืื ืื ื ืืฉืชืืฉืื ืืืกืืจืืช ืืื ืืืช ืืืืจืื ืฉื ืืืืืื.
ืฉืืคืืจืื ืืืจืื, ืืื ืืืืืืช ืืืคืืฅ ืืืื ืฉืืืืฉืจ ืืจืืฉ ืฉืื ืืฉืชืืฉ ืืงืฆื ืฆืจืื ืคืฉืื ืืกืืื ืืช ืืืืื ืืืืื ืขื ืื ืชืื ืื ืืกืคืฆืืคืืื ืฉืื, ืื ืืงืืื ืขื ืืชืืืช ืืืฉืื ืืืืืช ืืืื ื. ืืืชืงืืืืช ืืืื ืืงืื ืืืจืื ืขื ืืืืื ืืืืืช ืืืื ื, ืื ืขืืืจ ืื ืฉื ืืงืฆืืข ืืื ืขืืืจ ืืืจืืช ืืืื.
ืืฆื ืฉื ื, ืื ืื ื ืืืกืคืื ืืืชืจ ืืืืชืจ ื ืชืื ืื. ืขื ืคืืืคืืจืืช ื ืชืื ืื ืืืืืืช ืืื InterSystems IRIS, ื ืืชื ืืืืื ืืช ืื ืืืืืข ืืื ืืืืคื ืืืืื ืืืืฉืชืืฉ ืื ืืงืื ืขืืืจ ืืืืืื ืฉื ืืืืืช ืืืื ื.
ืขื ืืืขืืจ ืืขื ื, ืืฉืงืช ืคืจืืืงืื AI/ML ืงืื ืืื ืคืขื. ืื ืื ื ืืืืืื ืืฆืจืื ืจืง ืืช ืืืฉืืืื ืฉืื ืื ื ืฆืจืืืื. ืืชืจื ืืื, ืืืืืช ืืืงืืื ืฉืืฆืืขืืช ืคืืืคืืจืืืช ืขื ื, ืื ื ืืืืืื ืืืกืื ืืืืื ืืื.
ืืื ืื ืืืื ืชืืฆืืืช? ืืื ืืืืจืื ืืกืชืืืื ืืืชืจ. ืืฉื ื ืืืื ืจืืื ืืื ืืืช ืืืืืื, ืขืืืื ืืืื ืืืืฉื. ืื ืงื ืืื ืืช ืืืื ืืื, ืืื ืื ืืืื? ืืืจืืืื ืืืฉืืืืฉ ืืืืื ืขื ืืื ืขืกืง ืืื ืื ืืฉืืื ืื ืืจืืืืืืืืช. ืฉืืจืฉ ืืืขืื ืืื ืืืคืจืื ืืื ืขืืืกื ืขืืืื ืื ืืืืืื ืืืจื ืืงืฆืืืช ืืืืืืื ืฉื ื ืชืื ืื. ืืืฉืจ ืื ื ืืืื ืื ืืืื, ืื ื ืืืจื ืืื ืขืืฉืื ืืืช ืขื ืกืื ื ืชืื ืื ืืืกืืืจืืื. ืืื ืืืงืื ืืืืื ืฉื ืื ื ืืื ืืขืืืื ื ืชืื ืื ืขืกืงื. ืื ืืืืื ืืืื ืืืืชืจ ืืืืืื ืขืกืงืืืช ืืื ืื ืื โโื ืจืืฅ ืืืชื ืคืขื ืืืื? ืืจืืืื ืืืจ ืืฆืื ืขื ืืืกืฃ. ืื ืื ื ืฆืจืืืื ืืืืฉืืจ ืืช ืืืืื ืขื ื ืชืื ืื ืืืกืืืจืืื, ืืื ืื ืื ื ืฆืจืืืื ืื ืืืืฉื ืืืชื ืืืื ืืืช ืขื ื ืชืื ืื ื ืื ืกืื ืืืฉืื ืืื ืฉืืชืืืืืื ืืขืกืงืืื ืฉืื ื ืืืืื ืืคืขืื ืขื ืคื ืืชืืืืืช ืฉืืืืฆืขืืช ืขื ืืื ืืืืื.
ML Toolkit ืืื ืขืจืืช ืืืื ืฉืขืืฉื ืืืืืง ืืช ืื: ืืงืจื ืืืืืื ืืกืืืื ืขืกืงื ืื ืฉื ืืชื ืืืื ืืืฉืชืืฉ ืืงืืืช ืืืืืืื ืฉืืชื ืืื ื ืืฉืืจืืช ืืชืืืืืื ืืขืกืงืืื ืฉืื. Python Gateway ืืื ืืืง ื-ML Toolkit ืืืกืคืง ืืื ืืืจืฆืื ืขื ืฉืคืช Python (ืืืืื ื-R Gateway, ืืืืชื ืืืง ื-ML Toolkit ืืกืคืง ืืื ืืืจืฆืื ืขื ืฉืคืช R).
ืขืจืืช ืืืื
ืืคื ื ืฉื ืืฉืื, ืืจืฆืื ื ืืชืืจ ืืื ืืืื ืืกืคืจืืืช ืฉื Python ืฉื ืฉืชืืฉ ืืื ืืืืืจ ืืืชืจ.
ืืื ืืืืืื
- Python ืืื ืฉืคืช ืชืื ืืช ืืคืืจืฉืช, ืืฉืืืืฉ ืืืื, ืืจืื ืืืืื. ืืืชืจืื ืืขืืงืจื ืฉื ืืฉืคื ืืื ืกืคืจืืื ืืืืื ืฉื ืกืคืจืืืช ืืชืืืืืช, ML ื-AI. ืืื ObjectScript, ืื ืฉืคื ืืื ืื ืขืฆืืื, ืืื ืืื ืืืืืจ ืืืืคื ืืื ืื, ืื ืกืืื. ืื ืืื ืืื ืืคืฅ. ืืืืจืื ืืืืืจืื ืืืชืจ ืื ืืืื ืืืืจืืช ืืืืคืช ืขื ืืฉืคื. ืื ืืชื ืจืืฆื ืืืชืืื ืืืืื, ืื ื ืืืืืฅ ืืืชืืื ืขื
ืชืืขืื . - ืืชืจืืืืื ืืืืื ืฉืื ื, ืืืืจ
Python 3.6.7 64 ืกืืืืืช . - IDE: ืื ื ืืฉืชืืฉ
ืคืืืฆ 'ืจื , ืืื ืืืืคื ืืืืะผะฝะพะณะพ . ืื ืืชื ืืฉืชืืฉ ื-Atelier, ืืฉ ืชืืกืฃ Eclipse ืืืคืชืื Python. ืื ืืชื ืืฉืชืืฉ ืืงืื VS, ืื ืืฉ ืืจืืื ืขืืืจ Python. - ืืืืจืช: ืืืงืื IDE, ืืชื ืืืื ืืืชืื ืืืฉืชืฃ ืืช ืืกืงืจืืคืืื ืฉืื ืืืืืจืืช ืืงืืื ืืช. ืืคืืคืืืจื ืฉืืื ืืื
ืืืคืืืจ .
ืกืคืจืืืช
ืื ื ืจืฉืืื (ืืืงืืช) ืฉื ืกืคืจืืืช ืืืืืช ืืืื ื:
ืืืืืื - ืืืืื ืืกืืกืืช ืืืืฉืืืื ืืืืืงืื.ืคื ืืืช - ืืื ื ื ืชืื ืื ืืขืื ืืืฆืืขืื ืืืืืื ืืืื ื ืืชืื ื ืชืื ืื.ืืืคืืืืืื - ืืฆืืจืช ืชืจืฉืืืื.ืืืื ืื - ืืืืืืช ื ืชืื ืื ืืืืืกืกืช ืขื matplotlib.ืกืงืืจื - ืฉืืืืช ืืืืืช ืืืื ื.XGBoost - ืืืืืจืืชืืื ืฉื ืืืืืช ืืืื ื ืืืกืืจืช ืืชืืืืืืืืืช ื- Gradient Boosting.ืื ืกืื - NLP.ืงืจืก - ืจืฉืชืืช ืขืฆืืืืช.ืืจืืืช ืืชืืื ืืื ืคืืืคืืจืื ืืืฆืืจืช ืืืืืื ืฉื ืืืืืช ืืืื ื.PyTorch ืืื ืคืืืคืืจืื ืืืฆืืจืช ืืืืืื ืฉื ืืืืืช ืืืื ื ืืืชืืงืืื ื-Python.ื ืืืงื - PMML ืืืืืื ืฉืื ืื.
ืืื ืืืืืืืช AI/ML ืืืคืืืช ืืช ืืขืกืง ืืืขืื ืืืชืจ ืื ืืชื ืืืชืืื. ืืชืจื ืืื, ืืืื ืืืื ืืืืืืืช ืืืื ืืืคืืืช ืงืืืช ืืืชืจ ืืคืืชืื ืืืืฉืื. ืืชืื ืืืืื ืขื ืืื ืืืืืืืช AI/ML ืืืืฆื ืื ืืืืืืช ืืขืืืจ ืืืจืืื ืฉืื ืืฆืืื.
ืืชืงื ื
ืืฉื ื ืืกืคืจ ืืจืืื ืืืชืงืื ืืืืฉืชืืฉ ื- Python Gateway:
- Less
- Windows
- ืืื ืืงืก
- Mac
- ืกึทืึธืจ
- ืืฉืชืืฉ ืืชืืื ื ื- DockerHub
- ืฆืืจ ืืจืื ืืฉืื
ืืื ืงืฉืจ ืืฉืืืช ืืืชืงื ื, ืชืืืงืง ืืงืื ืืืงืืจ. ืืืงืื ืืืืื ืืืืจืื ืืช ืืงืื ืืื
Less
ืื ืืชื ืืชืงืื ืืช Python Gateway ืขื ืืขืจืืช ืืคืขืื, ืชืืืื (ืืื ืงืฉืจ ืืืขืจืืช ืืืคืขืื) ืชืฆืืจื ืืืชืงืื ืืช Python. ืืื:
ืืชืงื ืืช Python 3.6.7 64 ืกืืืืืช . ืืืืืฅ ืืืชืงืื ืืช Python ืืกืคืจืืืช ืืจืืจืช ืืืืื.- ืืชืงื ืืช ืืืืืื
dill
:pip install dill
. - ืืืจื ืืช ืงืื ObjectScript (ืืืืืจ.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)
) ืืื ืืืืจ ืขื ืืืฆืจืื. ืืืงืจื ืฉืืชื ืจืืฆื ืืืืจ ืงืืื ืฉืืชืืื ืืืคืงืืช, ืืคืขื:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)
. - ืืงืื
ืืกืืจ DLL/SO/DYLIB ืืชืืงืืืbin
ืืืคืข InterSystems IRIS ืฉืื. ืงืืืฅ ืืกืคืจืืื ืืืื ืืืืืช ืืืื ืื ืชืื ืืืืืืจ ืขื ืืืwrite ##class(isc.py.Callout).GetLib()
.
Windows
- ืืื ืฉืืฉืชื ื ืืกืืืื ืืื
PYTHONHOME
ืืฆืืืข ืขื ืคืืืชืื 3.6.7. - ืืื ืฉืืฉืชื ื ืกืืืืช ืืืขืจืืช ืืื
PATH
ืืืื ืืฉืชื ืPYTHONHOME
(ืื ืืกืคืจืืื ืฉืืื ืืคื ื ืืืื).
ืืื ืืงืก (ืืืืื/ืืืืื ืื)
- ืืืืง ืื ืืฉืชื ื ืืกืืืื ืืื
PATH
ืืืื/usr/lib
ะธ/usr/lib/x86_64-linux-gnu
. ืืฉืชืืฉ ืืงืืืฅ/etc/environment
ืืื ืืืืืืจ ืืฉืชื ื ืกืืืื. - ืืืงืจื ืฉื ืืขืืืืช
undefined symbol: _Py_TrueStruct
ืืืืืืจ ืืช ืืืืืจืPythonLib
. ืื ืืชืงืจื ืืืชื ืืฉ ืกืขืืฃ ืคืชืจืื ืืขืืืช.
Mac
- ืืจืืข ืจืง python 3.6.7 ื ืชืื ื
python.org . ืกืื ืืฉืชื ืPATH
.
ืื ืฉืื ืืชื ืืฉืชื ื ืกืืืื, ืืคืขื ืืืืฉ ืืช ืืืฆืจ InterSystems.
ืกึทืึธืจ
ืืฉืืืืฉ ืืืืืืื ืืฉ ืืกืคืจ ืืชืจืื ืืช:
- ืึดืึทืืึฐืืึผืช
- ืืคืงืืืืืืช
- ืืืืื
- ืงึฐืึดืืืึผืช
- ืืืกืจ ืฉืื ืื
ืืืืง ืืช ืื
ืื ืืื ืืื ืฉื Python Gateway ืืืืกืกืช ืืจืืข ืขื ืืืื. 2019.4
.
ืชืืื ื ืืืื ื
ืึธืจืึผืฅ: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latest
ืืืืจืื ืืืืคืขืื ืืช Python Gateway ืขื InterSystems IRIS Community Edition. ืื ืืื.
ืฆืืจ ืืจืื ืืฉืื
ืืื ืืื ืืช ืชืืื ืช docker, ืืคืขื ืืฉืืจืฉ ืืืืืจ: docker build --force-rm --tag intersystemscommunity/irispy:latest .
.
ืืืจืืจืช ืืืื, ืืชืืื ื ืื ืืื ืขื ืกืื ืืชืืื ื store/intersystems/iris-community:2019.4.0.383.0
, ืขื ืืืช ืืชื ืืืื ืืฉื ืืช ืืืช ืขื ืืื ืืืืจืช ืืืฉืชื ื IMAGE
.
ืืื ืืื ืืช ื-InterSystems IRIS ืืจืฅ: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.
ืืืืจ ืืื, ืืชื ืืืื ืืืคืขืื ืืช ืชืืื ืช ื-docker:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.key
ืื ืืชื ืืฉืชืืฉ ืืชืืื ื ืืืืืกืกืช ืขื InterSystems IRIS Community Edition, ืืื ื ืฆืจืื ืืฆืืื ืืคืชื.
ืชืืืืืช
- ืชืืืื ืืืืงื
isc.py.test.Process
ืฉืืืจ ืืกืคืจ ืชืืื ืืช ืืกืคืจืืื ืืื ืืช. ืืืชืื ืฉืชืจืฆื ืืฉื ืืช ืืช ืื ืชืื ืืื ืืกืคืจืืื ืืืชืงื ืช. ืืื ืืขืฉืืช ืืืช, ืขืจืื ืืช ืืืืืจืWorkingDir
ืฆืืื ืืกืคืจืืื ืืืืชืงื ืช. - ืืื ืืืฉืช ืืืกืืฃ, ืืคืขื:
docker exec -it irispy sh
. - ืืืฉื ืืคืืจืื ื ืืืื ืืืขืจืืช ืืืืฆืขืืช ืืชืืืจืืช
SuperUser
/SYS
. - ืืื ืืขืฆืืจ ืืืื, ืืคืขื:
docker stop irispy && docker rm --force irispy
.
ืืืืงืช ืืืชืงื ื
ืืืืจ ืืชืงื ืช Python Gateway, ืืืื ืืืืืง ืฉืืื ืขืืื. ืืคืขื ืืช ืืงืื ืืื ืืืกืืฃ IRIS ืฉื InterSystems:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
ืืชืืฆืื ืฆืจืืื ืืืืืช HELLO
- ืืขืจื ืฉื ืืืฉืชื ื Python x
. ืื ืืฆื ืืืืืจื sc
ืืื ืืขืืช ืื var
ืจืืง, ืืืืง
API
Python Gateway ืืืชืงื ืืืืืชืช ืฉืืื ืขืืื. ืืืืข ืืืื ืืืชืืื ืืืฉืชืืฉ ืื!
ืืืืฉืง ืืขืืงืจื ืืคืืืชืื ืืื isc.py.Main
. ืืื ืืฆืืข ืืช ืงืืืฆืืช ืืฉืืืืช ืืืืืช (ืืืื ืืืืจืืช %Status
):
- ืืืฆืืข ืงืื
- ืืขืืจืช ื ืชืื ืื
- ืขืืจ
ืืืฆืืข ืงืื
ืฉืืืืช ืืื ืืืคืฉืจืืช ืื ืืืฆืข ืงืื Python ืฉืจืืจืืชื.
SimpleString
SimpleString
ืืื ืืฉืืื ืืขืืงืจืืช. ืื ืืืจืฉ 4 ืืจืืืื ืืื ืืืคืฆืืื ืืืื:
code
ืืื ืฉืืจืช ืืงืื ืืืืฆืืข. ืชื ืืื ืช ืฉืืจื:$c(10)
.returnVariable
ืืื ืฉื ืืืฉืชื ื ืฉืืฉ ืืืืืืจ.serialization
- ืืื ืืขืฉืืช ืกืืจืreturnVariable
. 0 - ืืืจืืืช (ืืจืืจืช ืืืื), 1 - repr.result
- ืืชืืืืกืืช ByRef ืืืฉืชื ื ืื ืืขืจื ืืชืืreturnVariable
.
ืืืขืื ืขืฉืื ื:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
ืืืืืื ืื, ืื ื ืืงืฆืื ืืืฉืชื ื Python x
ะทะฝะฐัะตะฝะธะต Hello
ืืจืืฆืื ืืืืืืจ ืืช ืืขืจื ืฉื ืืฉืชื ื Python x
ืืืฉืชื ื ObjectScript var
.
ExecuteCode
ExecuteCode ืืื ืืืืคื ืืืืื ืืืชืจ ืืคืืืช ืืืืืื SimpleString
.
ืฉืืจืืช ืืคืืืคืืจืืช InterSystems IRIS ืืืืืืืช ื-3 ืชืืืื, ืืื ืืจืฆืื ื ืืืฆืข ืงืืข ืงืื ืืจืื ืืืชืจ, ืขืืื ืืืฉืชืืฉ ืืืจืืื.
ืฆืจืื ืฉื ื ืืืขืื ืื:
code
- ืืืจืืืช ืื ืืจื ืฉื ืงืื Python ืืืืฆืืข.variable
- (ืืืคืฆืืื ืื) ืืงืฆื ืืช ืชืืฆืืช ืืืืฆืืขcode
ืืฉืชื ื Python ืืื.
ืืฆืืข ืืืฉืชืืฉ ื:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
ืืืืืื ืื, ืื ื ืืืคืืืื 2 ื-3 ืืืืืกื ืื ืืช ืืชืืฆืื ืืืฉืชื ื Python y
.
ืืขืืจืช ื ืชืื ืื
ืืขืืจ ื ืชืื ืื ืื ืคืืืชืื ืืืื ื.
Python -> InterSystems IRIS
ืืฉื ื 4 ืืจืืื ืืงืื ืืช ืืขืจื ืฉื ืืฉืชื ื Python ื-InterSystems IRIS, ืืืชืื ืืกืืืจื ืืืจืืฉื ืื:
String
ืขืืืจ ืกืืื ื ืชืื ืื ืคืฉืืืื ืืืืชืืจ ืืืืื.Repr
ืืืืกืื ืืคืฆืื ืคืฉืืืื ืืืืชืืจ ืืืืื.JSON
ืขืืืจ ืื ืืคืืืฆืื ืงืื ืฉื ื ืชืื ืื ืืฆื InterSystems IRIS.Pickle
ืืฉืืืจ ืืคืฆืื.
ืฉืืืืช ืืื ืืืคืฉืจืืช ืื ืืงืื ืืฉืชื ืื ื-Python ืืืืจืืืช ืื ืืืจืืื.
GetVariable(variable, serialization, .stream, useString)
- ืืงืืserialization
ืืฉืชื ืvariable
ะฒstream
. ืืuseString
ืืื 1 ืืืกืืจื ืืืืงืืช ืืืืจืืืช, ืืื ืืืจืืืช ืืืืืจืช, ืื ืืจื.GetVariableJson(variable, .stream, useString)
- ืงืื ืกืืจืช JSON ืฉื ืืฉืชื ื.GetVariablePickle(variable, .stream, useString, useDill)
-ืงืื ืกืืืจืช ืืืืฆืื (ืื ืฉืืืจ) ืฉื ืืฉืชื ื.
ืืืื ื ื ืกื ืืงืื ืืช ืืืฉืชื ื ืฉืื ื y
.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
ืืขืื ืช ื ืชืื ืื ื-InterSystems IRIS ืืชืื Python.
ExecuteQuery(query, variable, type, namespace)
- ืืืฆืจ ืืขืจื ื ืชืื ืื (ืคื ืืืชdataframe
ืืlist
) ืืฉืืืืชืช sql ืืืืืจ ืืืชื ืืืฉืชื ื pythonvariable
. ืฉืงืืช ืคืืกืืืงisc.py
ืฆืจืื ืืืืืช ืืืื ืืืืืจnamespace
- ืืืงืฉื ืชืืืฆืข ืฉื.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)
- ืืืขื ื ืชืื ืื ืืืืืืืืglobal
ืืชืื ืื ืืstart
ะดะพend
ื-Python ืืืฉืชื ื ืกืืtype
:list
, ืื ืคื ืืืชdataframe
. ืชืืืืจ ืฉื ืืจืืืื ืืื ืืืคืฆืืื ืืืืmask
ืlabels
ืืืื ืืชืืขืื ืืืืืงื ืืืืืืจืืกืืื ืืขืืจืช ื ืชืื ืื .ExecuteClass(class, variable, type, start, end, properties, namespace)
- ืืืขื ื ืชืื ื ืืืชืclass
ื-idstart
ะดะพend
ื-Python ืืืฉืชื ื ืกืืtype
:list
, ืื ืคื ืืืชdataframe
.properties
- ืจืฉืืื (ืืืคืจืืช ืืคืกืืง) ืฉื ืืืคืืื ื ืืืืงื ืฉืืฉ ืืืขืื ืืืขืจื ืื ืชืื ืื. ืืกืืืช ื ืชืืืืช*
ะธ?
. ืืจืืจืช ืืืื -*
(ืื ืื ืืกืื). ืชืืื ื%%CLASSNAME
ืืชืขืืื.ExecuteTable(table, variable, type, start, end, properties, namespace)
- ืืืขื ื ืชืื ื ืืืืtable
ื-idstart
ะดะพend
ืืคืืชืื.
ExecuteQuery
- ืืื ืืืจืกืื (ืื ืฉืืืืชืช SQL ืืืงืืช ืชืืขืืจ ืืคืืืชืื). ืืืจืืช ืืืช, ExecuteGlobal
ืืืขืืืคืืช ืฉืื ExecuteClass
ะธ ExecuteTable
ืืขืืื ืขื ืืกืคืจ ืืืืืืช. ืื ืืจืื ืืืชืจ ืืืืจืื (ืคื 3-5 ืืืจ ืืืชืจ ืืืืจืืืจ ืฉื ODBC ืืคื 20 ืืืจ ืืืชืจ ืืืฉืจ ExecuteQuery
). ืืืืข ื ืืกืฃ ื
ืื ืืฉืืืืช ืืืื ืชืืืืืช ืืืขืืจืช ื ืชืื ืื ืืื ืืืืจ. ืฉืงืืช ืคืืกืืืง isc.py
ืืืื ืืืืืช ืืืื ืืืืืจ ืืืขื.
ืืืฆืข ืฉืืืืชื
ExecuteQuery(request, variable, type, namespace)
- ืืขืืจืช ืืชืืฆืืืช ืฉื ืื ืฉืืืืชืช SQL ืืืงืืช ืืคืืืชืื. ืืืื ืฉืืืช ืืขืืจืช ืื ืชืื ืื ืืืืืืช ืืืืชืจ. ืืฉืชืืฉ ืื ืื ExecuteGlobal
ืืืขืืืคืืช ืฉืื ืืื ื ืืืื ืืช.
ืืขื ืืช:
query
- ืฉืืืืชืช sql.variable
- ืฉื ืืืฉืชื ื Python ืฉืื ืื ืชืื ืื ืืชืืืื.type
-list
ืื ืคื ืืืชdataframe
.namespace
- ืืืืืจ ืื ืชืืืฆืข ืืืงืฉื.
ืืฆืข ืืืืื
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace)
- ืืขืืจืช ืืืืื ืืคืืืชืื.
ืืขื ืืช:
global
ืืื ืฉืื ืฉื ืืืืืืื ืืื^
variable
- ืฉื ืืืฉืชื ื Python ืฉืื ืื ืชืื ืื ืืชืืืื.type
-list
ืื ืคื ืืืชdataframe
.start
- ืืื ืื ืืจืืฉืื ืฉื ืืืืืืื. ืืืืจื%Integer
.end
ืืื ืืื ืื ืืืืจืื ืฉื ืืืืืืื. ืืืืจื%Integer
.mask
- ืืกืืช ืขืจืืื ืืืืืืืื. ืืืกืื ืืืืื ืืืืืช ืงืฆืจื ืืืชืจ ืืืกืคืจ ืืฉืืืช ืืืืืืื (ืืืงืจื ืื ืืืืื ืขื ืืฉืืืช ืืกืืฃ). ืืืฆื ืืขืฆื ืืช ืืืกืื:+
ืืืขืืืจ ืืช ืืขืจื ืืคื ืฉืืื.-
ืืืืื ืขื ืขืจื.b
- ืกืื ืืืืืื ื (0
-False
, ืื ืืฉืืจ -True
).d
- ืชืืจืื (ื-$horolog, ื-Windows ื-1970, ื-Linux ื-1900).t
- ืืื ($ืืืจืืื, ืฉื ืืืช ืืืจื ืืฆืืช).m
โ ืืืชืืช ืืื (ืืืจืืืช ืคืืจืื ืฉื ื-ืืืืฉ-ืืื ืฉืขื:ืืงื:ืฉื ืื).
labels
- %ืจืฉืืืช ืฉืืืช ืืขืืืืืช. ืืืืื ื ืืจืืฉืื ืืื ืฉื ืืื ืื.namespace
- ืืืืืจ ืื ืชืืืฆืข ืืืงืฉื.
ExecuteClass
ืืขืืืฃ ืืขื ExecuteGlobal
. ืืืื ืฉืืื ืขื ืกืื ืืืืจืช ืืืืืงื ExecuteGlobal
ืืงืืจื ืื.
ExecuteClass(class, variable, type, start, end, properties, namespace)
- ืืขืืจืช ื ืชืื ื ืืืืงื ืืคืืืชืื.
ืืขื ืืช:
class
- ืฉื ืืืืชืvariable
- ืฉื ืืืฉืชื ื Python ืฉืื ืื ืชืื ืื ืืชืืืื.type
-list
ืื ืคื ืืืชdataframe
.start
- ืืืื ืืชืืื.end
- ืืืืื ืกืืคืproperties
- ืจืฉืืื (ืืืคืจืืช ืืคืกืืง) ืฉื ืืืคืืื ื ืืืืงื ืฉืืฉ ืืืขืื ืืืขืจื ืื ืชืื ืื. ืืกืืืช ื ืชืืืืช*
ะธ?
. ืืจืืจืช ืืืื -*
(ืื ืื ืืกืื). ืชืืื ื%%CLASSNAME
ืืชืขืืื.namespace
- ืืืืืจ ืื ืชืืืฆืข ืืืงืฉื.
ืื ืืืืคืืื ืื ืืืขืืจืื ืืคื ืฉืื ืืืขื ืืืคืืื ื ืกืื %Date
, %Time
, %Boolean
ะธ %TimeStamp
- ืื ืืืืจืื ืืืืืงืืช Python ืืืชืืืืืช.
ExecuteTable
ืืขืืืฃ ืืขื ExecuteClass
. ืืชืจืื ืืช ืฉื ืืืืื ืืฉื ืืืืงื ืืงืืจื ExecuteClass
. ืึฒืชึดืืึธื:
ExecuteTable(table, variable, type, start, end, properties, namespace)
- ืืขืืจืช ื ืชืื ื ืืืื ืืคืืืชืื.
ืืขื ืืช:
table
- ืฉื ืฉืืืื.
ืื ืฉืืจ ืืืืขืื ืื ืืืขืืจืื ืืคื ืฉืื.ExecuteClass
.
ืืขืจืืช
ExecuteGlobal
,ExecuteClass
ะธExecuteTable
ืืขืืื ืืืืชื ืืืื.ExecuteGlobal
ืืืจ ืคื 20 ืืืฉืจExecuteQuery
ืขื ืืขืจืื ื ืชืื ืื ืืืืืื (ืืื ืืขืืจื >0.01 ืฉื ืื).ExecuteGlobal
,ExecuteClass
ะธExecuteTable
ืขืืืื ืขื ืืืืืืื ืขื ืืืื ื ืืื:^global(key) = $lb(prop1, prop2, ..., propN)
ืืืคืkey
ืืื ืืกืคืจ ืฉืื.- ืขืืืจ
ExecuteGlobal
,ExecuteClass
ะธExecuteTable
ืืืื ืขืจืืื ื ืชืื%Date
ืืชืืื ืืืืืmktime
ืืชืืื ืืืขืจืืช ืืืคืขืืืืืื ืืช : 1970-01-01,ืืื ืืงืก 1900-01-01,ืืง ). ืืืฉืชืืฉ%TimeStamp
ืืืขืืืจ ื ืชืื ืื ืืืืฅ ืืืืื ืืื ืื ืืืฉืชืืฉ ื-pandas dataframe as ืืืืื ืื ืืื ืจืง ืขืืืจ ืืจืฉืืื. - ืขืืืจ
ExecuteGlobal
,ExecuteClass
ะธExecuteTable
ืื ืืืจืืืื ืืื ืืืื ืืงืืจ ืื ืชืื ืื (ืืืืื, ืืืืงื ืื ืืืื) ืืืืฉืชื ื ืื ืืืคืฆืืื ืืืื.
ืืืืืืืช
ืฉืืขืืจ ืืืื
set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"
// ะะฑัะธะต ะฐัะณัะผะตะฝัั
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)
// ะกะฟะพัะพะฑ 0: ExecuteGlobal ะฑะตะท ะฐัะณัะผะตะฝัะพะฒ
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)
// ะกะฟะพัะพะฑ 1: ExecuteGlobal ั ะฐัะณัะผะตะฝัะฐะผะธ
// ะัะธ ะฟะตัะตะดะฐัะต ะณะปะพะฑะฐะปะฐ ะฝะฐะทะฒะฐะฝะธั ะฟะพะปะตะน ะทะฐะดะฐัััั ะฒัััะฝัั
// globalKey - ะฝะฐะทะฒะฐะฝะธะต ัะฐะฑััะบัะธะฟัะฐ
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")
// mask ัะพะดะตัะถะธั ะฝะฐ 1 ัะปะตะผะตะฝั ะผะตะฝััะต ัะตะผ labels ะฟะพัะพะผั ััะพ "globalKey" - ะฝะฐะทะฒะฐะฝะธะต ัะฐะฑัะบะธะฟัะฐ
// ะัะพะฟััะบะฐะตะผ %%CLASSNAME
set mask = "-+dmt+++b"
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)
// ะกะฟะพัะพะฑ 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)
// ะกะฟะพัะพะฑ 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)
// ะกะฟะพัะพะฑ 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)
ืฉืืืช ืฉืืื do ##class(isc.py.test.Person).Test()
ืืื ืืจืืืช ืืืฆื ืคืืขืืืช ืื ืฉืืืืช ืืขืืจืช ืื ืชืื ืื.
ืฉืืืืช ืขืืืจ
GetVariableInfo(variable, serialization, .defined, .type, .length)
- ืืงืื ืืืืข ืขื ืืืฉืชื ื: ืืื ืืื ืืืืืจ, ืืืืงื ืืืืจื ืกืืจื.GetVariableDefined(variable, .defined)
- ืืื ืืืฉืชื ื ืืืืืจ.GetVariableType(variable, .type)
- ืงืืื ืืช ืืืืืงื ืฉื ืืืฉืชื ื.GetStatus()
- ืงืื ืืืกืจ ืืช ืืืจืื ืืืืจืื ืืฆื Python.GetModuleInfo(module, .imported, .alias)
- ืงืื ืืฉืชื ื ืืืืื ืืืฆื ืืืืื.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)
- ืืงืื ืืืืข ืขื ืืคืื ืงืฆืื.
ืืืืืช ืคืขืืื ืืืืืช
ืืืืช ืืื ืืงืจืื ื-Python Gateway ืืืืกืืฃ, ืขืืฉืื ืืืื ื ืชืืื ืืืฉืชืืฉ ืื ืืืืฆืืจ. ืืืกืืก ืืืื ืืจืืงืฆืื ืขื Python ืืืฆื ืื ืืื isc.py.ens.Operation
. ืื ืืืคืฉืจ ืื ื:
- ืืคืขื ืืช ืงืื Python
- ืฉืืืจ/ืฉืืืจ ืืช ืืืงืฉืจ ืฉื Python
- ืืขื ืืงืื ื ืชืื ืื ื-Python
ืืขืฆื, ืคืขืืืช Pyhton ืืื ืขืืืคื isc.py.Main
. ืืืฆืข isc.py.ens.Operation
ืืืคืฉืจ ืืื ืืจืืงืฆืื ืขื ืชืืืื Python ืืืืฆืจื InterSystems IRIS. ืืืฉ ืืงืฉืืช ื ืชืืืืช:
isc.py.msg.ExecutionRequest
ืืื ืืืคืขืื ืืช ืงืื Python. ืืืืจืืชisc.py.msg.ExecutionResponse
ืขื ืชืืฆืืช ืืืืฆืืข ืืืขืจืืื ืฉื ืืืฉืชื ืื ืืืืืงืฉืื.isc.py.msg.StreamExecutionRequest
ืืื ืืืคืขืื ืืช ืงืื Python. ืืืืจืืชisc.py.msg.StreamExecutionResponse
ืชืืฆืืช ืืืืฆืืข ืืืขืจืืื ืฉื ืืืฉืชื ืื ืืืืืงืฉืื. ืื ืืืืisc.py.msg.ExecutionRequest
, ืืื ืืงืื ืืืืืืจ ืืจืืื ืืืงืื ืืืจืืืืช.isc.py.msg.QueryRequest
ืืืขืืจืช ืืชืืฆืื ืฉื ืืืฆืืข ืฉืืืืชืช SQL. ืืืืจืืชEns.Response
.isc.py.msg.GlobalRequest
/isc.py.msg.ClassRequest
/isc.py.msg.TableRequest
ืืืขืืืจ ื ืชืื ืื ืืืืืืืื/ืืืืงืืช/ืืืื. ืืืืจืืชEns.Response
.isc.py.msg.SaveRequest
ืืื ืืฉืืืจ ืืช ืืืงืฉืจ ืฉื Python. ืืืืจืืชEns.StringResponse
ืขื ืืืื ืืงืฉืจ.-
isc.py.msg.RestoreRequest
ืืื ืืฉืืืจ ืืช ืืืงืฉืจ ืฉื Python.ืื ืืกืฃ,
isc.py.ens.Operation
ืืฉ ืฉืชื ืืืืจืืช:Initializer
- ืืืืจืช ืืืืงื ืืืืืฉืืช ืืช ืืืืฉืงisc.py.init.Abstract
. ื ืืชื ืืืฉืชืืฉ ืื ืืื ืืืขืื ืคืื ืงืฆืืืช, ืืืืืืื, ืืืืงืืช ืืืืืื. ืื ืืืืฆืข ืคืขื ืืืช ืืฉืืชืืืื ืืชืืื.PythonLib
- (ืืื ืืงืก ืืืื) ืื ืืชื ืจืืื ืฉืืืืืช ืืชืืื, ืืืืจ ืืช ืืขืจื ืฉืื ืlibpython3.6m.so
ืื ืืคืืื ืื ืชืื ืืืื ืืกืคืจืืืช Python.
ืืฆืืจืช ืชืืืืืื ืขืกืงืืื
ืืฉื ื ืฉื ื ืฉืืขืืจืื ืืืื ืื ืืืงืืื ืขื ืคืืชืื ืชืืืืืื ืขืกืงืืื:
isc.py.ens.ProcessUtils
ืืืคืฉืจ ืื ืืืืฅ ืืขืจืืช ืืคืขืืืืืืช ืขื ืืืืคืช ืืฉืชื ื.isc.py.util.BPEmulator
ืืงื ืขื ืืืืงืช ืชืืืืืื ืขืกืงืืื ืขื Python. ืื ืืืื ืืืฆืข ืชืืืื ืขืกืงื (ืืืงื Python) ืืชืืืื ืื ืืืื.
ืืืืคื ืืฉืชื ื
ืื ืืชืืืืืื ืืขืกืงืืื ืงืืืื ืืืจืืฉื isc.py.ens.ProcessUtils
, ืืืื ืืืฉืชืืฉ ืืฉืืื GetAnnotation(name)
ืืื ืืงืื ืืช ืืขืจื ืฉื ืืขืจืช ืคืขืืืืช ืืคื ืฉืื. ืืขืจืช ืืคืขืืืืช ืขืฉืืื ืืืืื ืืฉืชื ืื ืฉืืืขืจืื ืืฆื InterSystems IRIS ืืคื ื ืฉืืืขืืจ ืืคืืืชืื. ืืืื ืืชืืืืจ ืืืืืคืช ืืฉืชื ืื:
${class:method:arg1:...:argN}
- ืงืจืืืช ืฉืืื#{expr}
- ืืฆืข ืงืื ืืฉืคืช ObjectScript.
ืืืืื ืืืื ื ืืชืืืื ืืขืกืงื ืืืืื isc.py.test.Process
, ืืืฉื, ืืคืขืืืืช Correlation Matrix: Graph
: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')
. ืืืืืื ืื:
#{process.WorkDirectory}
ืืืืืจื ืืช ืืืืคืืื WorkDirectory ืฉื ืืืืืืืงืprocess
, ืฉืืื ืืืคืข ืฉื ืืืืืงืisc.py.test.Process
ืึธืึตื. ืชืืืื ืขืกืงื ื ืืืื.${%PopulateUtils:Integer:1:100}
ืงืืจื ืฉืืืInteger
ืืืชื%PopulateUtils
, ืืขืืจืช ืืืขืื ืื1
ะธ100
, ืืืืจืช ืืกืคืจ ืฉืื ืืงืจืื ืืืืื1...100
.
ืืืืงืช ืชืืืื ืขืกืงื
ืืืฆืืจ ืืืืืงื ืืชืืืื ืขืกืงื ืืืืืงื ืืืื ืื ืืืจืืจืช ืืืื ืืืืง ืืฉืขืจ Python. ืืื ืืืฉืชืืฉ ืืื:
- ืืคืขืืช ืืกืืฃ ืืขืจืืช ืืืคืขืื:
pip install pandas matplotlib seaborn
. - ืืืกืืฃ IRIS ืฉื InterSystems, ืืคืขื:
do ##class(isc.py.test.CannibalizationData).Import()
ืืื ืืืืืก ื ืชืื ื ืืืืงื. - ืืฉืงืช ืืืฆืจืื
isc.py.test.Production
. - ืฉืื ืกืื ืืงืฉื
Ens.Request
ะฒisc.py.test.Process
.
ืืืื ื ืจืื ืืื ืืื ืขืืื ืืืื. ืึดืคึฐืชืึนืึท isc.py.test.Process
ืืขืืจื BPL:
ืืืฆืืข ืงืื
ืืงืจืืื ืืืฉืืื ืืืืชืจ ืืื ืืืฆืืข ืงืื Python:
ื ืขืฉื ืฉืืืืฉ ืืฉืืืืชื isc.py.msg.ExecutionRequest
, ืื ื ืืืืคืืื ืื ืฉืื:
Code
- ืงืื ืคืืืชืื.SeparateLines
- ืืื ืืคืฆื ืืช ืืงืื ืืฉืืจืืช ืืืืฆืืข.$c(10)
(n
) ืืฉืืฉ ืืืคืจืืช ืืืจืืืืช. ืฉืืื ืื ืฉืื ืืืืืฅ ืืขืื ืืช ืื ืืืืืขื ืืืช ืืืช, ืคืื ืงืฆืื ืื ืืืืขืืช ืจืง ืืขืืืืdef
ืืืืืืืื ืืจืืื ืงืืืื ืืืืื. ืึผึฐืจึดืืจึทืช ืึถืืึธื0
.Variables
ืืื ืจืฉืืื ืืืคืจืืช ืืคืกืืงืื ืฉื ืืฉืชื ืื ืฉืืชืืืกืคื ืืชืืืื.Serialization
- ืืื ืืขืฉืืช ืกืืจื ืฉื ืืืฉืชื ืื ืฉืื ื ืจืืฆืื ืืืืืืจ. ืืคืฉืจืืืืช:Str
,Repr
,JSON
,Pickle
ะธDill
, ืืจืืจืช ืืืืStr
.
ืืืงืจื ืฉืื ื, ืื ืื ื ืจืง ืงืืืขืื ืืช ืื ืืก Code
, ืื ืฉืื ืฉืืจ ืืืืคืืื ืื ืืฉืชืืฉืื ืืขืจืื ืืจืืจืช ืืืืื ืฉืืื. ืืืืจื ื ืืช ืื ืขื ืืื ืืชืงืฉืจืืช process.GetAnnotation("Import pandas")
, ืืฉืจ ืืืื ืจืืฆื ืืืืืจ ืืืืืจ ืืืืจ ืืืฆืืข ืืืืคืช ืืฉืชื ื. ืกืืฃ ืกืืฃ ืืงืื import pandas as pd
ืืืขืืจ ืืคืืืชืื. GetAnnotation
ืืืื ืืืืืช ืฉืืืืฉื ืืงืืืช ืกืงืจืืคืืื ืืจืืื ืฉืืจืืช ืฉื Python, ืื ืืื ืืืืืืช ืขื ืืจื ืื ืืงืื ืงืื. ืืชื ืืืื ืืืืืืจ ืืช ืื ืืก Code
ืืื ืืจื ืฉื ืืื ืื.
ืงืืืช ืืฉืชื ืื
ืขืื ืืชืืจ ืืขื ืืื ืืืืฆืขืืช isc.py.msg.ExecutionRequest
- Correlation Matrix: Tabular
:
ืืื ืืืฉื ืืช ืืืจืืฆืช ืืืชืื ืืฆื ืฉื ืคืืืชืื ืืืืืฅ ืืช ืืืฉืชื ื corrmat
ืืืจื ื-InterSystems IRIS ืืคืืจืื JSON ืขื ืืื ืืืืจืช ืืืคืืื ื ืืืงืฉื:
Variables
:"corrmat"
Serialization
:"JSON"
ืื ื ืืืืืื ืืจืืืช ืืช ืืชืืฆืืืช ื-Visual Trace:
ืืื ืื ืื ื ืฆืจืืืื ืืช ืืขืจื ืืื ื-BP, ืืคืฉืจ ืืงืื ืืืชื ืื: callresponse.Variables.GetAt("corrmat")
.
ืืขืืจืช ื ืชืื ืื
ืืืืจ ืืื, ืืืื ื ืืืจ ืขื ืืขืืจืช ื ืชืื ืื ื-InterSystems IRIS ืืคืืืชืื, ืื ืืืงืฉืืช ืืืขืืจืช ื ืชืื ืื ืืืืฉืืืช ืืช ืืืืฉืง isc.py.msg.DataRequest
, ืืืกืคืง ืืช ืืืืคืืื ืื ืืืืื:
Variable
ืืื ืืฉืชื ื Python ืฉืืืื ื ืืชืืื ืื ืชืื ืื.Type
- ืกืื ืืฉืชื ื:dataframe
(Pandas dataframe) ืืlist
.Namespace
- ืืืืืจ ืฉืืื ื ืื ื ืืงืืืื ื ืชืื ืื. ืฉืงืืช ืคืืกืืืงisc.py
ืฆืจืื ืืืืืช ืืืื ืืืืืจ ืื. ืื ืขืฉืื ืืืืืช ืืืืจ ืืื ืชืืืืช ืืืฆืจ.
ืืืชืืกืก ืขื ืืืฉืง ืื, ืืืืฉืืืช 4 ืืืืงืืช ืฉื ืืงืฉืืช:
isc.py.msg.QueryRequest
- ืืืืจ ื ืืกQuery
ืืื ืืฉืืื ืฉืืืืชืช SQL.isc.py.msg.ClassRequest
- ืืืืจ ื ืืกClass
ืืืขืืืจ ืืช ื ืชืื ื ืืืืชื.isc.py.msg.TableRequest
- ืืืืจ ื ืืกTable
ืืืขืืืจ ื ืชืื ื ืืืื.isc.py.msg.GlobalRequest
- ืืืืจ ื ืืกGlobal
ืืืขืืจืช ื ืชืื ืื ืืืืืืืช.
ืืชืืืื ืืืืืงื, ืืกืชืืื ืขื ืืคืขืืืืช RAW
ืืืคื isc.py.msg.QueryRequest
ืืืฆื ืืคืขืืื.
ืฉืืืจื/ืฉืืืืจ ืฉื ืืงืฉืจ ืคืืืชืื
ืืืกืืฃ, ืื ื ืืืืืื ืืืืกื ืืช ืืืงืฉืจ ืฉื Python ื-InterSystems IRIS, ืืื ืืขืฉืืช ืืืช, ืฉืื isc.py.msg.SaveRequest
ืขื ืืืขืื ืื:
Mask
- ืจืง ืืฉืชื ืื ืืขืื ืื ืขื ืืืกืื ื ืฉืืจืื. ื ืชืื*
ะธ?
. ืืืืื:"Data*, Figure?"
. ืึผึฐืจึดืืจึทืช ืึถืืึธื*
.MaxLength
- ืืืืจื ืืืจืื ืฉื ืืืฉืชื ื ืืืืืืกื. ืื ืืืืฉืื ืฉื ืืฉืชื ื ืืจืืื ืืืชืจ, ืชืชืขืื ืืื ื. ืืืืจ ื-0 ืืื ืืงืื ืืฉืชื ืื ืืื ืืืจื. ืึผึฐืจึดืืจึทืช ืึถืืึธื$$$MaxStringLength
.Name
โ ืฉื ืืงืฉืจ (ืืืคืฆืืื ืื).Description
โ ืชืืืืจ ืืืงืฉืจ (ืืืคืฆืืื ืื).
ืืืืจ Ens.StringResponse
ั Id
ืืงืฉืจ ืฉืืืจ. ืืชืืืื ืืืืืงื, ืืกืชืืื ืขื ืืคืขืืืืช Save Context
.
ืืงืฉื ืงืฉืืจื isc.py.msg.RestoreRequest
ืืืขื ืืงืฉืจ ื-InterSystems IRIS ืืชืื Python:
ContextId
ืืื ืืืื ืืืงืฉืจ.Clear
- ื ืงื ืืช ืืืงืฉืจ ืืคื ื ืืฉืืืืจ.
ืืืืจืช ืฆืืง
ืืจืืื ืื ืื ืืื ืฉืืืขืจืืช ืืืืืืช ืงืื Python ืืืฉืชืืฉืืช ืืฉืืืช ืคืขืืืืช ืืืืชืจืืช ืงืืืืืช. ืืขืช ื ืืชื ืืคืชื ืชืืืืืื ืขืกืงืืื ืฉื PythonGateway ื-Jupyter Notebook. ืื ื ืื ืฉืืคืฉืจ:
- ืืฆืืจืช ืชืืืืืื ืขืกืงืืื ืืืฉืื
- ืืืง ืชืืืืืื ืขืกืงืืื
- ืฆืืจ ืคืขืืืืืืช ืืืฉืืช
- ืฉื ื ืคืขืืืืืืช
- ืืืง ืคืขืืืืืืช
ืืื
ืกืืืจ ืชืืืืืื
ืขืืจื ืชืืืืืื
ืืชืงื ื
- ืชืืืงืง ื-InterSystems IRIS 2019.2+.
- ืืชืงื PythonGateway v0.8+ (ืืืจืฉ ืืืื
isc.py.util.Jupyter
,isc.py.util.JupyterCheckpoints
ะธisc.py.ens.ProcessUtils
). - ืขืืื ืืช ืงืื ObjectScript ืืืืืืจ.
- ืืืฆืข
do ##class(isc.py.util.Jupyter).Install()
ืืคืขื ืืคื ืืื ืืืืช.
ืืืฆืืื
MLToolkit ืืื ืกื ืืืื ืฉืืืจืชื ืืฉืื ืืืืืื ืืกืืืื ืขืกืงื, ืื ืฉื ืืชื ืืืื ืืืฉืชืืฉ ืืงืืืช ืืืืืืื ืืื ืืืื ืืฉืืจืืช ืืชืืืืืื ืืขืกืงืืื ืฉืื. Python Gateway ืืื ืืืง ื-MLToolkit ืืืกืคืง ืืื ืืืจืฆืื ืขื ืฉืคืช Python, ืืืืคืฉืจ ืื ืืชืืืจ ืื ืืืืืจืืชืื ืืืืืช ืืืื ื ืฉื ืืฆืจื ื-Python (ืืกืืืื ืืขืืงืจืืช ืขืืืจ ืืืขื ื ื ืชืื ืื ืจืืื), ืืืฉืชืืฉ ืืืกืคืจ ืกืคืจืืืช ืืืื ืืช ืืื ืืืฆืืจ ืืืืืจืืช ืืื ื ืืืืืืชืืช ืื ืืืืืช ืจืืืืืืช. ืคืชืจืื ืืช ML ืขื ืคืืืคืืจืืช InterSystems IRIS.
ืชืืืืจ
ืืืืจ ืงืืื ืฉืขืจ ืคืืืชืื ืืืืืืืช ืฉื Python Gateway ืื ืืืืืงื ืืชืื ืกืช Python 3.6.7 64 ืกืืืืืช ืชืืขืื ืืงืืจืกืื ืฉื ืคืืืชืื
MLToolkit
ืงืืืฆืช ืืืฉืชืืฉืื ืฉื MLToolkit ืืื ืืืืจ GitHub ืคืจืื ืฉื ืืฆืจ ืืืืง ืืืจืืื GitHub ืืืจืืื ื ืฉื InterSystems. ืื ืคืื ื ืืืฉืชืืฉืื ืืืฆืื ืืื ืฉืืชืงืื ืื, ืืืืืื ืื ืืืจ ืืฉืชืืฉืื ืืจืืืื MLToolkit, ืืืื Python Gateway. ืืงืืืฆื ืืกืคืจ ืืงืจืื ืืืืฉืืื (ืขื ืงืื ืืงืืจ ืื ืชืื ื ืืืืงืืช) ืืชืืืื ืืฉืืืืง, ืืืืฆืืจ, ืืจืคืืื ืืชืขืฉืืืช ืจืืืช ื ืืกืคืืช. ืืื ืืืฆืืจืฃ ืืงืืืฆืช ืืืฉืชืืฉืื ืฉื ML Toolkit, ืื ื ืฉืื ืืื"ื ืงืฆืจ ืืืชืืืช ืืืื:
- ืฉื ืืฉืชืืฉ GitHub
- ืืจืืื (ืืชื ืขืืื ืื ืืืื)
- ืืืงืื (ืืืืงืื ืืืืืชื ืฉืื ืืืจืืื ืฉืื, "ืกืืืื ื" ืื "ืขืฆืืื").
- ืืืื ื
ืืื ืฉืงืจื ืืช ืืืืืจ ืืืขืื ืืื ื-InterSystems IRIS ืืคืืืคืืจืื ืืคืืชืื ืื ืืืจืื ืฉื ืื ืื ืื ื ืืื ื ืืืืืืชืืช ืืืืืืช ืืืื ื, ืื ื ืืืืื ืื ืืืชื ืืืื ืืชืจืืืฉืื ืืคืฉืจืืื ืืืขื ืืื ืื ืืช ืืืจืืื ืฉืื. ืื ื ื ื ืชื ืืงืืืช ืืช ืืฆืจืืื ืฉื ืืืจืืื ืฉืื ืื ืงืืข ืืืฉืืชืฃ ืชืืื ืืช ืคืขืืื; ืืชืืืช ืืืื"ื ืืืฆืืจืช ืงืฉืจ ืฉื ืงืืืฆืช ืืืืืืื ืฉืื ื ื-AI/ML -
ืืงืืจ: www.habr.com