Sybren A. Stüvel
6b51183095
Packer: store the output path of the blend file in the target directory
...
This allows the Flamenco Add-on to get the final path of the blend file.
2018-03-14 16:06:21 +01:00
Sybren A. Stüvel
8340df129d
BAT Pack can now exclude files based on glob patterns
2018-03-14 16:06:21 +01:00
Sybren A. Stüvel
0e9de7753c
Allow Packer to be used as context manager + test for rewriting img seqs
2018-03-14 12:50:27 +01:00
Sybren A. Stüvel
d2ac0fa919
Added test for Packer.close()
2018-03-14 12:30:18 +01:00
Sybren A. Stüvel
c9664ca045
Report missing files in Packer.strategise()
2018-03-14 12:24:26 +01:00
Sybren A. Stüvel
ef5c46eba5
Some mypy & test tweaks
2018-03-09 16:29:30 +01:00
Sybren A. Stüvel
4c3d288be9
Add mypy invocation to unit test
...
This way it's easy to run both the tests and mypy.
2018-03-09 14:24:06 +01:00
Sybren A. Stüvel
824ca4bcb7
Rewrite blend files in temporary directory, before copying
...
This allows us to later support uploading to a non-local filesystem, such
as Amazon S3 cloud storage, after path rewriting is complete.
2018-03-09 12:33:15 +01:00
Sybren A. Stüvel
384f1d5107
Compare float with assertAlmostEqual
2018-03-09 11:20:38 +01:00
Sybren A. Stüvel
632d01334c
Renamed module tracer → trace
...
This is consistent with the other module names.
2018-03-09 10:02:44 +01:00
Sybren A. Stüvel
e8f41f2735
Store rewrites in AssetAction
...
This is in preparation of interchanging copying and rewriting.
2018-03-09 10:00:46 +01:00
Sybren A. Stüvel
0dab872289
Truncate UTF-8 in a way that produces valid UTF-8.
2018-03-08 14:47:41 +01:00
Sybren A. Stüvel
e9ee5b69ec
Disallow BlendPath(str)
2018-03-08 14:18:07 +01:00
Sybren A. Stüvel
88f23a4097
Also test bat pack --noop
2018-03-08 13:02:18 +01:00
Sybren A. Stüvel
0df94c74cd
Also test Packer.execute()
2018-03-08 12:41:19 +01:00
Sybren A. Stüvel
b5418e1f5f
Removed Packer._packed_paths
...
The info in that dict is also available in Packer._actions[...].new_path
2018-03-08 11:15:38 +01:00
Sybren A. Stüvel
01a9392fc1
Added unit test for Packer.strategise()
2018-03-08 11:00:02 +01:00
Sybren A. Stüvel
ccdccd69cf
Speed up rewriting paths by reusing cached DNA structs & blocks
2018-03-08 10:59:45 +01:00
Sybren A. Stüvel
e2123f8090
Path rewriting for sequences seems to be working too.
2018-03-06 16:41:16 +01:00
Sybren A. Stüvel
71dd5bc11b
Path rewriting when packing.
...
Doesn't work with sequences, nor with split dirname/basename fields.
2018-03-06 16:06:36 +01:00
Sybren A. Stüvel
92f91b42cf
Added test case for Windows-style paths
2018-03-06 11:45:35 +01:00
Sybren A. Stüvel
8009ff1e47
Added block expansion
...
The expansion process follows pointers and library links to construct
the full set of actually-used data blocks. This set consists of all data
blocks in the initial blend file, and all *actually linked-to* data
blocks in linked blend files.
I've also removed non-recursive dependency listing.
2018-03-02 15:44:07 +01:00
Sybren A. Stüvel
7167d51730
Added BlendFileBlock.id_name property
...
Evaluated only once, so safe to call multiple times without producing
excessive disk I/O. Returns None instead of raising KeyError when there is
no (b'id', b'name') field.
2018-03-02 11:26:02 +01:00
Sybren A. Stüvel
f46e761f09
Removed base_index parameter in favour of explicit array handling
...
The `base_index` parameter is confusing and only works in a limited number
of cases. Having explicit functions to deal with those cases is preferred.
2018-03-01 12:50:22 +01:00
Sybren A. Stüvel
55302004ee
Test BlockUsage.files()
2018-02-28 16:51:27 +01:00
Sybren A. Stüvel
ca964181fe
Beginning of CLI interface + protection against infinite recursion.
2018-02-28 16:47:13 +01:00
Sybren A. Stüvel
8ae400acbe
Support particle simulation point cache data
...
Also see https://developer.blender.org/T53562
2018-02-28 14:11:48 +01:00
Sybren A. Stüvel
86af05e823
Added recursion into library blend files.
2018-02-28 12:42:27 +01:00
Sybren A. Stüvel
7541922b74
Also report library blocks.
...
Those are needed for recursive tracing of dependencies.
2018-02-28 11:55:10 +01:00
Sybren A. Stüvel
65b690e998
Added block walker implementations + tests
2018-02-27 17:30:28 +01:00
Sybren A. Stüvel
6b9c0a3f95
Support slash notation for BlendPath
...
This mimicks the slash notation of pathlib.Path
2018-02-27 17:29:44 +01:00
Sybren A. Stüvel
15cd74cda4
Start of dependency tracer work.
2018-02-26 18:16:15 +01:00
Sybren A. Stüvel
59c0b6df4c
Allow block.get() to return the dna.Field
...
This is needed by the upcoming dependency tracer.
2018-02-26 18:15:14 +01:00
Sybren A. Stüvel
a56e985cdc
Unify behaviour of block[path] and block.get(path)
2018-02-26 18:14:23 +01:00
Sybren A. Stüvel
bce5f4b670
Ported get_file_offset() and renamed to abs_offset()
2018-02-23 15:53:26 +01:00
Sybren A. Stüvel
55075c09b6
Ported get_data_hash() and renamed to hash()
2018-02-23 15:42:48 +01:00
Sybren A. Stüvel
db14cc5074
Test segfault
2018-02-23 14:46:47 +01:00
Sybren A. Stüvel
49d0f41b40
Test using BlendFile as context
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
9750a91571
Fixed file leak when opening corrupted file.
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
eb8281ea82
Fix leaking file object when loading non-blend file
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
8e0b135eb3
Fixed recompressing after modification
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
67751d9a3e
Fixed loading compressed files
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
b42a090f32
Support for modifying string/bytes fields.
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
934a8e210e
Clarified type refinement, simplified API, custom exception for get_pointer
...
Type refinement is now only done with BlendFileBlock.refine_type(), and
no longer with sdna_index_refine parameters to various functions. This
simplifies the API at the expense of having to call two simple functions
instead of one more complex one.
2018-02-23 14:26:57 +01:00
Sybren A. Stüvel
8d32ab513f
Recursively add offsets of Struct.field_from_path()
2018-02-23 12:24:50 +01:00
Sybren A. Stüvel
63c7e4fcef
Ported iteration over properties
2018-02-22 17:44:50 +01:00
Sybren A. Stüvel
7165d121bd
Ported BlendFileBlock.get_recursive_iter()
...
Also simplified get_file_offset(), because its optional parameters are
never used anyway.
2018-02-22 16:45:16 +01:00
Sybren A. Stüvel
87300df6a3
Fixed issue reading array items and renamed some stuff
2018-02-22 16:14:10 +01:00
Sybren A. Stüvel
9c7791f762
Implemented/fixed/ported loading of blend files and getting blocks & props
2018-02-22 15:52:10 +01:00
Sybren A. Stüvel
e66b1edaf4
Implemented + tested dna.Struct.field_get
2018-02-22 14:50:24 +01:00