rbbt-util 5.21.103 → 5.21.104

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 14ea1d12f7ac8fe08dc04a5e46bcf7ab10d0a669
4
- data.tar.gz: f11141d1270747aafef6293a845e8e62347ed716
3
+ metadata.gz: c0ffcca0065a417f82428c347e4283ec03ccfd75
4
+ data.tar.gz: 65a8de0c4d9e0bca0e23a8d0c27e7c2b89d9ca9c
5
5
  SHA512:
6
- metadata.gz: 7ac4fc17f5c9c56e4b7150247da0ea5cc8ff72417efec635c199548e52ff6230785401f8b712717ec504585f366258e005c6507810c194aa3ced1fba7bbaee28
7
- data.tar.gz: 9f7937bf5f62c23c73ede5dc1326fc1ff1a34e98dc9032ed3d600907c3f4e20064e17cef3c6c53eb39a7e0a725e18c10f2ee71836d46519c70cbb859658f1314
6
+ metadata.gz: 871b8ef7151a8a47f91994061603859b7dfa57402b4631f74eb4f6e5f747524bb48a91ff6e1bef7abe27fb7194b3ac4c6416686c63de4c7531cf052d75b6ad7f
7
+ data.tar.gz: 1db58bc5d69b28a0d58b6913cce05dae2a113c8a7723fa3bc34f08532a8886b4a2079ebd806292d92d8977c9d09591306ff7840d171473f4ff504a572ddee898
@@ -29,16 +29,16 @@ module Rake
29
29
  Rake::Task.clear
30
30
  Rake::FileTask.clear_files
31
31
 
32
- if block_given?
33
- yield
34
- else
35
- load rakefile
36
- end
37
-
38
- raise TaskNotFound if Rake::Task[task].nil?
39
-
40
32
  t = nil
41
33
  pid = Process.fork{
34
+ if block_given?
35
+ yield
36
+ else
37
+ load rakefile
38
+ end
39
+
40
+ raise TaskNotFound if Rake::Task[task].nil?
41
+
42
42
  Misc.pre_fork
43
43
  begin
44
44
  Misc.in_dir(dir) do
@@ -220,6 +220,19 @@ module Misc
220
220
  end
221
221
  end
222
222
 
223
+ def self.txt_digest_str(txt)
224
+ "digest: " << digest(txt)
225
+ end
226
+
227
+ def self.mtime_str(path)
228
+ path = path.find if Path === path
229
+ if File.exists? path
230
+ "mtime: " << File.mtime(path).to_s
231
+ else
232
+ "mtime: not present"
233
+ end
234
+ end
235
+
223
236
 
224
237
  def self.obj2str(obj)
225
238
  _obj = obj
@@ -239,14 +252,14 @@ module Misc
239
252
  if obj.directory?
240
253
  "directory: #{obj.glob("**/*")}"
241
254
  else
242
- "file md5: #{digest(obj.read)}"
255
+ "file: " << obj << "--" << mtime_str(obj)
243
256
  end
244
257
  else
245
258
  obj + " (file missing)"
246
259
  end
247
260
  when String
248
261
  if obj.length > HASH2MD5_MAX_STRING_LENGTH
249
- sample_large_obj(obj, HASH2MD5_MAX_STRING_LENGTH)
262
+ sample_large_obj(obj, HASH2MD5_MAX_STRING_LENGTH) << "--" << txt_digest_str(obj)
250
263
  else
251
264
  obj
252
265
  end
@@ -260,15 +273,15 @@ module Misc
260
273
  remove_long_items(obj)
261
274
  when File
262
275
  if obj.respond_to? :filename and obj.filename
263
- "<IO:" << obj.filename << ">"
276
+ "<IO:" << obj.filename << "--" << mtime_str(obj.filename) << ">"
264
277
  else
265
- "<IO:" << obj.path << ">"
278
+ "<IO:" << obj.path << "--" << mtime_str(obj.path) << ">"
266
279
  end
267
280
  when (defined? Step and Step)
268
281
  "<IO:" << obj.path << ">"
269
282
  else
270
283
  if obj.respond_to? :filename and obj.filename
271
- "<IO:" << obj.filename << ">"
284
+ "<IO:" << obj.filename << "--" << mtime_str(obj.filename) << ">"
272
285
  else
273
286
  obj_ins = obj.inspect
274
287
  if obj_ins =~ /:0x0/
@@ -412,6 +412,10 @@ class Step
412
412
  started? && ! (done? || error? || aborted?) && ! running?
413
413
  end
414
414
 
415
+ def missing?
416
+ status == :done && ! Open.exists?(path)
417
+ end
418
+
415
419
  def error?
416
420
  status == :error
417
421
  end
@@ -808,6 +812,7 @@ module Workflow
808
812
  _inputs = IndiferentHash.setup(_inputs.dup)
809
813
  dep = dependency.call jobname, _inputs, real_dependencies
810
814
  if Hash === dep
815
+ dep[:workflow] ||= wf || self
811
816
  task_info = (dep[:task] && dep[:workflow]) ? dep[:workflow].task_info(dep[:task]) : nil
812
817
  inputs = assign_dep_inputs({}, dep[:inputs], real_dependencies, task_info)
813
818
  dep = dep[:workflow].job(dep[:task], dep[:jobname], inputs)
@@ -124,7 +124,7 @@ class Step
124
124
  return
125
125
  end
126
126
 
127
- if dependency.aborted?
127
+ if dependency.aborted? or (dependency.error? and dependency.recoverable_error?) or dependency.missing?
128
128
  log_dependency_exec(dependency, "aborted (clean)")
129
129
  dependency.clean
130
130
  raise TryAgain
@@ -140,7 +140,7 @@ class Step
140
140
  :issued => (issue_time = Time.now),
141
141
  :name => name,
142
142
  :clean_name => clean_name,
143
- :workflow => @task.workflow.to_s,
143
+ :workflow => (@workflow || @task.workflow).to_s,
144
144
  :task_name => @task.name,
145
145
  :result_type => @task.result_type,
146
146
  :result_description => @task.result_description
@@ -5,7 +5,7 @@ require 'rbbt/util/semaphore'
5
5
  require 'rbbt/workflow/accessor'
6
6
 
7
7
  class Step
8
- attr_accessor :clean_name, :path, :task, :inputs, :dependencies, :bindings
8
+ attr_accessor :clean_name, :path, :task, :workflow, :inputs, :dependencies, :bindings
9
9
  attr_accessor :pid
10
10
  attr_accessor :exec
11
11
  attr_accessor :result, :mutex, :seen
@@ -50,7 +50,7 @@ class Step
50
50
  end
51
51
 
52
52
  def workflow
53
- info[:workflow]
53
+ @workflow || info[:workflow]
54
54
  end
55
55
 
56
56
  def load_inputs_from_info
data/lib/rbbt/workflow.rb CHANGED
@@ -307,8 +307,9 @@ module Workflow
307
307
 
308
308
  Workflow.resolve_locals(inputs)
309
309
 
310
- task_inputs = task_info(taskname)[:inputs]
311
- defaults = IndiferentHash.setup(task.input_defaults)
310
+ task_info = task_info(taskname)
311
+ task_inputs = task_info[:inputs]
312
+ defaults = IndiferentHash.setup(task_info[:input_defaults]).merge(task.input_defaults)
312
313
 
313
314
  missing_inputs = []
314
315
  task.required_inputs.each do |input|
@@ -346,6 +347,7 @@ module Workflow
346
347
  end
347
348
 
348
349
  job = get_job_step step_path, task, input_values, dependencies
350
+ job.workflow = self
349
351
  job.clean_name = jobname
350
352
  job
351
353
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.21.103
4
+ version: 5.21.104
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-09 00:00:00.000000000 Z
11
+ date: 2017-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -503,88 +503,88 @@ required_rubygems_version: !ruby/object:Gem::Requirement
503
503
  version: '0'
504
504
  requirements: []
505
505
  rubyforge_project:
506
- rubygems_version: 2.6.13
506
+ rubygems_version: 2.6.8
507
507
  signing_key:
508
508
  specification_version: 4
509
509
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
510
510
  test_files:
511
- - test/rbbt/test_entity.rb
512
- - test/rbbt/workflow/test_doc.rb
513
- - test/rbbt/workflow/test_step.rb
514
- - test/rbbt/workflow/step/test_dependencies.rb
515
- - test/rbbt/workflow/test_task.rb
516
- - test/rbbt/resource/test_path.rb
517
- - test/rbbt/util/test_colorize.rb
518
- - test/rbbt/util/misc/test_omics.rb
519
- - test/rbbt/util/misc/test_pipes.rb
520
- - test/rbbt/util/misc/test_lock.rb
521
- - test/rbbt/util/misc/test_multipart_payload.rb
522
- - test/rbbt/util/misc/test_bgzf.rb
523
- - test/rbbt/util/test_concurrency.rb
524
- - test/rbbt/util/test_cmd.rb
525
- - test/rbbt/util/R/test_eval.rb
526
- - test/rbbt/util/R/test_model.rb
527
- - test/rbbt/util/test_log.rb
528
- - test/rbbt/util/test_simpleDSL.rb
529
- - test/rbbt/util/log/test_progress.rb
530
- - test/rbbt/util/test_tmpfile.rb
511
+ - test/test_helper.rb
512
+ - test/rbbt/test_annotations.rb
513
+ - test/rbbt/association/test_database.rb
514
+ - test/rbbt/association/test_item.rb
515
+ - test/rbbt/association/test_index.rb
516
+ - test/rbbt/association/test_open.rb
517
+ - test/rbbt/association/test_util.rb
518
+ - test/rbbt/test_association.rb
519
+ - test/rbbt/knowledge_base/test_syndicate.rb
520
+ - test/rbbt/knowledge_base/test_enrichment.rb
521
+ - test/rbbt/knowledge_base/test_query.rb
522
+ - test/rbbt/knowledge_base/test_entity.rb
523
+ - test/rbbt/knowledge_base/test_registry.rb
524
+ - test/rbbt/knowledge_base/test_traverse.rb
531
525
  - test/rbbt/util/test_R.rb
532
- - test/rbbt/util/test_excel2tsv.rb
526
+ - test/rbbt/util/test_tmpfile.rb
527
+ - test/rbbt/util/test_filecache.rb
533
528
  - test/rbbt/util/test_misc.rb
534
- - test/rbbt/util/test_open.rb
535
- - test/rbbt/util/test_simpleopt.rb
529
+ - test/rbbt/util/test_excel2tsv.rb
530
+ - test/rbbt/util/log/test_progress.rb
531
+ - test/rbbt/util/misc/test_multipart_payload.rb
532
+ - test/rbbt/util/misc/test_pipes.rb
533
+ - test/rbbt/util/misc/test_bgzf.rb
534
+ - test/rbbt/util/misc/test_lock.rb
535
+ - test/rbbt/util/misc/test_omics.rb
536
+ - test/rbbt/util/test_semaphore.rb
537
+ - test/rbbt/util/simpleopt/test_get.rb
536
538
  - test/rbbt/util/simpleopt/test_parse.rb
537
539
  - test/rbbt/util/simpleopt/test_setup.rb
538
- - test/rbbt/util/simpleopt/test_get.rb
539
- - test/rbbt/util/test_filecache.rb
540
+ - test/rbbt/util/test_open.rb
540
541
  - test/rbbt/util/concurrency/test_processes.rb
541
542
  - test/rbbt/util/concurrency/test_threads.rb
542
543
  - test/rbbt/util/concurrency/processes/test_socket.rb
543
- - test/rbbt/util/test_semaphore.rb
544
+ - test/rbbt/util/test_log.rb
545
+ - test/rbbt/util/test_colorize.rb
546
+ - test/rbbt/util/test_cmd.rb
547
+ - test/rbbt/util/test_concurrency.rb
548
+ - test/rbbt/util/R/test_eval.rb
549
+ - test/rbbt/util/R/test_model.rb
550
+ - test/rbbt/util/test_simpleopt.rb
544
551
  - test/rbbt/util/test_chain_methods.rb
545
- - test/rbbt/test_resource.rb
546
- - test/rbbt/test_packed_index.rb
547
- - test/rbbt/tsv/test_change_id.rb
548
- - test/rbbt/tsv/test_attach.rb
549
- - test/rbbt/tsv/test_filter.rb
552
+ - test/rbbt/util/test_simpleDSL.rb
553
+ - test/rbbt/tsv/test_index.rb
550
554
  - test/rbbt/tsv/test_parser.rb
551
- - test/rbbt/tsv/test_accessor.rb
552
- - test/rbbt/tsv/test_matrix.rb
553
555
  - test/rbbt/tsv/test_field_index.rb
554
- - test/rbbt/tsv/test_util.rb
555
- - test/rbbt/tsv/test_index.rb
556
+ - test/rbbt/tsv/test_stream.rb
557
+ - test/rbbt/tsv/test_accessor.rb
558
+ - test/rbbt/tsv/test_change_id.rb
556
559
  - test/rbbt/tsv/test_parallel.rb
557
- - test/rbbt/tsv/test_manipulate.rb
558
- - test/rbbt/tsv/test_excel.rb
559
560
  - test/rbbt/tsv/parallel/test_through.rb
560
561
  - test/rbbt/tsv/parallel/test_traverse.rb
561
- - test/rbbt/tsv/test_stream.rb
562
- - test/rbbt/test_association.rb
563
- - test/rbbt/association/test_database.rb
564
- - test/rbbt/association/test_item.rb
565
- - test/rbbt/association/test_open.rb
566
- - test/rbbt/association/test_util.rb
567
- - test/rbbt/association/test_index.rb
568
- - test/rbbt/test_knowledge_base.rb
569
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
562
+ - test/rbbt/tsv/test_manipulate.rb
563
+ - test/rbbt/tsv/test_filter.rb
564
+ - test/rbbt/tsv/test_matrix.rb
565
+ - test/rbbt/tsv/test_util.rb
566
+ - test/rbbt/tsv/test_attach.rb
567
+ - test/rbbt/tsv/test_excel.rb
568
+ - test/rbbt/test_monitor.rb
569
+ - test/rbbt/test_workflow.rb
570
+ - test/rbbt/annotations/test_util.rb
571
+ - test/rbbt/test_packed_index.rb
572
+ - test/rbbt/workflow/test_task.rb
573
+ - test/rbbt/workflow/test_doc.rb
574
+ - test/rbbt/workflow/test_step.rb
575
+ - test/rbbt/workflow/step/test_dependencies.rb
576
+ - test/rbbt/entity/test_identifiers.rb
577
+ - test/rbbt/test_entity.rb
578
+ - test/rbbt/test_resource.rb
579
+ - test/rbbt/test_persist.rb
580
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
570
581
  - test/rbbt/persist/tsv/test_cdb.rb
571
- - test/rbbt/persist/tsv/test_lmdb.rb
572
- - test/rbbt/persist/tsv/test_sharder.rb
573
582
  - test/rbbt/persist/tsv/test_leveldb.rb
574
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
583
+ - test/rbbt/persist/tsv/test_kyotocabinet.rb
584
+ - test/rbbt/persist/tsv/test_sharder.rb
585
+ - test/rbbt/persist/tsv/test_lmdb.rb
575
586
  - test/rbbt/persist/test_tsv.rb
576
587
  - test/rbbt/test_tsv.rb
577
- - test/rbbt/test_annotations.rb
578
588
  - test/rbbt/test_fix_width_table.rb
579
- - test/rbbt/test_workflow.rb
580
- - test/rbbt/entity/test_identifiers.rb
581
- - test/rbbt/annotations/test_util.rb
582
- - test/rbbt/test_monitor.rb
583
- - test/rbbt/test_persist.rb
584
- - test/rbbt/knowledge_base/test_entity.rb
585
- - test/rbbt/knowledge_base/test_registry.rb
586
- - test/rbbt/knowledge_base/test_syndicate.rb
587
- - test/rbbt/knowledge_base/test_query.rb
588
- - test/rbbt/knowledge_base/test_enrichment.rb
589
- - test/rbbt/knowledge_base/test_traverse.rb
590
- - test/test_helper.rb
589
+ - test/rbbt/test_knowledge_base.rb
590
+ - test/rbbt/resource/test_path.rb