Python Gateway Π² InterSystems IRIS

Π’Π°Π·ΠΈ статия Π΅ посвСтСна Π½Π° Python Gateway β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° общността с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° Π΄Π°Π½Π½ΠΈ InterSystems IRIS. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ позволява оркСстрация Π½Π° всякакви Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π½Π° Python (основната срСда Π·Π° мноТСство Data Scientists), ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π±ΡŠΡ€Π·ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΈ, Ρ€ΠΎΠ±ΠΎΡ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ AI/ML Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° InterSystems IRIS. Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ InterSystems IRIS ΠΌΠΎΠΆΠ΅ Π΄Π° оркСстрира процСси Π½Π° Python, Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΄Π° ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° двустранна ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° създава ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ бизнСс процСси.

План

  1. Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
  2. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈ.
  3. Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ.
  4. API.
  5. Π˜Π½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±ΠΈΠ»Π½ΠΎΡΡ‚.
  6. Jupyter Notebook.
  7. Изводи.
  8. Π›ΠΈΠ½ΠΊΠΎΠ²Π΅.
  9. 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, Ρ‚ΠΎΠ²Π° Π΅ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ, Π½ΠΎ всичко сС опрСдСля Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ, Π° Π½Π΅ статично. ОсвСн Ρ‚ΠΎΠ²Π° всичко Π΅ ΠΎΠ±Π΅ΠΊΡ‚. По-ΠΊΡŠΡΠ½ΠΈΡ‚Π΅ статии ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ ΠΌΠΈΠΌΠΎΠ»Π΅Ρ‚Π½ΠΎ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ с Π΅Π·ΠΈΠΊΠ°. Ако искатС Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ с докумСнтацията.
  • Π—Π° Π½Π°ΡˆΠΈΡ‚Π΅ послСдващи упраТнСния инсталирайтС Python 3.6.7 64 Π±ΠΈΡ‚Π°.
  • IDE: Използвам PyCharm, Π½ΠΎ наистина ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Atelier, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Eclipse приставка Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Python. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ VS Code, ΠΈΠΌΠ° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π·Π° Python.
  • Notebook: вмСсто IDE ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈ сподСлятС своитС скриптовС Π² ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΠΊΠΈ. Най-популярната ΠΎΡ‚ тях Π΅ Jupyter.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π•Ρ‚ΠΎ (нСпълСн) списък Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅:

  • Numpy β€” основСн ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° Ρ‚ΠΎΡ‡Π½ΠΈ изчислСния.
  • Pandas β€” структури Π·Π° Π΄Π°Π½Π½ΠΈ с висока производитСлност ΠΈ инструмСнти Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ.
  • Matplotlib β€” създаванС Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.
  • Seaborn β€” визуализация Π½Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° matplotlib.
  • Sklearn β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅.
  • XGBoost β€” Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° мСтодологията Π½Π° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΡ‚ΠΎ буустинг (Gradient Boosting).
  • Gensim β€” NLP.
  • Keras β€” Π½Π΅Π²Ρ€ΠΎΠ½Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΈ.
  • Tensorflow β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° създаванС Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅.
  • PyTorch β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° създаванС Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° към Python.
  • Nyoka β€” PMML ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

AI/ML Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ позволяват Π½Π° бизнСса Π΄Π° станС ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ гъвкав. Π’ допълнСниС, днСс Ρ‚Π΅Π·ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ стават ΠΏΠΎ-лСсни Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ внСдряванС. Π—Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ AI/ML Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ ΠΈ ΠΊΠ°ΠΊ Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° организация Π΄Π° растС.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π°

Има няколко Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° инсталиранС ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Python Gateway:

  • ОБ
    • Windows
    • Linux
    • Mac
  • Docker
    • Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π· ΠΎΡ‚ DockerHub
    • Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ свой собствСн ΠΎΠ±Ρ€Π°Π·

НСзависимо ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π° Π½Π° инсталиранС, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ изходния ΠΊΠΎΠ΄. ЕдинствСното място Π·Π° изтСглянС Π½Π° ΠΊΠΎΠ΄Π° Π΅ страницата с вСрсии. Вя ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° тСствани стабилни вСрсии, просто Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ послСдната. Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ²Π° Π΅ 0.8, Π½ΠΎ с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Ρ‰Π΅ ΠΈΠΌΠ° ΠΈ Π½ΠΎΠ²ΠΈ. НС ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΉΡ‚Π΅/изтСгляйтС рСпозитория, Π° просто ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ послСдната вСрсия.

ОБ

Ако инсталиратС Python Gateway Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, ΠΏΡŠΡ€Π²ΠΎ (нСзависимо ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма) трябва Π΄Π° инсталиратС Python. Π—Π° Ρ†Π΅Π»Ρ‚Π°:

  1. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ Python 3.6.7 64 Π±ΠΈΡ‚Π°. ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° сС Π΄Π° инсталиратС Python Π² дирСкторията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.
  2. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π° dill: pip install dill.
  3. Π˜Π·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ ΠΊΠΎΠ΄Π° ObjectScript (Ρ‚.Π΅. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) Π² която ΠΈ Π΄Π° Π΅ област с ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. Ако искатС ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π°Ρ‚Π° област Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. ΠŸΠΎΡΡ‚Π°Π²Π΅Ρ‚Π΅ callout DLL/SO/DYLIB Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° bin Π½Π° вашия инстанс InterSystems IRIS. Π€Π°ΠΉΠ»ΡŠΡ‚ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° трябва Π΄Π° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΏΠΎ ΠΏΡŠΡ‚Ρ, ΠΊΠΎΠΉΡ‚ΠΎ сС Π²Ρ€ΡŠΡ‰Π° write ##class(isc.py.Callout).GetLib().

Windows

  1. Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата PYTHONHOME посочва Π½Π° Python 3.6.7.
  2. Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ систСмната ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата PATH ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° PYTHONHOME (ΠΈΠ»ΠΈ дирСкторията, Π½Π° която сочи).

Linux (Debian/Ubuntu)

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата PATH ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° /usr/lib ΠΈ /usr/lib/x86_64-linux-gnu. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Π° /etc/environment Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° срСдата.
  2. ΠŸΡ€ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ undefined symbol: _Py_TrueStruct задСйствайтС настройката PythonLib. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π² Readme ΠΈΠΌΠ° Ρ€Π°Π·Π΄Π΅Π» Π·Π° отстраняванС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Mac

  1. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само Python 3.6.7 ΠΎΡ‚ Python.org. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° 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 Π΅ ΠΏΡ€Π°Π·Π½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Readme β€” сСкция Π·Π° отстраняванС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

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
>6

InterSystems IRIS -> Python

Π—Π°Ρ€Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ InterSystems IRIS Π² Python.

  • ExecuteQuery(query, variable, type, namespace) β€” създава Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ (pandas dataframe ΠΈΠ»ΠΈ 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 Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ Π² докумСнтацията Π½Π° класа ΠΈ рСпозитория Data Transfer docs.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) β€” Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ класа class ΠΎΡ‚ id start Π΄ΠΎ end Π² Python ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ‚ΠΈΠΏ: list, ΠΈΠ»ΠΈ pandas. dataframe. properties β€” списък (Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π» β€” запСтая) Π½Π° свойствата Π½Π° класа, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ Π² Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС маски. * ΠΈ ?. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ β€” * (всички свойства). Бвойството %%CLASSNAME сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) β€” Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° table ΠΎΡ‚ id start Π΄ΠΎ end Π² Python.

ExecuteQuery β€” унивСрсално (всяка ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π° SQL-заявка Ρ‰Π΅ бъдС ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½Π° Π½Π° Python). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ExecuteGlobal ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ ExecuteClass ΠΈ ExecuteTable работят с Ρ€Π΅Π΄ΠΈΡ†Π° ограничСния. Π’Π΅ са Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΈ (3-5 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ ODBC Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ ΠΈ 20 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ExecuteQuery). Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° информация Π² Data Transfer docs.
Всички Ρ‚Π΅Π·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ всяка област. ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ isc.py трябва Π΄Π° бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π² Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° област.

ExecuteQuery

ExecuteQuery(request, variable, type, namespace) β€” ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ всяка ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π° SQL-заявка Π½Π° Python. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-бавният ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π³ΠΎ, Π°ΠΊΠΎ ExecuteGlobal ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π΅ са Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

АргумСнти:

  • query β€” sql заявка.
  • variable β€” ΠΈΠΌΠ΅ Π½Π° Python ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°, Π² която сС записват Π΄Π°Π½Π½ΠΈΡ‚Π΅.
  • Ρ‚ΠΈΠΏ β€” list ΠΈΠ»ΠΈ Pandas dataframe.
  • namespace β€” област, Π² която Ρ‰Π΅ сС изпълнява заявката.

ExecuteGlobal

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) β€” ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³Π»ΠΎΠ±Π°Π» Π² Python.

АргумСнти:

  • global β€” ΠΈΠΌΠ΅ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π° Π±Π΅Π· ^
  • variable β€” ΠΈΠΌΠ΅ Π½Π° Python ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°, Π² която сС записват Π΄Π°Π½Π½ΠΈΡ‚Π΅.
  • Ρ‚ΠΈΠΏ β€” list ΠΈΠ»ΠΈ Pandas dataframe.
  • 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 ΠΈΠ»ΠΈ Pandas dataframe.
  • start β€” Π½Π°Ρ‡Π°Π»Π½ΠΎ Id.
  • end β€” ΠΊΡ€Π°ΠΉΠ½ΠΎ Id
  • properties β€” списък (Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π» β€” запСтая) Π½Π° свойствата Π½Π° класа, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ Π² Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС маски. * ΠΈ ?. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ β€” * (всички свойства). Бвойството %%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 ΠΈ зависи ΠΎΡ‚ ОБ (windows: 1970-01-01, linux 1900-01-01, mac). Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ %TimeStampΠ·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ извън Ρ‚ΠΎΠ·ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ pandas dataframe, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΅ само Π·Π° списък.
  • Π—Π° ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable всички Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ, освСн ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ (Π³Π»ΠΎΠ±Π°Π», клас ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°) ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°, са ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ

ВСстов клас isc.py.test.Person ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄, дСмонстриращ всички Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ:

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. Π—Π° Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅:

  1. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π° ОБ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅: pip install pandas matplotlib seaborn.
  2. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π° InterSystems IRIS ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅: do ##class(isc.py.test.CannibalizationData).Import() Π·Π° запълванС Π½Π° тСстовитС Π΄Π°Π½Π½ΠΈ.
  3. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ продукцията isc.py.test.Production.
  4. Π˜Π·ΠΏΡ€Π°Ρ‚Π΅Ρ‚Π΅ заявка ΠΎΡ‚ Ρ‚ΠΈΠΏ Ens.Request Π² isc.py.test.Process.

НСка Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ всичко Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π°Π΅Π΄Π½ΠΎ. ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ isc.py.test.Process Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° BPL:

Python Gateway Π² InterSystems IRIS

ИзпълнСниС на кода

Най-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ β€” ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Python:

Python Gateway Π² InterSystems IRIS

Използва сС заявка 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 Gateway Π² InterSystems IRIS

Π’ΠΎΠΉ изчислява ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ‚Π° Π½Π° корСлацията Π½Π° страната Π½Π° Python ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° corrmat ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² InterSystems IRIS Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Ρ‡Ρ€Π΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° свойствата Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ:

  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ: "corrmat"
  • БСриализация: "JSON"

МоТСм Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ Π² Visual Trace:

Python Gateway Π² InterSystems IRIS

И Π°ΠΊΠΎ Π½ΠΈ Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ²Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π‘ΠŸ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½: 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 Gateway Π² InterSystems IRIS

Π‘ΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅/Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° контСкста Π½Π° 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

Jupyter Notebook β€” Ρ‚ΠΎΠ²Π° Π΅ ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΠΊΠΈ, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ ΠΊΠΎΠ΄, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ тСкст ΠΈ тяхното ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅. Python Gateway позволява ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° BPL процСси Π² Jupyter Notebook. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандартният executor Python 3.

Π’ΠΎΠ²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈΡ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΊΠΎΠ΄ Π½Π° Python ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ наимСнования Π½Π° активности ΠΊΠ°Ρ‚ΠΎ заглавия Π½Π° ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½ΠΈΡ†ΠΈ. Π‘Π΅Π³Π° Π΅ възмоТно Π΄Π° сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ бизнСс процСси с PythonGateway Π² Jupyter Notebook. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ възмоТно:

  • Π”Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π½ΠΎΠ²ΠΈ бизнСс процСси
  • Π”Π° сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ бизнСс процСси
  • Π”Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π½ΠΎΠ²ΠΈ активности
  • Π”Π° сС промСнят активности
  • Π”Π° сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ активности

Π•Ρ‚ΠΎ Π΄Π΅ΠΌΠΎ Π²ΠΈΠ΄Π΅ΠΎ. И няколко ΡΠΊΡ€ΠΈΠΉΠ½ΡˆΠΎΡ‚Π°:

ΠŸΡ€ΠΎΡ†Π΅ΡΠ΅Π½ СксплорСр

Python Gateway Π² InterSystems IRIS

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° процСса

Python Gateway Π² InterSystems IRIS

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π°

  1. Π©Π΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ InterSystems IRIS 2019.2+.
  2. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ PythonGateway v0.8+ (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ само isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints ΠΈ isc.py.ens.ProcessUtils).
  3. АктуализирайтС ΠΊΠΎΠ΄Π° Π½Π° ObjectScript ΠΎΡ‚ рСпозитория.
  4. Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ 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, моля, ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Ρ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Π°Ρ‚Π° ΠΏΠΎΡ‰Π° Π½Π° слСдния адрСс: MLToolkit@intersystems.com ΠΈ посочСтС Π² писмото си слСднитС Π΄Π°Π½Π½ΠΈ:

  • ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΎ ΠΈΠΌΠ΅ Π² GitHub
  • ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ (ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΡƒΡ‡ΠΈΡ‚Π΅)
  • Π”Π»ΡŠΠΆΠ½ΠΎΡΡ‚ (Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π΅Π°Π»Π½Π° Π΄Π»ΡŠΠΆΠ½ΠΎΡΡ‚ Π² организацията, ΠΈΠ»ΠΈ "Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚", ΠΈΠ»ΠΈ "НСзависим").
  • Π”ΡŠΡ€ΠΆΠ°Π²Π°

На Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ…Π° статията ΠΈ проявиха интСрСс към Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° InterSystems IRIS ΠΊΠ°Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ хостванС Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° изкуствСн ΠΈΠ½Ρ‚Π΅Π»Π΅ΠΊΡ‚ ΠΈ машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π΄Π° обсъдим ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ сцСнарии, ΠΊΠΎΠΈΡ‚ΠΎ Π±ΠΈΡ…Π° Π±ΠΈΠ»ΠΈ интСрСсни Π·Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ прСдприятиС. Π‘ готовност Ρ‰Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° компания ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΏΠ»Π°Π½ Π·Π° дСйствиС; контактният ΠΈΠΌΠ΅ΠΉΠ» Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° СкспСртна Π³Ρ€ΡƒΠΏΠ° AI/ML Π΅: MLToolkit@intersystems.com.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster