Created
November 7, 2018 00:56
-
-
Save mpkocher/685237b7408b64fde2574f1ea2aed87c to your computer and use it in GitHub Desktop.
Ammonite Ops /dev/tty: Device not configured Issue
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Ammonite Ops in Almond" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[32mimport \u001b[39m\u001b[36malmond.api.Properties\n", | |
| "\u001b[39m\n", | |
| "\u001b[32mimport \u001b[39m\u001b[36mammonite.ops._\n", | |
| "\u001b[39m\n", | |
| "\u001b[32mimport \u001b[39m\u001b[36mjava.time.LocalDate\n", | |
| "\u001b[39m\n", | |
| "\u001b[32mimport \u001b[39m\u001b[36mammonite.{Constants => AmmoniteConstants}\u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "import almond.api.Properties\n", | |
| "import ammonite.ops._\n", | |
| "import java.time.LocalDate\n", | |
| "import ammonite.{Constants => AmmoniteConstants}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[36md0\u001b[39m: \u001b[32mPath\u001b[39m = root/\u001b[32m'Users\u001b[39m/\u001b[32m'mkocher\u001b[39m/\u001b[32m'Desktop\u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "val d0 = Path(\"/Users/mkocher/Desktop\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "sh: /dev/tty: Device not configured\n" | |
| ] | |
| }, | |
| { | |
| "ename": "", | |
| "evalue": "", | |
| "output_type": "error", | |
| "traceback": [ | |
| "\u001b[31mjava.lang.RuntimeException: Nonzero exit value: 1\u001b[39m\n scala.sys.package$.error(\u001b[32mpackage.scala\u001b[39m:\u001b[32m26\u001b[39m)\n scala.sys.process.ProcessBuilderImpl$AbstractBuilder.slurp(\u001b[32mProcessBuilderImpl.scala\u001b[39m:\u001b[32m134\u001b[39m)\n scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang$bang(\u001b[32mProcessBuilderImpl.scala\u001b[39m:\u001b[32m104\u001b[39m)\n ammonite.terminal.TTY$.consoleDim(\u001b[32mUtils.scala\u001b[39m:\u001b[32m94\u001b[39m)\n ammonite.terminal.ConsoleDim.$anonfun$dims$2(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m34\u001b[39m)\n scala.Option.getOrElse(\u001b[32mOption.scala\u001b[39m:\u001b[32m121\u001b[39m)\n ammonite.terminal.ConsoleDim.$anonfun$dims$1(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m31\u001b[39m)\n scala.Option.getOrElse(\u001b[32mOption.scala\u001b[39m:\u001b[32m121\u001b[39m)\n ammonite.terminal.ConsoleDim.dims(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m30\u001b[39m)\n ammonite.terminal.ConsoleDim.width(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m42\u001b[39m)\n ammonite.terminal.ConsoleDim$.width(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m54\u001b[39m)\n ammonite.repl.FrontEndUtils$.width(\u001b[32mFrontEndUtils.scala\u001b[39m:\u001b[32m11\u001b[39m)\n ammonite.repl.PPrints$.$anonfun$lsSeqRepr$3(\u001b[32mPPrints.scala\u001b[39m:\u001b[32m26\u001b[39m)\n scala.collection.Iterator$ConcatIteratorCell.headIterator(\u001b[32mIterator.scala\u001b[39m:\u001b[32m244\u001b[39m)\n scala.collection.Iterator$ConcatIterator.advance(\u001b[32mIterator.scala\u001b[39m:\u001b[32m190\u001b[39m)\n scala.collection.Iterator$ConcatIterator.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m221\u001b[39m)\n scala.collection.Iterator$$anon$10.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m454\u001b[39m)\n scala.collection.Iterator$$anon$12.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m507\u001b[39m)\n pprint.Truncated.next(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m93\u001b[39m)\n pprint.Truncated.next(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m11\u001b[39m)\n scala.collection.Iterator$$anon$12.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m508\u001b[39m)\n pprint.Truncated.hasNext(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m80\u001b[39m)\n scala.collection.Iterator.toStream(\u001b[32mIterator.scala\u001b[39m:\u001b[32m1411\u001b[39m)\n scala.collection.Iterator.toStream$(\u001b[32mIterator.scala\u001b[39m:\u001b[32m1410\u001b[39m)\n pprint.Truncated.toStream(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m11\u001b[39m)\n ammonite.repl.FullReplAPI$Internal$.print(\u001b[32mFullReplAPI.scala\u001b[39m:\u001b[32m90\u001b[39m)" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "ls! d0" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[32mimport \u001b[39m\u001b[36mammonite.ops.ImplicitWd._\u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "import ammonite.ops.ImplicitWd._" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "sh: /dev/tty: Device not configured\n" | |
| ] | |
| }, | |
| { | |
| "ename": "", | |
| "evalue": "", | |
| "output_type": "error", | |
| "traceback": [ | |
| "\u001b[31mjava.lang.RuntimeException: Nonzero exit value: 1\u001b[39m\n scala.sys.package$.error(\u001b[32mpackage.scala\u001b[39m:\u001b[32m26\u001b[39m)\n scala.sys.process.ProcessBuilderImpl$AbstractBuilder.slurp(\u001b[32mProcessBuilderImpl.scala\u001b[39m:\u001b[32m134\u001b[39m)\n scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang$bang(\u001b[32mProcessBuilderImpl.scala\u001b[39m:\u001b[32m104\u001b[39m)\n ammonite.terminal.TTY$.consoleDim(\u001b[32mUtils.scala\u001b[39m:\u001b[32m94\u001b[39m)\n ammonite.terminal.ConsoleDim.$anonfun$dims$2(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m34\u001b[39m)\n scala.Option.getOrElse(\u001b[32mOption.scala\u001b[39m:\u001b[32m121\u001b[39m)\n ammonite.terminal.ConsoleDim.$anonfun$dims$1(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m31\u001b[39m)\n scala.Option.getOrElse(\u001b[32mOption.scala\u001b[39m:\u001b[32m121\u001b[39m)\n ammonite.terminal.ConsoleDim.dims(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m30\u001b[39m)\n ammonite.terminal.ConsoleDim.width(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m42\u001b[39m)\n ammonite.terminal.ConsoleDim$.width(\u001b[32mConsoleDim.scala\u001b[39m:\u001b[32m54\u001b[39m)\n ammonite.repl.FrontEndUtils$.width(\u001b[32mFrontEndUtils.scala\u001b[39m:\u001b[32m11\u001b[39m)\n ammonite.repl.PPrints$.$anonfun$lsSeqRepr$3(\u001b[32mPPrints.scala\u001b[39m:\u001b[32m26\u001b[39m)\n scala.collection.Iterator$ConcatIteratorCell.headIterator(\u001b[32mIterator.scala\u001b[39m:\u001b[32m244\u001b[39m)\n scala.collection.Iterator$ConcatIterator.advance(\u001b[32mIterator.scala\u001b[39m:\u001b[32m190\u001b[39m)\n scala.collection.Iterator$ConcatIterator.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m221\u001b[39m)\n scala.collection.Iterator$$anon$10.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m454\u001b[39m)\n scala.collection.Iterator$$anon$12.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m507\u001b[39m)\n pprint.Truncated.next(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m93\u001b[39m)\n pprint.Truncated.next(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m11\u001b[39m)\n scala.collection.Iterator$$anon$12.hasNext(\u001b[32mIterator.scala\u001b[39m:\u001b[32m508\u001b[39m)\n pprint.Truncated.hasNext(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m80\u001b[39m)\n scala.collection.Iterator.toStream(\u001b[32mIterator.scala\u001b[39m:\u001b[32m1411\u001b[39m)\n scala.collection.Iterator.toStream$(\u001b[32mIterator.scala\u001b[39m:\u001b[32m1410\u001b[39m)\n pprint.Truncated.toStream(\u001b[32mTruncated.scala\u001b[39m:\u001b[32m11\u001b[39m)\n ammonite.repl.FullReplAPI$Internal$.print(\u001b[32mFullReplAPI.scala\u001b[39m:\u001b[32m90\u001b[39m)" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "ls!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Alternative to using ammonite.ops" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[32mimport \u001b[39m\u001b[36m$ivy.$ \u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "import $ivy.`com.github.pathikrit::better-files:3.6.0`" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[32mimport \u001b[39m\u001b[36mbetter.files._\n", | |
| "\u001b[39m\n", | |
| "\u001b[32mimport \u001b[39m\u001b[36mFile._\u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "import better.files._\n", | |
| "import File._" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[36md0\u001b[39m: \u001b[32mFile\u001b[39m = /Users/mkocher/Desktop\n", | |
| "\u001b[36mres7_1\u001b[39m: \u001b[32mInt\u001b[39m = \u001b[32m8\u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "val d0 = home / 'Desktop\n", | |
| "d0.list.length" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Session Info" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "defined \u001b[32mfunction\u001b[39m \u001b[36mgetPythonVersion\u001b[39m\n", | |
| "defined \u001b[32mfunction\u001b[39m \u001b[36mgetJupyterCoreVersion\u001b[39m\n", | |
| "defined \u001b[32mfunction\u001b[39m \u001b[36msessionInfo\u001b[39m" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "def getPythonVersion(): Option[String] = {\n", | |
| " // these basic 2/3 differences are annoying. 2 writes to stderr\n", | |
| " // val result = %%python(\"--version\")\n", | |
| " val result = %%python(\"-c\", \"import sys; sys.stdout.write(sys.version)\")\n", | |
| " result.out.lines.headOption.map(_.trim)\n", | |
| "}\n", | |
| "\n", | |
| "def getJupyterCoreVersion(): Option[String] = {\n", | |
| " val result = %%python(\"-c\", \"import sys;import jupyter_core as J; sys.stdout.write(J.__version__)\")\n", | |
| " result.out.lines.headOption\n", | |
| "}\n", | |
| "\n", | |
| "def sessionInfo(): Map[String, String] = {\n", | |
| " Map(\"now\" -> LocalDate.now().toString,\n", | |
| " \"scalaVersion\" -> scala.util.Properties.scalaPropOrElse(\"version.number\", \"unknown\"),\n", | |
| " \"javaVersion\" -> System.getProperty(\"java.version\") ,\n", | |
| " \"almondVersion\" -> s\"${Properties.version}+${Properties.commitHash.take(7)}\",\n", | |
| " \"pythonVersion\" -> getPythonVersion().getOrElse(\"unknown\"),\n", | |
| " \"jupyterCoreVersion\" -> getJupyterCoreVersion().getOrElse(\"unknown\"),\n", | |
| " \"ammoniteVersion\" -> AmmoniteConstants.version\n", | |
| " )\n", | |
| "}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "\u001b[36mres9\u001b[39m: \u001b[32mMap\u001b[39m[\u001b[32mString\u001b[39m, \u001b[32mString\u001b[39m] = \u001b[33mMap\u001b[39m(\n", | |
| " \u001b[32m\"jupyterCoreVersion\"\u001b[39m -> \u001b[32m\"4.4.0\"\u001b[39m,\n", | |
| " \u001b[32m\"javaVersion\"\u001b[39m -> \u001b[32m\"1.8.0_111\"\u001b[39m,\n", | |
| " \u001b[32m\"almondVersion\"\u001b[39m -> \u001b[32m\"0.1.11+eed7aa2\"\u001b[39m,\n", | |
| " \u001b[32m\"ammoniteVersion\"\u001b[39m -> \u001b[32m\"1.3.2\"\u001b[39m,\n", | |
| " \u001b[32m\"pythonVersion\"\u001b[39m -> \u001b[32m\"3.7.1 (default, Oct 23 2018, 14:07:42)\"\u001b[39m,\n", | |
| " \u001b[32m\"scalaVersion\"\u001b[39m -> \u001b[32m\"2.12.7\"\u001b[39m,\n", | |
| " \u001b[32m\"now\"\u001b[39m -> \u001b[32m\"2018-11-06\"\u001b[39m\n", | |
| ")" | |
| ] | |
| }, | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "sessionInfo()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Scala", | |
| "language": "scala", | |
| "name": "scala" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": "text/x-scala", | |
| "file_extension": ".scala", | |
| "mimetype": "text/x-scala", | |
| "name": "scala", | |
| "nbconvert_exporter": "script", | |
| "version": "2.12.7" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
relevant issue: com-lihaoyi/Ammonite#276 (comment)