- VersionableBase class, which
- was a common attribute for the Asset` and Shot classes.
The system now uses SQLAlchemy Declarative in its data models. And a new settings file located in the Project root with the name .metadata.db is governed to hold the related data for that Project. The system doesn’t scan the file system anymore but instead uses this .metadata.db SQLite3 file. There are a lot of interface changes in the classes:
The Project.sequenceNames and Project.updateSequenceList methods are no longer needed and they don’t exist anymore.
There is no readSettings method in any of the classes anymore. All the settings are read from the database (by retrieving an instance from the db) as the instance is created.
All the XML parsing code is removed. So there is no backward compatibility.
It was very hard keep the compatibility with the previous versions. So, the version 0.2.0 is not backward compatible. The system will look with blinking eyes if you try to use it with an old Project.
The methods:
of the Sequence are removed. They were preliminarily used for fake database query like behaviour which is greatly handled by SQLAlchemy right now.
All the models are now placed under one module called oyProjectManager.core.models. Thus deleted the old oyProjectManager.models.project, oyProjectManager.models.asset, oyProjectManager.models.user modules and the oyProjectManager.models module itself.
utils.convertRangeToList is renamed to uncompress_range().
Introduced the new Version class which from now on will hold the references to the individual files for every version created for an Asset or Shot in the repository. So contrary to the previous implementation an Asset is not the reference of the individual version files of itself any more.
Introduced the VersionableBase class in which the Shot and Asset is derived from. Thus allow them to hold references to Versions.
The Repository now uses the REPO environment variable instead of STALKER_REPOSITORY_PATH.
All the project settings are now stored in the Project class.
The timeUnit concept is replaced with fps. To define the timeUnit (which is very much a specific naming convention for Maya only) set the fps of the Project class.
It is now possible to set a project image format by setting the width, height, pixel_aspect attributes of the Project class.
The Shot class now initializes with the number attribute and the code attribute of the Shot composed from the number and the shot_prefix and shot_padding attribute of the Project class.
There is no Structure class anymore. The function is accomplished by the Project class itself.
The system now uses the OYPROJECTMANAGER_PATH to search a file called conf.py and uses this file to configure the system. See config documentation for more details.
Renamed the environment modules:
To ease the move of separate environment class concept, which will be introduced in version 0.3.0
Updated the Repository, now it is only doing repository related things. The following methods are removed:
_init_repository_path_environment_variable (no environment variables to init anymore)
_parse_repository_settings (nothing to parse anymore)
projects (use Repository.project_names instead)
valid_projects (use Repository.project_names all the names are for valid projects -projects with .metadata.db- only)
users (it is Projects duty to return a list of users in the project, and a full list of user names and corresponding user name initials can be retrieved from oyProjectManager.config.Config.users)
user_names (can be retrieved from oyProjectManager.config.Config.users)
user_initials (can be retrieved from oyProjectManager.config.Config.users)
_parse_users (nothing to parse anymore)
createProject (use:
from oyProjectManager.core.models import Project
new_proj = Project("NEW_PROJECT")
new_proj.create()
no need to introduce a new method)
defaultFiles (is handled by the environments, not by the repository)
default_settings_file_full_path (no default settings file anymore)
home_path (it is os.path.expanduser(“~”) no need to create new method)
last_user (use oyProjectManager.config.Config.last_user_initial instead)
get_project_and_sequence_name_from_file_path (use oyProjectManager.core.models.Repository.get_project_name() instead, it is not possible to get the Sequence name for now)
settings_dir_path (no settings dir)
time_units (no time unit concept, use fps instead)