#Python

8 Followers · 482 Posts

Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace

Official site.

InterSystems Python Binding Documentation.

Question David Cui · Jan 27, 2020

I cannot find those folders under my IRIS install dev folder.  Those were in my cache install dev folder.

Will InterSystems drop those support?  If yes, why are there some discussion about Python/Iris in this forum?

Of course, I wish IS continue to support those.

23
1 1877
Question Carina Mueler · Sep 7, 2018

Hey guys,
I need your help.
I am writing a code in Python and I want to create a database and some properties and then to send json files (data) to this database. (I use client-server-model for loading the data into IRIS)
I use curl methods and convert it in Python code with:

curl.trillworks.com/#python

My code so far:
 

url = "http://127.0.0.1:52773/api/docdb/v1/NamespaceName/db/DBName"
url2 = "http://127.0.0.1:52773/api/docdb/v1/NamespaceName/doc/DBName/"


header = {
        'Content-Type': 'application/json',
    }
    
response = requests.get(url, headers=header)
print(response.
15
0 495
Question Athanassios Hatzis · Aug 29, 2017

Hi,

I am experimenting with Cache-Python binding.  In the following piece of Python code

import intersys.pythonbind3

conn = intersys.pythonbind3.connection( )
conn.connect_now('localhost[1972]:SAMPLES', '_SYSTEM', '123', None)
samplesDB = intersys.pythonbind3.database(conn)
p10 = samplesDB.openid("Sample.Person",'10',-1,-1)

p10.run_obj_method("PrintPerson",[])

I am opening the 10th record of Sample.Person class and then I am calling an object method (PrintPerson). 

Method PrintPerson()

  {

    Write !, "Name: ", .

14
0 974
Question Mark Anthony Manalo · Aug 2, 2018

Hello everyone,

Im just wondering if there is any possibility to "Listen" to a cache DB? We have our cache DB somewhere else provided by a different company, we are provided the interface to connect to that cache DB so we can extract the cache DB every night.

Im just curious if theres a way to "listen" to the cache DB, so if theres any changes on the table in the cache DB, I could make a trigger to extract the table again.

I know i could just set my ETL every hour or so... but that would extract all the tables in cache DB.

Thanks a lot for any help and information.

Kind regards,

mark

9
0 926
Question Kevin McGinn · Feb 26, 2020

 

I have a simple python script to pull table information from cache 2018.1.2 which is on a windows 10 machine. I get no results though the same query in the management portal works correctly:

 

import os
import sys
import intersys.pythonbind3 as ipyb
import numpy as np

# Connect to the Cache' database
url = "localhost[1972]:%SYS"
user = "xxxx"
password = "zzzzz"

accessKey = (url, user, password)

def main(accessKey):

    tbList        = []
        
    # Get the connection and database handles
    conn = ipyb.connection()
    conn.connect_now(accessKey[0],accessKey[1],accessKey[2], None)
    database = ipyb.

8
0 339
Question Dean Rochester · Feb 21, 2023

In article

 

https://community.intersystems.com/print/518106

Traceback (most recent call last):
  File "c:\Users\rochesterd\PythonScripts\fhir_stuff\fhir-client-python-main\fhir-client-python-main\src\client.py", line 57, in <module>
    patient0 = Patient.parse_obj(patients_resources.search(
AttributeError: 'NoneType' object has no attribute 'serialize'

8
0 359
Question Dmitry Maslennikov · Nov 13, 2022

I have table

CREATE TABLE nodes (
        name VARCHAR(50) NOT NULL, 
        parent VARCHAR(50), 
        PRIMARY KEY (name), 
        FOREIGN KEY(parent) REFERENCES nodes (name) ON UPDATE cascade
);

I put some data

INSERT INTO nodes (name, parent) VALUES ('n1', NULL);
INSERT INTO nodes (name, parent) VALUES ('n11', 'n1');
INSERT INTO nodes (name, parent) VALUES ('n12', 'n1');
INSERT INTO nodes (name, parent) VALUES ('n13', 'n1');

Let's delete all

DELETE FROM nodes;

Nope, no way.

SQL Error [124] [S1000]: [SQLCODE: <-124>:<FOREIGN KEY constraint failed referential check upon DELETE of row in referenced table>]
[Location: <ServerLoop>]
[%msg: <At least 1 Row exists in table 'SQLUser.nodes' which references key 'NODESPKey2' - Foreign Key Constraint 'NODESFKey3', Field(s) 'parent' failed on referential action of NO ACTION>]
7
0 670
Question Ashok Kumar T · Sep 2, 2024

Hello Community,

I got the PROTECT error while running functions. But, I could able to call the classmethods and methods in class definition with classMethodObject, classMethodValue etc.. from python. without any errors
python code

irispy.functionString('fnString','IRISPython',14)
irispy.function('fnString','IRISPython',14)
raise RuntimeError(error_message)
RuntimeError: <PROTECT> *Function not allowed
IRISPython.mac
fnString(fn1) public {
  quit "Hello "_fn1
}

7
0 291
Question Kevin McGinn · Mar 1, 2022

I am writing a Python tool to query our cache instances for various information. I have set up the connection without issue:

import intersys.pythonbind3 as pyb  

conn     = pyb.connection()
conn.connect_now(.....)
    
db      = pyb.database(conn)
qry     = pyb.query(db)
obj     = pyb.object(db)

I wanted to make the call:

execRes = qry.prepare_class("SYS.Database",'FreeSpace')

But fetching fails because of data mismatches ( as I understand from other posts) and my testing bears out this type of failure.

Instead I opted to attempt a query:

execRes =

6
0 309
Question James Hipp · Apr 14, 2021

Hello,

I believe that the Perl and Python bindings that exist on Cache / Ensemble do not exist on IRIS for Health 2020.1 ... is that correct?

 

Is there any similar documentation and samples (like below) , that show an example of how to run a basic Perl or Python script that connects with ODBC or whatever the recommended way?

 

http://docs.intersystems.com/cache20102/csp/docbook/DocBook.UI.Page.cls…

http://docs.intersystems.com/cache20102/csp/docbook/DocBook.UI.Page.cls…

 

 

Thanks

6
0 241
Question Mads Lien · May 8, 2019

Hi

I am working with a Caché system with a Python binding and big datasets in health care. I am using the Python library Pandas and Jupyter notebook for data manipulation and often special modules for different projects, including different versions of Python. To keep the environments separated, I have been testing Docker, but I am at loss on how to install the Python binding. Has anyone any experience with this? Or better yet, a Docker image that has the binding installed?

I am also considering that Docker might not be the suitable for this situation and I am grateful for any thoughts on this.

6
0 738
Question Jonathan Earnest · Jan 13, 2023

I'm trying to get started with IRIS for Health but every time I got to a step that asks me to install a .whl-package I cant continue. I'm getting an error that the file does not exist.

Here is the complete error message:

PS C:\Users\x\GIT\quickstarts-multimodel-python> pip install nativeAPI_wheel\irisnative-1.0.0-cp39-cp39m-win_amd64.whl    
WARNING: Requirement 'nativeAPI_wheel\\irisnative-1.0.0-cp39-cp39m-win_amd64.whl' looks like a filename, but the file does not exist
ERROR: irisnative-1.0.0-cp39-cp39m-win_amd64.whl is not a supported wheel on this platform.

Am I doing something wrong?

6
0 1175
Question Ivan Tioh · Apr 5, 2017

I have done Python - Cache binding setup following the guide from http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…. I have also run test.py from sample3 folder and it able to run and complete successfully.

However, when I try to run the same test.py code via $zf, it gives error with exit code 1.

I've tried running help("intersys.pythonbind3") via $zf and also running from Cache terminal as follows:

  1. $zf(-1,"C:\Python36\python <path>/script.py")
  2. ! C:\Python36\python <path>/script.py

which gives me the following output:

problem in intersys.

6
0 854
Question Oliver James · Jun 5, 2018

Hi - has anyone successfully used the python binding on a mac. I carried out the install instructions per InterSystems documentation and it fails completely. 204 warnings and 9 errors. Obviously this was never tested by InterSystems. Is it even worth pursuing?

Thanks

5
0 558
Question Lowell Buschert · Feb 25, 2024

I am sending an httpRequest from ObjectScript to a python server.   I am not receiving a response in OS
 
OS config On the client side

// Create an HTTP request object
    Set httpRequest = ##class(%Net.HttpRequest).%New()
    
    // Set the server URL
    Set httpRequest.Server = "http://127.0.0.1:8080"
    
    // Set content type to JSON
    Set httpRequest.ContentType = "application/json"

    // Clear any existing entity body"{""name"": ""Lowell Buschert"", ""dob"": ""1970-12-09"", ""address"": ""XXXXX""}"
    do httpRequest.EntityBody.Clear()
    //Set httpRequest.

5
1 282
Question Marlin Mixon · Nov 4, 2021

At the recent virtual conference I saw the demonstration on being able to run Python within ObjectScript and run ObjectScript within Python thanks to a feature called Language Bridge.  Is this available now? If so, am I able to install it?  I am currently running HealthShare 2020.1.  I have a little bit of experience using Irisnative with Python but was intrigued with the more seamless-looking features offered by the Language Bridge.

Thanks for any insight.

Marlin Mixon

5
0 341
Question Renato Banzai · May 26, 2020

Hi everyone! I was using the InterSystems Native API for Python and following the documentation I tried to use this method (https://irisdocs.intersystems.com/irislatest/csp/docbook/Python-Native/irisnative.iris.html#irisnative.iris.getAPIVersion after a while I realize that this method doesn't exist. Looking at the object I can see the method: irisnative.iris.getClientVersion which doesn't exist in documentation (and probably does the same thing)

I'm using the irisnative-1.0.0-cp34-abi3-macosx_10_13_x86_64.macosx_10_14_x86_64.whl

How can we fix the documentation (or the class method name)?

5
0 404
Question Alin Soare · May 28, 2024

Hi,

In my Iris Installation I cannot use python. When I try to install external libraries I get no OPENSSL_Applink:

$ pwd
/cygdrive/c/InterSystems/IRIS2/bin
$ ./irispip install --target ../Mgr/python/ pandas
OPENSSL_Uplink(00007FFBEC2F7068,08): no OPENSSL_Applink

I get the same error when I try to install a wheel file:

$ ././bin/irispip install ./intersystems_irispython-3.2.0-py3-none-any.whl
Processing c:\intersystems\iris2\dev\python\intersystems_irispython-3.2.0-py3-none-any.
5
0 354
Question Steve Pisani · Jan 29, 2022

Hi,

What is the Python syntax I can use from a ClassMethod (developed in an IRIS using embedded Python), in order to invoke another class method,

- in the same class; and

- in another class.

I see 'self' is synonymous to use $this (..) in ObjectScript, but these are ClassMethods I am invoking, and self did not seem to work.

thanks - Steve

5
0 852
Question Emmanuel Vanlaar · May 24, 2020

Hi,

I was playing around with the python binding for caché (2018.1.4) and I ran into some problems.

When executing the class query "List" from SYS.Database the  pythonbind interface throws an exception, that seems to be caused by a mismatch of the defined SQL datatypes for this query and what is actually returned (or the lack of type conversion in the pythonbind interface).

Is this a known issue ? Are there solutions/workarounds for this,
Or is this a bug ?
 

The details:

When executing "List" from SYS.Database there is an error for every datarow fetched.
When executing "FreeSpace" from SYS.

4
0 676
Question August Turano · Apr 1, 2024

After running many tests to kick the tires calling Python from COS (which worked fine) in any directory,  I encountered problems when trying to access Python libraries like Numpy from any OTHER namespace.   I saw some other posts about this but the resolution seems unclear.   When I run the test program method numpytest below in %SYS it works just fine.  If i run the Python method in any other namespace I get: 

PITT>do ##class(test.python).numpytest()
DO ##CLASS(test.python).

4
0 208
Question Scott Fadden · Nov 11, 2020
I am trying to create a database using python. The example shows setting a Name string and a Properties object containing Directory=.

; Use class methods to create an instance
 %SYS>s Name="ABC"
 %SYS>s Properties("Directory")="c:\abc\"
 %SYS>s Status=##Class(Config.Databases).Create(Name,.Properties)
 %SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)

How do I update and pass the Directory property using Python?

4
0 371
Question John McBride · May 16, 2025

I'm trying to deploy a python/flask application to an Iris4Health container (2025.1) but running into some issues with packages and where they should be installed. 

First one if the flask packages themselves. I tried to installed the flask packages into the python external language server virtual environment, but even doing this when configuring the WSGI application in the web application section, it would complain about not having a WSGI framework. Once I created a custom container and added the flask package at the OS level, I was able to configure the web application without it complaining.

4
1 155