transcriptic 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/transcriptic/cli.rb +23 -2
- data/lib/transcriptic/client.rb +57 -75
- data/lib/transcriptic/sbt.rb +5 -0
- data/lib/transcriptic/templates/project/Build.erb +1 -1
- data/lib/transcriptic/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01ee5e633ccf6090da9f9c302ed28d5ebcb51a91
|
4
|
+
data.tar.gz: 082a53ce0fea38126c1ab6e3d2c1a8e88d568c94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d547dcbf5cd749034f0a053dd5ce9e54db318bb2b084777e91c044c3db8343a3f64813ba7946cb004e61c40c964a84b63b1b516f934d6e76923ad5813962764c
|
7
|
+
data.tar.gz: 2a601e5d2f5dc0f3b78a9906b14d78978ac76904b4eb5a6853755596b67db115de69233f6ab02ad3d9c2acd3cb1bf321cb49e78b8a850e683558ee238d01037b
|
data/lib/transcriptic/cli.rb
CHANGED
@@ -96,12 +96,32 @@ module Transcriptic
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
+
desc "lookup QUERY", "Search for resources"
|
100
|
+
long_desc <<-LONGDESC
|
101
|
+
Search your organization's resource library as well as all public resources (i.e., commercial reagents). Useful
|
102
|
+
\x5 for looking up resource IDs of the format VENDOR/SKU as required for use in protocols. Example:
|
103
|
+
|
104
|
+
transcriptic lookup phusion
|
105
|
+
\x5===> NEB/M0530 Phusion High-Fidelity DNA Polymerase
|
106
|
+
\x5===> NEB/M0535 Phusion Hot Start Flex DNA Polymerase
|
107
|
+
\x5===> NEB/B0519 Phusion GC Buffer
|
108
|
+
\x5===> NEB/B0518 Phusion HF Buffer
|
109
|
+
LONGDESC
|
110
|
+
method_option :limit, type: :numeric, desc: "Maximum number of results to return"
|
111
|
+
def lookup(term)
|
112
|
+
ret = transcriptic.search_resources(term)
|
113
|
+
ret["results"].each do |result|
|
114
|
+
output_with_arrow "#{result[:resource_id]}: #{result[:name]}"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
99
118
|
desc "update", "Update the project's dependencies"
|
100
119
|
def update
|
101
120
|
require_labfile!
|
102
121
|
output_with_arrow "Updating dependencies..."
|
103
122
|
labfile = Transcriptic::Labfile.from_file(Transcriptic.find_labfile)
|
104
123
|
Transcriptic::DependenciesGenerator.new([Dir.pwd, labfile.dependencies], options).invoke_all
|
124
|
+
Transcriptic::SBT.update
|
105
125
|
end
|
106
126
|
|
107
127
|
desc "compile", "Compile the project"
|
@@ -112,14 +132,15 @@ module Transcriptic
|
|
112
132
|
end
|
113
133
|
|
114
134
|
desc "analyze OBJECTPATH", "Analyze a protocol. Object path is of the form edu.foo.bar where bar is the name of your Protocol object."
|
115
|
-
method_options :raw => :boolean, :iterations => :
|
135
|
+
method_options :raw => :boolean, :iterations => :numeric, :linearize => :boolean
|
116
136
|
def analyze(object_path)
|
117
137
|
raw = options.raw ? "--raw" : ""
|
138
|
+
linearize = options.linearize ? "--linearize" : ""
|
118
139
|
iterations = options.iterations ? options.iterations : 5
|
119
140
|
require_labfile!
|
120
141
|
update
|
121
142
|
Transcriptic::SBT.stage
|
122
|
-
data = `target/start #{object_path} --verify #{raw} --iterations #{iterations}`
|
143
|
+
data = `target/start #{object_path} --verify #{raw} #{linearize} --iterations #{iterations}`
|
123
144
|
if not options.raw
|
124
145
|
json = json_decode(data)
|
125
146
|
output_with_arrow "Verification successful for #{object_path}"
|
data/lib/transcriptic/client.rb
CHANGED
@@ -5,7 +5,8 @@
|
|
5
5
|
#
|
6
6
|
# require 'transcriptic'
|
7
7
|
# transcriptic = Transcriptic::Client.new('me@example.com', 'mypass')
|
8
|
-
# transcriptic.
|
8
|
+
# transcriptic.list_resources
|
9
|
+
# transcriptic.run_info("run-625f827a")
|
9
10
|
#
|
10
11
|
class Transcriptic::Client
|
11
12
|
include Transcriptic::UI
|
@@ -15,7 +16,7 @@ class Transcriptic::Client
|
|
15
16
|
end
|
16
17
|
|
17
18
|
def self.gem_version_string
|
18
|
-
"transcriptic
|
19
|
+
"transcriptic/#{version}"
|
19
20
|
end
|
20
21
|
|
21
22
|
attr_accessor :host, :user, :api_key
|
@@ -31,49 +32,82 @@ class Transcriptic::Client
|
|
31
32
|
@host = host
|
32
33
|
end
|
33
34
|
|
34
|
-
def
|
35
|
-
json_decode get("/api/
|
35
|
+
def search_resources(term, limit = 10)
|
36
|
+
json_decode get("/api/resources/search.json?query=#{escape(term)}&limit=#{limit}").to_s
|
36
37
|
end
|
37
38
|
|
38
|
-
def
|
39
|
-
json_decode get("/api/
|
39
|
+
def list_resources
|
40
|
+
json_decode get("/api/resources.json").to_s
|
40
41
|
end
|
41
42
|
|
42
|
-
|
43
|
+
def resource_info(id)
|
44
|
+
json_decode get("/api/resources/#{id}.json").to_s
|
45
|
+
end
|
43
46
|
|
44
|
-
|
45
|
-
|
46
|
-
json_decode get('/api/runs.json').to_s
|
47
|
+
def list_runs
|
48
|
+
json_decode get("/api/runs.json").to_s
|
47
49
|
end
|
48
50
|
|
49
|
-
def
|
50
|
-
json_decode get("/api/
|
51
|
+
def run_info(id)
|
52
|
+
json_decode get("/api/runs/#{id}.json").to_s
|
51
53
|
end
|
52
54
|
|
53
|
-
def
|
54
|
-
|
55
|
+
def create_run(fd, project_id)
|
56
|
+
payload = {
|
57
|
+
'zipdata' => Base64.encode64(File.open(fd).read),
|
58
|
+
'project_id' => project_id
|
59
|
+
}
|
60
|
+
json_decode post("/api/runs", payload, { 'Content-Type' => 'application/zip; charset=UTF-8' }).to_s
|
55
61
|
end
|
56
62
|
|
57
|
-
def
|
58
|
-
|
63
|
+
def protocol(run_id)
|
64
|
+
Protocol.new(self, run_id)
|
59
65
|
end
|
60
66
|
|
61
|
-
|
62
|
-
|
63
|
-
|
67
|
+
def read_logs(run_id, options=[])
|
68
|
+
query = "&" + options.join("&") unless options.empty?
|
69
|
+
url = get("/api/runs/#{run_id}/logs.json?#{query}").to_s
|
70
|
+
if 'not_found' == url
|
71
|
+
error "Run #{run_id} not found!"
|
72
|
+
end
|
73
|
+
|
74
|
+
uri = URI.parse(url);
|
75
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
76
|
+
|
77
|
+
if uri.scheme == 'https'
|
78
|
+
http.use_ssl = true
|
79
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
80
|
+
end
|
81
|
+
|
82
|
+
http.read_timeout = 60 * 60 * 24
|
83
|
+
|
84
|
+
begin
|
85
|
+
http.start do
|
86
|
+
http.request_get(uri.path + (uri.query ? "?" + uri.query : "")) do |request|
|
87
|
+
request.read_body do |chunk|
|
88
|
+
yield chunk
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT, SocketError
|
93
|
+
abort(" ! Could not connect to logging service")
|
94
|
+
rescue Timeout::Error, EOFError
|
95
|
+
abort("\n ! Request timed out")
|
96
|
+
end
|
64
97
|
end
|
65
98
|
|
99
|
+
class ProtocolException < RuntimeError; end
|
100
|
+
|
66
101
|
class Protocol
|
67
|
-
attr_accessor :attached
|
102
|
+
attr_accessor :attached
|
68
103
|
|
69
|
-
def initialize(client, protocol
|
104
|
+
def initialize(client, protocol)
|
70
105
|
@client = client
|
71
106
|
@protocol = protocol
|
72
|
-
@upid = upid
|
73
107
|
end
|
74
108
|
|
75
109
|
# launch the protocol
|
76
|
-
def launch(command, attached=false)
|
110
|
+
def launch(command, attached = false)
|
77
111
|
@attached = attached
|
78
112
|
@response = @client.post(
|
79
113
|
"/api/runs/#{@app}/confirm",
|
@@ -129,58 +163,6 @@ class Transcriptic::Client
|
|
129
163
|
end
|
130
164
|
end
|
131
165
|
|
132
|
-
def status(run_id)
|
133
|
-
json_decode get("/api/runs/#{run_id}").to_s
|
134
|
-
end
|
135
|
-
|
136
|
-
def create_run(fd, project_id)
|
137
|
-
payload = {
|
138
|
-
'zipdata' => Base64.encode64(File.open(fd).read),
|
139
|
-
'project_id' => project_id
|
140
|
-
}
|
141
|
-
json_decode post("/api/runs", payload, { 'Content-Type' => 'application/zip; charset=UTF-8' }).to_s
|
142
|
-
end
|
143
|
-
|
144
|
-
def launch_run(run_id)
|
145
|
-
json_decode post("/api/runs/#{run_id}/confirm").to_s
|
146
|
-
end
|
147
|
-
|
148
|
-
def protocol(run_id, upid)
|
149
|
-
Protocol.new(self, run_id, upid)
|
150
|
-
end
|
151
|
-
|
152
|
-
def read_logs(run_id, options=[])
|
153
|
-
query = "&" + options.join("&") unless options.empty?
|
154
|
-
url = get("/api/runs/#{run_id}/logs.json?#{query}").to_s
|
155
|
-
if 'not_found' == url
|
156
|
-
error "Run #{run_id} not found!"
|
157
|
-
end
|
158
|
-
|
159
|
-
uri = URI.parse(url);
|
160
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
161
|
-
|
162
|
-
if uri.scheme == 'https'
|
163
|
-
http.use_ssl = true
|
164
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
165
|
-
end
|
166
|
-
|
167
|
-
http.read_timeout = 60 * 60 * 24
|
168
|
-
|
169
|
-
begin
|
170
|
-
http.start do
|
171
|
-
http.request_get(uri.path + (uri.query ? "?" + uri.query : "")) do |request|
|
172
|
-
request.read_body do |chunk|
|
173
|
-
yield chunk
|
174
|
-
end
|
175
|
-
end
|
176
|
-
end
|
177
|
-
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT, SocketError
|
178
|
-
abort(" ! Could not connect to logging service")
|
179
|
-
rescue Timeout::Error, EOFError
|
180
|
-
abort("\n ! Request timed out")
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
166
|
def on_warning(&blk)
|
185
167
|
@warning_callback = blk
|
186
168
|
end
|
data/lib/transcriptic/sbt.rb
CHANGED
@@ -49,7 +49,7 @@ object AutoprotocolBuild extends Build {
|
|
49
49
|
"<%= name %>",
|
50
50
|
file("."),
|
51
51
|
settings =
|
52
|
-
buildSettings ++ Seq (libraryDependencies ++= (Seq("org.autoprotocol" %% "autoprotocol" % "0.1.
|
52
|
+
buildSettings ++ Seq (libraryDependencies ++= (Seq("org.autoprotocol" %% "autoprotocol-library" % "0.1.1-SNAPSHOT") ++
|
53
53
|
dependencies), resolvers ++= Seq(transcriptic, autoprotocol, typesafe)) ++ Defaults.defaultSettings ++
|
54
54
|
StartScriptPlugin.startScriptForClassesSettings
|
55
55
|
) settings (
|
data/lib/transcriptic/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transcriptic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Transcriptic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: netrc
|