This is a mapping of various tweaks that we have to do between the internal representation of an attribute value and the display (for example, 'Millisecond' units have the display name of 's', so we have to convert value from ms to s)
(self)
| 620 | |
| 621 | @property |
| 622 | def translations(self): |
| 623 | """ This is a mapping of various tweaks that we have to do between the internal representation of an attribute |
| 624 | value and the display (for example, 'Millisecond' units have the display name of 's', so we have to convert value |
| 625 | from ms to s) """ |
| 626 | # Each entry contains: |
| 627 | # Function to convert value to display value |
| 628 | # Function to convert value to display format (which sometimes can be a string) |
| 629 | # Function which controls unit name used with attribute |
| 630 | # Function to convert display value to value |
| 631 | return { |
| 632 | "Inverse Absolute Percent": ( |
| 633 | lambda v: (1 - v) * 100, |
| 634 | lambda v: (1 - v) * 100, |
| 635 | lambda u: u, |
| 636 | lambda d: -1 * (d / 100) + 1), |
| 637 | "Inversed Modifier Percent": ( |
| 638 | lambda v: (1 - v) * 100, |
| 639 | lambda v: (1 - v) * 100, |
| 640 | lambda u: u, |
| 641 | lambda d: -1 * (d / 100) + 1), |
| 642 | "Modifier Percent": ( |
| 643 | lambda v: (v - 1) * 100, |
| 644 | lambda v: ("%+.2f" if ((v - 1) * 100) % 1 else "%+d") % ((v - 1) * 100), |
| 645 | lambda u: u, |
| 646 | lambda d: (d / 100) + 1), |
| 647 | "Volume": ( |
| 648 | lambda v: v, |
| 649 | lambda v: v, |
| 650 | lambda u: "m³", |
| 651 | lambda d: d), |
| 652 | "Sizeclass": ( |
| 653 | lambda v: self.rigSizes[v], |
| 654 | lambda v: self.rigSizes[v], |
| 655 | lambda d: next(i for i in self.rigSizes.keys() if self.rigSizes[i] == 'Medium'), |
| 656 | lambda u: ""), |
| 657 | "Absolute Percent": ( |
| 658 | lambda v: v * 100, |
| 659 | lambda v: v * 100, |
| 660 | lambda u: u, |
| 661 | lambda d: d / 100), |
| 662 | "Milliseconds": ( |
| 663 | lambda v: v / 1000, |
| 664 | lambda v: v / 1000, |
| 665 | lambda u: u, |
| 666 | lambda d: d * 1000), |
| 667 | "Boolean": ( |
| 668 | lambda v: True if v else False, |
| 669 | lambda v: "Yes" if v else "No", |
| 670 | lambda u: "", |
| 671 | lambda d: 1.0 if d == "Yes" else 0.0), |
| 672 | "typeID": ( |
| 673 | self.itemIDCallback, |
| 674 | self.itemIDCallback, |
| 675 | lambda u: "", |
| 676 | None), # we could probably convert these back if we really tried hard enough |
| 677 | "groupID": ( |
| 678 | self.groupIDCallback, |
| 679 | self.groupIDCallback, |