{"id":41221,"date":"2020-02-06T20:42:46","date_gmt":"2020-02-06T17:42:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/python-gateway-v-intersystems-iris"},"modified":"2020-02-06T20:42:46","modified_gmt":"2020-02-06T17:42:46","slug":"python-gateway-v-intersystems-iris","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/python-gateway-v-intersystems-iris","title":{"rendered":"Python Gateway n\u00eb InterSystems IRIS","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ky artikull \u00ebsht\u00eb mbi Python Gateway \u2014 nj\u00eb projekt komuniteti me kod t\u00eb hapur p\u00ebr platform\u00ebn e t\u00eb dh\u00ebnave InterSystems IRIS. Ky projekt lejon orkestrimin e \u00e7do algoritmi t\u00eb m\u00ebsimit n\u00eb makin\u00eb t\u00eb nd\u00ebrtuar n\u00eb gjuh\u00ebn Python (mjedisi kryesor p\u00ebr shum\u00eb Shkenc\u00ebtar\u00eb t\u00eb T\u00eb Dh\u00ebnave), duke p\u00ebrdorur biblioteka t\u00eb shumta t\u00eb gatshme p\u00ebr t\u00eb krijuar shpejt analiza adaptyve AI\/ML n\u00eb platform\u00ebn InterSystems IRIS. N\u00eb k\u00ebt\u00eb artikull, un\u00eb do t\u00eb tregoj se si InterSystems IRIS mund t\u00eb orkestroj\u00eb proceset n\u00eb gjuh\u00ebn Python, duke realizuar n\u00eb m\u00ebnyr\u00eb efikase transferimin bidirezional t\u00eb t\u00eb dh\u00ebnave dhe krijimin e proceseve inteligjente t\u00eb biznesit.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"plan\">Plani<\/h1>\n<p><\/p>\n<ol>\n<li>Hyrje.<\/li>\n<li>Veg\u00ebl.<\/li>\n<li>Instalimi.<\/li>\n<li>API.<\/li>\n<li>Interoperabiliteti.<\/li>\n<li>Jupyter Notebook.<\/li>\n<li>P\u00ebrfundime.<\/li>\n<li>Referencat.<\/li>\n<li>MLToolkit.<\/li>\n<\/ol>\n<p><\/p>\n<h1 id=\"vvedenie\">Hyrje<\/h1>\n<p><\/p>\n<p>Python \u00ebsht\u00eb nj\u00eb gjuh\u00eb programimi e nivelit t\u00eb lart\u00eb me q\u00ebllim t\u00eb p\u00ebrgjithsh\u00ebm, e orientuar drejt rritjes s\u00eb produktivitetit t\u00eb zhvilluesit dhe lexueshm\u00ebris\u00eb s\u00eb kodit. N\u00eb k\u00ebt\u00eb seri artikujsh, un\u00eb do t\u00eb flas p\u00ebr mund\u00ebsit\u00eb e p\u00ebrdorimit t\u00eb gjuh\u00ebs Python n\u00eb platform\u00ebn InterSystems IRIS, nd\u00ebrsa fokusi kryesor i k\u00ebtij artikulli \u00ebsht\u00eb p\u00ebrdorimi i Python si gjuh\u00eb p\u00ebr krijimin dhe aplikimin e modeleve t\u00eb m\u00ebsimit t\u00eb makin\u00eb.<\/p>\n<p><\/p>\n<p>M\u00ebsimi me makin\u00eb (ML) \u00ebsht\u00eb nj\u00eb klas\u00eb metodash t\u00eb inteligjenc\u00ebs artificiale, ku karakteristika dalluese \u00ebsht\u00eb se zgjidhja e problemit nuk b\u00ebhet drejtp\u00ebrdrejt, por p\u00ebrmir\u00ebsohet gjat\u00eb zgjidhjes s\u00eb shum\u00eb problemeve t\u00eb ngjashme. <\/p>\n<p><\/p>\n<p>Algoritmet dhe modelet e m\u00ebsimit me makin\u00eb po b\u00ebhen gjithnj\u00eb e m\u00eb t\u00eb zakonshme. Ka shum\u00eb arsye p\u00ebr k\u00ebt\u00eb, por gjith\u00e7ka zvog\u00eblohet n\u00eb aksesibilitetin, thjesht\u00ebsin\u00eb dhe arritjen e rezultateve praktike. A \u00ebsht\u00eb klasterizimi apo madje modelimi me rrjeta nervore nj\u00eb teknologji e re? <\/p>\n<p><\/p>\n<p>Sigurisht q\u00eb jo, por aktualisht nuk ka nevoj\u00eb t\u00eb shkruani qindra mij\u00ebra rreshta kodi p\u00ebr t\u00eb vog\u00ebluar nj\u00eb model, nd\u00ebrsa shpenzimet p\u00ebr krijimin dhe zbatimin e modeleve po zvog\u00eblohen vazhdimisht.<\/p>\n<p><\/p>\n<p>Mjetet po zhvillohen \u2014 nd\u00ebrsa nuk kemi mjete t\u00eb plot\u00eb t\u00eb orientuara nga GUI p\u00ebr AI\/ML, p\u00ebrparimi q\u00eb kemi v\u00ebzhguar n\u00eb shum\u00eb klasifikime t\u00eb tjera t\u00eb sistemeve informatik\u00eb, p.sh. BI (nga kodimi n\u00eb p\u00ebrdorimin e kornizave dhe zgjidhjeve t\u00eb konfigurueshme t\u00eb orientuara nga GUI), po ndodh gjithashtu n\u00eb mjetet p\u00ebr krijimin e AI\/ML. Ne tashm\u00eb kemi kaluar faz\u00ebn e kodimit dhe sot p\u00ebrdorim korniza p\u00ebr t\u00eb nd\u00ebrtuar dhe trajnuar modelet.<\/p>\n<p><\/p>\n<p>P\u00ebrmir\u00ebsime t\u00eb tjera, t\u00eb tilla si mund\u00ebsia p\u00ebr t\u00eb shp\u00ebrndar\u00eb modelin e trajnuar paraprakisht, ku p\u00ebrdoruesi i fundit duhet t\u00eb p\u00ebrfundoj\u00eb thjesht trajnimin e modelit n\u00eb t\u00eb dh\u00ebnat e tij specifike, gjithashtu e thjeshton fillimin e p\u00ebrdorimit t\u00eb m\u00ebsimit t\u00eb makineris\u00eb. K\u00ebto arritje ndihmojn\u00eb ndjesh\u00ebm n\u00eb studimin e m\u00ebsimit t\u00eb makineris\u00eb si p\u00ebr specialist\u00ebt, ashtu edhe p\u00ebr kompanit\u00eb n\u00eb p\u00ebrgjith\u00ebsi.<\/p>\n<p><\/p>\n<p>Nga ana tjet\u00ebr, ne po mbledhim gjithnj\u00eb e m\u00eb shum\u00eb t\u00eb dh\u00ebna. Fal\u00eb nj\u00eb platforme t\u00eb unifikuar t\u00eb t\u00eb dh\u00ebnave, si InterSystems IRIS, gjith\u00eb kjo informacion mund t\u00eb p\u00ebrgatitet menj\u00ebher\u00eb dhe t\u00eb p\u00ebrdoret si t\u00eb dh\u00ebna burimore p\u00ebr modelet e m\u00ebsimit t\u00eb makineris\u00eb.<\/p>\n<p><\/p>\n<p>Me kalimin n\u00eb cloud, nisja e projekteve AI\/ML b\u00ebhet m\u00eb e leht\u00eb se kurr\u00eb. Ne mund t\u00eb konsumojm\u00eb vet\u00ebm ato resurse q\u00eb na nevojiten. P\u00ebr m\u00eb tep\u00ebr, fal\u00eb paralelizimit q\u00eb ofrojn\u00eb platformat cloud, mund t\u00eb kursejm\u00eb koh\u00ebn e shpenzuar.<\/p>\n<p><\/p>\n<p>Por \u00e7far\u00eb b\u00ebhet fjal\u00eb p\u00ebr rezultatet? K\u00ebtu gj\u00ebrat komplikohen. Ekzistojn\u00eb shum\u00eb mjete p\u00ebr nd\u00ebrtimin e modeleve, p\u00ebr t\u00eb cilat do t\u00eb flas m\u00eb tej. T\u00eb nd\u00ebrtosh nj\u00eb model t\u00eb mir\u00eb nuk \u00ebsht\u00eb e leht\u00eb, por \u00e7far\u00eb vjen m\u00eb pas? T\u00eb nxjerr\u00ebsh p\u00ebrfitime nga p\u00ebrdorimi i modelit nga biznesi \u00ebsht\u00eb gjithashtu nj\u00eb detyr\u00eb e komplikuar. Rr\u00ebnja e problemit q\u00ebndron n\u00eb ndarjen e ngarkesave analitike dhe transaksionet, dhe modelet e dh\u00ebnash. Kur e trajnojm\u00eb modelin, zakonisht e b\u00ebjm\u00eb k\u00ebt\u00eb me t\u00eb dh\u00ebna historike. Por vendi p\u00ebr modelin e nd\u00ebrtuar \u00ebsht\u00eb n\u00eb p\u00ebrpunimin transaksional t\u00eb t\u00eb dh\u00ebnave. \u00c7far\u00eb do t\u00eb thot\u00eb t\u00eb kesh modelin m\u00eb t\u00eb mir\u00eb p\u00ebr zbulimin e transaksioneve t\u00eb mashtrimit, n\u00ebse e ekzekutojm\u00eb at\u00eb nj\u00eb her\u00eb n\u00eb dit\u00eb? Mashtruesit tashm\u00eb jan\u00eb larguar me parat\u00eb. Na nevojitet t\u00eb trajnojm\u00eb modelin me t\u00eb dh\u00ebna historike, por gjithashtu duhet ta aplikojm\u00eb at\u00eb n\u00eb koh\u00eb reale me t\u00eb dh\u00ebnat q\u00eb vijn\u00eb, n\u00eb m\u00ebnyr\u00eb q\u00eb proceset tona t\u00eb mund t\u00eb veprojn\u00eb sipas parashikimeve t\u00eb b\u00ebra nga modeli.<\/p>\n<p><\/p>\n<p>ML Toolkit \u2014 nj\u00eb grup mjetesh, q\u00ebllimi i t\u00eb cilit \u00ebsht\u00eb pik\u00ebrisht ky: t\u00eb bashkoj\u00eb modelet dhe mjedisin transaksional, n\u00eb m\u00ebnyr\u00eb q\u00eb modelet e nd\u00ebrtuara t\u00eb mund t\u00eb p\u00ebrdoren leht\u00ebsisht n\u00eb proceset tuaja biznesore. Python Gateway \u00ebsht\u00eb nj\u00eb pjes\u00eb e ML Toolkit dhe ofron integrim me gjuh\u00ebn Python (ngjash\u00ebm si R Gateway, q\u00eb gjithashtu \u00ebsht\u00eb pjes\u00eb e ML Toolkit dhe ofron integrim me gjuh\u00ebn R).<\/p>\n<p><\/p>\n<h1 id=\"instrumentariy\">Instrumentari<\/h1>\n<p><\/p>\n<p>Para se t\u00eb vazhdojm\u00eb, do t\u00eb doja t\u00eb p\u00ebrshkruaja disa mjete dhe biblioteka p\u00ebr Python q\u00eb do t\u00eb p\u00ebrdorim m\u00eb von\u00eb.<\/p>\n<p><\/p>\n<h2 id=\"tehnologii\">Teknologji<\/h2>\n<p><\/p>\n<ul>\n<li>Python \u00ebsht\u00eb nj\u00eb gjuh\u00eb programimi e interpretueshme, me nivel t\u00eb lart\u00eb dhe q\u00eb ka nj\u00eb q\u00ebllim t\u00eb p\u00ebrgjithsh\u00ebm. Avantazhi kryesor i gjuh\u00ebs \u00ebsht\u00eb biblioteka e saj e madhe matematikore, ML dhe AI. Si ObjectScript, ajo \u00ebsht\u00eb nj\u00eb gjuh\u00eb objekt-orientuar, por gjith\u00e7ka p\u00ebrcaktohet dinamikisht, dhe jo statikisht. Gjithashtu, gjith\u00e7ka \u00ebsht\u00eb objekt. Artikujt e m\u00ebvonsh\u00ebm supozojn\u00eb nj\u00eb njohje t\u00eb kalimtare me gjuh\u00ebn. N\u00ebse d\u00ebshiron t\u00eb fillosh m\u00ebsimin, rekomandoj t\u00eb fillosh me <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.python.org\/3.6\/tutorial\/index.html\">dokumentacion<\/a><\/noindex>.<\/li>\n<li>P\u00ebr ushtrimet tona t\u00eb ardhshme, instaloni <noindex><a rel=\"nofollow\" href=\"https:\/\/www.python.org\/downloads\/release\/python-367\/\">Python 3.6.7 64 bit<\/a><\/noindex>.<\/li>\n<li>IDE: Un\u00eb p\u00ebrdor <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/pycharm\/\">PyCharm<\/a><\/noindex>, por p\u00ebrgjith\u00ebsisht ka <noindex><a rel=\"nofollow\" href=\"https:\/\/realpython.com\/python-ides-code-editors-guide\/\">shum\u00eb<\/a><\/noindex>. N\u00ebse p\u00ebrdorni Atelier, ka nj\u00eb plugin Eclipse p\u00ebr zhvilluesit n\u00eb Python. N\u00ebse p\u00ebrdorni VS Code, ka nj\u00eb shtes\u00eb p\u00ebr Python. <\/li>\n<li>Notebook: n\u00eb vend t\u00eb IDE-s\u00eb, mund t\u00eb shkruani dhe ndaheni me skriptet tuaja n\u00eb notebook-e online. Notebook-u m\u00eb i njohur \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/jupyter.org\/\">Jupyter<\/a><\/noindex>.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"biblioteki\">Bibliotekat<\/h2>\n<p><\/p>\n<p>Ja nj\u00eb list\u00eb (e paplot\u00eb) e bibliotekave p\u00ebr m\u00ebsim n\u00eb makin\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.numpy.org\/\">Numpy<\/a><\/noindex> \u2014 paketi themelor p\u00ebr llogaritjet e sakta.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/pandas.pydata.org\/\">Pandas<\/a><\/noindex> \u2014 struktura t\u00eb dh\u00ebnash me performanc\u00eb t\u00eb lart\u00eb dhe instrumente p\u00ebr analiz\u00ebn e t\u00eb dh\u00ebnave.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/matplotlib.org\/\">Matplotlib<\/a><\/noindex> \u2014 krijimi i grafik\u00ebve.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/seaborn.pydata.org\/\">Seaborn<\/a><\/noindex> \u2014 vizualizimi i t\u00eb dh\u00ebnave, i bazuar n\u00eb matplotlib.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/scikit-learn.org\/stable\/\">Sklearn<\/a><\/noindex> \u2014 metoda t\u00eb m\u00ebsimit t\u00eb makinave.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xgboost.readthedocs.io\/en\/latest\/index.html\">XGBoost<\/a><\/noindex> \u2014 algoritme t\u00eb m\u00ebsimit t\u00eb makinave n\u00eb kuad\u00ebr t\u00eb metodologjis\u00eb s\u00eb p\u00ebrmir\u00ebsimit t\u00eb gradienit (Gradient Boosting).<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/radimrehurek.com\/gensim\/\">Gensim<\/a><\/noindex> \u2014 NLP.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/keras.io\/\">Keras<\/a><\/noindex> \u2014 rrjetet neuronale.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.tensorflow.org\/\">Tensorflow<\/a><\/noindex> \u2014 nj\u00eb platform\u00eb p\u00ebr nd\u00ebrtimin e modeleve t\u00eb m\u00ebsimit t\u00eb makinave.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/pytorch.org\/\">PyTorch<\/a><\/noindex> \u2014 nj\u00eb platform\u00eb p\u00ebr nd\u00ebrtimin e modeleve t\u00eb m\u00ebsimit t\u00eb makinave, e orientuar n\u00eb Python.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nyoka-pmml\/nyoka\">Nyoka<\/a><\/noindex> \u2014 PMML nga modelet e ndryshme.<\/li>\n<\/ul>\n<p><\/p>\n<p>Teknologjit\u00eb AI\/ML lejojn\u00eb q\u00eb biznesi t\u00eb b\u00ebhet m\u00eb efikas dhe adaptiv. M\u00eb shum\u00eb se kaq, sot k\u00ebto teknologji po b\u00ebhen m\u00eb t\u00eb thjeshta p\u00ebr zhvillim dhe implementim. Filloni t\u00eb studioni teknologjit\u00eb AI\/ML dhe se si ato mund t\u00eb ndihmojn\u00eb organizat\u00ebn tuaj t\u00eb rritet.<\/p>\n<p><\/p>\n<h1 id=\"ustanovka\">Instalimi<\/h1>\n<p><\/p>\n<p>Ka \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd disa m\u00ebnyra p\u00ebr t\u00eb instaluar dhe p\u00ebrdorur Python Gateway:<\/p>\n<p><\/p>\n<ul>\n<li>sistemin operativ\n<ul>\n<li>Windows<\/li>\n<li>Linux<\/li>\n<li>Mac<\/li>\n<\/ul>\n<\/li>\n<li>Docker\n<ul>\n<li>P\u00ebrdorni imazhin nga DockerHub<\/li>\n<li>Krijoni imazhin tuaj<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Pavar\u00ebsisht nga m\u00ebnyra e instalimit, do t'ju duhet kodi burimor. Vendi i vet\u00ebm p\u00ebr t\u00eb shkarkuar kodin \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\/releases\">faqja e l\u00ebshimeve<\/a><\/noindex>. Ajo p\u00ebrmban l\u00ebshime stabile t\u00eb testuara, thjesht merrni t\u00eb fundit. Aktualisht kjo \u00ebsht\u00eb 0.8, por me kalimin e koh\u00ebs do t\u00eb ket\u00eb edhe t\u00eb reja. Mos e klononi\/ngarkoni repozitorin, shkarkoni l\u00ebshimin e fundit.<\/p>\n<p><\/p>\n<h2 id=\"os\">sistemin operativ<\/h2>\n<p><\/p>\n<p>N\u00ebse po instaloni Python Gateway n\u00eb nj\u00eb sistem operativ, fillimisht (pavar\u00ebsisht nga sistemi operativ) do t'ju nevojitet t\u00eb instaloni Python. P\u00ebr k\u00ebt\u00eb:<\/p>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.python.org\/downloads\/release\/python-367\/\">Instaloni Python 3.6.7 64 bit<\/a><\/noindex>. Rekomandohet t\u00eb instaloni Python n\u00eb direktorin\u00eb e paracaktuar.<\/li>\n<li>Instaloni modul <code>dill<\/code>: <code>pip install dill<\/code>.<\/li>\n<li>Shkarkoni kodin ObjectScript (dmth. <code>do $system.OBJ.ImportDir(&quot;C:InterSystemsReposPythoniscpy&quot;, &quot;*.cls&quot;, &quot;c&quot;,,1)<\/code>) n\u00eb \u00e7do zon\u00eb me produkte. N\u00eb rast se d\u00ebshironi q\u00eb zona ekzistuese t\u00eb mb\u00ebshtes\u00eb produkte, kryeni: <code>write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)<\/code>.<\/li>\n<li>Vendosni <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\/releases\">callout DLL\/SO\/DYLIB<\/a><\/noindex> n\u00eb dosjen <code>bin<\/code> e instanc\u00ebs suaj InterSystems IRIS. Skedari i bibliotek\u00ebs duhet t\u00eb jet\u00eb i disponuesh\u00ebm n\u00eb rrug\u00ebn q\u00eb kthen <code>write ##class(isc.py.Callout).GetLib()<\/code>. <\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"windows\">Windows<\/h3>\n<p><\/p>\n<ol>\n<li>Sigurohuni q\u00eb variabla e ambientit <code>PYTHONHOME<\/code> tregon Python 3.6.7.<\/li>\n<li>Sigurohuni q\u00eb variabla sistemike e ambientit <code>PATH<\/code> p\u00ebrmban variabl\u00ebn <code>PYTHONHOME<\/code> (ose direktorin\u00eb q\u00eb ajo tregon).<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"linux-debianubuntu\">Linux (Debian\/Ubuntu)<\/h3>\n<p><\/p>\n<ol>\n<li>Kontrolloni q\u00eb variabla e ambientit <code>PATH<\/code> p\u00ebrmban <code>\/usr\/lib<\/code> dhe <code>\/usr\/lib\/x86_64-linux-gnu<\/code>. P\u00ebrdorni skedarin <code>\/etc\/environment<\/code> p\u00ebr t\u00eb vendosur variablat e ambientit.<\/li>\n<li>N\u00eb rast gabimesh <code>simbol i paem\u00ebruar: _Py_TrueStruct<\/code> vendosni cil\u00ebsimin <code>PythonLib<\/code>. Po ashtu, n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\">Readme<\/a><\/noindex> ka nj\u00eb seksion p\u00ebr Troubleshooting.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"mac\">Mac<\/h3>\n<p><\/p>\n<ol>\n<li>Aktualisht mb\u00ebshtetet vet\u00ebm Python 3.6.7 nga <noindex><a rel=\"nofollow\" href=\"https:\/\/www.python.org\/downloads\/release\/python-367\/\">Python.org<\/a><\/noindex>. Kontrolloni variabl\u00ebn <code>PATH<\/code>.<\/li>\n<\/ol>\n<p><\/p>\n<p>N\u00ebse keni ndryshuar variablat e ambientit, rilidheni produktin tuaj InterSystems.<\/p>\n<p><\/p>\n<h2 id=\"docker\">Docker<\/h2>\n<p><\/p>\n<p>P\u00ebrdorimi i en\u00ebve ka nj\u00eb s\u00ebr\u00eb p\u00ebrfitimesh: <\/p>\n<p><\/p>\n<ul>\n<li>Portabiliteti<\/li>\n<li>Efikasiteti.<\/li>\n<li>Izolimi<\/li>\n<li>Leht\u00ebsia<\/li>\n<li>Imutabiliteti<\/li>\n<\/ul>\n<p><\/p>\n<p>Shikoni k\u00ebt\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/community.intersystems.com\/post\/continuous-delivery-your-intersystems-solution-using-gitlab-part-v-why-containers\">seri artikujsh<\/a><\/noindex> p\u00ebr m\u00eb shum\u00eb informacion n\u00eb lidhje me p\u00ebrdorimin e Docker me produktet InterSystems. <\/p>\n<p><\/p>\n<p>T\u00eb gjitha nd\u00ebrtimet e Python Gateway aktualisht bazohen n\u00eb en\u00eb <code>2019.4<\/code>.<\/p>\n<p><\/p>\n<h3 id=\"gotovyy-obraz\">Imazhi i gatsh\u00ebm<\/h3>\n<p><\/p>\n<p>Ekzekutoni: <code>docker run -d -p 52773:52773 --name irispy intersystemscommunity\/irispy-community:latest<\/code>, p\u00ebr t\u00eb shkarkuar dhe nisur Python Gateway me InterSystems IRIS Community Edition. K\u00ebtu jemi.<\/p>\n<p><\/p>\n<h3 id=\"sozdayte-svoy-sobstvennyy-obraz\">Krijoni imazhin tuaj<\/h3>\n<p><\/p>\n<p>P\u00ebr t\u00eb nd\u00ebrtuar imazhin e docker, ekzekutoni n\u00eb rr\u00ebnj\u00ebn e repository-t: <code>docker build --force-rm --tag intersystemscommunity\/irispy:latest .<\/code>.<br \/>\nP\u00ebr default, imazhi nd\u00ebrtohet mbi imazhin <code>store\/intersystems\/iris-community:2019.4.0.383.0<\/code>, megjithat\u00eb mund ta ndryshoni k\u00ebt\u00eb duke caktuar ndryshoren <code>IMAGE<\/code>.<br \/>\n\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 InterSystems IRIS \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435: `docker build &#8212;build-arg IMAGE=store\/intersystems\/iris:2019.4.0.383.0 &#8212;force-rm &#8212;tag intersystemscommunity\/irispy:latest &#171;.<\/p>\n<p><\/p>\n<p>Pas k\u00ebsaj, mund t\u00eb nisni imazhin docker:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">docker run -d \n  -p 52773:52773 \n  -v \/\/:\/mount \n  --name irispy \n  intersystemscommunity\/irispy:latest \n  --key \/mount\/iris.key<\/code><\/pre>\n<p><\/p>\n<p>N\u00ebse po p\u00ebrdorni nj\u00eb imazh t\u00eb bazuar n\u00eb InterSystems IRIS Community Edition, nuk keni nevoj\u00eb t\u00eb specifikoni \u00e7el\u00ebsin.<\/p>\n<p><\/p>\n<h3 id=\"kommentarii\">Komentet<\/h3>\n<p><\/p>\n<ul>\n<li>Procesi i testimit <code>isc.py.test.Process<\/code> ruan nj\u00eb s\u00ebr\u00eb imazhesh n\u00eb nj\u00eb katalog p\u00ebrkoh\u00ebsor. Mund t\u00eb d\u00ebshironi t\u00eb ndryshoni k\u00ebt\u00eb rrug\u00eb n\u00eb katalogun e montuar. P\u00ebr t\u00eb b\u00ebr\u00eb k\u00ebt\u00eb, redaktoni cil\u00ebsimin <code>WorkingDir<\/code> duke specifikuar direktorin\u00eb e montuar.<\/li>\n<li>P\u00ebr t\u00eb hyr\u00eb n\u00eb terminal, ekzekutoni: <code>docker exec -it irispy sh<\/code>.<\/li>\n<li>Qasja n\u00eb Portalin e Menaxhimit t\u00eb Sistemit me identifikimin <code>SuperUser<\/code>\/<code>SYS<\/code>.<\/li>\n<li>P\u00ebr t\u00eb ndaluar kontenierin, ekzekutoni: <code>docker stop irispy &amp;&amp; docker rm --force irispy<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"proverka-ustanovki\">Kontrolli i instalimit<\/h2>\n<p><\/p>\n<p>Pas instalimit t\u00eb Python Gateway, \u00ebsht\u00eb mir\u00eb t\u00eb kontrolloni n\u00ebse funksionon. Ekzekutoni k\u00ebt\u00eb kod n\u00eb terminalin e InterSystems IRIS:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">set sc = ##class(isc.py.Callout).Setup() \nset sc = ##class(isc.py.Main).SimpleString(&quot;x='HELLO'&quot;, &quot;x&quot;, , .var).\nwrite var<\/code><\/pre>\n<p><\/p>\n<p>Si duhet t\u00eb shfaqet <code>HELLO<\/code> \u2014 vlera e variabl\u00ebs Python <code>x<\/code>. N\u00ebse statusi i kthyer <code>sc<\/code> \u00ebsht\u00eb nj\u00eb gabim ose <code>var<\/code> \u00ebsht\u00eb bosh, kontrolloni <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\">Readme \u2014 Seksioni p\u00ebr Zgjidhjen e Problemeve<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h1 id=\"api\">API<\/h1>\n<p><\/p>\n<p>Python Gateway \u00ebsht\u00eb instaluar dhe ju keni verifikuar q\u00eb po punon. \u00cbsht\u00eb koha ta filloni p\u00ebrdorimin!<br \/>\nInt\u00ebrfaci kryesor p\u00ebr Python \u00ebsht\u00eb <code>isc.py.Main<\/code>. Ai ofron grupet e m\u00ebposhtme t\u00eb metodave (t\u00eb gjitha kthejn\u00eb <code>%Status<\/code>):<\/p>\n<p><\/p>\n<ul>\n<li>Ekzekutimi i kodit<\/li>\n<li>Transferta e t\u00eb dh\u00ebnave<\/li>\n<li>T\u00eb ndihmueshme<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ispolnenie-koda\">Ekzekutimi i kodit<\/h2>\n<p><\/p>\n<p>K\u00ebto metoda lejojn\u00eb ekzekutimin e kodit t\u00eb rast\u00ebsish\u00ebm Python.<\/p>\n<p><\/p>\n<h3 id=\"simplestring\">SimpleString<\/h3>\n<p><\/p>\n<p><code>SimpleString<\/code> \u2014 \u00ebsht\u00eb metoda kryesore. Ajo pranon 4 argumente opsionale:<\/p>\n<p><\/p>\n<ul>\n<li><code>kode<\/code> \u2014 nj\u00eb varg kodi p\u00ebr ekzekutim. Simboli i kalimit n\u00eb rresht: <code>$c(10)<\/code>.<\/li>\n<li><code>returnVariable<\/code> \u2014 emri i variabl\u00ebs p\u00ebr t'u kthyer.<\/li>\n<li><code>serialization<\/code> \u2014 si t\u00eb serializoni <code>returnVariable<\/code>. 0 \u2014 string (me t\u00eb drejtat e paracaktuar), 1 \u2014 repr.<\/li>\n<li><code>result<\/code> \u2014 Referenc\u00eb ByRef n\u00eb variabl\u00ebn ku ruhet vlera <code>returnVariable<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<p>M\u00eb lart ne ekzekutuam:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">set sc = ##class(isc.py.Main).SimpleString(&quot;x='HELLO'&quot;, &quot;x&quot;, , .var).<\/code><\/pre>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb shembull ne i japim variabl\u00ebs Python <code>x<\/code> vler\u00ebn <code>Hello<\/code> dhe duam t\u00eb kthejm\u00eb vler\u00ebn e variabl\u00ebs Python <code>x<\/code> n\u00eb variabl\u00ebn ObjectScript <code>var<\/code>.<\/p>\n<p><\/p>\n<h3 id=\"executecode\">ExecuteCode<\/h3>\n<p><\/p>\n<p>ExecuteCode \u00ebsht\u00eb nj\u00eb alternativ\u00eb m\u00eb e sigurt dhe m\u00eb pak e kufizuar <code>SimpleString<\/code>.<br \/>\nRreshtat n\u00eb platform\u00ebn InterSystems IRIS jan\u00eb t\u00eb kufizuara n\u00eb 3 641 144 karaktere, dhe n\u00ebse d\u00ebshironi t\u00eb ekzekutoni nj\u00eb kod m\u00eb t\u00eb gjat\u00eb, duhet t\u00eb p\u00ebrdorni rrjedha.<br \/>\nPranohet dy argumente:<\/p>\n<p><\/p>\n<ul>\n<li><code>kode<\/code> \u2014 nj\u00eb string ose rrjedh\u00eb kode Python p\u00ebr ekzekutim.<\/li>\n<li><code>variab\u00ebl<\/code> \u2014 (opsionale) cakton rezultatin e ekzekutimit <code>kode<\/code> n\u00eb k\u00ebt\u00eb variab\u00ebl Python.<\/li>\n<\/ul>\n<p><\/p>\n<p>Shembuj p\u00ebrdorimi:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">set sc = ##class(isc.py.Main).ExecuteCode(&quot;2*3&quot;, &quot;y&quot;).<\/code><\/pre>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb shembull ne shum\u00ebzojm\u00eb 2 me 3 dhe regjistrojm\u00eb rezultatin n\u00eb nj\u00eb variab\u00ebl Python. <code>y<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"peredacha-dannyh\">Transferta e t\u00eb dh\u00ebnave<\/h2>\n<p><\/p>\n<p>Kalon t\u00eb dh\u00ebnat n\u00eb Python dhe p\u00ebrs\u00ebri.<\/p>\n<p><\/p>\n<h3 id=\"python---intersystems-iris\">Python -&gt; InterSystems IRIS<\/h3>\n<p><\/p>\n<p>Ka 4 m\u00ebnyra p\u00ebr t\u00eb marr\u00eb vler\u00ebn e nj\u00eb variabli Python n\u00eb InterSystems IRIS, n\u00eb var\u00ebsi t\u00eb serializimit q\u00eb ju nevojitet:<\/p>\n<p><\/p>\n<ul>\n<li><code>String<\/code> p\u00ebr tipe t\u00eb thjeshta t\u00eb t\u00eb dh\u00ebnave dhe p\u00ebr debuggim.<\/li>\n<li><code>Repr<\/code> p\u00ebr ruajtjen e objekteve t\u00eb thjeshta dhe p\u00ebr debuggim.<\/li>\n<li><code>JSON<\/code> p\u00ebr manipulimin e leht\u00eb t\u00eb t\u00eb dh\u00ebnave n\u00eb an\u00ebn e InterSystems IRIS.<\/li>\n<li><code>Pickle<\/code> p\u00ebr ruajtjen e objekteve.<\/li>\n<\/ul>\n<p><\/p>\n<p>K\u00ebto metoda lejojn\u00eb marrjen e variablave nga Python si stringa ose rrjedha.<\/p>\n<p><\/p>\n<ul>\n<li><code>GetVariable(variable, serialization, .stream, useString)<\/code> \u2014 merr <code>serialization<\/code> variab\u00ebl <code>variab\u00ebl<\/code> n\u00eb <code>stream<\/code>. N\u00ebse <code>useString<\/code> n\u00ebse \u00ebsht\u00eb 1 dhe serializimi vendoset n\u00eb nj\u00eb string, at\u00ebher\u00eb kthehet nj\u00eb string dhe jo nj\u00eb rrjedh\u00eb.<\/li>\n<li><code>GetVariableJson(variable, .stream, useString)<\/code> \u2014 merr serializimin JSON t\u00eb variablit.<\/li>\n<li><code>GetVariablePickle(variable, .stream, useString, useDill)<\/code> - merr serializimin Pickle (ose Dill) t\u00eb variablit.<\/li>\n<\/ul>\n<p><\/p>\n<p>Le t\u00eb provojm\u00eb t\u00eb marrim ndryshoren ton\u00eb <code>y<\/code>.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">set sc = ##class(isc.py.Main).GetVariable(&quot;y&quot;, , .val, 1)\nwrite val\n&gt;6<\/code><\/pre>\n<p><\/p>\n<h3 id=\"intersystems-iris---python\">InterSystems IRIS -&gt; Python<\/h3>\n<p><\/p>\n<p>Duke ngarkuar t\u00eb dh\u00ebnat nga InterSystems IRIS n\u00eb Python.<\/p>\n<p><\/p>\n<ul>\n<li><code>ExecuteQuery(query, variable, type, namespace)<\/code> \u2014 krijon nj\u00eb set t\u00eb dh\u00ebnash (pandas <code>dataframe<\/code> ose <code>list\u00eb<\/code>) nga k\u00ebrkesa sql dhe e vendos at\u00eb n\u00eb nj\u00eb ndryshore Python <code>variab\u00ebl<\/code>. Paketa <code>isc.py<\/code> duhet t\u00eb jet\u00eb e qasshme n\u00eb <code>namespace<\/code> \u2014 aty do t\u00eb ekzekutohet k\u00ebrkesa.<\/li>\n<li><code>ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)<\/code> \u2014 ngarkon t\u00eb dh\u00ebnat nga global <code>global<\/code> nga subscript <code>start<\/code> deri te <code>end<\/code> n\u00eb Python si nj\u00eb ndryshore e tipit <code>type<\/code>: <code>list\u00eb<\/code>, ose pandas <code>dataframe<\/code>. P\u00ebrshkrimi i argumenteve opsionale <code>mask<\/code> and <code>etiketat<\/code> \u00ebsht\u00eb n\u00eb dispozicion n\u00eb dokumentacionin e klas\u00ebs dhe n\u00eb repozitorin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\/blob\/master\/DataTransfer.md\">Dokumentet e Transferimit t\u00eb T\u00eb Dh\u00ebnave<\/a><\/noindex>.<\/li>\n<li><code>ExecuteClass(class, variable, type, start, end, properties, namespace)<\/code> \u2014 ngarkon t\u00eb dh\u00ebnat nga klasa <code>class<\/code> nga id <code>start<\/code> deri te <code>end<\/code> n\u00eb Python si nj\u00eb ndryshore e tipit <code>type<\/code>: <code>list\u00eb<\/code>, ose pandas <code>dataframe<\/code>. <code>propertietet<\/code> \u2014 lista (ndar\u00ebsi \u2014 presje) e atyre pronarive t\u00eb klas\u00ebs q\u00eb duhen ngarkuar n\u00eb setin e t\u00eb dh\u00ebnave. Maskat p\u00ebrkrah\u00ebn <code>*<\/code> dhe <code>?<\/code>. Nga e_default_ \u2014 <code>*<\/code> (t\u00eb gjitha pronat). Prona <code>%%CLASSNAME<\/code> injorohet.<\/li>\n<li><code>ExecuteTable(table, variable, type, start, end, properties, namespace)<\/code> \u2014 ngarkon t\u00eb dh\u00ebnat nga tabela <code>tavolina<\/code> nga id <code>start<\/code> deri te <code>end<\/code> n\u00eb Python.<\/li>\n<\/ul>\n<p><\/p>\n<p><code>ExecuteQuery<\/code> \u2014 \u00ebsht\u00eb universale (\u00e7do k\u00ebrkes\u00eb SQL e sakt\u00eb do t\u00eb d\u00ebrgohet n\u00eb Python). Megjithat\u00eb, <code>ExecuteGlobal<\/code> dhe mb\u00ebshtjell\u00ebsit e tij <code>ExecuteClass<\/code> dhe <code>ExecuteTable<\/code> punojn\u00eb me nj\u00eb mori kufizimesh. Ato jan\u00eb shum\u00eb m\u00eb t\u00eb shpejta (3-5 her\u00eb m\u00eb shpejt se ODBC driver dhe 20 her\u00eb m\u00eb shpejt) <code>ExecuteQuery<\/code>). Informacioni shtes\u00eb n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\/blob\/master\/DataTransfer.md\">Dokumentet e Transferimit t\u00eb T\u00eb Dh\u00ebnave<\/a><\/noindex>.<br \/>\nT\u00eb gjitha k\u00ebto metoda mb\u00ebshtesin transferimin e t\u00eb dh\u00ebnave nga \u00e7do fush\u00eb. Paketa <code>isc.py<\/code> duhet t\u00eb jet\u00eb e aksesueshme n\u00eb fush\u00ebn e synuar.<\/p>\n<p><\/p>\n<h3 id=\"executequery\">ExecuteQuery<\/h3>\n<p><\/p>\n<p><code>ExecuteQuery(request, variable, type, namespace)<\/code> \u2014 transferimi i rezultateve t\u00eb \u00e7do k\u00ebrkese SQL valide n\u00eb Python. Ky \u00ebsht\u00eb metoda m\u00eb e ngadalt\u00eb e transferimit t\u00eb t\u00eb dh\u00ebnave. P\u00ebrdoreni at\u00eb n\u00ebse <code>ExecuteGlobal<\/code> dhe mb\u00ebshtjell\u00ebsit e tij nuk jan\u00eb t\u00eb aksesuesh\u00ebm.<\/p>\n<p><\/p>\n<p>Argumentet:<\/p>\n<p><\/p>\n<ul>\n<li><code>query<\/code> \u2014 k\u00ebrkesa sql.<\/li>\n<li><code>variab\u00ebl<\/code> \u2014 emri i variablit Python n\u00eb t\u00eb cilin jan\u00eb shkruar t\u00eb dh\u00ebnat.<\/li>\n<li><code>type<\/code> \u2014 <code>list\u00eb<\/code> ose Pandas <code>dataframe<\/code>.<\/li>\n<li><code>namespace<\/code> \u2014 fusha n\u00eb t\u00eb cil\u00ebn do t\u00eb ekzekutohet k\u00ebrkesa.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"executeglobal\">ExecuteGlobal<\/h3>\n<p><\/p>\n<p><code>ExecuteGlobal(global, variable, type, start, end, mask, labeels, namespace)<\/code> \u2014 transferimi i globalit n\u00eb Python.<\/p>\n<p><\/p>\n<p>Argumentet:<\/p>\n<p><\/p>\n<ul>\n<li><code>global<\/code> \u2014 emri i globalit pa <code>^<\/code><\/li>\n<li><code>variab\u00ebl<\/code> \u2014 emri i variablit Python n\u00eb t\u00eb cilin jan\u00eb shkruar t\u00eb dh\u00ebnat.<\/li>\n<li><code>type<\/code> \u2014 <code>list\u00eb<\/code> ose Pandas <code>dataframe<\/code>.<\/li>\n<li><code>start<\/code> \u2014 subskripti i par\u00eb i globalit. Kjo \u00ebsht\u00eb e domosdoshme <code>%Integer<\/code>.<\/li>\n<li><code>end<\/code> \u2014 subskripti i fundit i globalit. Kjo \u00ebsht\u00eb e domosdoshme <code>%Integer<\/code>.<\/li>\n<li><code>mask<\/code> \u2014 maska e vlerave t\u00eb globalit. Maska mund t\u00eb jet\u00eb m\u00eb e shkurt\u00ebr se numri i fushave n\u00eb global (n\u00eb k\u00ebt\u00eb rast fushat n\u00eb fund do t\u00eb kalohen). Si t\u00eb formatoni mask\u00ebn:\n<ul>\n<li><code>+<\/code> t\u00eb kaloni vler\u00ebn si\u00e7 \u00ebsht\u00eb.<\/li>\n<li><code>-<\/code> t\u00eb kaloni vler\u00ebn.<\/li>\n<li><code>b<\/code> \u2014 Tipi logjik (<code>0<\/code> \u2014 <code>False<\/code>, gjith\u00e7ka tjet\u00ebr \u2014 <code>True<\/code>).<\/li>\n<li><code>d<\/code> \u2014 Data (nga $horolog, n\u00eb Windows nga 1970, n\u00eb Linux nga 1900).<\/li>\n<li><code>t<\/code> \u2014 Koha ($horolog, sekonda pas mesnat\u00ebs).<\/li>\n<li><code>m<\/code> \u2014 Marka e koh\u00ebs (string formati VIT-MUAJ-DIT ORA:MIRAT:SEKOND).<\/li>\n<\/ul>\n<\/li>\n<li><code>etiketat<\/code> \u2014 %List emrash kolonash. elementi i par\u00eb \u2014 emri i subskrit.<\/li>\n<li><code>namespace<\/code> \u2014 fusha n\u00eb t\u00eb cil\u00ebn do t\u00eb ekzekutohet k\u00ebrkesa.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"executeclass\">ExecuteClass<\/h3>\n<p><\/p>\n<p>Mb\u00ebshtjell\u00ebs mbi <code>ExecuteGlobal<\/code>. Bazuar n\u00eb p\u00ebrcaktimin e klas\u00ebs p\u00ebrgatit thirrjen <code>ExecuteGlobal<\/code> dhe e th\u00ebrret at\u00eb.<\/p>\n<p><\/p>\n<p><code>ExecuteClass(class, variable, type, start, end, properties, namespace)<\/code> \u2014 kalimi i t\u00eb dh\u00ebnave t\u00eb klas\u00ebs n\u00eb Python.<\/p>\n<p><\/p>\n<p>Argumentet:<\/p>\n<p><\/p>\n<ul>\n<li><code>class<\/code> \u2014 emri i klas\u00ebs<\/li>\n<li><code>variab\u00ebl<\/code> \u2014 emri i variablit Python n\u00eb t\u00eb cilin jan\u00eb shkruar t\u00eb dh\u00ebnat.<\/li>\n<li><code>type<\/code> \u2014 <code>list\u00eb<\/code> ose Pandas <code>dataframe<\/code>.<\/li>\n<li><code>start<\/code> \u2014 Id fillestar.<\/li>\n<li><code>end<\/code> \u2014 Id p\u00ebrfundimtar<\/li>\n<li><code>propertietet<\/code> \u2014 lista (ndar\u00ebsi \u2014 presje) e atyre pronarive t\u00eb klas\u00ebs q\u00eb duhen ngarkuar n\u00eb setin e t\u00eb dh\u00ebnave. Maskat p\u00ebrkrah\u00ebn <code>*<\/code> dhe <code>?<\/code>. Nga e_default_ \u2014 <code>*<\/code> (t\u00eb gjitha pronat). Prona <code>%%CLASSNAME<\/code> injorohet.<\/li>\n<li><code>namespace<\/code> \u2014 fusha n\u00eb t\u00eb cil\u00ebn do t\u00eb ekzekutohet k\u00ebrkesa.<\/li>\n<\/ul>\n<p><\/p>\n<p>T\u00eb gjitha pronat kalojn\u00eb ashtu si jan\u00eb p\u00ebrve\u00e7 pronave t\u00eb tipeve <code>%Date<\/code>, <code>%Koha<\/code>, <code>%Boolean<\/code> dhe <code>%TimeStamp<\/code> \u2014 ato konvertohen n\u00eb klasat p\u00ebrkat\u00ebse Python.<\/p>\n<p><\/p>\n<h3 id=\"executetable\">ExecuteTable<\/h3>\n<p><\/p>\n<p>Mb\u00ebshtjell\u00ebs mbi <code>ExecuteClass<\/code>. Transmiton emrin e tabel\u00ebs n\u00eb emrin e klas\u00ebs dhe e th\u00ebrret <code>ExecuteClass<\/code>. N\u00ebnshkrimi:<\/p>\n<p><\/p>\n<p><code>ExecuteTable(table, variable, type, start, end, properties, namespace)<\/code> \u2014 kalimi i t\u00eb dh\u00ebnave t\u00eb tabel\u00ebs n\u00eb Python.<\/p>\n<p><\/p>\n<p>Argumentet:<\/p>\n<p><\/p>\n<ul>\n<li><code>tavolina<\/code> \u2014 emri i tabel\u00ebs.<br \/>\nT\u00eb gjitha argumentet e tjera kalojn\u00eb ashtu si jan\u00eb n\u00eb <code>ExecuteClass<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"zametki\">V\u00ebrejtjet<\/h3>\n<p><\/p>\n<ul>\n<li><code>ExecuteGlobal<\/code>, <code>ExecuteClass<\/code> dhe <code>ExecuteTable<\/code> punojn\u00eb po aq shpejt.<\/li>\n<li><code>ExecuteGlobal<\/code> 20 her\u00eb m\u00eb shpejt se <code>ExecuteQuery<\/code> n\u00eb grupe t\u00eb m\u00ebdha t\u00eb dh\u00ebnash (koha e kalimit m\u00eb e madhe se &gt;0.01 sekonda).<\/li>\n<li><code>ExecuteGlobal<\/code>, <code>ExecuteClass<\/code> dhe <code>ExecuteTable<\/code> punojn\u00eb n\u00eb globalet me k\u00ebt\u00eb struktur\u00eb: <code>^global(key) = $lb(prop1, prop2, ..., propN)<\/code> ku <code>key<\/code> \u2014 num\u00ebr i plot\u00eb.<\/li>\n<li>P\u00ebr <code>ExecuteGlobal<\/code>, <code>ExecuteClass<\/code> dhe <code>ExecuteTable<\/code> rezultati i mb\u00ebshtetur <code>%Date<\/code> p\u00ebrputhet me <code>mktime<\/code> dhe varet nga OS (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/c-runtime-library\/reference\/mktime-mktime32-mktime64?view=vs-2019\">windows<\/a><\/noindex>: 1970-01-01, <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.die.net\/man\/3\/mktime\">linux<\/a><\/noindex> 1900-01-01, <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.apple.com\/library\/archive\/documentation\/System\/Conceptual\/ManPages_iPhoneOS\/man3\/mktime.3.html\">mac<\/a><\/noindex>). P\u00ebrdorni <code>%TimeStamp<\/code>p\u00ebr t\u00eb kaluar t\u00eb dh\u00ebnat jasht\u00eb k\u00ebtij diapazoni ose p\u00ebrdorni pandas dataframe sepse kjo \u00ebsht\u00eb nj\u00eb kufizim vet\u00ebm p\u00ebr list\u00ebn.<\/li>\n<li>P\u00ebr <code>ExecuteGlobal<\/code>, <code>ExecuteClass<\/code> dhe <code>ExecuteTable<\/code> t\u00eb gjitha argumentet p\u00ebrve\u00e7 burimit t\u00eb t\u00eb dh\u00ebnave (globalit, klas\u00ebs ose tabel\u00ebs) dhe variablit jan\u00eb opsionale.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"primery\">Shembuj<\/h2>\n<p><\/p>\n<p>Klasa testuese <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\/blob\/master\/isc\/py\/test\/Person.cls\">isc.py.test.Person<\/a><\/noindex> p\u00ebrmban nj\u00eb metod\u00eb q\u00eb demonstrojn\u00eb t\u00eb gjitha variantet e kalimit t\u00eb t\u00eb dh\u00ebnave:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">set global = &quot;isc.py.test.PersonD&quot;\nset class = &quot;isc.py.test.Person&quot;\nset table = &quot;isc_py_test.Person&quot;\nset query = &quot;SELECT * FROM isc_py_test.Person&quot;\n\n\/\/ \u041e\u0431\u0449\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b\nset variable = &quot;df&quot;\nset type = &quot;dataframe&quot;\nset start = 1\nset end = $g(^isc.py.test.PersonD, start)\n\n\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 0: ExecuteGlobal \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432\nset sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)\n\n\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 1: ExecuteGlobal \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438    \n\/\/ \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e\n\/\/ globalKey - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u0431\u0441\u0442\u043a\u0440\u0438\u043f\u0442\u0430 \nset labels = $lb(&quot;globalKey&quot;, &quot;Name&quot;, &quot;DOB&quot;, &quot;TS&quot;, &quot;RandomTime&quot;, &quot;AgeYears&quot;, &quot;AgeDecimal&quot;, &quot;AgeDouble&quot;, &quot;Bool&quot;)\n\n\/\/ mask \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430 1 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c labels \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e &quot;globalKey&quot; - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u0431\u0441\u043a\u0438\u043f\u0442\u0430\n\/\/ \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c %%CLASSNAME\nset mask = &quot;-+dmt+++b&quot;\n\nset sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)\n\n\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 2: ExecuteClass\nset sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)\n\n\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 3: ExecuteTable\nset sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)\n\n\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 4: ExecuteTable\nset sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)<\/code><\/pre>\n<p><\/p>\n<p>Thirrni metodo <code>do ##class(isc.py.test.Person).Test()<\/code> p\u00ebr t\u00eb par\u00eb si funksionojn\u00eb t\u00eb gjitha metodat e transmetimit t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p><\/p>\n<h2 id=\"vspomogatelnye-metody\">Metodat ndihm\u00ebse<\/h2>\n<p><\/p>\n<ul>\n<li><code>GetVariableInfo(variable, serialization, .defined, .type, .length)<\/code> \u2014 merr informacion n\u00eb lidhje me variabl\u00ebn: n\u00ebse \u00ebsht\u00eb e p\u00ebrcaktuar, klasa dhe gjat\u00ebsia e serializimit.<\/li>\n<li><code>GetVariableDefined(variable, .defined)<\/code> \u2014 n\u00ebse variabla \u00ebsht\u00eb e p\u00ebrcaktuar.<\/li>\n<li><code>GetVariableType(variable, .type)<\/code> \u2014 merrni klasin e variablit.<\/li>\n<li><code>GetStatus()<\/code> \u2014 merrni dhe largoni p\u00ebrjashtimin e fundit nga ana e Python.<\/li>\n<li><code>GetModuleInfo(module, .imported, .alias)<\/code> \u2014 merrni variabl\u00ebn e modulit dhe statusin e importit.<\/li>\n<li><code>GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)<\/code> \u2014 merrni informacion n\u00eb lidhje me funksionin.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"interoperabelnost\">Interoperabiliteti<\/h1>\n<p><\/p>\n<p>Keni m\u00ebsuar t\u00eb th\u00ebrrisni Python Gateway nga terminali, tani do t\u00eb fillojm\u00eb ta p\u00ebrdorim at\u00eb n\u00eb prodhim. Baza e nd\u00ebrveprimit me Python n\u00eb k\u00ebt\u00eb mod\u00eb \u00ebsht\u00eb <code>isc.py.ens.Operation<\/code>. Ai na lejon t\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>Ekzekutojm\u00eb kodin n\u00eb Python<\/li>\n<li>Ruajm\u00eb\/Riparojm\u00eb kontekstin e Python<\/li>\n<li>Ngarkojm\u00eb dhe marrim t\u00eb dh\u00ebna nga Python<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb parim, operacioni Python \u00ebsht\u00eb nj\u00eb paket\u00eb mbi <code>isc.py.Main<\/code>. Operacioni <code>isc.py.ens.Operation<\/code> ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb nd\u00ebrvepruar me procesin Python nga prodhimet e InterSystems IRIS. Mb\u00ebshteten pes\u00eb k\u00ebrkesa:<\/p>\n<p><\/p>\n<ul>\n<li><code>isc.py.msg.ExecutionRequest<\/code> p\u00ebr ekzekutimin e kodit Python. Kthehet <code>isc.py.msg.ExecutionResponse<\/code> me rezultatin e ekzekutimit dhe vlerat e variablave t\u00eb k\u00ebrkuara.<\/li>\n<li><code>isc.py.msg.StreamExecutionRequest<\/code> p\u00ebr ekzekutimin e kodit Python. Kthehet <code>isc.py.msg.StreamExecutionResponse<\/code> me rezultatin e ekzekutimit dhe vlerat e variablave t\u00eb k\u00ebrkuara. Analog <code>isc.py.msg.ExecutionRequest<\/code>, por merr dhe kthen rrjedha n\u00eb vend t\u00eb vargjeve.<\/li>\n<li><code>isc.py.msg.QueryRequest<\/code> p\u00ebr d\u00ebrgimin e rezultatit t\u00eb ekzekutimit t\u00eb k\u00ebrkes\u00ebs SQL. Kthehet <code>Ens.Response<\/code>.<\/li>\n<li><code>isc.py.msg.GlobalRequest<\/code>\/<code>isc.py.msg.ClassRequest<\/code>\/<code>isc.py.msg.TableRequest<\/code> p\u00ebr transferimin e t\u00eb dh\u00ebnave t\u00eb globit\/klas\u00ebs\/tabel\u00ebs. Kthen <code>Ens.Response<\/code>.<\/li>\n<li><code>isc.py.msg.SaveRequest<\/code> p\u00ebr ruajtjen e kontekstit Python. Kthen <code>Ens.StringResponse<\/code> me identifikuesin e kontekstit.<\/li>\n<li>\n<p><code>isc.py.msg.RestoreRequest<\/code> p\u00ebr rikthimin e kontekstit Python.<\/p>\n<p><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, <code>isc.py.ens.Operation<\/code> ka dy konfigurime:<\/p>\n<p><\/p>\n<ul>\n<li><code>Initializer<\/code> \u2014 zgjedhja e klas\u00ebs q\u00eb implementon nd\u00ebrfaqen <code>isc.py.init.Abstract<\/code>. Ajo mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb ngarkuar funkciones, module, klasa, etj. Ekzekutohet nj\u00eb her\u00eb n\u00eb nisjen e procesit.<\/li>\n<li><code>PythonLib<\/code> \u2014 (vet\u00ebm p\u00ebr Linux) n\u00ebse shihni gabime gjat\u00eb ngarkimit, vendosni vler\u00ebn e saj n\u00eb <code>libpython3.6m.so<\/code> ose madje n\u00eb rrug\u00ebn e plot\u00eb n\u00eb bibliotek\u00ebn Python. <\/li>\n<\/ul>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"sozdanie-biznes-processov\">Krijimi i proceseve biznesore<\/h2>\n<p><\/p>\n<p>Jan\u00eb t\u00eb disponueshme dy klasa q\u00eb leht\u00ebsojn\u00eb zhvillimin e proceseve biznesore:<\/p>\n<p><\/p>\n<ul>\n<li><code>isc.py.ens.ProcessUtils<\/code> lejon t\u00eb nxjerr\u00ebsh annotimet nga aktivitete me z\u00ebvend\u00ebsimin e variablave.<\/li>\n<li><code>isc.py.util.BPEmulator<\/code> lejon testimin e leht\u00eb t\u00eb proceseve biznesore me Python. Ai mund t\u00eb ekzekutoj\u00eb procesin biznesor (pjes\u00ebt n\u00eb gjuh\u00ebn Python) n\u00eb procesin aktual.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"podstanovka-peremennyh\">Z\u00ebvend\u00ebsimi i variablave<\/h2>\n<p><\/p>\n<p>T\u00eb gjith\u00eb proceset biznesore, t\u00eb trash\u00ebguara nga <code>isc.py.ens.ProcessUtils<\/code>, mund t\u00eb p\u00ebrdorin metod\u00ebn <code>GetAnnotation(name)<\/code> p\u00ebr t\u00eb marr\u00eb vler\u00ebn e annotimit t\u00eb aktivitetit sipas emrit t\u00eb saj. Annotimi i aktivitetit mund t\u00eb p\u00ebrmbaj\u00eb variabla, t\u00eb cilat do t\u00eb llogariten n\u00eb an\u00ebn e InterSystems IRIS para se t\u00eb kalohen n\u00eb Python. K\u00ebtu \u00ebsht\u00eb sintaksa e z\u00ebvend\u00ebsimit t\u00eb variablave:<\/p>\n<p><\/p>\n<ul>\n<li><code>${class:method:arg1:...:argN}<\/code> \u2014 thirrje e metod\u00ebs<\/li>\n<li><code>#{expr}<\/code> \u2014 ekzekuto kodin n\u00eb gjuh\u00ebn ObjectScript.<\/li>\n<\/ul>\n<p><\/p>\n<p>Nj\u00eb shembull \u00ebsht\u00eb n\u00eb dispozicion n\u00eb procesin biznesor t\u00eb testit <code>isc.py.test.Process<\/code>, p\u00ebr shembull, n\u00eb aktivitetin <code>Matrica e Korrellacionit: Graf<\/code>: <code>f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')<\/code>. N\u00eb k\u00ebt\u00eb shembull:<\/p>\n<p><\/p>\n<ul>\n<li><code>#{process.WorkDirectory}<\/code> kthen pron\u00ebn WorkDirectory t\u00eb objektit <code>process<\/code>, q\u00eb \u00ebsht\u00eb nj\u00eb instanc\u00eb e klas\u00ebs <code>isc.py.test.Process<\/code> p.sh. procesi aktual i biznesit.<\/li>\n<li><code>${%PopulateUtils:Integer:1:100}<\/code> thirr nj\u00eb metod\u00eb <code>Integer<\/code> klas\u00ebs <code>%PopulateUtils<\/code>, duke kaluar argumentet <code>1<\/code> dhe <code>100<\/code>, duke kthyer nj\u00eb num\u00ebr t\u00eb rastit t\u00eb plot\u00eb n\u00eb intervalin <code>1...100<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"testovyy-biznes-process\">Procesi biznesor i testit<\/h2>\n<p><\/p>\n<p>Produkti i testit dhe procesi biznesor i testit jan\u00eb n\u00eb dispozicion si pjes\u00eb e port\u00ebs Python nga default. P\u00ebr t'i p\u00ebrdorur ato:<\/p>\n<p><\/p>\n<ol>\n<li>Ekzekutoni n\u00eb terminalin e OS: <code>pip install pandas matplotlib seaborn<\/code>. <\/li>\n<li>Ekzekutoni n\u00eb terminalin e InterSystems IRIS: <code>do ##class(isc.py.test.CannibalizationData).Import()<\/code> p\u00ebr t\u00eb mbushur t\u00eb dh\u00ebnat e testit.<\/li>\n<li>Ekzekutoni produktin <code>isc.py.test.Production<\/code>.<\/li>\n<li>D\u00ebrgoni nj\u00eb k\u00ebrkes\u00eb t\u00eb tipit <code>Ens.Request<\/code> n\u00eb <code>isc.py.test.Process<\/code>.<\/li>\n<\/ol>\n<p><\/p>\n<p>Le t\u00eb shohim si funksionon gjith\u00e7ka s\u00eb bashku. Hapni <code>isc.py.test.Process<\/code> n\u00eb redaktorin BPL:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/6f83b22e0167e2699d285f3e32bfe373.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"ispolnenie-koda-1\">Ekzekutimi i kodit<\/h3>\n<p><\/p>\n<p>Sfida m\u00eb e r\u00ebnd\u00ebsishme \u00ebsht\u00eb ekzekutimi i kodit Python:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/dafa6b8c878ae937b194ff577b86dc89.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrdoret k\u00ebrkesa <code>isc.py.msg.ExecutionRequest<\/code>, k\u00ebtu jan\u00eb karakteristikat e tij:<\/p>\n<p><\/p>\n<ul>\n<li><code>Kodi<\/code> \u2014 Kodi Python.<\/li>\n<li><code>SeparateLines<\/code> \u2014 a duhet ta ndaj\u00eb kodin n\u00eb rreshta p\u00ebr ekzekutim. <code>$c(10)<\/code> (<code>n<\/code>) p\u00ebrdoret p\u00ebr t\u00eb ndar\u00eb rreshtat. Vini re se nuk rekomandohet t\u00eb p\u00ebrpunoni mesazhin n\u00eb t\u00ebr\u00ebsi nj\u00ebher\u00ebsh, kjo funksion \u00ebsht\u00eb e destinuar vet\u00ebm p\u00ebr p\u00ebrpunimin <code>def<\/code> dhe shprehje t\u00eb ngjashme me shum\u00eb rreshta. N\u00eb m\u00ebnyr\u00eb t\u00eb paracaktuar <code>0<\/code>.<\/li>\n<li><code>Variablat<\/code> \u2014 nj\u00eb list\u00eb e ndar\u00eb me presje e variablave, t\u00eb cilat do t\u00eb shtohen n\u00eb p\u00ebrgjigje.<\/li>\n<li><code>Serialization<\/code> \u2014 Si t\u00eb serializoni variabl\u00ebt q\u00eb d\u00ebshirojm\u00eb t\u00eb kthejm\u00eb. Opsionet: <code>Str<\/code>, <code>Repr<\/code>, <code>JSON<\/code>, <code>Pickle<\/code> dhe <code>Dill<\/code>, n\u00eb m\u00ebnyr\u00eb t\u00eb paracaktuar <code>Str<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb rastin ton\u00eb, ne thjesht po vendosim pron\u00ebn <code>Kodi<\/code>, k\u00ebshtu q\u00eb t\u00eb gjitha pronat e tjera p\u00ebrdorin vlerat e paracaktuara. Ne e vendosim at\u00eb duke thirrur <code>process.GetAnnotation(&quot;Import pandas&quot;)<\/code>, e cila gjat\u00eb ekzekutimit kthen anotimin pas z\u00ebvend\u00ebsimit t\u00eb variablave. N\u00eb fund, kodi <code>import pandas as pd<\/code> do t\u00eb d\u00ebrgohet n\u00eb Python. <code>GetAnnotation<\/code> mund t\u00eb jet\u00eb e dobishme p\u00ebr t\u00eb marr\u00eb skenar\u00eb Python me shum\u00eb rreshta, por nuk ka kufizime p\u00ebr k\u00ebt\u00eb metod\u00eb t\u00eb marrjes s\u00eb kodit. Ju mund t\u00eb vendosni pron\u00ebn <code>Kodi<\/code> n\u00eb cil\u00ebndo m\u00ebnyr\u00eb q\u00eb ju p\u00ebrshtatet.<\/p>\n<p><\/p>\n<h3 id=\"poluchenie-peremennyh\">Marrja e variablave<\/h3>\n<p><\/p>\n<p>Nj\u00eb tjet\u00ebr sfid\u00eb interesante me p\u00ebrdorimin e <code>isc.py.msg.ExecutionRequest<\/code> \u2014 <code>Matrica e Korelacionit: Tabelar<\/code>:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/8824e49ecaa448551c830e9a90eb5781.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ai llogarit Matriken e Korelacionit n\u00eb an\u00ebn e Python dhe ekstrapolon variabl\u00ebn <code>corrmat<\/code> p\u00ebr n\u00eb InterSystems IRIS n\u00eb formatin JSON, duke vendosur pronat e k\u00ebrkes\u00ebs:<\/p>\n<p><\/p>\n<ul>\n<li><code>Variablat<\/code>: <code>&quot;corrmat&quot;<\/code><\/li>\n<li><code>Serialization<\/code>: <code>&quot;JSON&quot;<\/code><\/li>\n<\/ul>\n<p><\/p>\n<p>Ne mund ta shohim rezultatin n\u00eb Visual Trace:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/713bcade8cb1018f2974cba2cab712b7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe n\u00ebse na nevojitet ky vler\u00eb n\u00eb BP, mund ta marrim k\u00ebshtu: <code>callresponse.Variables.GetAt(&quot;corrmat&quot;)<\/code>.<\/p>\n<p><\/p>\n<h3 id=\"peredacha-dannyh-1\">Transferta e t\u00eb dh\u00ebnave<\/h3>\n<p><\/p>\n<p>M\u00eb pas do t\u00eb flasim p\u00ebr transmetimin e t\u00eb dh\u00ebnave nga InterSystems IRIS n\u00eb Python, t\u00eb gjitha k\u00ebrkesat p\u00ebr transmetimin e t\u00eb dh\u00ebnave implementojn\u00eb nd\u00ebrfaqen <code>isc.py.msg.DataRequest<\/code>, e cila ofron k\u00ebto prona:<\/p>\n<p><\/p>\n<ul>\n<li><code>Variable<\/code> \u2014 variabla Python n\u00eb t\u00eb cil\u00ebn shkruhen t\u00eb dh\u00ebnat.<\/li>\n<li><code>Tipi<\/code> \u2014 lloji i variabl\u00ebs: <code>dataframe<\/code> (dataframe pandas) ose <code>list\u00eb<\/code>.<\/li>\n<li><code>Namespace<\/code> \u2014 zona nga e cila marrim t\u00eb dh\u00ebnat. Paketa <code>isc.py<\/code> duhet t\u00eb jet\u00eb e disponueshme n\u00eb k\u00ebt\u00eb zon\u00eb. Mund t\u00eb jet\u00eb nj\u00eb zon\u00eb pa mb\u00ebshtetje produktesh.<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb baz\u00eb t\u00eb k\u00ebsaj nd\u00ebrfaqe jan\u00eb implementuar 4 klasat e k\u00ebrkesave:<\/p>\n<p><\/p>\n<ul>\n<li><code>isc.py.msg.QueryRequest<\/code> \u2014 vendosni pron\u00ebn <code>Query<\/code> p\u00ebr t\u00eb transmetuar k\u00ebrkes\u00ebn SQL.<\/li>\n<li><code>isc.py.msg.ClassRequest<\/code> \u2014 vendosni pron\u00ebn <code>Klasa<\/code> p\u00ebr t\u00eb transmetuar t\u00eb dh\u00ebnat e klas\u00ebs.<\/li>\n<li><code>isc.py.msg.TableRequest<\/code> \u2014 vendosni pron\u00ebn <code>Tabel\u00eb<\/code> p\u00ebr t\u00eb transmetuar t\u00eb dh\u00ebnat e tabel\u00ebs.<\/li>\n<li><code>isc.py.msg.GlobalRequest<\/code> \u2014 vendosni pron\u00ebn <code>Global<\/code> p\u00ebr t\u00eb transmetuar t\u00eb dh\u00ebnat globale.<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb procesin e testimit, shikoni aktiviteten <code>RAW<\/code>, ku <code>isc.py.msg.QueryRequest<\/code> t\u00eb treguar n\u00eb veprim.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/f6a2a520594341b9d37110bcd24b1015.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"sohranenievosstanovlenie-python-konteksta\">Ruajtja\/riparimi i kontekstit t\u00eb Python<\/h3>\n<p><\/p>\n<p>S\u00eb fundi, mund t\u00eb ruajm\u00eb kontekstin Python n\u00eb InterSystems IRIS, p\u00ebr ta b\u00ebr\u00eb k\u00ebt\u00eb, do t\u00eb d\u00ebrgojm\u00eb <code>isc.py.msg.SaveRequest<\/code> me argumentet:<\/p>\n<p><\/p>\n<ul>\n<li><code>Mask<\/code> \u2014 Ruhen vet\u00ebm variablat q\u00eb p\u00ebrmbushin mask\u00ebn. Mb\u00ebshteten <code>*<\/code> dhe <code>?<\/code>. Shembull: <code>&quot;Data*, Figure?&quot;<\/code>. Nga e drejta <code>*<\/code>.<\/li>\n<li><code>MaxLength<\/code> \u2014 Gjat\u00ebsia maksimale e variablit t\u00eb ruajtur. N\u00ebse serializimi i variablit \u00ebsht\u00eb m\u00eb i gjat\u00eb, at\u00ebher\u00eb do t\u00eb injorohet. Caktoni 0 p\u00ebr t\u00eb marr\u00eb variablat e \u00e7do gjat\u00ebsie. Nga e drejta <code>$$$MaxStringLength<\/code>.<\/li>\n<li><code>Emri<\/code> \u2014 Emri i kontekstit (opsional).<\/li>\n<li><code>P\u00ebrshkrimi<\/code> \u2014 P\u00ebrshkrimi i kontekstit (opsional).<\/li>\n<\/ul>\n<p><\/p>\n<p>Kthehet <code>Ens.StringResponse<\/code> me <code>Id<\/code> i kontekstit t\u00eb ruajtur. N\u00eb procesin e testimit, shikoni aktiviteten <code>Ruaj Kontekstin<\/code>.<\/p>\n<p><\/p>\n<p>K\u00ebrkesa p\u00ebrkat\u00ebse <code>isc.py.msg.RestoreRequest<\/code> ngarkon kontekstin nga InterSystems IRIS n\u00eb Python:<\/p>\n<p><\/p>\n<ul>\n<li><code>ContextId<\/code> \u2014 identifikuesi i kontekstit.<\/li>\n<li><code>Pastroni<\/code> \u2014 pastroni kontekstin para rivendosjes.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"jupyter-notebook\">Jupyter Notebook<\/h1>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/jupyter.org\/\">Jupyter Notebook<\/a><\/noindex> \u2014 \u00ebsht\u00eb nj\u00eb aplikacion n\u00eb internet me burim t\u00eb hapur, q\u00eb lejon krijimin e notebook-eve q\u00eb p\u00ebrmbajn\u00eb kod, vizualizime dhe tekst dhe publikimin e tyre. Python Gateway lejon t\u00eb shikoni dhe editoj deri n\u00eb proceset BPL n\u00eb form\u00ebn e Jupyter Notebook. Mbani n\u00eb mend se n\u00eb k\u00ebt\u00eb moment p\u00ebrdoret executor i zakonsh\u00ebm Python 3.<\/p>\n<p><\/p>\n<p>Ky\u00e7ja e k\u00ebtij zgjerimi parashikon q\u00eb anotimet p\u00ebrmbajn\u00eb kodin Python dhe p\u00ebrdorin emrat e aktiviteteve si tituj paraprak\u00eb. Tani \u00ebsht\u00eb e mundur t\u00eb zhvillohen proceset e biznesit PythonGateway n\u00eb Jupyter Notebook. K\u00ebto jan\u00eb mund\u00ebsit\u00eb e ofruara: <\/p>\n<p><\/p>\n<ul>\n<li>Krijoni procese t\u00eb reja t\u00eb biznesit<\/li>\n<li>Fshini proceset e biznesit<\/li>\n<li>Krijoni aktivitete t\u00eb reja<\/li>\n<li>Modifikoni aktivitetet<\/li>\n<li>Fshini aktivitetet<\/li>\n<\/ul>\n<p><\/p>\n<p>K\u00ebtu \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/mZizgVtZ014\">video demo<\/a><\/noindex>. Disa skrinshot:<\/p>\n<p><\/p>\n<h2 id=\"provodnik-processov\">Eksploruesi i proceseve<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/6da1aa0a026c34238c57f96e82742bb9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"redaktor-processa\">Redaktori i procesit<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Python Gateway n\u00eb InterSystems IRIS\" src=\"\/wp-content\/uploads\/2020\/02\/651031fe9792cc1c5926aa386f4e37fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"ustanovka-1\">Instalimi<\/h2>\n<p><\/p>\n<ol>\n<li>Ju nevojitet InterSystems IRIS 2019.2+.<\/li>\n<li>Instaloni PythonGateway v0.8+ (nevojitet vet\u00ebm <code>isc.py.util.Jupyter<\/code>, <code>isc.py.util.JupyterCheckpoints<\/code> dhe <code>isc.py.ens.ProcessUtils<\/code>).<\/li>\n<li>P\u00ebrdit\u00ebsoni kodin ObjectScript nga repository.<\/li>\n<li>Ekzekutoni <code>do ##class(isc.py.util.Jupyter).Install()<\/code> dhe ndiqni udh\u00ebzimet.<\/li>\n<\/ol>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/PythonGateway\/tree\/master\/jupyter\">Dokumentacioni<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h1 id=\"vyvody\">P\u00ebrfundimet<\/h1>\n<p><\/p>\n<p>MLToolkit \u2014 nj\u00eb grup mjetesh q\u00eb ka q\u00ebllim t\u00eb bashkoj\u00eb modelet dhe mjedisin e transaksioneve, n\u00eb m\u00ebnyr\u00eb q\u00eb modelet e nd\u00ebrtuara t\u00eb jen\u00eb t\u00eb lehta p\u00ebr t'u p\u00ebrdorur direkt n\u00eb proceset e biznesit tuaj. Python Gateway \u00ebsht\u00eb nj\u00eb pjes\u00eb e MLToolkit dhe ofron integrim me gjuh\u00ebn Python duke lejuar orkestrimin e \u00e7do algoritmi t\u00eb m\u00ebsimit t\u00eb makineris\u00eb, t\u00eb krijuar n\u00eb gjuh\u00ebn Python (mjedisi kryesor p\u00ebr shum\u00eb Shkenc\u00ebtar\u00eb t\u00eb t\u00eb Dh\u00ebnave), duke p\u00ebrdorur biblioteka t\u00eb shumta t\u00eb gatshme p\u00ebr krijimin e shpejt\u00eb t\u00eb zgjidhjeve analitike adaptuese dhe robotike AI\/ML n\u00eb platform\u00ebn InterSystems IRIS.<\/p>\n<p><\/p>\n<h1 id=\"ssylki\">Linke<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/intersystems\/blog\/473452\/\">Artikulli i m\u00ebparsh\u00ebm<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/openexchange.intersystems.com\/package\/PythonGateway\">Python Gateway<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/openexchange.intersystems.com\/package\/Python-Gateway-Samples\">Python Gateway Samples<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-community\/Convergent-Analytics\">Convergent-Analytics<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.python.org\/downloads\/release\/python-367\/\">Python 3.6.7 64 bit<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.python.org\/3.6\/tutorial\/index.html\">Dokumentacioni dhe kurset p\u00ebr Python<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"mltoolkit\">MLToolkit<\/h1>\n<p><\/p>\n<p>Grupi i p\u00ebrdoruesve MLToolkit \u00ebsht\u00eb nj\u00eb depo private GitHub, e krijuar si pjes\u00eb e organizat\u00ebs korporative GitHub t\u00eb InterSystems. Ajo \u00ebsht\u00eb e destinuar p\u00ebr p\u00ebrdoruesit e jasht\u00ebm q\u00eb instalojn\u00eb, studiojn\u00eb ose p\u00ebrdorin tashm\u00eb komponent\u00ebt e MLToolkit, duke p\u00ebrfshir\u00eb Python Gateway. Grupi ofron nj\u00eb s\u00ebr\u00eb rastesh t\u00eb zbatuara (me kod burimor dhe t\u00eb dh\u00ebna testuese) n\u00eb fushat e marketingut, prodhimit, mjek\u00ebsis\u00eb dhe shum\u00eb sektor\u00ebve t\u00eb tjer\u00eb. P\u00ebr t'u bashkuar me grupin e p\u00ebrdoruesve t\u00eb ML Toolkit, ju lutemi d\u00ebrgoni nj\u00eb mesazh t\u00eb shkurt\u00ebr me email n\u00eb adres\u00ebn e m\u00ebposhtme: <noindex><a rel=\"nofollow\" href=\"mailto:MLToolkit@intersystems.com?subject=MLToolkit%20user%20group&amp;body=Hello.%0A%0APlease%20add%20me%20to%20ML%20Toolkit%20user%20group%3A%0A%0A-%20GitHub%20username%3A%20%0A%0A-%20Name%3A%20%0A%0A-%20Company%3A%20%0A%0A-%20Position%3A%0A-%20Country%3A%20%0A%0A\">MLToolkit@intersystems.com<\/a><\/noindex> dhe tregoni n\u00eb emailin tuaj t\u00eb dh\u00ebnat e m\u00ebposhtme:<\/p>\n<p><\/p>\n<ul>\n<li>Emri i p\u00ebrdoruesit GitHub<\/li>\n<li>Organizata (ku punoni ose studioni)<\/li>\n<li>\u0414\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c (\u0432\u0430\u0448\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043b\u0438 &quot;\u0421\u0442\u0443\u0434\u0435\u043d\u0442&quot;, \u0438\u043b\u0438 &quot;\u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439&quot;).<\/li>\n<li>Vendi<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00ebr ata q\u00eb lexuan artikullin dhe kan\u00eb interes p\u00ebr mund\u00ebsit\u00eb e InterSystems IRIS si nj\u00eb platform\u00eb p\u00ebr zhvillimin ose hostimin e mekanizmave t\u00eb inteligjenc\u00ebs artificiale dhe m\u00ebsimit t\u00eb makinerive, ne ofrojm\u00eb t\u00eb diskutojm\u00eb skenar\u00ebt e mundsh\u00ebm q\u00eb jan\u00eb t\u00eb r\u00ebnd\u00ebsish\u00ebm p\u00ebr nd\u00ebrmarrjen tuaj. Ne jemi t\u00eb gatsh\u00ebm t\u00eb analizojm\u00eb nevojat e nd\u00ebrmarrjes suaj dhe s\u00eb bashku t\u00eb p\u00ebrcaktojm\u00eb nj\u00eb plan veprimi; adresa jon\u00eb e kontaktit p\u00ebr grupin ton\u00eb ekspert\u00ebsh AI\/ML \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"mailto:MLToolkit@intersystems.com\">MLToolkit@intersystems.com<\/a><\/noindex>.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/intersystems\/blog\/486984\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 Python Gateway \u2014 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 InterSystems IRIS. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python (\u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 Data Scientists), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445, \u0440\u043e\u0431\u043e\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 AI\/ML-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 InterSystems IRIS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41222,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-41221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 Python Gateway \u2014 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 InterSystems IRIS. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python (\u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 Data Scientists), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445, \u0440\u043e\u0431\u043e\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 AI\/ML-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 InterSystems IRIS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/python-gateway-v-intersystems-iris\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Python Gateway \u0432 InterSystems IRIS | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 Python Gateway \u2014 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 InterSystems IRIS. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python (\u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 Data Scientists), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445, \u0440\u043e\u0431\u043e\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 AI\/ML-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 InterSystems IRIS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/python-gateway-v-intersystems-iris\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-06T17:42:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-06T17:42:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Python Gateway n\u00eb InterSystems IRIS | ProHoster","description":"Ky artikull i kushtohet Python Gateway \u2014 nj\u00eb projekt komuniteti me burim t\u00eb hapur p\u00ebr platform\u00ebn e t\u00eb dh\u00ebnave InterSystems IRIS. Ky projekt lejon orkestrimin e \u00e7do algoritmi t\u00eb m\u00ebsimit t\u00eb makinerive t\u00eb krijuar n\u00eb gjuh\u00ebn Python (mjedisi kryesor p\u00ebr shum\u00eb Data Scientists), t\u00eb p\u00ebrdor\u00eb bibliotekat e shumta t\u00eb gatshme p\u00ebr t\u00eb krijuar shpejt zgjidhje analitike t\u00eb adaptueshme dhe robotizuara AI\/ML n\u00eb platform\u00ebn InterSystems IRIS. N\u00eb k\u00ebt\u00eb artikull do t\u00eb tregoj si","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/python-gateway-v-intersystems-iris","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Python Gateway \u0432 InterSystems IRIS | ProHoster","og:description":"\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 Python Gateway \u2014 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 InterSystems IRIS. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python (\u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 Data Scientists), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445, \u0440\u043e\u0431\u043e\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 AI\/ML-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 InterSystems IRIS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a","og:url":"https:\/\/prohoster.info\/sq\/blog\/python-gateway-v-intersystems-iris","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-06T17:42:46+00:00","article:modified_time":"2020-02-06T17:42:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"41221","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:21:33","updated":"2022-09-30 00:32:37"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/41221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=41221"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/41221\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/41222"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=41221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=41221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=41221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}