Check and fix maya virus.
Project description
maya-umbrella
This tool is designed to provide a robust solution for identifying and resolving any potential viruses within Autodesk Maya. It ensures a secure and seamless user experience by proactively scanning for threats and effectively neutralizing them.
It can be provided as an API for seamless integration into your existing pipeline.
安装
maya_umbrella是以标准pipy包去发布的,所以我们可以通过pip install去安装
your/maya-root/mayapy -m pip install maya-umbrella
更新版本
your/maya-root/mayapy -m pip install maya-umbrella --upgrade
卸载
your/maya-root/mayapy -m pip uninstall maya-umbrella
开发环境设置
Set up the development environment using a virtual environment, and it is recommended to use Python 3.8 or higher versions.
通过虚拟环境去设置开发环境, 推荐python-3.8以上的版本
pip install nox poetry
开发调试
nox -s maya-2020
在maya中测试
通过nox -s maya-xxx
, 启动maya.
nox会动态根据你本地安装得maya去注册nox session, 比如你本地安装了maya-2020
,那么通过nox -s maya-2018
启动maya后在脚本编辑器中执行下面得代码,就会动态的从<repo>/tests/virus/
里面去open ma文件去进行测试.
import manual_test_in_maya
manual_test_in_maya.start()
增加新的疫苗
在<repo>/maya_umbrella/vaccines/
新建一个py, 因为有很多病毒没有具体的名字代号,我们统一以vaccine<id>.py
继承from maya_umbrella.vaccine import AbstractVaccine
并且class名字叫Vaccine
即可, 然后去写具体的收集病毒逻辑
代码检查
我们可以利用封装好的nox
命令去执行进行代码检查
nox -s ruff_check
生成安装包
执行下面的命令可以在/.zip下面创建zip,参数 --version
当前工具的版本号
nox -s make-zip -- --version 0.5.0
环境变量
我们可以通过下列环境变量去修改maya_umbrella的一些设置,方便有pipeline的公司可以更好的集成
修改maya umbrella的日志保存目录,默认是windows temp目录
MAYA_UMBRELLA_LOG_ROOT
修改maya umbrella的日志文件名称, 默认是maya_umbrella
MAYA_UMBRELLA_LOG_NAME
设置日志级别,默认是info, 可以是debug可以看到更多的日志信息
MAYA_UMBRELLA_LOG_LEVEL
修改杀毒后文件的备份文件夹名称, 默认是_virus
比如:
你文件路径是 c:/your/path/file.ma
那么备份文件路径是 c:/your/path/_virus/file.ma
MAYA_UMBRELLA_BACKUP_FOLDER_NAME
默认的显示语言,包含日志打印输出等,默认是根据你当前maya的界面语言来设置的,当然我们也可以通过下面的环境变量去设置
MAYA_UMBRELLA_LANG
忽略保存到备份文件夹,请注意,如果你不清楚这个会导致的后果请不要轻易修改,默认批量杀毒后会把源文件自动备份到当前文件的备份文件夹.
MAYA_UMBRELLA_IGNORE_BACKUP
如果忽略请设置为
SET MAYA_UMBRELLA_IGNORE_BACKUP=true
API
获取当前场景没有被修复的病毒文件
from maya_umbrella import MayaVirusDefender
api = MayaVirusDefender()
print(api.get_unfixed_references())
批量修复文件, 通过正则表达式
from maya_umbrella import MayaVirusScanner
api = MayaVirusScanner()
print(api.scan_files_from_pattern("your/path/*.m[ab]"))
案例
如果你想要快速通过maya standalone去批量清理maya文件,可以下载
或者git clone
当前main
分支的工程,
根据上面指引设置好开发环境
通过nox
命令去启动maya standalone环境,maya版本根据你当前本地安装的maya为准,比如你本地安装了2018
,
那么就是 nox -s maya-2018-s
下面的语法是启动一个maya-2020的环境去动态从c:/test
文件夹下去查杀病毒
nox -s maya-2020-s -- c:/test/*.m[ab]
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Hal 💻 🚇 ⚠️ |
hotwinter0 ⚠️ 💻 |
lingyunfx ⚠️ |
yjjjj ⚠️ 💻 |
Unclechen ⚠️ |
andyvfx 💻 |
cundesi 💻 |
Wenfeng Zhang ⚠️ 💻 |
This project follows the all-contributors specification. Contributions of any kind are welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for maya_umbrella-0.7.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 633be10eeaee6415fa3c845707b70e3d13721482795ba01a109aa0d14d2653e8 |
|
MD5 | a294391801878c2c2fdcaa31f3a14cf6 |
|
BLAKE2b-256 | cac4a25daea76f7dbe2abc498bd958dc20b41bd1c1f8abdb670d1b1cfdfa0bc8 |