Next generation of Blender Asset Management python scripts.
Also see the BAT🦇 project.
|c2e3aea3f6fd||Sybren A. Stüvel (sybren)|
Bumped version to 1.1.1
|acd5a18bed9d||Sybren A. Stüvel (sybren)|
Import urllib3 from requests.packages.urllib3
|24eaacff8462||Sybren A. Stüvel (sybren)|
Declare requests as dependency
|5d376a80541a||Sybren A. Stüvel (sybren)|
Allow testing with Tox
|9fdfbc9bb309||Sybren A. Stüvel (sybren)|
Bumped version to 1.1
|be9798cb1c81||Sybren A. Stüvel (sybren)|
Marked version 1.1 as released
|4f05b2d48100||Sybren A. Stüvel (sybren)|
Updated URL to Shaman
|b418aaf3c451||Sybren A. Stüvel (sybren)|
Bumped version to 1.1.dev2
|4964745deeb5||Sybren A. Stüvel (sybren)|
Support Alembic files from linked library
|c718fb3a41d6||Sybren A. Stüvel (sybren)|
Support the Mesh Sequence Cache modifier (a.k.a. Alembic files)
|6ac117cd37ad||Sybren A. Stüvel (sybren)|
|e9fcdb0191d3||Sybren A. Stüvel (sybren)|
Use exponential backoff when retrying HTTP connections
|44ee553c0af2||Sybren A. Stüvel (sybren)|
Shaman: added some timeouts to HTTP requests
|c2a8ff18f800||Sybren A. Stüvel (sybren)|
Bumped version to 1.1-dev1
|10abeaea497e||Sybren A. Stüvel (sybren)|
Fix ValueError when not requesting a checkout
Script to manage assets with Blender.
Development is driven by choices explained in T54125.
BAT Pack supports uploading to S3-compatible storage. This requires a credentials file in ~/.aws/credentials. Replace the all-capital words to suit your situation.
[ENDPOINT] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET
You can then send a BAT Pack to the storage using a target s3:/ENDPOINT/bucketname/path-in-bucket, for example:
bat pack my_blendfile.blend s3:/storage.service.cloud/jobs/awesome_work
This will upload the blend file and its dependencies to awesome_work/my_blendfile.blend in the jobs bucket.
There are two object types used to represent file paths. Those are strictly separated.
When it is necessary to interpret a bpathlib.BlendPath as a real path instead of a sequence of bytes, BAT first attempts to decode it as UTF-8. If that fails, the local filesystem encoding is used. The latter is also no guarantee of correctness, though.
The code statically type-checked with mypy.
Mypy likes to see the return type of __init__ methods explicitly declared as None. Until issue #604 is resolved, we just do this in our code too.