Π’Π°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½Π° Π½Π° Python Gateway β ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ InterSystems IRIS. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π½Π° Python (ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π·Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Data Scientists), ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ±ΡΠΎΠΉΠ½ΠΈ Π³ΠΎΡΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π±ΡΡΠ·ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΈ, ΡΠΎΠ±ΠΎΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈ AI/ML ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° InterSystems IRIS. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ InterSystems IRIS ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΊΠ΅ΡΡΡΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° Python, Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π΄Π²ΡΡΡΡΠ°Π½Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΠ»Π°Π½
- ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ.
- ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ.
- API.
- ΠΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ.
- Jupyter Notebook.
- ΠΠ·Π²ΠΎΠ΄ΠΈ.
- ΠΠΈΠ½ΠΊΠΎΠ²Π΅.
- MLToolkit.
ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Python Π΅ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ ΠΊΡΠΌ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΡΠ΅ΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π°. Π ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° InterSystems IRIS, ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π°ΠΊΡΠ΅Π½Ρ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Python ΠΊΠ°ΡΠΎ Π΅Π·ΠΈΠΊ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΡΠΈΠ½Π½ΠΎΡΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ (ML) Π΅ ΠΊΠ»Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π½Π° ΠΈΠ·ΠΊΡΡΡΠ²Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»Π΅ΠΊΡ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠ°ΡΠΈ ΡΠ΅ Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Π²Π° Π·Π°Π΄Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈ. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° ΡΠΎΠ²Π°, Π½ΠΎ Π½Π°ΠΊΡΠ°Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΠ°, ΠΏΡΠΎΡΡΠΎΡΠ°ΡΠ° ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ. ΠΠ°Π»ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π½Π΅Π²ΡΠΎΠ½Π½ΠΎΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π΅ Π½ΠΎΠ²Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ?
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ΅ Π½Π΅, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎΡΠΈΡΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΊΠΎΠ΄, Π·Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄Π΅Π», Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΡΠ°Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ - Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ GUI-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ AI/ML ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΡΡ, ΠΊΠΎΠΉΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 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, ΡΠΎΠ²Π° Π΅ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ, Π½ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ, Π° Π½Π΅ ΡΡΠ°ΡΠΈΡΠ½ΠΎ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΎΠ±Π΅ΠΊΡ. ΠΠΎ-ΠΊΡΡΠ½ΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ ΠΌΠΈΠΌΠΎΠ»Π΅ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Ρ Π΅Π·ΠΈΠΊΠ°. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Ρ .
- ΠΠ° Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ .
- IDE: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ , Π½ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΈΠΌΠ° . ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Atelier, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Eclipse ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Python. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ VS Code, ΠΈΠΌΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° Python.
- Notebook: Π²ΠΌΠ΅ΡΡΠΎ IDE ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΡΡΠ΅ ΡΠ²ΠΎΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π² ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠ΅ΡΡΠ°Π΄ΠΊΠΈ. ΠΠ°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°ΡΠ° ΠΎΡ ΡΡΡ Π΅ .
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΡΠΎ (Π½Π΅ΠΏΡΠ»Π΅Π½) ΡΠΏΠΈΡΡΠΊ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅:
- β ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Π·Π° ΡΠΎΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ.
- β ΡΡΡΡΠΊΡΡΡΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ.
- β ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠΈ.
- β Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° matplotlib.
- β ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
- β Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΡΠΎ Π±ΡΡΡΡΠΈΠ½Π³ (Gradient Boosting).
- β NLP.
- β Π½Π΅Π²ΡΠΎΠ½Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ.
- β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
- β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΡΠΌ Python.
- β PMML ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
AI/ML ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° Π±ΠΈΠ·Π½Π΅ΡΠ° Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΈ Π³ΡΠ²ΠΊΠ°Π². Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π΄Π½Π΅Ρ ΡΠ΅Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ°Π²Π°Ρ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΠ°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅ AI/ML ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π° ΡΠ°ΡΡΠ΅.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π°
ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Python Gateway:
- ΠΠ‘
- Windows
- Linux
- Mac
- Docker
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°Π· ΠΎΡ DockerHub
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΎΠ±ΡΠ°Π·
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π½Π°ΡΠΈΠ½Π° Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΠΌΡΡΡΠΎ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π΅ . Π’Ρ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ΅ΡΡΠ²Π°Π½ΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ°. ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ²Π° Π΅ 0.8, Π½ΠΎ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΈ Π½ΠΎΠ²ΠΈ. ΠΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΠΉΡΠ΅/ΠΈΠ·ΡΠ΅Π³Π»ΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π° ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ.
ΠΠ‘
ΠΠΊΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Python Gateway Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΡΡΠ²ΠΎ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°) ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Python. ΠΠ° ΡΠ΅Π»ΡΠ°:
- . ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Python Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π°
dill:pip install dill. - ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ ΠΊΠΎΠ΄Π° ObjectScript (Ρ.Π΅.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) Π² ΠΊΠΎΡΡΠΎ ΠΈ Π΄Π° Π΅ ΠΎΠ±Π»Π°ΡΡ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° ΠΎΠ±Π»Π°ΡΡ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1). - ΠΠΎΡΡΠ°Π²Π΅ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ°
binΠ½Π° Π²Π°ΡΠΈΡ ΠΈΠ½ΡΡΠ°Π½Ρ InterSystems IRIS. Π€Π°ΠΉΠ»ΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΠΏΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΡΡΡΠ°write ##class(isc.py.Callout).GetLib().
Windows
- Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°
PYTHONHOMEΠΏΠΎΡΠΎΡΠ²Π° Π½Π° Python 3.6.7. - Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°
PATHΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°PYTHONHOME(ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°, Π½Π° ΠΊΠΎΡΡΠΎ ΡΠΎΡΠΈ).
Linux (Debian/Ubuntu)
- ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°
PATHΡΡΠ΄ΡΡΠΆΠ°/usr/libΠΈ/usr/lib/x86_64-linux-gnu. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»Π°/etc/environmentΠ·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°. - ΠΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ
undefined symbol: _Py_TrueStructΠ·Π°Π΄Π΅ΠΉΡΡΠ²Π°ΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ°PythonLib. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π² ΠΈΠΌΠ° ΡΠ°Π·Π΄Π΅Π» Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
Mac
- Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ Python 3.6.7 ΠΎΡ . ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°
PATH.
ΠΠΊΠΎ ΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ InterSystems.
Docker
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°:
- ΠΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡ
- ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ
- ΠΠ·ΠΎΠ»Π°ΡΠΈΡ
- ΠΠ΅ΠΊΠΎΡΠ°
- ΠΠΌΠΌΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ
ΠΠ°ΠΏΠΎΠ·Π½Π°ΠΉΡΠ΅ ΡΠ΅ Ρ ΡΠ°Π·ΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Docker Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ΅ Π½Π° 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 //:/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, Π΅ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π½Π° InterSystems IRIS:
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 Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΈ Π²ΠΈΠ΅ ΡΠ΅ ΡΠ²Π΅ΡΠΈΡ
ΡΠ΅, ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΡΠ΅ΠΌΠ΅ Π΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅!
ΠΠ»Π°Π²Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Python Π΅ isc.py.Main. Π’ΠΎΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ (Π²ΡΠΈΡΠΊΠΈ Π²ΡΡΡΠ°Ρ %Status):
- ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π°
- ΠΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
- ΠΠΎΠΌΠΎΡΠ½ΠΈ
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π°
Π’Π΅Π·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Python ΠΊΠΎΠ΄.
SimpleString
SimpleString β ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄. Π’ΠΎΠΉ ΠΏΡΠΈΠ΅ΠΌΠ° 4 ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
codeβ Π½ΠΈΠ· Ρ ΠΊΠΎΠ΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π‘ΠΈΠΌΠ²ΠΎΠ» Π·Π° Π½ΠΎΠ² ΡΠ΅Π΄:$c(10).returnVariableβ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π·Π° Π²ΡΡΡΠ°Π½Π΅.serializationβ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅returnVariable. 0 β string (ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅), 1 β repr.ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈβ ByRef ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°returnVariable.
ΠΠΎ-Π³ΠΎΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡ ΠΌΠ΅:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°ΠΌΠ΅ Π½Π° Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° x ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ ΠΈ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΡΡΠ½Π΅ΠΌ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° x Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ObjectScript var.
ExecuteCode
ExecuteCode Π΅ ΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° SimpleString.
ΠΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° InterSystems IRIS ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π΄ΠΎ 3 641 144 ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΈ Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΏΠΎ-Π΄ΡΠ»ΡΠ³ ΠΊΠΎΠ΄, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ.
ΠΡΠΈΠ΅ΠΌΠ°Ρ ΡΠ΅ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
codeβ Π½ΠΈΠ· ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ ΠΎΡ Python ΠΊΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.variableβ (ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ) Π·Π°Π΄Π°Π²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎcodeΠ½Π° ΡΠ°Π·ΠΈ Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΌΠ½ΠΎΠΆΠ°Π²Π°ΠΌΠ΅ 2 ΠΏΠΎ 3 ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° y.
ΠΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
ΠΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° Python ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
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)-ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Pickle (ΠΈΠ»ΠΈ Dill) ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°.
ΠΠ΅ΠΊΠ° ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6InterSystems IRIS -> Python
ΠΠ°ΡΠ΅ΠΆΠ΄Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ InterSystems IRIS Π² Python.
ExecuteQuery(query, variable, type, namespace)β ΡΡΠ·Π΄Π°Π²Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ (pandasdataframeΠΈΠ»ΠΈlist) ΠΎΡ sql Π·Π°ΡΠ²ΠΊΠ° ΠΈ Ρ ΠΏΠΎΡΡΠ°Π²Ρ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π² Python.variable. ΠΠ°ΠΊΠ΅ΡΡΡisc.pyΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΎΠ±Π»Π°ΡΡΡΠ°namespaceβ ΡΠ°ΠΌ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)β Π·Π°ΡΠ΅ΠΆΠ΄Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π³Π»ΠΎΠ±Π°Π»Π°globalΠΎΡ ΠΏΠΎΠ΄ΡΠΊΡΠΈΠΏΡΠ°startΠ΄ΠΎendΠ² Python ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΎΡ ΡΠΈΠΏΡΠΈΠΏ:list, ΠΈΠ»ΠΈ pandas.dataframe. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈmaskΠΈlabelsΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»Π°ΡΠ° ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ .ExecuteClass(class, variable, type, start, end, properties, namespace)β Π·Π°ΡΠ΅ΠΆΠ΄Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΊΠ»Π°ΡΠ°classΠΎΡ idstartΠ΄ΠΎendΠ² Python ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΎΡ ΡΠΈΠΏΡΠΈΠΏ:list, ΠΈΠ»ΠΈ pandas.dataframe.propertiesβ ΡΠΏΠΈΡΡΠΊ (ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π» β Π·Π°ΠΏΠ΅ΡΠ°Ρ) Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ»Π°ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π² Π½Π°Π±ΠΎΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΌΠ°ΡΠΊΠΈ.*ΠΈ?. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ β*(Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°). Π‘Π²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ%%CLASSNAMEΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°.ExecuteTable(table, variable, type, start, end, properties, namespace)β Π·Π°ΡΠ΅ΠΆΠ΄Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°tableΠΎΡ idstartΠ΄ΠΎendΠ² Python.
ExecuteQuery β ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ (Π²ΡΡΠΊΠ° ΠΊΠΎΡΠ΅ΠΊΡΠ½Π° SQL-Π·Π°ΡΠ²ΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½Π° Π½Π° Python). ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ExecuteGlobal ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ ExecuteClass ΠΈ ExecuteTable ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠ΅Π΄ΠΈΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. Π’Π΅ ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΈ (3-5 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ ODBC Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΈ 20 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ExecuteQuery). ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² .
ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡ. ΠΠ°ΠΊΠ΅ΡΡΡ isc.py ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΎΠ±Π»Π°ΡΡ.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) β ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π²ΡΡΠΊΠ° ΠΊΠΎΡΠ΅ΠΊΡΠ½Π° SQL-Π·Π°ΡΠ²ΠΊΠ° Π½Π° Python. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π±Π°Π²Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π³ΠΎ, Π°ΠΊΠΎ ExecuteGlobal ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π΅ ΡΠ° Π½Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΈ:
queryβ sql Π·Π°ΡΠ²ΠΊΠ°.variableβ ΠΈΠΌΠ΅ Π½Π° Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.ΡΠΈΠΏβlistΠΈΠ»ΠΈ Pandasdataframe.namespaceβ ΠΎΠ±Π»Π°ΡΡ, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) β ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³Π»ΠΎΠ±Π°Π» Π² Python.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΈ:
globalβ ΠΈΠΌΠ΅ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π° Π±Π΅Π·^variableβ ΠΈΠΌΠ΅ Π½Π° Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.ΡΠΈΠΏβlistΠΈΠ»ΠΈ Pandasdataframe.startβ ΠΏΡΡΠ²ΠΈ ΠΏΠΎΠ΄ΡΠΊΡΠΈΠΏΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π°. ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ%Integer.endβ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΡΠ°Π±ΡΠΊΡΠΈΠΏΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π°. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ%Integer.maskβ ΠΌΠ°ΡΠΊΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π°. ΠΠ°ΡΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎ-ΠΊΡΡΠ° ΠΎΡ Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° Π² Π³Π»ΠΎΠ±Π°Π»Π° (Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° Π² ΠΊΡΠ°Ρ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠΎΠΏΡΡΠ½Π°ΡΠΈ). ΠΠ°ΠΊ Π΄Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°ΠΌΠ΅ ΠΌΠ°ΡΠΊΠ°ΡΠ°:+ΠΏΡΠ΅ΠΌΠΈΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ Π΅.-ΠΏΡΠΎΠΏΡΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°.bβ ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏ (0βFalse, Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ βTrue).dβ ΠΠ°ΡΠ° (ΠΎΡ $horolog, Π½Π° Windows ΠΎΡ 1970, Π½Π° Linux ΠΎΡ 1900).tβ ΠΡΠ΅ΠΌΠ΅ ($horolog, ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΡΠ»Π΅Π΄ ΠΏΠΎΠ»ΡΠ½ΠΎΡ).mβ ΠΡΠ΅ΠΌΠ΅Π²Π° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° (ΡΡΡΠΈΠ½Π³ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ΠΠΠΠΠΠ-ΠΠΠ‘ΠΠ¦-ΠΠΠ Π§ΠΠ‘:ΠΠΠΠ£Π’Π:Π‘ΠΠΠ£ΠΠΠ).
labelsβ %List Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅. ΠΡΡΠ²ΠΈΡΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ β ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΡΠΊΡΠΈΠΏΡΠ°.namespaceβ ΠΎΠ±Π»Π°ΡΡ, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
ExecuteClass
ΠΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π°Π΄ ExecuteGlobal. ΠΠ° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»Π°ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ExecuteGlobal ΠΈ Π³ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°.
ExecuteClass(class, variable, type, start, end, properties, namespace) β ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΊΠ»Π°ΡΠ° Π² Python.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΈ:
classβ ΠΈΠΌΠ΅ Π½Π° ΠΊΠ»Π°ΡΠ°variableβ ΠΈΠΌΠ΅ Π½Π° Python ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.ΡΠΈΠΏβlistΠΈΠ»ΠΈ Pandasdataframe.startβ Π½Π°ΡΠ°Π»Π½ΠΎ Id.endβ ΠΊΡΠ°ΠΉΠ½ΠΎ Idpropertiesβ ΡΠΏΠΈΡΡΠΊ (ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π» β Π·Π°ΠΏΠ΅ΡΠ°Ρ) Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ»Π°ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π² Π½Π°Π±ΠΎΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΌΠ°ΡΠΊΠΈ.*ΠΈ?. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ β*(Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°). Π‘Π²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ%%CLASSNAMEΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°.namespaceβ ΠΎΠ±Π»Π°ΡΡ, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
ΠΡΠΈΡΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΡΠ°, ΠΎΡΠ²Π΅Π½ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ te, %Time, %Boolean ΠΈ %TimeStamp β ΡΠ΅ ΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Ρ Π² ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π½Π° Python.
ExecuteTable
ΠΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π°Π΄ ExecuteClass. ΠΡΠ΅Π²Π΅ΠΆΠ΄Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π² ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΠ° ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ExecuteClass. ΠΠΎΠ΄ΠΏΠΈΡ:
ExecuteTable(table, variable, type, start, end, properties, namespace) β ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π² Python.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΈ:
tableβ ΠΈΠΌΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°.
ΠΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΡΠ°, Π²ExecuteClass.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠΈ
ExecuteGlobal,ExecuteClassΠΈExecuteTableΡΠ°Π±ΠΎΡΡΡ Ρ Π΅Π΄Π½Π°ΠΊΠ²Π° Π±ΡΡΠ·ΠΈΠ½Π°.ExecuteGlobalΠ΄Π²Π°Π΄Π΅ΡΠ΅Ρ ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡExecuteQueryΠΏΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ (Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ >0.01 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ).ExecuteGlobal,ExecuteClassΠΈExecuteTableΡΠ°Π±ΠΎΡΡΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΠΈ Ρ Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ°:^global(ΠΊΠ»ΡΡ) = $lb(prop1, prop2, ..., propN)ΠΊΡΠ΄Π΅ΡΠΎkeyβ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ.- ΠΠ°
ExecuteGlobal,ExecuteClassΠΈExecuteTableΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈteΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°mktimeΠΈ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΠ‘ (: 1970-01-01, 1900-01-01, ). ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅%TimeStampΠ·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π²ΡΠ½ ΡΠΎΠ·ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ pandas dataframe, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΏΠΈΡΡΠΊ. - ΠΠ°
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
ΠΡΡΡΠ½ΠΎΡΡ, Python ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ 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β (ΡΠ°ΠΌΠΎ Π·Π° Linux) Π°ΠΊΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΌΡ Π½Π°libpython3.6m.soΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π΄ΠΎ ΠΏΡΠ»Π½ΠΈΡ ΠΏΡΡ Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° Python.
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΠΈ
ΠΠ°Π»ΠΈΡΠ½ΠΈ ΡΠ° Π΄Π²Π° ΠΊΠ»Π°ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΠΈ:
isc.py.ens.ProcessUtilsΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ.isc.py.util.BPEmulatorΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π»Π΅ΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΠΈ Ρ Python. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅Ρ (ΡΠ°ΡΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Python) Π² ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ
ΠΡΠΈΡΠΊΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΠΈ, Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ ΠΎΡ isc.py.ens.ProcessUtils, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° GetAnnotation(name) Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° ΠΏΠΎ Π½Π΅ΠΉΠ½ΠΎΡΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ½ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈ ΠΎΡ InterSystems IRIS ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° Python. ΠΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:
${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 Gateway. ΠΠ° Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅:
- Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π½Π° ΠΠ‘ ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅:
pip install pandas matplotlib seaborn. - Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π½Π° InterSystems IRIS ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅:
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β ΠΊΠΎΠ΄ Π½Π° Python.SeparateLinesβ Π΄Π° ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Π»ΠΈ ΠΊΠΎΠ΄ΡΡ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.$c(10)(n) ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΠΠ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°defΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅0.ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈβ ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΡ Π·Π°ΠΏΠ΅ΡΠ°ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ°.Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡβ ΠΠ°ΠΊ Π΄Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΡΡΠ½Π΅ΠΌ. ΠΠΏΡΠΈΠΈ:Str,Repr,JSON,PickleΠΈDill, ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅Str.
Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ Code, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠ°Π΄Π°Π²Π°ΠΌΠ΅ Π³ΠΎ Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ process.GetAnnotation("Import pandas"), ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ° Π°Π½ΠΎΡΠ°ΡΠΈΡ ΡΠ»Π΅Π΄ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, ΠΊΠΎΠ΄ΡΡ import pandas as pd ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ Π½Π° Python. GetAnnotation ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΈ Python ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π½ΠΎ Π½ΡΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π° Π½Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ Code ΠΏΠΎ Π²ΡΡΠΊΠ°ΠΊΡΠ² ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° Π²Π°Ρ Π½Π°ΡΠΈΠ½.
ΠΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ
ΠΡΠ΅ Π΅Π΄Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° isc.py.msg.ExecutionRequest β ΠΠ°ΡΡΠΈΡΠ° Π½Π° ΠΊΠΎΡΠ΅Π»Π°ΡΠΈΡΡΠ°: ΡΠ°Π±Π»ΠΈΡΠ΅Π½:

Π’ΠΎΠΉ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΌΠ°ΡΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠ΅Π»Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° Python ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° corrmat ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² InterSystems IRIS Π² JSON ΡΠΎΡΠΌΠ°Ρ, ΡΡΠ΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ:
ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:"corrmat"Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ:"JSON"
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ Π² Visual Trace:

Π Π°ΠΊΠΎ Π½ΠΈ Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΠ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½: callresponse.Variables.GetAt("corrmat").
ΠΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
Π‘Π»Π΅Π΄Π²Π° Π΄Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ InterSystems IRIS Π² Python, Π²ΡΠΈΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° isc.py.msg.DataRequest, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Variableβ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Python, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.Π’ΠΈΠΏβ ΡΠΈΠΏ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°: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
ΠΠ°ΠΊΡΠ°Ρ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΡ
ΡΠ°Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° Python Π² InterSystems IRIS, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°, ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ isc.py.msg.SaveRequest Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅:
Maskβ Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΌΠ°ΡΠΊΠ°ΡΠ°. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅*ΠΈ?. ΠΡΠΈΠΌΠ΅Ρ:"Data*, Figure?". ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅*.MaxLengthβ ΠΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π½Π° Π·Π°ΠΏΠ°Π·Π΅Π½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°. ΠΠΊΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π΅ ΠΏΠΎ-Π΄ΡΠ»Π³Π°, ΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½Π°. ΠΠ°Π΄Π°ΠΉΡΠ΅ 0, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅$$$MaxStringLength.Nameβ ΠΠΌΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ).ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅β ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ).
ΠΡΡΡΠ° Ens.StringResponse Ρ Id Π½Π° Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. Π ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΉΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° ΠΠ°ΠΏΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
Π‘ΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΎΡΠΎ ΠΈΡΠΊΠ°Π½Π΅ isc.py.msg.RestoreRequest Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΎΡ InterSystems IRIS Π² Python:
ContextIdβ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.ΠΠ·ΡΠΈΡΡΠΈβ ΠΈΠ·ΡΠΈΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅.
Jupyter Notebook
β ΡΠΎΠ²Π° Π΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠ°Π΄ΠΊΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΊΠΎΠ΄, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ΅ΠΊΡΡ ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅. Python Gateway ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° BPL ΠΏΡΠΎΡΠ΅ΡΠΈ Π² Jupyter Notebook. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ executor Python 3.
Π’ΠΎΠ²Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ Π°Π½ΠΎΡΠ°ΡΠΈΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΊΠΎΠ΄ Π½Π° 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 (ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Data Scientists), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π±ΡΡΠ·ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΈ, ΡΠΎΠ±ΠΎΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈ AI/ML ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° InterSystems IRIS.
ΠΡΡΠ·ΠΊΠΈ
MLToolkit
ΠΡΡΠΏΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° MLToolkit Π΅ ΡΠ°ΡΡΠ΅Π½ GitHub ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° GitHub ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ InterSystems. Π’Ρ Π΅ Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΡΠΌ Π²ΡΠ½ΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ, ΠΈΠ·ΡΡΠ°Π²Π°Ρ ΠΈΠ»ΠΈ Π²Π΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° MLToolkit, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Python Gateway. Π Π³ΡΡΠΏΠ°ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΊΠ΅ΠΉΡΠΎΠ²Π΅ (Ρ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ) Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΌΠ΅Π΄ΠΈΡΠΈΠ½Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΊΡΠΌ Π³ΡΡΠΏΠ°ΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° ML Toolkit, ΠΌΠΎΠ»Ρ, ΠΈΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π°ΡΠ° ΠΏΠΎΡΠ° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ: ΠΈ ΠΏΠΎΡΠΎΡΠ΅ΡΠ΅ Π² ΠΏΠΈΡΠΌΠΎΡΠΎ ΡΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ:
- ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΈΠΌΠ΅ Π² GitHub
- ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ (ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠΈΡΠ΅)
- ΠΠ»ΡΠΆΠ½ΠΎΡΡ (Π²Π°ΡΠ°ΡΠ° ΡΠ΅Π°Π»Π½Π° Π΄Π»ΡΠΆΠ½ΠΎΡΡ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΈΠ»ΠΈ "Π‘ΡΡΠ΄Π΅Π½Ρ", ΠΈΠ»ΠΈ "ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌ").
- ΠΡΡΠΆΠ°Π²Π°
ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π° ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΠΏΡΠΎΡΠ²ΠΈΡ Π° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊΡΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° InterSystems IRIS ΠΊΠ°ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΈΠ·ΠΊΡΡΡΠ²Π΅Π½ ΠΈΠ½ΡΠ΅Π»Π΅ΠΊΡ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π΄Π° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° Π±ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ Π·Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅. Π‘ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΈ Π·Π°Π΅Π΄Π½ΠΎ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΏΠ»Π°Π½ Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅; ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΠΈΡΡ ΠΈΠΌΠ΅ΠΉΠ» Π½Π° Π½Π°ΡΠ°ΡΠ° Π΅ΠΊΡΠΏΠ΅ΡΡΠ½Π° Π³ΡΡΠΏΠ° AI/ML Π΅: .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
