Added a code example to the README.md
This commit is contained in:
parent
113b0c9bb8
commit
a07c25597f
31
README.md
31
README.md
@ -49,3 +49,34 @@ The code statically type-checked with [mypy](http://mypy-lang.org/).
|
|||||||
|
|
||||||
Mypy likes to see the return type of `__init__` methods explicitly declared as `None`. Until issue
|
Mypy likes to see the return type of `__init__` methods explicitly declared as `None`. Until issue
|
||||||
[#604](https://github.com/python/mypy/issues/604) is resolved, we just do this in our code too.
|
[#604](https://github.com/python/mypy/issues/604) is resolved, we just do this in our code too.
|
||||||
|
|
||||||
|
|
||||||
|
## Code Example
|
||||||
|
|
||||||
|
BAT can be used as a Python library to inspect the contents of blend files, without having to
|
||||||
|
open Blender itself. Here is an example showing how to determine the render engine used:
|
||||||
|
|
||||||
|
#!/usr/bin/env python3.7
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from blender_asset_tracer import blendfile
|
||||||
|
from blender_asset_tracer.blendfile import iterators
|
||||||
|
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print(f'Usage: {sys.argv[0]} somefile.blend', file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
bf_path = Path(sys.argv[1])
|
||||||
|
bf = blendfile.open_cached(bf_path)
|
||||||
|
|
||||||
|
window_managers = bf.find_blocks_from_code(b'WM')
|
||||||
|
assert window_managers, 'The Blend file has no window manager'
|
||||||
|
window_manager = window_managers[0]
|
||||||
|
windows = window_manager.get_pointer((b'windows', b'first'))
|
||||||
|
|
||||||
|
for window in iterators.listbase(windows):
|
||||||
|
scene = window.get_pointer(b'scene')
|
||||||
|
break
|
||||||
|
|
||||||
|
print(scene[b'r', b'engine'].decode('utf8'))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user