rbbt-util 5.21.103 → 5.21.104

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 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