New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logging level of other Python modules are affected #17

Closed
Arnie97 opened this Issue Oct 16, 2018 · 6 comments

Comments

Projects
None yet
2 participants
@Arnie97
Copy link

Arnie97 commented Oct 16, 2018

Hello,
Should we remove logging.basicConfig(level=logging.DEBUG) from python/weka/core/jvm.py:26?

This line changes the logging level for the global root logger, which may lead to unexpected verbose logs from other modules, for example, matplotlib:

>>> import weka.core.jvm
>>> import matplotlib
DEBUG:matplotlib:$HOME=C:\Users\Administrator
DEBUG:matplotlib:CONFIGDIR=C:\Users\Administrator\.matplotlib
DEBUG:matplotlib:matplotlib data path: c:\program files\python36\lib\site-packag
es\matplotlib\mpl-data
DEBUG:matplotlib:loaded rc file c:\program files\python36\lib\site-packages\matp
lotlib\mpl-data\matplotlibrc
DEBUG:matplotlib:matplotlib version 3.0.0
DEBUG:matplotlib:interactive is False
DEBUG:matplotlib:platform is win32
DEBUG:matplotlib:loaded modules: ['builtins', 'sys', '_frozen_importlib', '_imp'
, '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'mars
hal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.
aliases', 'encodings.utf_8', '_signal', 'encodings.latin_1', 'io', 'abc', '_weak
refset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.pa
th', '_collections_abc', '_sitebuiltins', 'sysconfig', '_bootlocale', '_locale',
 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'types', 'functools', '_funct
ools', 'collections', 'operator', '_operator', 'keyword', 'heapq', '_heapq', 'it
ertools', 'reprlib', '_collections', 'weakref', 'collections.abc', 'importlib',
'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib.
util', 'importlib.abc', 'importlib.machinery', 'contextlib', 'mpl_toolkits', 'go
ogle', 'ruamel', 'encodings.cp437', 'runpy', 'pkgutil', '__main__', 're', 'enum'
, 'sre_compile', '_sre', 'sre_parse', 'sre_constants', 'copyreg', 'IPython', 'IP
ython.core', 'IPython.core.getipython', 'IPython.core.release', 'IPython.core.ap
plication', 'atexit', 'copy', 'glob', 'fnmatch', 'posixpath', 'logging', 'time',
 'traceback', 'linecache', 'tokenize', 'token', 'string', '_string', 'threading'
, 'shutil', 'zlib', 'bz2', '_compression', '_bz2', 'lzma', '_lzma', 'traitlets',
 'traitlets.traitlets', 'inspect', 'ast', '_ast', 'dis', 'opcode', '_opcode', 's
ix', '__future__', 'struct', '_struct', 'traitlets.utils', 'traitlets.utils.geta
rgspec', 'traitlets.utils.importstring', 'ipython_genutils', 'ipython_genutils._
version', 'ipython_genutils.py3compat', 'ipython_genutils.encoding', 'locale', '
platform', 'subprocess', 'signal', 'msvcrt', '_winapi', 'traitlets.utils.sentine
l', 'traitlets.utils.bunch', 'traitlets._version', 'traitlets.config', 'traitlet
s.config.application', 'json', 'json.decoder', 'json.scanner', '_json', 'json.en
coder', 'decorator', 'traitlets.config.configurable', 'traitlets.config.loader',
 'argparse', 'textwrap', 'gettext', 'ipython_genutils.path', 'random', 'math', '
hashlib', '_hashlib', '_blake2', '_sha3', 'bisect', '_bisect', '_random', 'ipyth
on_genutils.text', 'ipython_genutils.importstring', 'IPython.core.crashhandler',
 'pprint', 'IPython.core.ultratb', 'pydoc', 'urllib', 'urllib.parse', 'IPython.c
ore.debugger', 'bdb', 'IPython.utils', 'IPython.utils.PyColorize', 'IPython.util
s.coloransi', 'IPython.utils.ipstruct', 'IPython.utils.colorable', 'pygments', '
pygments.util', 'IPython.utils.py3compat', 'IPython.utils.encoding', 'IPython.co
re.excolors', 'IPython.testing', 'IPython.testing.skipdoctest', 'pdb', 'cmd', 'c
ode', 'codeop', 'IPython.core.display_trap', 'IPython.utils.path', 'IPython.util
s.process', 'IPython.utils._process_win32', 'ctypes', '_ctypes', 'ctypes._endian
', 'ctypes.wintypes', 'IPython.utils._process_common', 'shlex', 'IPython.utils.d
ecorators', 'IPython.utils.data', 'IPython.utils.terminal', 'IPython.utils.sysin
fo', 'IPython.utils._sysinfo', 'IPython.core.profiledir', 'IPython.paths', 'temp
file', 'IPython.utils.importstring', 'IPython.terminal', 'IPython.terminal.embed
', 'IPython.core.compilerop', 'IPython.core.magic_arguments', 'IPython.core.erro
r', 'IPython.utils.text', 'pathlib', 'IPython.core.magic', 'getopt', 'IPython.co
re.oinspect', 'IPython.core.page', 'IPython.core.display', 'binascii', 'mimetype
s', 'IPython.lib', 'IPython.lib.security', 'getpass', 'IPython.lib.pretty', 'dat
etime', '_datetime', 'IPython.utils.openpy', 'IPython.utils.dir2', 'IPython.util
s.wildcard', 'pygments.lexers', 'pygments.lexers._mapping', 'pygments.modeline',
 'pygments.plugin', 'pygments.lexers.python', 'pygments.lexer', 'pygments.filter
', 'pygments.filters', 'pygments.token', 'pygments.regexopt', 'pygments.unistrin
g', 'pygments.formatters', 'pygments.formatters._mapping', 'pygments.formatters.
html', 'pygments.formatter', 'pygments.styles', 'IPython.core.inputtransformer2'
, 'typing', 'typing.io', 'typing.re', 'IPython.core.interactiveshell', 'asyncio'
, 'selectors', 'select', '_socket', '_overlapped', 'asyncio.base_events', 'concu
rrent', 'concurrent.futures', 'concurrent.futures._base', 'concurrent.futures.pr
ocess', 'queue', 'multiprocessing', 'multiprocessing.context', 'multiprocessing.
process', 'multiprocessing.reduction', 'pickle', '_compat_pickle', '_pickle', 's
ocket', '__mp_main__', 'multiprocessing.connection', '_multiprocessing', 'multip
rocessing.util', 'concurrent.futures.thread', 'asyncio.compat', 'asyncio.corouti
nes', 'asyncio.events', 'asyncio.base_futures', 'asyncio.log', 'asyncio.futures'
, 'asyncio.base_tasks', '_asyncio', 'asyncio.tasks', 'asyncio.locks', 'asyncio.p
rotocols', 'asyncio.queues', 'asyncio.streams', 'asyncio.subprocess', 'asyncio.t
ransports', 'asyncio.windows_events', 'asyncio.base_subprocess', 'asyncio.proact
or_events', 'asyncio.constants', 'asyncio.sslproto', 'ssl', 'ipaddress', '_ssl',
 'base64', 'asyncio.selector_events', 'asyncio.windows_utils', 'pickleshare', 'I
Python.core.prefilter', 'IPython.core.autocall', 'IPython.core.macro', 'IPython.
core.splitinput', 'IPython.core.alias', 'IPython.core.builtin_trap', 'IPython.co
re.events', 'backcall', 'backcall.backcall', 'IPython.core.displayhook', 'IPytho
n.core.displaypub', 'IPython.core.extensions', 'IPython.core.formatters', 'IPyth
on.utils.sentinel', 'IPython.core.history', 'sqlite3', 'sqlite3.dbapi2', '_sqlit
e3', 'IPython.core.logger', 'IPython.core.payload', 'IPython.core.usage', 'IPyth
on.display', 'IPython.lib.display', 'html', 'html.entities', 'IPython.utils.io',
 'IPython.utils.capture', 'IPython.utils.strdispatch', 'IPython.core.hooks', 'IP
ython.utils.syspathcontext', 'IPython.utils.tempdir', 'IPython.utils.contexts',
'IPython.core.async_helpers', 'IPython.terminal.interactiveshell', 'prompt_toolk
it', 'prompt_toolkit.application', 'prompt_toolkit.application.application', 'pr
ompt_toolkit.buffer', 'prompt_toolkit.application.current', 'prompt_toolkit.even
tloop', 'prompt_toolkit.eventloop.base', 'prompt_toolkit.log', 'prompt_toolkit.e
ventloop.coroutine', 'prompt_toolkit.eventloop.defaults', 'prompt_toolkit.utils'
, 'six.moves', 'wcwidth', 'wcwidth.wcwidth', 'wcwidth.table_wide', 'wcwidth.tabl
e_zero', 'prompt_toolkit.cache', 'prompt_toolkit.eventloop.future', 'prompt_tool
kit.eventloop.context', 'prompt_toolkit.eventloop.async_generator', 'six.moves.q
ueue', 'prompt_toolkit.eventloop.event', 'prompt_toolkit.application.run_in_term
inal', 'prompt_toolkit.auto_suggest', 'prompt_toolkit.filters', 'prompt_toolkit.
filters.base', 'prompt_toolkit.filters.app', 'prompt_toolkit.enums', 'prompt_too
lkit.filters.utils', 'prompt_toolkit.filters.cli', 'prompt_toolkit.clipboard', '
prompt_toolkit.clipboard.base', 'prompt_toolkit.selection', 'prompt_toolkit.clip
board.in_memory', 'prompt_toolkit.completion', 'prompt_toolkit.completion.base',
 'prompt_toolkit.completion.filesystem', 'prompt_toolkit.completion.word_complet
er', 'prompt_toolkit.document', 'prompt_toolkit.history', 'prompt_toolkit.search
', 'prompt_toolkit.key_binding', 'prompt_toolkit.key_binding.key_bindings', 'pro
mpt_toolkit.keys', 'prompt_toolkit.key_binding.vi_state', 'prompt_toolkit.valida
tion', 'prompt_toolkit.input', 'prompt_toolkit.input.base', 'prompt_toolkit.inpu
t.defaults', 'prompt_toolkit.input.typeahead', 'prompt_toolkit.key_binding.bindi
ngs', 'prompt_toolkit.key_binding.bindings.page_navigation', 'prompt_toolkit.key
_binding.bindings.scroll', 'prompt_toolkit.key_binding.defaults', 'prompt_toolki
t.key_binding.bindings.basic', 'prompt_toolkit.key_binding.key_processor', 'prom
pt_toolkit.key_binding.bindings.named_commands', 'prompt_toolkit.key_binding.bin
dings.completion', 'prompt_toolkit.key_binding.bindings.emacs', 'prompt_toolkit.
key_binding.bindings.vi', 'prompt_toolkit.input.vt100_parser', 'prompt_toolkit.i
nput.ansi_escape_sequences', 'prompt_toolkit.key_binding.digraphs', 'prompt_tool
kit.key_binding.bindings.mouse', 'prompt_toolkit.layout', 'prompt_toolkit.layout
.containers', 'prompt_toolkit.layout.controls', 'prompt_toolkit.formatted_text',
 'prompt_toolkit.formatted_text.base', 'prompt_toolkit.formatted_text.html', 'xm
l', 'xml.dom', 'xml.dom.domreg', 'xml.dom.minidom', 'xml.dom.minicompat', 'xml.d
om.xmlbuilder', 'xml.dom.NodeFilter', 'prompt_toolkit.formatted_text.ansi', 'pro
mpt_toolkit.output', 'prompt_toolkit.output.base', 'prompt_toolkit.layout.screen
', 'prompt_toolkit.output.defaults', 'prompt_toolkit.output.color_depth', 'promp
t_toolkit.output.vt100', 'prompt_toolkit.styles', 'prompt_toolkit.styles.base',
'prompt_toolkit.styles.defaults', 'prompt_toolkit.styles.style', 'prompt_toolkit
.styles.named_colors', 'prompt_toolkit.styles.pygments', 'prompt_toolkit.styles.
style_transformation', 'colorsys', 'array', 'prompt_toolkit.formatted_text.pygme
nts', 'prompt_toolkit.formatted_text.utils', 'prompt_toolkit.lexers', 'prompt_to
olkit.lexers.base', 'prompt_toolkit.lexers.pygments', 'prompt_toolkit.mouse_even
ts', 'prompt_toolkit.layout.processors', 'prompt_toolkit.layout.utils', 'prompt_
toolkit.layout.dimension', 'prompt_toolkit.layout.margins', 'prompt_toolkit.layo
ut.layout', 'prompt_toolkit.layout.menus', 'prompt_toolkit.renderer', 'prompt_to
olkit.layout.mouse_handlers', 'prompt_toolkit.key_binding.bindings.cpr', 'prompt
_toolkit.key_binding.emacs_state', 'prompt_toolkit.layout.dummy', 'prompt_toolki
t.application.dummy', 'prompt_toolkit.shortcuts', 'prompt_toolkit.shortcuts.dial
ogs', 'prompt_toolkit.key_binding.bindings.focus', 'prompt_toolkit.widgets', 'pr
ompt_toolkit.widgets.base', 'prompt_toolkit.widgets.toolbars', 'prompt_toolkit.w
idgets.dialogs', 'prompt_toolkit.widgets.menus', 'prompt_toolkit.shortcuts.promp
t', 'prompt_toolkit.key_binding.bindings.auto_suggest', 'prompt_toolkit.key_bind
ing.bindings.open_in_editor', 'prompt_toolkit.shortcuts.utils', 'prompt_toolkit.
shortcuts.progress_bar', 'prompt_toolkit.shortcuts.progress_bar.base', 'prompt_t
oolkit.shortcuts.progress_bar.formatters', 'prompt_toolkit.patch_stdout', 'pygme
nts.style', 'IPython.terminal.debugger', 'IPython.core.completer', 'unicodedata'
, 'IPython.core.latex_symbols', 'IPython.utils.generics', 'simplegeneric', 'jedi
', 'jedi.api', 'parso', 'parso.parser', 'parso.tree', 'parso._compatibility', 'p
arso.pgen2', 'parso.pgen2.generator', 'parso.pgen2.grammar_parser', 'parso.pytho
n', 'parso.python.tokenize', 'parso.python.token', 'parso.utils', 'parso.grammar
', 'parso.python.diff', 'difflib', 'parso.python.parser', 'parso.python.tree', '
parso.python.prefix', 'parso.cache', 'gc', 'parso.python.errors', 'parso.normali
zer', 'parso.python.pep8', 'jedi._compatibility', 'jedi.parser_utils', 'jedi.deb
ug', 'jedi.settings', 'jedi.cache', 'jedi.api.classes', 'jedi.evaluate', 'jedi.e
valuate.utils', 'jedi.evaluate.imports', 'jedi.evaluate.sys_path', 'jedi.evaluat
e.cache', 'jedi.evaluate.base_context', 'jedi.common', 'jedi.common.context', 'j
edi.evaluate.helpers', 'jedi.common.utils', 'jedi.evaluate.compiled', 'jedi.eval
uate.compiled.context', 'jedi.evaluate.filters', 'jedi.evaluate.flow_analysis',
'jedi.evaluate.recursion', 'jedi.evaluate.lazy_context', 'jedi.evaluate.compiled
.access', 'jedi.evaluate.compiled.getattr_static', 'jedi.evaluate.compiled.fake'
, 'jedi.evaluate.analysis', 'jedi.evaluate.context', 'jedi.evaluate.context.modu
le', 'jedi.evaluate.context.klass', 'jedi.evaluate.context.function', 'jedi.eval
uate.docstrings', 'jedi.evaluate.pep0484', 'jedi.evaluate.arguments', 'jedi.eval
uate.context.iterable', 'jedi.evaluate.param', 'jedi.evaluate.context.asynchrono
us', 'jedi.evaluate.parser_cache', 'jedi.evaluate.context.instance', 'jedi.evalu
ate.syntax_tree', 'jedi.evaluate.finder', 'jedi.api.keywords', 'pydoc_data', 'py
doc_data.topics', 'jedi.api.interpreter', 'jedi.evaluate.compiled.mixed', 'jedi.
api.helpers', 'jedi.api.completion', 'jedi.api.environment', 'filecmp', 'jedi.ev
aluate.compiled.subprocess', 'jedi.evaluate.compiled.subprocess.functions', 'jed
i.api.exceptions', 'jedi.api.project', 'jedi.evaluate.usages', 'IPython.terminal
.ptutils', 'IPython.terminal.shortcuts', 'IPython.lib.clipboard', 'IPython.termi
nal.magics', 'IPython.terminal.pt_inputhooks', 'IPython.terminal.prompts', 'IPyt
hon.terminal.ipapp', 'IPython.core.magics', 'IPython.core.magics.auto', 'IPython
.core.magics.basic', 'IPython.core.magics.code', 'urllib.request', 'email', 'htt
p', 'http.client', 'email.parser', 'email.feedparser', 'email.errors', 'email._p
olicybase', 'email.header', 'email.quoprimime', 'email.base64mime', 'email.chars
et', 'email.encoders', 'quopri', 'email.utils', 'email._parseaddr', 'calendar',
'email.message', 'uu', 'email._encoded_words', 'email.iterators', 'urllib.error'
, 'urllib.response', 'nturl2path', 'IPython.core.magics.config', 'IPython.core.m
agics.display', 'IPython.core.magics.execution', 'timeit', 'cProfile', '_lsprof'
, 'profile', 'optparse', 'pstats', 'IPython.utils.module_paths', 'IPython.utils.
timing', 'IPython.core.magics.extension', 'IPython.core.magics.history', 'IPytho
n.core.magics.logging', 'IPython.core.magics.namespace', 'IPython.core.magics.os
m', 'IPython.core.magics.pylab', 'IPython.core.pylabtools', 'IPython.core.magics
.script', 'IPython.lib.backgroundjobs', 'IPython.core.shellapp', 'IPython.extens
ions', 'IPython.extensions.storemagic', 'IPython.utils.frame', 'IPython.core.com
pleterlib', 'colorama', 'colorama.initialise', 'colorama.ansitowin32', 'colorama
.ansi', 'colorama.winterm', 'colorama.win32', 'pygments.styles.default', 'pygmen
ts.lexers.shell', 'pygments.lexers.html', 'pygments.lexers.javascript', 'pygment
s.lexers.jvm', 'pygments.lexers.css', 'pygments.lexers.ruby', 'pygments.lexers.p
erl', 'pygments.lexers.markup', 'prompt_toolkit.output.conemu', 'prompt_toolkit.
output.win32', 'prompt_toolkit.win32_types', 'prompt_toolkit.output.windows10',
'prompt_toolkit.input.win32', 'prompt_toolkit.eventloop.win32', 'prompt_toolkit.
eventloop.inputhook', 'prompt_toolkit.eventloop.select', 'prompt_toolkit.eventlo
op.utils', 'prompt_toolkit.key_binding.bindings.search', 'storemagic', 'weka', '
weka.core', 'scipy', 'numpy', 'numpy._globals', 'numpy.__config__', 'numpy.versi
on', 'numpy._import_tools', 'numpy.add_newdocs', 'numpy.lib', 'numpy.lib.info',
'numpy.lib.type_check', 'numpy.core', 'numpy.core.info', 'numpy.core.multiarray'
, 'numpy.core.umath', 'numpy.core._internal', 'numpy.compat', 'numpy.compat._ins
pect', 'numpy.compat.py3k', 'numpy.core.numerictypes', 'numbers', 'numpy.core.nu
meric', 'numpy.core.fromnumeric', 'numpy.core._methods', 'numpy.core.arrayprint'
, 'numpy.core.defchararray', 'numpy.core.records', 'numpy.core.memmap', 'numpy.c
ore.function_base', 'numpy.core.machar', 'numpy.core.getlimits', 'numpy.core.sha
pe_base', 'numpy.core.einsumfunc', 'numpy.testing', 'unittest', 'unittest.result
', 'unittest.util', 'unittest.case', 'unittest.suite', 'unittest.loader', 'unitt
est.main', 'unittest.runner', 'unittest.signals', 'numpy.testing._private', 'num
py.testing._private.utils', 'numpy.lib.utils', 'numpy.testing._private.decorator
s', 'numpy.testing._private.nosetester', 'numpy.testing._private.pytesttester',
'numpy.lib.ufunclike', 'numpy.lib.index_tricks', 'numpy.lib.function_base', 'num
py.lib.twodim_base', 'numpy.lib.histograms', 'numpy.matrixlib', 'numpy.matrixlib
.defmatrix', 'numpy.linalg', 'numpy.linalg.info', 'numpy.linalg.linalg', 'numpy.
linalg.lapack_lite', 'numpy.linalg._umath_linalg', 'numpy.lib.stride_tricks', 'n
umpy.lib.mixins', 'numpy.lib.nanfunctions', 'numpy.lib.shape_base', 'numpy.lib.s
cimath', 'numpy.lib.polynomial', 'numpy.lib.arraysetops', 'numpy.lib.npyio', 'nu
mpy.lib.format', 'numpy.lib._datasource', 'numpy.lib._iotools', 'numpy.lib.finan
cial', 'decimal', '_decimal', 'numpy.lib.arrayterator', 'numpy.lib.arraypad', 'n
umpy.lib._version', 'numpy.core._multiarray_tests', 'numpy._distributor_init', '
numpy.fft', 'numpy.fft.info', 'numpy.fft.fftpack', 'numpy.fft.fftpack_lite', 'nu
mpy.fft.helper', 'numpy.polynomial', 'numpy.polynomial.polynomial', 'numpy.polyn
omial.polyutils', 'numpy.polynomial._polybase', 'numpy.polynomial.chebyshev', 'n
umpy.polynomial.legendre', 'numpy.polynomial.hermite', 'numpy.polynomial.hermite
_e', 'numpy.polynomial.laguerre', 'numpy.random', 'numpy.random.info', 'cython_r
untime', 'mtrand', 'numpy.random.mtrand', 'numpy.ctypeslib', 'numpy.ma', 'numpy.
ma.core', 'numpy.ma.extras', 'scipy._distributor_init', 'scipy.__config__', 'sci
py.version', 'scipy._lib', 'scipy._lib._testutils', 'scipy._lib._version', 'scip
y._lib.six', 'scipy._lib._ccallback', 'scipy._lib._ccallback_c', 'weka.core.jvm'
, 'javabridge', 'javabridge.jutil', 'uuid', 'ctypes.util', 'javabridge.locate',
'_javabridge', 'javabridge._javabridge', 'javabridge.wrappers', 'matplotlib', 'd
istutils', 'distutils.version', 'matplotlib.cbook', 'gzip', 'matplotlib.cbook.de
precation', 'matplotlib.rcsetup', 'matplotlib.fontconfig_pattern', 'pyparsing',
'matplotlib.colors', 'matplotlib._color_data', 'cycler', 'matplotlib._version',
'dateutil', 'dateutil._version']
@fracpete

This comment has been minimized.

Copy link
Owner

fracpete commented Oct 16, 2018

Suggestions for leaving the logging on DEBUG for pww3, but not affect matplotlib?

@fracpete

This comment has been minimized.

Copy link
Owner

fracpete commented Oct 22, 2018

Does changing:

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

into

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

solve the issue for you?

@Arnie97

This comment has been minimized.

Copy link
Author

Arnie97 commented Oct 24, 2018

After that change, logs from pww3 are also omitted by the log handler.

@Arnie97

This comment has been minimized.

Copy link
Author

Arnie97 commented Oct 24, 2018

The following solution should work:

logging.basicConfig()
logging.getLogger('weka').setLevel(logging.DEBUG)

Otherwise you'll have to add logger.setLevel(logging.DEBUG) to every module.

@fracpete

This comment has been minimized.

Copy link
Owner

fracpete commented Oct 24, 2018

Good idea. Will have a look at it when I get some time.

@fracpete fracpete self-assigned this Oct 28, 2018

@fracpete fracpete added the bug label Oct 28, 2018

@fracpete

This comment has been minimized.

Copy link
Owner

fracpete commented Oct 28, 2018

So I settled on the following:

logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

The DEBUG flag was pretty much only supposed to get used in the jvm module anyway (to output the classpath). Thanks again!

@fracpete fracpete closed this Oct 28, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment