class VirtualFolder
VirtualFolder is a class representing a virtual folder in a file system hierarchy that doesn't correspond to a physical folder but exists for organizational purposes.
/tf/active/vicechatdev/rmcl/items.py
300 - 326
simple
Purpose
This class extends the Folder base class to create virtual folders that exist only in memory or as logical constructs. Virtual folders are used to organize content without having physical storage backing. They maintain parent-child relationships, have unique identifiers, and always report the current time as their modification time. The 'virtual' property distinguishes them from regular folders.
Source Code
class VirtualFolder(Folder):
def __init__(self, name, id_, parent_id=None):
self._name = name
self._id = id_
self._parent = parent_id
self.children = []
@property
def name(self):
return self._name
@property
def id(self):
return self._id
@property
def parent(self):
return self._parent
@property
def mtime(self):
return now()
@property
def virtual(self):
return True
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
Folder | - |
Parameter Details
name: String representing the display name of the virtual folder
id_: Unique identifier for the virtual folder, typically a string or UUID
parent_id: Optional identifier of the parent folder. If None, this folder has no parent (could be a root-level virtual folder). Defaults to None.
Return Value
Instantiation returns a VirtualFolder object with the specified name, id, and parent relationship. The object has read-only properties for name, id, parent, mtime (modification time), and virtual status. The children attribute is a mutable list that can store child items.
Class Interface
Methods
__init__(self, name, id_, parent_id=None)
Purpose: Constructor that initializes a virtual folder with name, unique identifier, and optional parent reference
Parameters:
name: Display name for the virtual folderid_: Unique identifier for this folderparent_id: Optional identifier of the parent folder, defaults to None
Returns: None (constructor)
@property name(self) -> str
property
Purpose: Read-only property that returns the folder's name
Returns: String containing the folder name
@property id(self)
property
Purpose: Read-only property that returns the folder's unique identifier
Returns: The unique identifier (typically string or UUID) for this folder
@property parent(self)
property
Purpose: Read-only property that returns the parent folder's identifier
Returns: The parent folder's identifier, or None if this folder has no parent
@property mtime(self)
property
Purpose: Read-only property that returns the modification time, always returning the current time for virtual folders
Returns: Current timestamp from the now() utility function
@property virtual(self) -> bool
property
Purpose: Read-only property that identifies this folder as virtual
Returns: Always returns True to indicate this is a virtual folder
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
_name |
str | Private attribute storing the folder's name, exposed via the name property | instance |
_id |
str or UUID | Private attribute storing the folder's unique identifier, exposed via the id property | instance |
_parent |
str or UUID or None | Private attribute storing the parent folder's identifier, exposed via the parent property | instance |
children |
list | Public mutable list that stores child items (files or folders) contained within this virtual folder | instance |
Dependencies
triofunctoolsiojsonlogginguuidzipfile
Required Imports
from const import ROOT_ID
from const import TRASH_ID
from const import FileType
from utils import now
from utils import parse_datetime
from exceptions import DocumentNotFound
from exceptions import VirtualItemError
from sync import add_sync
from rmrl import render
from rmrl import sources
Usage Example
# Create a virtual folder
virtual_folder = VirtualFolder(name='My Virtual Folder', id_='vf-12345', parent_id='parent-67890')
# Access properties
print(virtual_folder.name) # 'My Virtual Folder'
print(virtual_folder.id) # 'vf-12345'
print(virtual_folder.parent) # 'parent-67890'
print(virtual_folder.virtual) # True
print(virtual_folder.mtime) # Current timestamp
# Add children
virtual_folder.children.append(child_item)
# Create a root-level virtual folder
root_virtual = VirtualFolder(name='Root Virtual', id_='vf-root')
Best Practices
- VirtualFolder instances are immutable in terms of name, id, and parent - these are set at construction and exposed as read-only properties
- The children attribute is mutable and should be managed by the code using this class to maintain the folder hierarchy
- Always check the 'virtual' property to distinguish virtual folders from physical folders when processing folder hierarchies
- The mtime property always returns the current time, so it's not suitable for tracking actual modification history
- When creating folder hierarchies, ensure parent_id references are valid and don't create circular references
- The id_ parameter should be unique across all folders (virtual and non-virtual) in the system
- This class inherits from Folder, so it may have additional methods and behaviors defined in the parent class
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class Folder 63.1% similar
-
function create_folder_v1 53.8% similar
-
function create_folder 50.9% similar
-
function create_folder_hierarchy_v1 50.9% similar
-
function create_folder_hierarchy 50.4% similar