forked from LumaPictures/pymel
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
185 lines (148 loc) · 9.72 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
Version 1.0.0
NON-BACKWARD COMPATIBLE CHANGES
pymel no longer has 'everything' in namespace - use pymel.all for this
pymel.core.nodetypes now moved to it's own namespace
pymel.mayahook.Version functionality moved to pymel.versions module
to compare versions, instead of Version class, use, for example, pymel.versions.current() >= pymel.versions.v2008
pymel.mayahook.mayautils.getMayaVersion()/getMayaVersion(extension=True) replaced with pymel.versions.installName()
pymel.mayahook.mayautils.getMayaVersion(extension=True) replaced with pymel.versions.shortName()
removed 0_7_compatibility_mode
removed deprecated methods:
Attribute: __setattr__, size
Camera: getFov, setFov, getFilmAspect
Mesh: vertexCount, edgeCount, faceCount, uvcoordCount, triangleCount
SelectSet: issubset, issuperset, update
Mesh components: toEdges, toFaces, toVertices
removed deprecated and inapplicable string methods from ProxiUnicode, base of all PyNodes:
__contains__, __len__, __mod__, __rmod__, __mul__, __rmod__, __rmul__, expandtabs, translate, decode, encode, splitlines, capitalize, swapcase, title, isalnum, isalpha, isdigit, isspace, istitle, zfill
removed Smart Layout Creator in favor of 'with' statement support
DagNode.getParent() no longer accepts keyword arguments
Renamed UI base class to PyUI
FEATURES
added support for creation of class-based python Attribute Editor templates, using ui.AETemplate.
added support for attribute aliases:
DependNode.attr() now casts aliases to Attributes properly (PyNode already does)
added DependNode.listAliases()
added 'alias' keyword to DependNode.listAttr()
added Attribute.setAlias(), Attribute.getAlias()
added 'with statement' compatibility to UI Layout and Menu classes
added the ability to generate completion files for IDEs like Wing, Eclipse, and Komodo
added regex flag to ls command
TOOLS
ipymel: added colorization to dag command
py2mel: now works with lambdas and methods. new option to provide a list or dictionary of mel types.
re-added missing scriptEditor files
INSTALLATION
added a pre-made .pth file for users to use during install
added upgradeScripts, a tool for converting 0.9 scripts to be 1.0 compatible
CHANGES AND ADDITIONS
added TwoWayDict/EquivalencePair to utilityTypes
added preorder, postorder, and breadth functions in util.arguments, which have more intuitive arguments
moved functions for working with the shell into util.shell
split out ui classes from core.windows into core.uitypes for lazy loading
for versions >= 2009, use open/close undo chunks instead of mel hack to ensure that an entire callback can be undone in one go
added new Layout class that all layouts inherit from
improved lsUI
added UITemplate class
cast modelEditor camera query to PyNode
cast dimensionShape
moved component types out of nodetypes and into general
__repr__ for nodetypes, uitypes, and datatypes reflect their location so as not to cause confusion. using short module names nt, ui, and dt.
caches are now compressed for speed
allow setting pymel.conf location via environment variable PYMEL_CONF
DagNode.getBoundingBox() now allows you to specify space
added usable __iter__ to workspace dict / file dict objects
added two tier setup scripts for maya (user/site) just like with python. This new siteSetup.py is intended for studio setup of maya and reserved userSetup.py for user level scripts.
add a partial replacement maya package with a logger with a shell and gui handler qne changed plogging to use the new default maya logger
added setAttr/getAttr support for all numeric datatypes, along with tests
added Transform.getShapes() for returning a list of shapes
added FileReference comparison operators
core.modeling: ensure that the 'name' flag for surface and curve operates on shape as well
added DependNode.longName(stripNamespace=False,level=0)
added SkinCluster.setWeights()
added AnimCurve.addKeys()
changes to allow myCube.vtx[1,3,5]
internal: any command wrapped by pmcmds that raises a standard TypeError for a non-existent object will now raise a MayaObjectError
core.general: added an Error class above MayaAttributeError and MayaComponentError called MayaSubObjectError
simplified getParent code on Attribute and DagNode to improve function signatures.
fixed instantiation of PyNode from MPlug instance
BUGFIXES
fixed a bug where Maya version was incorrectly detected when Maya was installed to a custom location
fixed bug where wrap of function which took multiple refs all pointed to same MScriptUtil
fixes for handling wrapping of unsigned ptr api types
fixes for negative comp indices
mel2py: bugfix with mel2pyStr
Version 0.9.2
CHANGES AND ADDITIONS
added support for 2010 and python 2.6
added basic support for all component types
added a 'removeNamespace' flag to FileReference.importContents()
added support for open-ended time ranges for command like keyframes (Issue 82)
enhanced keyframe function: if both valueChange and timeChange are queried, the result will be a list of (time,value) pairs
added ability to pass a list of types to ls 'type' argument, as you can with listRelatives
added checkLocalArray and checkOtherArray arguments to Attribute.isConnectedTo which will cause the function to also test mulit/array elements
improved core.language.pythonToMel reliability on lists
improved custom virtual class workflow
added functionality to pymel.tools.py2mel for dynamically creating MEL commands based on python functions/classes
added a new module pymel.api.plugins for working with api plugins in a more reasonable and automated fashion
updated eclipse integration documentation
BUGFIXES
fixed importFile, createReference, loadReference, and openFile now return PyNodes when passed returnNewNodes flag (Issue 85)
fixed rare bug with Vista where platform.system was failing during startup (Issue 87)
fixed a bug with plugin loading to intelligently handle when callback does not get a name
fixed optionMenu and optionMenuGrp to return empty lists instead of None
restored core.other.AttributeName.exists method
fixed a bug in 0.7_compatibility_mode
fixed minor bug in listRelatives
fixed a bug where curve command was returning a string instead of a PyNode (Issue 96)
EASY INSTALL IMPROVEMENTS
setup now copies over a readline library for 2010 OSX using readline.so from toxik which is more compatible
changed ipymel to be part of the default install instead of an extra package
fixed interpreter path of ipymel and other executable scripts on OSX
setup now detects and fixes invalid python installations on Linux which previously caused distutils and thus setup.py to fail
Version 0.9.1
CHANGES AND ADDITIONS
new feature: virtual subclasses. allows the user to create their own subclasses which are returned by PyNode
added v2009sp1 and v2009sp1a to Version
changed MelGlobals.__getitem__ to raise a KeyError on missing global, instead of a typeError
util.path now supports regular expression filtering in addition to globs.
moved moduleDir from util to mayahook since it is explicitly for pymel.
ensured that all default plugins are loaded when creating the api cache so that we can avoid calculating those each time the plugins are loaded
added a new `errors` flag to recurseMayaScriptPath for controlling how to handle directory walking errors: warn or ignore
moved pwarnings to ensure that pymel.util is completely separated from maya
adding new sphinx documentation. modifying source docstrings where necessary.
setParent now allows 'None' arg to specify world parent
adopted a standard setuptools-compliant package layout, with pymel as a subdirectory of the top level
forced line numbers on for Mel.eval
changed ipymel to use $MAYA_LOCATION to find mayapy instead of /usr/bin/env
changed datatypes examples to demonstrate the necessity to include a namespace
added groupname, get_groupname, and chgrp to path class for dealing with unix groups as strings instead of as gid's
added alias path.Path for path.path so as to follow PEP8
added a new option to pymel.conf to allow disabling of mel initialization in standalone mode.
added ability to set logger verbosity using PYMEL_LOGLEVEL environment variable. great for quick testing.
BUGFIXES
fixed a bug in undoInfo
fixed a bug that was breaking mel2py
fixed a bug with logging that was locking it to INFO level. INFO is now the default, but it can be properly changed in pymel.conf
fixed input casting of datatypes.Time
bug fixes in error handling within path class
fixed issue 65: DependencyNode.listAttr broken
made sure NameParse objects are stringified before fed to MFnDependencyNode.findPlug
added a few more reserved types so as to avoid creating them, which can lead to crashes on some setups
fixed issue 66 where nodes could be created twice when using PEP8 style class instantiation: pm.Locator()
path.walk* now properly prunes all directories below those that do not match the supplied patterns.
maya bug workaround: changed pluginLoaded callback to API-based for 2009 and later
fixed bug in hasAttr
removed bug in arrays.dot where incorrect duplicate definition was taking precedence
fixed bug in PyNode.__ne__ when comparing DagNodes to DependNodes
fixed Issue 72: cannot select lists of components
fixed bug with startup on windows (backslashes not escaped)
fix for Component('pCube1.vtx[3]')
fix for nurbsCurveCV('nurbsCircle1') failing
pythonToMel and Mel now properly convert datatypes.Vectors to mel vectors ( <<0,0,0>> ). MelGlobals now returns datatypes.Vectors
fixed bug with duplicate(addShape=1)
fixed a bug where selectionSets can't be selected
fixed a bug with sets() when it returns lists
fixed issue 76, where non-unique joint names were returned by pymel.joint and thus were unsuccessfully cast to nodetypes.Joint
fixed issue 80, regading incorrect association of nodetypes.File with cmds.file.
fixed a bug in connectAttr that was preventing connection errors from being raised when the force flag was used