|
| 1 | +{ |
| 2 | + "description": "The PRAW configuration subsystem, centered around the `Config` component, is responsible for loading and managing application settings from various sources like `praw.ini` files and environment variables. This `Config` component provides essential parameters, such as API endpoints and client credentials, to the `Reddit` client for general API interactions and to the `Authenticator` for handling user authentication flows. This clear separation ensures that configuration concerns are centralized, allowing other core components to focus on their primary responsibilities while maintaining access to necessary operational settings.", |
| 3 | + "components": [ |
| 4 | + { |
| 5 | + "name": "Config", |
| 6 | + "description": "The central component of the Configuration Manager. It is responsible for orchestrating the loading of configuration settings from various sources (e.g., `praw.ini` files, environment variables), managing default values, and providing a unified interface for other parts of PRAW to access these settings. It ensures that critical parameters like client ID, client secret, user agent, and Reddit API URLs are readily available.", |
| 7 | + "referenced_source_code": [ |
| 8 | + { |
| 9 | + "qualified_name": "praw.config.Config", |
| 10 | + "reference_file": "praw/config.py", |
| 11 | + "reference_start_line": 52, |
| 12 | + "reference_end_line": 52 |
| 13 | + }, |
| 14 | + { |
| 15 | + "qualified_name": "praw.config.Config.__init__", |
| 16 | + "reference_file": "praw/config.py", |
| 17 | + "reference_start_line": 85, |
| 18 | + "reference_end_line": 95 |
| 19 | + }, |
| 20 | + { |
| 21 | + "qualified_name": "praw.config.Config._load_config", |
| 22 | + "reference_file": "praw/config.py", |
| 23 | + "reference_start_line": 44, |
| 24 | + "reference_end_line": 71 |
| 25 | + }, |
| 26 | + { |
| 27 | + "qualified_name": "praw.config.Config._fetch", |
| 28 | + "reference_file": "praw/config.py", |
| 29 | + "reference_start_line": 105, |
| 30 | + "reference_end_line": 108 |
| 31 | + }, |
| 32 | + { |
| 33 | + "qualified_name": "praw.config.Config._fetch_default", |
| 34 | + "reference_file": "praw/config.py", |
| 35 | + "reference_start_line": 110, |
| 36 | + "reference_end_line": 113 |
| 37 | + }, |
| 38 | + { |
| 39 | + "qualified_name": "praw.config.Config._fetch_or_not_set", |
| 40 | + "reference_file": "praw/config.py", |
| 41 | + "reference_start_line": 115, |
| 42 | + "reference_end_line": 123 |
| 43 | + }, |
| 44 | + { |
| 45 | + "qualified_name": "praw.config.Config._initialize_attributes", |
| 46 | + "reference_file": "praw/config.py", |
| 47 | + "reference_start_line": 125, |
| 48 | + "reference_end_line": 173 |
| 49 | + } |
| 50 | + ], |
| 51 | + "assigned_files": [ |
| 52 | + "praw/config.py" |
| 53 | + ], |
| 54 | + "can_expand": true |
| 55 | + }, |
| 56 | + { |
| 57 | + "name": "Reddit", |
| 58 | + "description": "The core client for interacting with the Reddit API. It utilizes the `Config` component to retrieve necessary configuration settings such as API URLs, client credentials, and user agent. It acts as the primary entry point for making requests to Reddit and managing user sessions.", |
| 59 | + "referenced_source_code": [ |
| 60 | + { |
| 61 | + "qualified_name": "praw.Reddit", |
| 62 | + "reference_file": "praw/reddit.py", |
| 63 | + "reference_start_line": null, |
| 64 | + "reference_end_line": null |
| 65 | + } |
| 66 | + ], |
| 67 | + "assigned_files": [], |
| 68 | + "can_expand": true |
| 69 | + }, |
| 70 | + { |
| 71 | + "name": "Authenticator", |
| 72 | + "description": "Handles the authentication process with Reddit, including OAuth flows and managing refresh tokens. It relies on the `Config` component to obtain authentication-related parameters like client ID, client secret, and redirect URI.", |
| 73 | + "referenced_source_code": [ |
| 74 | + { |
| 75 | + "qualified_name": "praw.models.auth.Auth", |
| 76 | + "reference_file": "praw/models/auth.py", |
| 77 | + "reference_start_line": 11, |
| 78 | + "reference_end_line": 125 |
| 79 | + } |
| 80 | + ], |
| 81 | + "assigned_files": [], |
| 82 | + "can_expand": true |
| 83 | + }, |
| 84 | + { |
| 85 | + "name": "Unclassified", |
| 86 | + "description": "Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)", |
| 87 | + "referenced_source_code": [], |
| 88 | + "assigned_files": [], |
| 89 | + "can_expand": false |
| 90 | + } |
| 91 | + ], |
| 92 | + "components_relations": [ |
| 93 | + { |
| 94 | + "relation": "provides configuration to", |
| 95 | + "src_name": "Config", |
| 96 | + "dst_name": "Reddit" |
| 97 | + }, |
| 98 | + { |
| 99 | + "relation": "provides authentication configuration to", |
| 100 | + "src_name": "Config", |
| 101 | + "dst_name": "Authenticator" |
| 102 | + } |
| 103 | + ] |
| 104 | +} |
0 commit comments