Skip to content

Instantly share code, notes, and snippets.

@mpkocher
Created November 7, 2018 00:56
Show Gist options
  • Save mpkocher/685237b7408b64fde2574f1ea2aed87c to your computer and use it in GitHub Desktop.
Save mpkocher/685237b7408b64fde2574f1ea2aed87c to your computer and use it in GitHub Desktop.
Ammonite Ops /dev/tty: Device not configured Issue
Display the source blob
Display the rendered blob
Raw
{
"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
}
@ryan-williams
Copy link

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