Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 33 additions & 10 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,65 @@
What's New
**********


==================================
Version 1.5.0
Version 1.6.0
==================================

----------------------------------
Fixes
----------------------------------
- Fix version constants
Some of the open issues with easy fixes.

- readme lists Mac install path in for "on Windows" (issue #479)
- __import__ called with illegal value of level (issue #473)
- Multiple removeCallback calls in pymel (issue #463)
- Fixing supports for command flags without shortname(e.g., affects)
- Make some of anonymous enums constants(e.g., MFnDagNode.kNextPos, MGeometryList.kAll, etc...)
- Added an encoding workaround for building step 3.
- Now also check .mayaDocs for internalCmds.txt/internalCommandList.txt

Additions
----------------------------------
- Added maya-2025 support
- Added a workaround for additional . in the result of using listAttr with blendshape in Maya 2025.
- Added support for PySide6 and shiboken6
- Bumped PyQt from PyQt4 to PyQt6 and PyQt5
- Added support for Maya 2026

----------------------------------
Non-Backward Compatible Changes
----------------------------------
- Dropped support for maya-2020
- Dropped support for PySide and shiboken
- Dropped support for maya 2022
- Removed support for Python 2

----------------------------------
Open issues
----------------------------------
- It's able to process version baseline class now, but no real usage has been implemented for it.
- GUI Tests currently is redirected to script editor.
- Step3 will create an extra empty line at the beginning of generated codes.
- pm.core.newFile will return True in doctest in Maya 2026.3 gui test,
but I couldn't reproduce it with test code in script editor.
Current use ellipsis(...) in the doctest to get around of it.

==================================
Version 1.5.0
==================================

----------------------------------
Fixes
----------------------------------
- Fix version constants

Additions
----------------------------------
- Added support for maya 2025 and python 3.11
- Added maya-2025 support
- Added a workaround for additional . in the result of using listAttr with blendshape in Maya 2025.
- Added support for PySide6 and shiboken6
- Bumped PyQt from PyQt4 to PyQt6 and PyQt5

----------------------------------
Non-Backward Compatible Changes
----------------------------------
- Dropped support for maya-2020
- Dropped support for PySide and shiboken


==================================
Version 1.4.0
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ Supported Maya Versions

PyMEL supports four major versions of Maya:

- 2022
- 2023
- 2024
- 2025

- 2026

See the full [changelog](https://github.com/LumaPictures/pymel/blob/master/CHANGELOG.rst).

Production Proven
Expand Down Expand Up @@ -331,7 +331,7 @@ sudo /usr/autodesk/maya<Version>/bin/mayapy -m pip install pymel
(from a command window running as Administrator)

```
/Applications/Autodesk/maya<Version>/Maya.app/Contents/bin/mayapy -m pip install pymel
C:\Program Files\Autodesk\Maya<VersionNumber>\bin\mayapy -m pip install pymel
```

### Installing into your user's site-packages directory
Expand Down
165 changes: 0 additions & 165 deletions docs/internalCmds.txt

This file was deleted.

23 changes: 12 additions & 11 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@
# fix for pymel.core.general.SCENE erroring during inspection by napoleon
SKIP = {'_the_instance'}

# must monkeypatch sphinxcontrib.napoleon because app.connect places our callback after napoleon's
import sphinxcontrib.napoleon
_orig_skip_member = sphinxcontrib.napoleon._skip_member
# must monkeypatch sphinx.ext.napoleon because app.connect places our callback after napoleon's
import sphinx.ext.napoleon
_orig_skip_member = sphinx.ext.napoleon._skip_member

import sys
def skip_unsafe(app, what, name, obj, skip, options):
Expand All @@ -56,10 +56,10 @@ def skip_unsafe(app, what, name, obj, skip, options):
try:
return _orig_skip_member(app, what, name, obj, skip, options)
except:
print "Errored on attribute %s of %s %s" % (name, what, obj)
print ("Errored on attribute %s of %s %s" % (name, what, obj))
raise

sphinxcontrib.napoleon._skip_member = skip_unsafe
sphinx.ext.napoleon._skip_member = skip_unsafe

# def setup(app):
# import pprint
Expand All @@ -77,7 +77,8 @@ def skip_unsafe(app, what, name, obj, skip, options):
'sphinx.ext.autosummary',
'sphinx.ext.inheritance_diagram',
'sphinx.ext.graphviz',
'sphinxcontrib.napoleon',
'sphinx.ext.napoleon',
'sphinxcontrib.jquery'
]

# Add any paths that contain templates here, relative to this directory.
Expand Down Expand Up @@ -143,9 +144,8 @@ def skip_unsafe(app, what, name, obj, skip, options):
# Options for HTML output
# -----------------------

import sphinx_rtd_theme
html_theme = "sphinx_rtd_theme"
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]


# html_theme = 'nature'

Expand Down Expand Up @@ -177,7 +177,7 @@ def skip_unsafe(app, what, name, obj, skip, options):

html_context = {
'css_files': [
'_static/theme_overrides.css', # overrides for wide tables in RTD theme
'_static/css/theme.css', # overrides for wide tables in RTD theme
],
}

Expand Down Expand Up @@ -232,8 +232,8 @@ def skip_unsafe(app, what, name, obj, skip, options):
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, document class [howto/manual]).
latex_documents = [
('index', 'PyMEL.tex', ur'PyMEL Documentation',
ur'Chad Dombrova', 'manual'),
('index', 'PyMEL.tex', r'PyMEL Documentation',
r'Chad Dombrova', 'manual'),
]

# The name of an image file (relative to this directory) to place at the top of
Expand Down Expand Up @@ -262,3 +262,4 @@ def skip_unsafe(app, what, name, obj, skip, options):

autosummary_generate = True

exclude_patterns =['templates']
2 changes: 1 addition & 1 deletion docs/source/eclipse_debug.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

==================================================
Seting Up PyMEL Debugging in Eclipse
Setting Up PyMEL Debugging in Eclipse
==================================================

(VERY rough instructions still - need to refine)
Expand Down
4 changes: 2 additions & 2 deletions docs/source/ui.rst
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ Layouts
----------------------------------

Automatic Form Layouts
======================
~~~~~~~~~~~~~~~~~~~~~~

One major pain in designing GUIs is the placing of controls in layouts.
Maya provides the formLayout command which lets controls resize and keep their relationship with other controls, however the use of this command is somewhat cumbersome and unintuitive.
Expand Down Expand Up @@ -289,7 +289,7 @@ Finally, just for fun, you can also reset, flip and reverse the layout::


Streamlined GUI Creation with Context Managers
==============================================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Anyone who has coded GUIs in Maya using both MEL and python will tell you that if there is one thing they miss about MEL (and only one thing), it is the use of indentation to organize layout hierarchy. this is not possible in python because tabs are a syntactical element, indicating code blocks. In this release, PyMEL harnesses python's ``with`` statement to use indentation to streamlines the process of GUI creation.

Expand Down
4 changes: 0 additions & 4 deletions examples/AETemplates.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@
The example below demonstrates the simplest case, which is the first. It provides a layout for the mib_amb_occlusion
mental ray shader.
"""
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import

from pymel.core import *

class LocalizedTemplate(ui.AETemplate):
Expand Down
3 changes: 0 additions & 3 deletions examples/customClasses.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,6 @@
and registration will fail if the user defines an override for them;
this set includes __init__, __new__, and __str__.
"""
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import
# Note - all of this, below the 'warning', is copied from the docstring for
# VirtualClassManger.register - keep it in sync!

Expand Down
4 changes: 0 additions & 4 deletions examples/example1.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,10 +379,6 @@
mel.myMelScript(x.type(), trans) # automatic handling of mel procedures

"""
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import

__test__ = False


Expand Down
Loading