Freeway is a module for managing file system structures with recursive pattern rules.
This module can be installed from PyPi, as follows:
$ pip install freeway
Examples require the RULESFILE environment variable to be set, which points to a JSON file that contains all the rule patterns to resolve the paths and nomenclatures. The file can be found at 'freeway/examples/rules.json'
from freeway import Freeway
filepath = "C:/example/assets/Characters/Roberto/MOD/Work/example_CH_Roberto_MOD.v001.abc"
myPath = Freeway(filepath)
# Show all parsed data
print(myPath)
Result:
['assetWorkspacePath']: {'assetType': 'Characters', 'asset': 'Roberto', 'process': 'MOD', 'stage': 'Work', 'assetPrefix': 'CH', 'task': 'MOD', 'version': '001', 'ext': 'abc'}
print("%s_%s_%s_example" % (myPath.asset, myPath.assetType, myPath.task))
Results:
Roberto_Characters_MOD_example
print(myPath.assetDir)
Results:
C:/example/assets/Characters/Roberto
data = {'assetType': 'Prop',
'asset': 'Table',
'process': 'MOD',
'stage': 'Work',
'assetPrefix': 'PR',
'task': 'MOD',
'version': '001',
'ext': 'abc'}
myPath = Freeway(**data)
print(myPath.assetWorkspacePath)
print(myPath.assetFile)
print(myPath.assetDir)
Results:
C:/example/assets/Prop/Table/MOD/Work/example_PR_Table_MOD.v001.abc example_Prop_Table_MOD_v001.abc C:/example/assets/Prop/Table
other = myPath.copy()
myPath.stage = "Publish"
myPath.ext = "usd"
myPath.asset = "Chair"
print(myPath.assetWorkspacePath)
Results:
C:/example/assets/Prop/Chair/MOD/Publish/example_PR_Chair_MOD.v001.usd
other.update({"process": "SHD",
"ext": "mb",
"version": "123"})
print(other.assetWorkspacePath)
Results:
C:/example/assets/Prop/Table/SHD/Work/example_PR_Table_MOD.v123.mb