graph LR
Data_Object_Manager["Data Object Manager"]
Collection_Manager["Collection Manager"]
Metadata_Manager["Metadata Manager"]
Query_Builder_Executor["Query Builder/Executor"]
Data_Object_Model["Data Object Model"]
Collection_Model["Collection Model"]
Metadata_Model["Metadata Model"]
GenQuery2_Interface["GenQuery2 Interface"]
Query_Column_Definition["Query Column Definition"]
Query_Result_Processing["Query Result Processing"]
Logical_Path_Utility["Logical Path Utility"]
Data_Object_Manager -- "manages and operates on" --> Data_Object_Model
Collection_Manager -- "interacts with" --> Collection_Model
Metadata_Manager -- "manipulates" --> Metadata_Model
Query_Builder_Executor -- "delegates execution to" --> GenQuery2_Interface
Query_Builder_Executor -- "uses" --> Query_Column_Definition
Query_Builder_Executor -- "relies on" --> Query_Result_Processing
Data_Object_Manager -- "uses" --> Logical_Path_Utility
Collection_Manager -- "uses" --> Logical_Path_Utility
The python-irodsclient project is structured around core managers for interacting with iRODS data objects, collections, and metadata. The Data Object Manager, Collection Manager, and Metadata Manager provide high-level APIs for common iRODS operations, each interacting with their respective data models (Data Object Model, Collection Model, Metadata Model). Querying iRODS is handled by the Query Builder/Executor, which provides a fluent interface for constructing queries. This component delegates the actual execution to the GenQuery2 Interface, which is responsible for low-level interactions with the iRODS catalog. The Query Builder/Executor also leverages Query Column Definition for defining query parameters and Query Result Processing for handling and formatting the query output. Additionally, both Data Object Manager and Collection Manager utilize the Logical Path Utility for consistent path handling. This modular design separates concerns, allowing for clear responsibilities and interactions between components.
Provides high-level operations for managing iRODS data objects, including creation, retrieval (get/download), storage (put), checksum verification, and unregistration. It orchestrates data transfers and progress updates.
Related Classes/Methods:
Manages iRODS collections (directories), handling operations such as creation, unregistration, and checking for existence.
Related Classes/Methods:
Orchestrates Attribute-Value-Unit (AVU) metadata operations for various iRODS entities, including retrieval, addition, removal, and atomic updates.
Related Classes/Methods:
Offers a fluent, Pythonic interface for constructing complex iRODS queries, applying filters, ordering, limits, and executing them against the iRODS catalog.
Related Classes/Methods:
Represents iRODS data objects, serving as the fundamental data structure for holding information about files within iRODS.
Related Classes/Methods:
Represents iRODS collections, serving as the fundamental data structure for holding information about directories within iRODS.
Related Classes/Methods:
Represents iRODS metadata (Attribute-Value-Unit), serving as the fundamental data structure for AVU information associated with iRODS entities.
Related Classes/Methods:
Handles low-level query execution against the iRODS catalog, acting as the direct interface for GenQuery2 operations.
Related Classes/Methods:
A helper for defining columns in iRODS queries, including classes for defining query keys, criteria, and column types (Integer, String, DateTime).
Related Classes/Methods:
A helper for structuring and formatting iRODS query output, including the ResultSet class for processing raw query results and SpecificQueryResultSet for handling specific query outputs.
Related Classes/Methods:
An internal helper for consistent path handling within iRODS, primarily used to determine if a given path refers to a collection.
Related Classes/Methods: