This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 31st, when you will be able to use this site as normal.

    Forum Stats

  • 3,890,810 Users
  • 2,269,649 Discussions
  • 7,916,821 Comments

Discussions

Adding Python module to MLE which is used by APEX

Mahmoud_Rabie
Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | TrainerSaudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
edited Jun 23, 2019 9:00PM in Multilingual Engine

Hello Everybody

First of all, I would like to thank @joelkallman-Oracle for this awesome article

I have tested running Python code from SQL Commands of the Early adopting instance. It is amazing!

However, I was wondering how to add Python's modules to MLE engine that would be used by APEX.

Say I have xyx module which is added by:

pip3 install xyz

Regards

Mahmoud

Tagged:
Bastian Hossbach-OracleMahmoud_Rabie

Best Answer

  • Bastian Hossbach-Oracle
    Bastian Hossbach-Oracle Member Posts: 8
    edited Dec 22, 2018 12:51PM Answer ✓

    Hi Mahmoud

    The APEX + MLE hosted preview is all about running JavaScript and Python code snippets in APEX. For deploying JavaScript and Python modules, we recommend to get our latest preview release of MLE (0.3.0): https://www.oracle.com/technetwork/database/multilingual-engine/downloads/index.html

    Note that our current support of running third party Python code is very limited (in contrast to third party JavaScript code that all should run fine), but we are working hard on it. Most third party Python modules cannot be used yet and, thus, we do not encourage users to try it out. However, if you really want to give it a try, here is how you can do it. Simply place the third party Python code (e.g., the module "aegon") in a directory "moduledeps" besides your own code (e.g., "myconv.py"). Finally, put everything into a single zip file and deploy it (see https://oracle.github.io/oracle-db-mle/python/). Here is one example that can be run in MLE 0.3.0:

    $ mkdir myconv
    $ cd myconv
    $ mkdir moduledeps
    $ pip install --target=./moduledeps aegon
    $ cat myconv.py
    from aegon import Measurement, Length
    def doconv(inch_in: float) -> str:
        distance = Measurement(inch_in, Length.inches)
        distance.convert_to(Length.meters)
        return str(distance)
    exports['to_meter'] = doconv
    $ zip -r myconv.zip *

    Best regards,

    Bastian

    Mahmoud_Rabie

Answers

  • Bastian Hossbach-Oracle
    Bastian Hossbach-Oracle Member Posts: 8
    edited Dec 22, 2018 12:51PM Answer ✓

    Hi Mahmoud

    The APEX + MLE hosted preview is all about running JavaScript and Python code snippets in APEX. For deploying JavaScript and Python modules, we recommend to get our latest preview release of MLE (0.3.0): https://www.oracle.com/technetwork/database/multilingual-engine/downloads/index.html

    Note that our current support of running third party Python code is very limited (in contrast to third party JavaScript code that all should run fine), but we are working hard on it. Most third party Python modules cannot be used yet and, thus, we do not encourage users to try it out. However, if you really want to give it a try, here is how you can do it. Simply place the third party Python code (e.g., the module "aegon") in a directory "moduledeps" besides your own code (e.g., "myconv.py"). Finally, put everything into a single zip file and deploy it (see https://oracle.github.io/oracle-db-mle/python/). Here is one example that can be run in MLE 0.3.0:

    $ mkdir myconv
    $ cd myconv
    $ mkdir moduledeps
    $ pip install --target=./moduledeps aegon
    $ cat myconv.py
    from aegon import Measurement, Length
    def doconv(inch_in: float) -> str:
        distance = Measurement(inch_in, Length.inches)
        distance.convert_to(Length.meters)
        return str(distance)
    exports['to_meter'] = doconv
    $ zip -r myconv.zip *

    Best regards,

    Bastian

    Mahmoud_Rabie
  • Mahmoud_Rabie
    Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | Trainer Saudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
    edited Dec 22, 2018 11:51PM

    Awesome!

    Thanks a lot.

    Bastian Hossbach-Oracle
  • Mahmoud_Rabie
    Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | Trainer Saudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
    edited Jun 22, 2019 7:51AM

    Dear @joelkallman-Oracle

    Please tell us when will MLE be released with APEX?

    Regards

    Mahmoud

  • joelkallman-Oracle
    joelkallman-Oracle Senior Director, Software Development Dublin, Ohio USAPosts: 4,082 Employee
    edited Jun 23, 2019 8:03PM

    Hi Mahmoud,

    It will be in some future database version.  I'm really unable to provide a specific date or version.  It could be Database 20.  It could be a version after that.

    Joel

    Mahmoud_RabieMahmoud_Rabie
  • Mahmoud_Rabie
    Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | Trainer Saudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
    edited Jun 23, 2019 9:00PM