Beispiel #1
0
    def _cli(self):
        ##### jnius
        import jnius_config

        LIQUIBASE_CLASSPATH: list = [
            self.liquibase_dir + "/liquibase.jar",
            self.liquibase_lib_dir + "/*",
            self.liquibase_internal_dir + "/*",
            self.liquibase_internal_lib_dir + "/*",
            self.jdbc_drivers_dir + "/*"]

        if self.additional_classpath:
            LIQUIBASE_CLASSPATH.append(self.additional_classpath)

        if not jnius_config.vm_running:
            jnius_config.add_classpath(*LIQUIBASE_CLASSPATH)
        else:
            log.warning("VM is already running, can't set classpath/options")

        log.debug("classpath: %s" % jnius_config.get_classpath())

        from jnius import JavaClass, MetaJavaClass, JavaMethod
        #####
        class LiquibaseCommandLine(JavaClass, metaclass=MetaJavaClass):
            __javaclass__ = "liquibase/integration/commandline/LiquibaseCommandLine"

            # methods
            execute = JavaMethod("([Ljava/lang/String;)I")

        return LiquibaseCommandLine()
Beispiel #2
0
def _init_anserini():
    global anserini_monkey
    if anserini_monkey:
        return

    # jnius monkypatching
    import jnius_config
    anserini_found = False
    for j in jnius_config.get_classpath():
        if "anserini" in j:
            anserini_found = True
            break
    assert anserini_found, 'Anserini jar not found: you should start PyTerrier, e.g. with '\
        + 'pt.init(boot_packages=["io.anserini:anserini:0.9.2:fatjar"])'
    jnius_config.set_classpath = lambda x: x
    anserini_monkey = True

    #this is the Anserini early rank cutoff rule
    from matchpy import Wildcard, ReplacementRule, Pattern
    from .transformer import RankCutoffTransformer, rewrite_rules
    x = Wildcard.dot('x')
    _brAnserini = Wildcard.symbol('_brAnserini', AnseriniBatchRetrieve)

    def set_k(_brAnserini, x):
        _brAnserini.k = int(x.value)
        return _brAnserini

    rewrite_rules.append(ReplacementRule(
            Pattern(RankCutoffTransformer(_brAnserini, x) ),
            set_k
    ))
Beispiel #3
0
        def getClasspath(self):
            """
            Retrieves the classpath the JVM will use.

            :rtype: list
            """
            return jnius_config.get_classpath()
Beispiel #4
0
    def __init__(self, *args, fb_terms=10, fb_docs=3, **kwargs):
        """
        Args:
            index_like: the Terrier index to use
            fb_terms(int): number of terms to add to the query
            fb_docs(int): number of feedback documents to consider
        """
        global terrier_prf_package_loaded

        #if not terrier_prf_package_loaded:
        #    pt.extend_classpath("org.terrier:terrier-prf")
        #    terrier_prf_package_loaded = True
        #rm = pt.ApplicationSetup.getClass("org.terrier.querying.RM3").newInstance()
        import jnius_config
        prf_found = False
        for j in jnius_config.get_classpath():
            if "terrier-prf" in j:
                prf_found = True
                break
        assert prf_found, 'terrier-prf jar not found: you should start Pyterrier with '\
            + 'pt.init(boot_packages=["org.terrier:terrier-prf:0.0.1-SNAPSHOT"])'
        rm = pt.autoclass("org.terrier.querying.AxiomaticQE")()
        self.fb_terms = fb_terms
        self.fb_docs = fb_docs
        kwargs["qeclass"] = rm
        super().__init__(*args, **kwargs)
Beispiel #5
0
    def add_classpath(self, *claspath):
        if jnius_config.vm_running:
            raise ValueError(
                "VM is already running, can't set classpath/options; VM started at %s"
                % jnius_config.vm_started_at)

        jnius_config.add_classpath(*claspath)
        log.info("VM Classpath: %s" % jnius_config.get_classpath())
Beispiel #6
0
def javacommand():
    """Returns the start of the java command including the Anserini class path"""
    from jnius_config import get_classpath
    from pyserini.pyclass import configure_classpath

    command = ["{}/bin/java".format(os.environ["JAVA_HOME"]), "-cp"]
    command.append(":".join(get_classpath()))

    return command
Beispiel #7
0
def _check_terrier_prf():
    import jnius_config
    global _terrier_prf_package_loaded
    if _terrier_prf_package_loaded:
        return

    for j in jnius_config.get_classpath():
        if "terrier-prf" in j:
            _terrier_prf_package_loaded = True
            break
    assert _terrier_prf_package_loaded, _terrier_prf_message
Beispiel #8
0
def init_pyjnius():
    if not jnius_config.vm_running:
        if "JAVA_HOME" not in os.environ:
            logger.info("'JAVA_HOME' environment variable missing, "
                        "trying to get from settings.py")
            os.environ["JAVA_HOME"] = settings.JAVA_HOME
        logger.info("JAVA_HOME set to '{}'".format(os.environ["JAVA_HOME"]))
        BASE_DIR = os.path.dirname(os.path.abspath(__file__))
        jnius_config.add_options('-Djava.awt.headless=true')
        jnius_config.add_options('-Xmx1536m')
        jnius_config.set_classpath(
            os.path.join(BASE_DIR, "simccs", "lib",
                         "simccs-app-1.0-jar-with-dependencies.jar"))
        logger.info("Initialized jnius with classpath={}".format(
            jnius_config.get_classpath()))
        import jnius  # noqa
Beispiel #9
0
    def __init__(self, *args, fb_terms=10, fb_docs=3, **kwargs):
        global terrier_prf_package_loaded

        #if not terrier_prf_package_loaded:
        #    pt.extend_classpath("org.terrier:terrier-prf")
        #    terrier_prf_package_loaded = True
        #rm = pt.ApplicationSetup.getClass("org.terrier.querying.RM3").newInstance()
        import jnius_config
        prf_found = False
        for j in jnius_config.get_classpath():
            if "terrier-prf" in j:
                prf_found = True
                break
        assert prf_found, 'terrier-prf jar not found: you should start Pyterrier with '\
            + 'pt.init(boot_packages=["org.terrier:terrier-prf:0.0.1-SNAPSHOT"])'
        rm = pt.autoclass("org.terrier.querying.RM3")()
        self.fb_terms = fb_terms
        self.fb_docs = fb_docs
        kwargs["qeclass"] = rm
        super().__init__(*args, **kwargs)
Beispiel #10
0
import jnius_config
import os
_basedir = os.path.dirname(os.path.abspath(__file__))
_parentdir = os.path.dirname(_basedir)
_resources_dir = os.path.join(_basedir, 'resources')

jnius_config.add_options('-Xmx512m', '-XX:ParallelGCThreads=2')
# We set both CLASSPATH environment variable and jnius' internal setting because jnius is kinda cranky.
jnius_config.set_classpath(
    '/Users/liuman/Documents/semeval2018/twitter_emoij_prediction/tweets/resources/ark-tweet-nlp-0.3.2.jar'
)
print(jnius_config.get_classpath())
# print(*(os.path.join(_resources_dir, jar) for jar in os.listdir(_resources_dir) if jar.endswith('.jar')))
print(os.environ.get('CLASSPATH'))
# os.environ['CLASSPATH'] = u':'.join(jnius_config.get_classpath()) + ((':' + os.environ.get('CLASSPATH')) if os.environ.get('CLASSPATH') else '')
# os.environ['CLASSPATH'] = '/Users/liuman/Documents/semeval2018/twitter_emoij_prediction/tweets/resources/ark-tweet-nlp-0.3.2.jar'
os.environ[
    'CLASSPATH'] = '/Users/liuman/Documents/semeval2018/twitter_emoij_prediction/tweets/resources/ark-tweet-nlp-0.3.2.jar'
print(os.environ['CLASSPATH'])

from jnius import autoclass
model_filename = os.path.join(
    _resources_dir, 'ark_tweet_nlp-20120919.model'
)  # do not change. problem with pickling and unpickling across filesystems?

Model = autoclass('cmu.arktweetnlp.impl.Model')
print(Model)
print(dir(Model))
print(model_filename)
_model = Model.loadModelFromText(model_filename)
Beispiel #11
0
def get_classpath():
    return jnius_config.get_classpath()
Beispiel #12
0
# coding:utf-8

import jnius_config

from os.path import dirname, abspath
hanlp_modue = dirname(abspath(dirname(__file__))) + "/hanlp/"

jnius_config.add_options('-Xrs', '-Xmx4G')
jnius_config.set_classpath(".:" + hanlp_modue + "hanlp-1.5.2.jar:" +
                           hanlp_modue)

from jnius import autoclass

print jnius_config.get_classpath()

from jnius import PythonJavaClass

HanLP = autoclass('com.hankcs.hanlp.HanLP')

content = '聘任周克军女士执行总裁、毛新礼先生、董绍学先生、张文先生为公司副总经理,张明为总园艺师,李思先生为副总会计师,王五为总工程师,赵六为财务总监。'

segments = []
if isinstance(content, str) and len(content) > 0:
    # java.util.List
    result = HanLP.segment(content).listIterator()
    while result.hasNext():
        tempString = result.next().toString()
        segments.append(tempString)

for i in segments:
    print i
Beispiel #13
0
import os
import jnius_config

from concurrent.futures import ThreadPoolExecutor

if not jnius_config.vm_running:
    jar_path = os.path.realpath(
        os.path.join(os.path.dirname(__file__), 'target',
                     'pyjnius-multithreading-java-0.0.1.jar'))
    if jar_path not in jnius_config.get_classpath():
        jnius_config.add_classpath(jar_path)

from jnius import autoclass

PyJniusExample = autoclass('aoka.sample.PyJniusExample')


def run(tid):
    global PyJniusExample
    instance = PyJniusExample(tid)
    _ = instance.process(tid)
    for _ in range(10000):
        instance.validate(tid)


def main():
    for i in range(500):
        if i % 10 == 0:
            print("iterate", i)
        with ThreadPoolExecutor(16) as e:
            futures = [e.submit(run, i + 1) for i in range(16)]
Beispiel #14
0
from collections import defaultdict

from capreolus.utils.loginit import get_logger
from tqdm import tqdm
import pytrec_eval
import numpy as np
import jnius_config
import os

from capreolus.collection import COLLECTIONS
from capreolus.utils.common import get_capreolus_base_dir

if not jnius_config.get_classpath(
) == "{0}/capreolus/anserini-0.7.0-fatjar.jar".format(
        get_capreolus_base_dir()):
    try:
        jnius_config.set_classpath(
            "{0}/capreolus/anserini-0.7.0-fatjar.jar".format(
                get_capreolus_base_dir()))
    except:
        raise Exception("The classpath is: {0}".format(
            jnius_config.get_classpath()))

import functools
import torch

from capreolus.pipeline import Pipeline, cli_module_choice, modules

logger = get_logger(__name__)

Beispiel #15
0
logger = logging.getLogger('pyMOEA')
logger.addHandler(logging.NullHandler())

try:
    JAVA_HOME = os.environ['JAVA_HOME']
except KeyError:

    JAVA_HOME = r'C:\Program Files (x86)\Java\jre6' # r'C:\Program Files\Java\jdk1.8.0_31'
    os.environ['JAVA_HOME'] = JAVA_HOME
os.environ['PATH'] += r';%s\bin;%s\jre\bin\server' % tuple([JAVA_HOME] * 2)

try:
    import jnius_config
except ValueError as e:
    logging.error("Failed to import jinus (Has it been previously initialized?)")
    logging.debug(jnius_config.get_classpath())

# Classpath must be configured
moea_path = r'D:\JYU\MOEAFramework-2.12'

moea_clspath = os.listdir(os.path.join(moea_path, 'lib'))
#  moea_clspath = [
#               'bin',
#               'lib',
#               'build\MOEAFramework-2.3\lib',
#               'lib\commons-cli-1.2.jar',
#               'lib\commons-codec-1.8.jar',
#               'lib\commons-lang3-3.1.jar',
#               'lib\commons-math3-3.1.1.jar',
#               'lib\jcommon-1.0.20.jar',
#               'lib\jfreechart-1.0.15.jar',