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 bit.
  • 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 bit. РСкомСндуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ 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 Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Troubleshooting.

Mac

  1. Π’ настоящСС врСмя поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΡ‚ΠΎΠ½ 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 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 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, стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ 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 β€” Troubleshooting section.

API

Python Gateway установлСн, ΠΈ Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΠΎΡ€Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ!
Π“Π»Π°Π²Π½Ρ‹ΠΉ интСрфСйс ΠΊ Python это isc.py.Main. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (всС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ %Status):

  • ИсполнСниС ΠΊΠΎΠ΄Π°
  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅

ИсполнСниС кода

Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Python-ΠΊΠΎΠ΄.

SimpleString

SimpleString β€” это основной ΠΌΠ΅Ρ‚ΠΎΠ΄. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 4 ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

  • code β€” строка ΠΊΠΎΠ΄Π° для выполнСния. Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки: $c(10).
  • returnVariable β€” имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°.
  • serialization β€” ΠΊΠ°ΠΊ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ returnVariable. 0 β€” string (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), 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 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 ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° type: list, Π»ΠΈΠ±ΠΎ pandas dataframe. ОписаниС ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² mask and labels доступно Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ класса ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Data Transfer docs.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) β€” Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ класса class ΠΎΡ‚ id start Π΄ΠΎ end Π² Python ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° type: 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 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅.
  • type β€” list ΠΈΠ»ΠΈ Pandas dataframe.
  • namespace β€” ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ запрос.

ExecuteGlobal

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

АргумСнты:

  • global β€” имя Π³Π»ΠΎΠ±Π°Π»Π° Π±Π΅Π· ^
  • variable β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Python ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅.
  • type β€” list ΠΈΠ»ΠΈ Pandas dataframe.
  • start β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сабскрипт Π³Π»ΠΎΠ±Π°Π»Π°. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ %Integer.
  • end β€” послСдний сабскрипт Π³Π»ΠΎΠ±Π°Π»Π°. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ %Integer.
  • mask β€” маска Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³Π»ΠΎΠ±Π°Π»Π°. Маска ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‡Π΅ΠΌ количСство ΠΏΠΎΠ»Π΅ΠΉ Π² Π³Π»ΠΎΠ±Π°Π»Π΅ (Π² этом случаС поля Π² ΠΊΠΎΠ½Ρ†Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹). Как Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ маску:
    • + ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ.
    • - ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
    • b β€” ЛогичСский Ρ‚ΠΈΠΏ (0 β€” False, всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ β€” True).
    • d β€” Π”Π°Ρ‚Π° (ΠΈΠ· $horolog, Π½Π° Windows ΠΎΡ‚ 1970, Π½Π° Linux ΠΎΡ‚ 1900).
    • t β€” ВрСмя ($horolog, сСкунды послС ΠΏΠΎΠ»ΡƒΠ½ΠΎΡ‡ΠΈ).
    • m β€” ΠœΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (строка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° YEAR-MONTH-DAY HOUR:MINUTE:SECOND).
  • labels β€” %List Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сабскрипта.
  • namespace β€” ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ запрос.

ExecuteClass

ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠ° Π½Π°Π΄ ExecuteGlobal. На основС опрСдСлСния класса ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ExecuteGlobal ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ.

ExecuteClass(class, variable, type, start, end, properties, namespace) β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… класса Π² Python.

АргумСнты:

  • class β€” имя класса
  • variable β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Python ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅.
  • type β€” list ΠΈΠ»ΠΈ Pandas dataframe.
  • start β€” стартовый Id.
  • end β€” ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Id
  • properties β€” список (Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ β€” запятая) свойств класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ маски * ΠΈ ?. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” * (всС свойства). Бвойство %%CLASSNAME игнорируСтся.
  • namespace β€” ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ запрос.

ВсС свойства ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΊΡ€ΠΎΠΌΠ΅ свойств Ρ‚ΠΈΠΏΠΎΠ² %Date, %Time, %Boolean ΠΈ %TimeStamp β€” ΠΎΠ½ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ классы Python.

ExecuteTable

ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠ° Π½Π°Π΄ ExecuteClass. ВранслируСт имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² имя класса ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ExecuteClass. Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π°:

ExecuteTable(table, variable, type, start, end, properties, namespace) β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Python.

АргумСнты:

  • 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 ΠΈ зависит ΠΎΡ‚ ОБ (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

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, 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 β€” (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для 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.
  • Variables β€” Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ запятыми список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΡ‚Π²Π΅Ρ‚.
  • Serialization β€” Как ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹: Str, Repr, JSON, Pickle ΠΈ Dill, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Str.

Π’ нашСм случаС, ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ устанавливаСм свойство Code, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ свойства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠœΡ‹ устанавливаСм Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ process.GetAnnotation("Import pandas"), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎ врСмя выполнСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ послС выполнСния подстановки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΊΠΎΠ΄ import pandas as pd Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² Python. GetAnnotation ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для получСния многострочных Python скриптов, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ способ получСния ΠΊΠΎΠ΄Π° Π½Π΅Ρ‚. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство Code Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для вас способом.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ интСрСсный Π²Ρ‹Π·ΠΎΠ² с использованиСм isc.py.msg.ExecutionRequest β€” Correlation Matrix: Tabular:

Python Gateway Π² InterSystems IRIS

Он вычисляСт ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΠΈ Π½Π° сторонС Python ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ corrmat ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² InterSystems IRIS Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, ΠΏΡƒΡ‚Π΅ΠΌ установки свойств запроса:

  • Variables: "corrmat"
  • Serialization: "JSON"

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Visual Trace:

Python Gateway Π² InterSystems IRIS

И Ссли Π½Π°ΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ понадобится Π² Π‘ΠŸ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ: callresponse.Variables.GetAt("corrmat").

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· InterSystems IRIS Π² Python, всС запросы Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ интСрфСйс 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 Gateway Π² InterSystems IRIS

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅/восстановлСниС Python контСкста

НаконСц, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 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 β€” ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ контСкст ΠΏΠ΅Ρ€Π΅Π΄ восстановлСниСм.

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, поТалуйста, ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ сообщСниС ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ адрСсу: [email protected] ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² своСм письмС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ GitHub
  • ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ (Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ)
  • Π”ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ (ваша фактичСская Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ Π² вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ "Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚", ΠΈΠ»ΠΈ "НСзависимый").
  • Π‘Ρ‚Ρ€Π°Π½Π°

Π’Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈ заинтСрСсовался возмоТностями InterSystems IRIS ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ размСщСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΈ машинного обучСния, ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ сцСнарии, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ интСрСс для вашСго прСдприятия. ΠœΡ‹ с Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ потрСбности вашСго прСдприятия ΠΈ совмСстно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΏΠ»Π°Π½ дСйствий; ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ нашСй экспСртной Π³Ρ€ΡƒΠΏΠΏΡ‹ AI/ML – [email protected].

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