tracksperanto 3.4.1 → 3.5.0
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.
- data/Gemfile +5 -10
- data/History.txt +4 -0
- data/lib/pipeline/base.rb +3 -0
- data/lib/tracksperanto.rb +3 -1
- data/lib/tracksperanto/blacklist.rb +25 -0
- data/test/test_blacklist.rb +36 -0
- data/test/test_pipeline.rb +9 -0
- data/tracksperanto.gemspec +10 -8
- metadata +24 -23
data/Gemfile
CHANGED
@@ -15,20 +15,15 @@ gem "update_hints", "~> 1.0"
|
|
15
15
|
group :development do
|
16
16
|
gem "approximately"
|
17
17
|
|
18
|
-
if RUBY_VERSION > "1.8" # Jeweler pulls Nokogiri which does not want to build on Travis in 1.8
|
19
|
-
gem "jeweler", '~> 1.8.8'
|
20
|
-
else
|
21
|
-
gem "jeweler", '~> 1.8.4'
|
22
|
-
end
|
23
|
-
|
24
18
|
gem "rake"
|
25
19
|
gem "linebyline"
|
26
20
|
|
27
|
-
if RUBY_VERSION
|
28
|
-
|
29
|
-
gem "flexmock", "~>
|
21
|
+
if RUBY_VERSION < "1.9"
|
22
|
+
gem "jeweler", '1.8.4' # Last one without the stupid nokogiri dependency
|
23
|
+
gem "flexmock", "~> 0.8", :require => %w( flexmock flexmock/test_unit ) # Max. supported on 1.8
|
30
24
|
else
|
31
|
-
gem "
|
25
|
+
gem "jeweler", '~> 1.8'
|
26
|
+
gem "flexmock", "~> 1.3.2", :require => %w( flexmock flexmock/test_unit )
|
32
27
|
end
|
33
28
|
|
34
29
|
gem "cli_test", "~>1.0"
|
data/History.txt
CHANGED
data/lib/pipeline/base.rb
CHANGED
@@ -93,6 +93,9 @@ module Tracksperanto::Pipeline
|
|
93
93
|
# Returns the number of trackers and the number of keyframes processed during the run
|
94
94
|
def run(from_input_file_path, passed_options = {})
|
95
95
|
|
96
|
+
# Prevent formats that we do not support
|
97
|
+
Tracksperanto::Blacklist.raise_if_format_unsupported(from_input_file_path)
|
98
|
+
|
96
99
|
# Check for empty files
|
97
100
|
raise EmptySourceFileError if File.stat(from_input_file_path).size.zero?
|
98
101
|
|
data/lib/tracksperanto.rb
CHANGED
@@ -5,13 +5,14 @@ require 'tempfile'
|
|
5
5
|
|
6
6
|
module Tracksperanto
|
7
7
|
PATH = File.expand_path(File.dirname(__FILE__))
|
8
|
-
VERSION = '3.
|
8
|
+
VERSION = '3.5.0'
|
9
9
|
|
10
10
|
module Import; end
|
11
11
|
module Export; end
|
12
12
|
module Tool; end
|
13
13
|
module Pipeline; end
|
14
14
|
|
15
|
+
class UnsupportedFormatError < NameError; end
|
15
16
|
class UnknownExporterError < NameError; end
|
16
17
|
class UnknownImporterError < NameError; end
|
17
18
|
class UnknownToolError < NameError; end
|
@@ -108,6 +109,7 @@ end
|
|
108
109
|
parameters
|
109
110
|
yield_non_empty
|
110
111
|
pf_coords
|
112
|
+
blacklist
|
111
113
|
).each do | submodule |
|
112
114
|
require File.join(Tracksperanto::PATH, "tracksperanto", submodule)
|
113
115
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Tracksperanto::Blacklist
|
3
|
+
|
4
|
+
# Prevent totally unsupported formats from being used
|
5
|
+
def self.raise_if_format_unsupported(judging_from_file_path)
|
6
|
+
extension = File.extname(judging_from_file_path).downcase
|
7
|
+
formats_and_extensions.each_pair do | matcher, message |
|
8
|
+
raise Tracksperanto::UnsupportedFormatError, message if matcher.is_a?(String) && extension == matcher
|
9
|
+
raise Tracksperanto::UnsupportedFormatError, message if matcher.is_a?(Regexp) && extension =~ matcher
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.formats_and_extensions
|
14
|
+
{
|
15
|
+
'.ma' => 'We cannot import Maya ASCII files directly. For processing Maya Live tracks export them from Maya.',
|
16
|
+
'.mb' => 'We cannot import Maya ASCII files directly. For processing Maya Live tracks export them from Maya.',
|
17
|
+
/\.(mov|avi|xvid|mp4)$/ => 'Tracksperanto is not a tracking application, it converts tracks. We do not support movie file formats.',
|
18
|
+
/\.(r3d)$/ => 'Tracksperanto is not a tracking application, it converts tracks. We do not support RAW file formats.',
|
19
|
+
/\.(dpx|tif(f?)|jp(e?)g|png|gif|tga)$/ => 'Tracksperanto is not a tracking application, it converts tracks. We do not support image file formats.',
|
20
|
+
'.sni' => 'We cannot read binary SynthEyes scene files. Export your tracks as one of the supported formats.',
|
21
|
+
'.pfb' => 'We cannot directly open PFTrack projects, export .2dt files instead',
|
22
|
+
'.mmf' => 'We cannot directly open MatchMover projects, please export your tracks as .rz2 instead',
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require File.expand_path(File.dirname(__FILE__)) + '/helper'
|
3
|
+
|
4
|
+
class TestBlacklist < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_non_blacklisted_formats
|
7
|
+
%( file.txt file.2dt file.stabilizer ).each do | filename |
|
8
|
+
Tracksperanto::Blacklist.raise_if_format_unsupported(filename)
|
9
|
+
end
|
10
|
+
assert true, 'No exceptions should have been raised'
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_blacklisted_formats
|
14
|
+
%w(
|
15
|
+
file.jpg
|
16
|
+
file.tif
|
17
|
+
file.tiff
|
18
|
+
file.mov
|
19
|
+
file.r3d
|
20
|
+
file.dpx
|
21
|
+
file.jpg
|
22
|
+
file.gif
|
23
|
+
file.PNG
|
24
|
+
file.sni
|
25
|
+
file.ma
|
26
|
+
file.mb
|
27
|
+
file.pfb
|
28
|
+
file.mmf
|
29
|
+
).each do | filename |
|
30
|
+
error = assert_raise(Tracksperanto::UnsupportedFormatError, "Should fail for #{filename.inspect}") do
|
31
|
+
Tracksperanto::Blacklist.raise_if_format_unsupported(filename)
|
32
|
+
end
|
33
|
+
assert_operator error.message.length, :>, 5, 'Should contain a descriptive error message'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/test/test_pipeline.rb
CHANGED
@@ -45,6 +45,15 @@ class TestPipeline < Test::Unit::TestCase
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
+
def test_run_for_unsupported_format_raises_exception
|
49
|
+
pipeline = Tracksperanto::Pipeline::Base.new
|
50
|
+
%w( file.MOV file.mb vfx/shots/file.SNI ).each do | path |
|
51
|
+
assert_raise(Tracksperanto::UnsupportedFormatError) do
|
52
|
+
pipeline.run(path)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
48
57
|
def test_run_with_autodetected_importer_and_size_with_progress_block
|
49
58
|
in_temp_dir do
|
50
59
|
create_stabilizer_file
|
data/tracksperanto.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tracksperanto}
|
8
|
-
s.version = "3.
|
8
|
+
s.version = "3.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Julik Tarkhanov"]
|
12
|
-
s.date = %q{2014-
|
12
|
+
s.date = %q{2014-06-26}
|
13
13
|
s.default_executable = %q{tracksperanto}
|
14
14
|
s.description = %q{Converts 2D track exports between different apps like Flame, MatchMover, PFTrack...}
|
15
15
|
s.email = %q{me@julik.nl}
|
@@ -83,6 +83,7 @@ Gem::Specification.new do |s|
|
|
83
83
|
"lib/tools/slipper.rb",
|
84
84
|
"lib/tools/start_trim.rb",
|
85
85
|
"lib/tracksperanto.rb",
|
86
|
+
"lib/tracksperanto/blacklist.rb",
|
86
87
|
"lib/tracksperanto/block_init.rb",
|
87
88
|
"lib/tracksperanto/buffer_io.rb",
|
88
89
|
"lib/tracksperanto/casts.rb",
|
@@ -172,6 +173,7 @@ Gem::Specification.new do |s|
|
|
172
173
|
"test/subpixel/subpixel_grid.sni",
|
173
174
|
"test/subpixel/subpixel_grid.tif",
|
174
175
|
"test/subpixel/sy_subpix_2dpaths.txt",
|
176
|
+
"test/test_blacklist.rb",
|
175
177
|
"test/test_block_init.rb",
|
176
178
|
"test/test_buffer_io.rb",
|
177
179
|
"test/test_casts.rb",
|
@@ -226,10 +228,10 @@ Gem::Specification.new do |s|
|
|
226
228
|
s.add_runtime_dependency(%q<progressbar>, ["= 0.10.0"])
|
227
229
|
s.add_runtime_dependency(%q<update_hints>, ["~> 1.0"])
|
228
230
|
s.add_development_dependency(%q<approximately>, [">= 0"])
|
229
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.8"])
|
230
231
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
231
232
|
s.add_development_dependency(%q<linebyline>, [">= 0"])
|
232
|
-
s.add_development_dependency(%q<
|
233
|
+
s.add_development_dependency(%q<jeweler>, ["= 1.8.4"])
|
234
|
+
s.add_development_dependency(%q<flexmock>, ["~> 0.8"])
|
233
235
|
s.add_development_dependency(%q<cli_test>, ["~> 1.0"])
|
234
236
|
s.add_development_dependency(%q<rake-hooks>, ["~> 1.2.3"])
|
235
237
|
else
|
@@ -242,10 +244,10 @@ Gem::Specification.new do |s|
|
|
242
244
|
s.add_dependency(%q<progressbar>, ["= 0.10.0"])
|
243
245
|
s.add_dependency(%q<update_hints>, ["~> 1.0"])
|
244
246
|
s.add_dependency(%q<approximately>, [">= 0"])
|
245
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
|
246
247
|
s.add_dependency(%q<rake>, [">= 0"])
|
247
248
|
s.add_dependency(%q<linebyline>, [">= 0"])
|
248
|
-
s.add_dependency(%q<
|
249
|
+
s.add_dependency(%q<jeweler>, ["= 1.8.4"])
|
250
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
249
251
|
s.add_dependency(%q<cli_test>, ["~> 1.0"])
|
250
252
|
s.add_dependency(%q<rake-hooks>, ["~> 1.2.3"])
|
251
253
|
end
|
@@ -259,10 +261,10 @@ Gem::Specification.new do |s|
|
|
259
261
|
s.add_dependency(%q<progressbar>, ["= 0.10.0"])
|
260
262
|
s.add_dependency(%q<update_hints>, ["~> 1.0"])
|
261
263
|
s.add_dependency(%q<approximately>, [">= 0"])
|
262
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
|
263
264
|
s.add_dependency(%q<rake>, [">= 0"])
|
264
265
|
s.add_dependency(%q<linebyline>, [">= 0"])
|
265
|
-
s.add_dependency(%q<
|
266
|
+
s.add_dependency(%q<jeweler>, ["= 1.8.4"])
|
267
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
266
268
|
s.add_dependency(%q<cli_test>, ["~> 1.0"])
|
267
269
|
s.add_dependency(%q<rake-hooks>, ["~> 1.2.3"])
|
268
270
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracksperanto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 3.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 3.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Julik Tarkhanov
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2014-
|
18
|
+
date: 2014-06-26 00:00:00 +02:00
|
19
19
|
default_executable: tracksperanto
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -156,16 +156,14 @@ dependencies:
|
|
156
156
|
requirement: &id010 !ruby/object:Gem::Requirement
|
157
157
|
none: false
|
158
158
|
requirements:
|
159
|
-
- -
|
159
|
+
- - ">="
|
160
160
|
- !ruby/object:Gem::Version
|
161
|
-
hash:
|
161
|
+
hash: 3
|
162
162
|
segments:
|
163
|
-
-
|
164
|
-
|
165
|
-
- 8
|
166
|
-
version: 1.8.8
|
163
|
+
- 0
|
164
|
+
version: "0"
|
167
165
|
type: :development
|
168
|
-
name:
|
166
|
+
name: rake
|
169
167
|
version_requirements: *id010
|
170
168
|
prerelease: false
|
171
169
|
- !ruby/object:Gem::Dependency
|
@@ -179,21 +177,23 @@ dependencies:
|
|
179
177
|
- 0
|
180
178
|
version: "0"
|
181
179
|
type: :development
|
182
|
-
name:
|
180
|
+
name: linebyline
|
183
181
|
version_requirements: *id011
|
184
182
|
prerelease: false
|
185
183
|
- !ruby/object:Gem::Dependency
|
186
184
|
requirement: &id012 !ruby/object:Gem::Requirement
|
187
185
|
none: false
|
188
186
|
requirements:
|
189
|
-
- - "
|
187
|
+
- - "="
|
190
188
|
- !ruby/object:Gem::Version
|
191
|
-
hash:
|
189
|
+
hash: 63
|
192
190
|
segments:
|
193
|
-
-
|
194
|
-
|
191
|
+
- 1
|
192
|
+
- 8
|
193
|
+
- 4
|
194
|
+
version: 1.8.4
|
195
195
|
type: :development
|
196
|
-
name:
|
196
|
+
name: jeweler
|
197
197
|
version_requirements: *id012
|
198
198
|
prerelease: false
|
199
199
|
- !ruby/object:Gem::Dependency
|
@@ -202,12 +202,11 @@ dependencies:
|
|
202
202
|
requirements:
|
203
203
|
- - ~>
|
204
204
|
- !ruby/object:Gem::Version
|
205
|
-
hash:
|
205
|
+
hash: 27
|
206
206
|
segments:
|
207
|
-
-
|
208
|
-
-
|
209
|
-
|
210
|
-
version: 1.3.2
|
207
|
+
- 0
|
208
|
+
- 8
|
209
|
+
version: "0.8"
|
211
210
|
type: :development
|
212
211
|
name: flexmock
|
213
212
|
version_requirements: *id013
|
@@ -317,6 +316,7 @@ files:
|
|
317
316
|
- lib/tools/slipper.rb
|
318
317
|
- lib/tools/start_trim.rb
|
319
318
|
- lib/tracksperanto.rb
|
319
|
+
- lib/tracksperanto/blacklist.rb
|
320
320
|
- lib/tracksperanto/block_init.rb
|
321
321
|
- lib/tracksperanto/buffer_io.rb
|
322
322
|
- lib/tracksperanto/casts.rb
|
@@ -406,6 +406,7 @@ files:
|
|
406
406
|
- test/subpixel/subpixel_grid.sni
|
407
407
|
- test/subpixel/subpixel_grid.tif
|
408
408
|
- test/subpixel/sy_subpix_2dpaths.txt
|
409
|
+
- test/test_blacklist.rb
|
409
410
|
- test/test_block_init.rb
|
410
411
|
- test/test_buffer_io.rb
|
411
412
|
- test/test_casts.rb
|