Formats#
Collection of submodules that implement specific file format decoder/encoder.
This module offers granular control for experienced users.
Refer to
scfile.core for details on available decoder/encoder methods.Base Components:
FileDecoder- read and parse files into structured data.FileEncoder- convert structured data into file formats.FileContent- intermediate data representation.
Tip
Always use decoder/encoder in context manager (with) for resource safety.
Usage Examples#
Basic Conversion#
from scfile import formats
# Decode MCSB model
with formats.mcsb.McsbDecoder("model.mcsb") as mcsb:
data = mcsb.decode() # Get parsed data
# Encode OBJ model
with formats.obj.ObjEncoder(data=data) as obj:
obj.encode() # Write data to buffer
obj.save("model.obj") # Save to file and close encoder
Get encoded bytes instead of saving#
with formats.obj.ObjEncoder(data=data) as obj:
# You can use encoder methods right on encode() (chaining)
output: bytes = obj.encode().getvalue() # Returns OBJ bytes
Use
convert_to() method#with formats.mcsb.McsbDecoder("model.mcsb") as mcsb:
# No need to call mcsb.decode()
# convert_to() creates an encoder and pass decoded data to it
mcsb.convert_to(formats.obj.ObjEncoder).save("model.obj") # Save and close
# Or use precreated sugar methods
mcsb.to_obj().save("model.obj") # Save and close