In my previous articles, I described my Command Line Extension to NativeAPI.
Of course, this is also available for any other NativeAPI package.
So I created this example in Python as a demo.
The package contains also an IRIS server in Docker for the demo
It is evident that it also works with any remote IRIS server.
You just have to provide it with my NativeAPI CommandLine Extension.
I think this demo is easy to follow and shows the essential features.
- First, you install the package and start the container
- then you start the demo
docker-compose exec iris python3 src/rcc.py
- Next, you connect to your IRIS server defaults refer to the ádde IRIS server in the container
>>> serverIP [127.0.0.1]: >>> serverPORT [1972]: >>> namespace [USER]: >>> username [_SYSTEM]: >>> password [SYS]: Connected to Instance IRIS on Server 1C09927CAE60
- Now, you get into the demo menu
Select Demo to exercise 0 = free ObjectScript 1 = $ZV from Server 2 = Actual Time in Server 3 = TimeZone Offset of Server 4 = Server ArchitectureVendorModel 5 = List Global in ZWRITE style * = Terminate demo >>> take a choice [1]:
- And this is the result when you run through all 5 examples
>>> take a choice [1]: IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2023.2 (Build 227U) Mon Jul 31 2023 18:04:28 EDT >>> take a choice [1]: 2 2023-08-15 07:42:16 >>> take a choice [1]: 3 0 >>> take a coice [1]: 4 x86_64 * Intel * Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz >>> take a choice [1]: 0 >>> Your ObjectScript [ quit "?"]: quit $ZTS 66701,27813.678790226 >>> take a choice [1]: 0 >>> Your ObjectScript [ quit "?"]: quit 17/4 4.250000000000000000 >>> take a choice [1]: 0 >>> Your ObjectScript [ quit "?"]: quit 17/0 <DIVIDE> 18 x^%ZX >>> take a choice [1]: 5 >>> Your Global [^dc.MultiD]: ^dc.MultiD = 5 ^dc.MultiD(1) = $lb("Braam,Ted Q.",51353) ^dc.MultiD(1,"mJSON") = "{}" ^dc.MultiD(2) = $lb("Klingman,Uma C.",62459) ^dc.MultiD(2,2,"Multi","a") = 1 ^dc.MultiD(2,2,"Multi","rob",1) = "rcc" ^dc.MultiD(2,2,"Multi","rob",2) = 2222 ^dc.MultiD(2,"Multi","a") = 1 ^dc.MultiD(2,"Multi","rob",1) = "rcc" ^dc.MultiD(2,"Multi","rob",2) = 2222 ^dc.MultiD(2,"mJSON") = "{""A"":""ahahah"",""Rob"":""VIP"",""Rob2"":1111,""Rob3"":true}" ^dc.MultiD(3) = $lb("Goldman,Kenny H.",45831) ^dc.MultiD(3,"mJSON") = "{}" ^dc.MultiD(4) = $lb("","") ^dc.MultiD(4,"mJSON") = "{""rcc"":122}" ^dc.MultiD(5) = $lb("","") ^dc.MultiD(5,"mJSON") = "{}" **** done *** >>> take a choice [1]: * Thank you for trying the demo
If you prefer to test it with embedded Python use
docker-compose exec iris iris session iris "##class(nacl.rcc).py()"
Great article and app
Very good demo of Python native API in interactive mode
This app is a very good example of how to use the IRIS native Python API to run an interactive routine from a pure Python code.
Very useful.
If you want to use it by connecting to an external instance (ie: other than your local container), you'll have to install the %ZX routine as this is the function used in the rcc.py code :
To install %ZX routine or your remote IRIS instance, you can either execute from the Management Portal > System Explorer > SQL :
Or simply add it from ZPM :
Then from your local container, just execute rcc.py :
Hi Robert!
Your video is available on InterSystems Developers YouTube:
⏯️ Python client using IRIS NativeAPI CommandLine Extension
https://www.youtube.com/embed/UyConZLfsmM?si=LFHJXMnms6pRq6l2
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]
Great work!