orionis 0.435.0__py3-none-any.whl → 0.437.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. orionis/console/contracts/kernel.py +16 -3
  2. orionis/console/dumper/contracts/dump.py +8 -9
  3. orionis/console/dynamic/progress_bar.py +21 -29
  4. orionis/console/output/console.py +12 -0
  5. orionis/container/context/manager.py +27 -17
  6. orionis/container/context/scope.py +8 -7
  7. orionis/container/contracts/service_provider.py +12 -8
  8. orionis/container/providers/service_provider.py +9 -16
  9. orionis/container/resolver/resolver.py +29 -22
  10. orionis/foundation/contracts/application.py +437 -47
  11. orionis/foundation/contracts/config.py +14 -6
  12. orionis/foundation/providers/console_provider.py +16 -15
  13. orionis/foundation/providers/dumper_provider.py +20 -8
  14. orionis/foundation/providers/logger_provider.py +19 -14
  15. orionis/foundation/providers/path_resolver_provider.py +17 -14
  16. orionis/foundation/providers/progress_bar_provider.py +15 -14
  17. orionis/foundation/providers/testing_provider.py +20 -14
  18. orionis/foundation/providers/workers_provider.py +19 -14
  19. orionis/metadata/framework.py +1 -1
  20. orionis/services/asynchrony/contracts/coroutines.py +5 -9
  21. orionis/services/asynchrony/coroutines.py +10 -23
  22. orionis/services/asynchrony/exceptions/exception.py +3 -3
  23. orionis/services/environment/contracts/caster.py +8 -9
  24. orionis/services/environment/contracts/env.py +9 -9
  25. orionis/services/environment/core/dot_env.py +56 -71
  26. orionis/services/environment/dynamic/caster.py +215 -215
  27. orionis/services/environment/enums/__init__.py +5 -0
  28. orionis/services/environment/enums/value_type.py +22 -25
  29. orionis/services/environment/env.py +28 -12
  30. orionis/services/environment/exceptions/exception.py +6 -2
  31. orionis/services/environment/exceptions/value.py +6 -2
  32. orionis/services/environment/helpers/functions.py +5 -3
  33. orionis/services/environment/key/key_generator.py +8 -11
  34. orionis/services/environment/validators/__init__.py +7 -0
  35. orionis/services/environment/validators/key_name.py +5 -5
  36. orionis/services/environment/validators/types.py +29 -9
  37. orionis/services/introspection/abstract/contracts/reflection.py +188 -221
  38. orionis/services/introspection/abstract/reflection.py +311 -178
  39. orionis/services/introspection/callables/contracts/reflection.py +64 -21
  40. orionis/services/introspection/callables/reflection.py +98 -23
  41. orionis/services/introspection/concretes/reflection.py +278 -181
  42. orionis/services/introspection/dependencies/contracts/reflection.py +21 -18
  43. orionis/services/introspection/dependencies/entities/callable_dependencies.py +15 -16
  44. orionis/services/introspection/dependencies/entities/class_dependencies.py +24 -16
  45. orionis/services/introspection/dependencies/entities/known_dependencies.py +19 -13
  46. orionis/services/introspection/dependencies/entities/method_dependencies.py +22 -16
  47. orionis/services/introspection/dependencies/reflection.py +0 -3
  48. orionis/services/introspection/instances/reflection.py +16 -6
  49. orionis/services/log/contracts/log_service.py +4 -0
  50. orionis/services/log/handlers/filename.py +2 -0
  51. orionis/services/paths/contracts/resolver.py +0 -3
  52. orionis/services/paths/resolver.py +0 -3
  53. {orionis-0.435.0.dist-info → orionis-0.437.0.dist-info}/METADATA +1 -1
  54. {orionis-0.435.0.dist-info → orionis-0.437.0.dist-info}/RECORD +59 -59
  55. /orionis/services/introspection/concretes/contracts/{concrete.py → reflection.py} +0 -0
  56. {orionis-0.435.0.dist-info → orionis-0.437.0.dist-info}/WHEEL +0 -0
  57. {orionis-0.435.0.dist-info → orionis-0.437.0.dist-info}/licenses/LICENCE +0 -0
  58. {orionis-0.435.0.dist-info → orionis-0.437.0.dist-info}/top_level.txt +0 -0
  59. {orionis-0.435.0.dist-info → orionis-0.437.0.dist-info}/zip-safe +0 -0
@@ -17,17 +17,27 @@ from orionis.foundation.config.session.entities.session import Session
17
17
  from orionis.foundation.config.testing.entities.testing import Testing
18
18
 
19
19
  class IApplication(IContainer):
20
+ """
21
+ Abstract interface for the core application container.
22
+
23
+ This interface defines the contract for application instances that manage
24
+ service providers, configuration, and application lifecycle. It extends
25
+ the base container interface to provide application-specific functionality
26
+ including configuration management, service provider registration, and
27
+ bootstrap operations.
28
+ """
20
29
 
21
30
  @property
22
31
  @abstractmethod
23
32
  def isBooted(self) -> bool:
24
33
  """
25
- Indicates whether the application has been booted.
34
+ Check if the application has completed its bootstrap process.
26
35
 
27
36
  Returns
28
37
  -------
29
38
  bool
30
- True if the application is booted, False otherwise.
39
+ True if the application has been successfully booted and is ready
40
+ for operation, False otherwise.
31
41
  """
32
42
  pass
33
43
 
@@ -35,46 +45,50 @@ class IApplication(IContainer):
35
45
  @abstractmethod
36
46
  def startAt(self) -> int:
37
47
  """
38
- Returns the timestamp when the application was started.
48
+ Get the application startup timestamp.
39
49
 
40
50
  Returns
41
51
  -------
42
52
  int
43
- The start time as a Unix timestamp.
53
+ The Unix timestamp representing when the application was started.
44
54
  """
45
55
  pass
46
56
 
47
57
  @abstractmethod
48
58
  def withProviders(self, providers: List[Type[IServiceProvider]] = []) -> 'IApplication':
49
59
  """
50
- Add multiple service providers to the application.
60
+ Register multiple service providers with the application.
51
61
 
52
62
  Parameters
53
63
  ----------
54
64
  providers : List[Type[IServiceProvider]], optional
55
- List of provider classes to add to the application.
65
+ A list of service provider classes to register. Each provider will
66
+ be instantiated and registered with the application container.
67
+ Defaults to an empty list.
56
68
 
57
69
  Returns
58
70
  -------
59
71
  IApplication
60
- The application instance for method chaining.
72
+ The application instance to enable method chaining.
61
73
  """
62
74
  pass
63
75
 
64
76
  @abstractmethod
65
77
  def addProvider(self, provider: Type[IServiceProvider]) -> 'IApplication':
66
78
  """
67
- Add a single service provider to the application.
79
+ Register a single service provider with the application.
68
80
 
69
81
  Parameters
70
82
  ----------
71
83
  provider : Type[IServiceProvider]
72
- The provider class to add to the application.
84
+ The service provider class to register with the application.
85
+ The provider will be instantiated and its services bound to
86
+ the container.
73
87
 
74
88
  Returns
75
89
  -------
76
90
  IApplication
77
- The application instance for method chaining.
91
+ The application instance to enable method chaining.
78
92
  """
79
93
  pass
80
94
 
@@ -96,125 +110,333 @@ class IApplication(IContainer):
96
110
  testing : Testing | dict = Testing()
97
111
  ) -> 'IApplication':
98
112
  """
99
- Configure the application with various service configurators.
100
- Allows setting up different aspects of the application by providing configurator instances for services like authentication, caching, database, etc.
113
+ Configure the application with multiple service configuration objects.
114
+
115
+ This method allows comprehensive configuration of various application
116
+ services by providing configuration objects or dictionaries for each
117
+ service type. All parameters are keyword-only to prevent positional
118
+ argument confusion.
119
+
120
+ Parameters
121
+ ----------
122
+ app : App | dict, optional
123
+ Application-level configuration settings.
124
+ auth : Auth | dict, optional
125
+ Authentication service configuration.
126
+ cache : Cache | dict, optional
127
+ Caching service configuration.
128
+ cors : Cors | dict, optional
129
+ Cross-Origin Resource Sharing configuration.
130
+ database : Database | dict, optional
131
+ Database connection and settings configuration.
132
+ filesystems : Filesystems | dict, optional
133
+ File storage and filesystem configuration.
134
+ logging : Logging | dict, optional
135
+ Logging service configuration.
136
+ mail : Mail | dict, optional
137
+ Email service configuration.
138
+ path : Paths | dict, optional
139
+ Application directory paths configuration.
140
+ queue : Queue | dict, optional
141
+ Job queue service configuration.
142
+ session : Session | dict, optional
143
+ Session management configuration.
144
+ testing : Testing | dict, optional
145
+ Testing environment configuration.
101
146
 
102
147
  Returns
103
148
  -------
104
149
  IApplication
105
- Returns self to allow method chaining.
150
+ The application instance to enable method chaining.
106
151
  """
107
152
  pass
108
153
 
109
154
  @abstractmethod
110
155
  def setConfigApp(self, **app_config) -> 'IApplication':
111
156
  """
112
- Set the application configuration using keyword arguments.
157
+ Configure application settings using keyword arguments.
158
+
159
+ Parameters
160
+ ----------
161
+ **app_config
162
+ Arbitrary keyword arguments representing application configuration
163
+ settings. Keys should match the expected application configuration
164
+ parameter names.
165
+
166
+ Returns
167
+ -------
168
+ IApplication
169
+ The application instance to enable method chaining.
113
170
  """
114
171
  pass
115
172
 
116
173
  @abstractmethod
117
174
  def loadConfigApp(self, app: App | dict) -> 'IApplication':
118
175
  """
119
- Load the application configuration from an App instance or dictionary.
176
+ Load application configuration from a configuration object or dictionary.
177
+
178
+ Parameters
179
+ ----------
180
+ app : App | dict
181
+ An App configuration object or dictionary containing application
182
+ settings to be loaded into the application.
183
+
184
+ Returns
185
+ -------
186
+ IApplication
187
+ The application instance to enable method chaining.
120
188
  """
121
189
  pass
122
190
 
123
191
  @abstractmethod
124
192
  def setConfigAuth(self, **auth_config) -> 'IApplication':
125
193
  """
126
- Set the authentication configuration using keyword arguments.
194
+ Configure authentication settings using keyword arguments.
195
+
196
+ Parameters
197
+ ----------
198
+ **auth_config
199
+ Arbitrary keyword arguments representing authentication configuration
200
+ settings. Keys should match the expected authentication parameter names.
201
+
202
+ Returns
203
+ -------
204
+ IApplication
205
+ The application instance to enable method chaining.
127
206
  """
128
207
  pass
129
208
 
130
209
  @abstractmethod
131
210
  def loadConfigAuth(self, auth: Auth | dict) -> 'IApplication':
132
211
  """
133
- Load the authentication configuration from an Auth instance or dictionary.
212
+ Load authentication configuration from a configuration object or dictionary.
213
+
214
+ Parameters
215
+ ----------
216
+ auth : Auth | dict
217
+ An Auth configuration object or dictionary containing authentication
218
+ settings to be loaded into the application.
219
+
220
+ Returns
221
+ -------
222
+ IApplication
223
+ The application instance to enable method chaining.
134
224
  """
135
225
  pass
136
226
 
137
227
  @abstractmethod
138
228
  def setConfigCache(self, **cache_config) -> 'IApplication':
139
229
  """
140
- Set the cache configuration using keyword arguments.
230
+ Configure cache settings using keyword arguments.
231
+
232
+ Parameters
233
+ ----------
234
+ **cache_config
235
+ Arbitrary keyword arguments representing cache configuration
236
+ settings. Keys should match the expected cache parameter names.
237
+
238
+ Returns
239
+ -------
240
+ IApplication
241
+ The application instance to enable method chaining.
141
242
  """
142
243
  pass
143
244
 
144
245
  @abstractmethod
145
246
  def loadConfigCache(self, cache: Cache | dict) -> 'IApplication':
146
247
  """
147
- Load the cache configuration from a Cache instance or dictionary.
248
+ Load cache configuration from a configuration object or dictionary.
249
+
250
+ Parameters
251
+ ----------
252
+ cache : Cache | dict
253
+ A Cache configuration object or dictionary containing cache
254
+ settings to be loaded into the application.
255
+
256
+ Returns
257
+ -------
258
+ IApplication
259
+ The application instance to enable method chaining.
148
260
  """
149
261
  pass
150
262
 
151
263
  @abstractmethod
152
264
  def setConfigCors(self, **cors_config) -> 'IApplication':
153
265
  """
154
- Set the CORS configuration using keyword arguments.
266
+ Configure CORS settings using keyword arguments.
267
+
268
+ Parameters
269
+ ----------
270
+ **cors_config
271
+ Arbitrary keyword arguments representing Cross-Origin Resource Sharing
272
+ configuration settings. Keys should match the expected CORS parameter names.
273
+
274
+ Returns
275
+ -------
276
+ IApplication
277
+ The application instance to enable method chaining.
155
278
  """
156
279
  pass
157
280
 
158
281
  @abstractmethod
159
282
  def loadConfigCors(self, cors: Cors | dict) -> 'IApplication':
160
283
  """
161
- Load the CORS configuration from a Cors instance or dictionary.
284
+ Load CORS configuration from a configuration object or dictionary.
285
+
286
+ Parameters
287
+ ----------
288
+ cors : Cors | dict
289
+ A Cors configuration object or dictionary containing CORS
290
+ settings to be loaded into the application.
291
+
292
+ Returns
293
+ -------
294
+ IApplication
295
+ The application instance to enable method chaining.
162
296
  """
163
297
  pass
164
298
 
165
299
  @abstractmethod
166
300
  def setConfigDatabase(self, **database_config) -> 'IApplication':
167
301
  """
168
- Set the database configuration using keyword arguments.
302
+ Configure database settings using keyword arguments.
303
+
304
+ Parameters
305
+ ----------
306
+ **database_config
307
+ Arbitrary keyword arguments representing database configuration
308
+ settings. Keys should match the expected database parameter names.
309
+
310
+ Returns
311
+ -------
312
+ IApplication
313
+ The application instance to enable method chaining.
169
314
  """
170
315
  pass
171
316
 
172
317
  @abstractmethod
173
318
  def loadConfigDatabase(self, database: Database | dict) -> 'IApplication':
174
319
  """
175
- Load the database configuration from a Database instance or dictionary.
320
+ Load database configuration from a configuration object or dictionary.
321
+
322
+ Parameters
323
+ ----------
324
+ database : Database | dict
325
+ A Database configuration object or dictionary containing database
326
+ connection and settings to be loaded into the application.
327
+
328
+ Returns
329
+ -------
330
+ IApplication
331
+ The application instance to enable method chaining.
176
332
  """
177
333
  pass
178
334
 
179
335
  @abstractmethod
180
336
  def setConfigFilesystems(self, **filesystems_config) -> 'IApplication':
181
337
  """
182
- Set the filesystems configuration using keyword arguments.
338
+ Configure filesystem settings using keyword arguments.
339
+
340
+ Parameters
341
+ ----------
342
+ **filesystems_config
343
+ Arbitrary keyword arguments representing filesystem configuration
344
+ settings. Keys should match the expected filesystem parameter names.
345
+
346
+ Returns
347
+ -------
348
+ IApplication
349
+ The application instance to enable method chaining.
183
350
  """
184
351
  pass
185
352
 
186
353
  @abstractmethod
187
354
  def loadConfigFilesystems(self, filesystems: Filesystems | dict) -> 'IApplication':
188
355
  """
189
- Load the filesystems configuration from a Filesystems instance or dictionary.
356
+ Load filesystem configuration from a configuration object or dictionary.
357
+
358
+ Parameters
359
+ ----------
360
+ filesystems : Filesystems | dict
361
+ A Filesystems configuration object or dictionary containing filesystem
362
+ settings to be loaded into the application.
363
+
364
+ Returns
365
+ -------
366
+ IApplication
367
+ The application instance to enable method chaining.
190
368
  """
191
369
  pass
192
370
 
193
371
  @abstractmethod
194
372
  def setConfigLogging(self, **logging_config) -> 'IApplication':
195
373
  """
196
- Set the logging configuration using keyword arguments.
374
+ Configure logging settings using keyword arguments.
375
+
376
+ Parameters
377
+ ----------
378
+ **logging_config
379
+ Arbitrary keyword arguments representing logging configuration
380
+ settings. Keys should match the expected logging parameter names.
381
+
382
+ Returns
383
+ -------
384
+ IApplication
385
+ The application instance to enable method chaining.
197
386
  """
198
387
  pass
199
388
 
200
389
  @abstractmethod
201
390
  def loadConfigLogging(self, logging: Logging | dict) -> 'IApplication':
202
391
  """
203
- Load the logging configuration from a Logging instance or dictionary.
392
+ Load logging configuration from a configuration object or dictionary.
393
+
394
+ Parameters
395
+ ----------
396
+ logging : Logging | dict
397
+ A Logging configuration object or dictionary containing logging
398
+ settings to be loaded into the application.
399
+
400
+ Returns
401
+ -------
402
+ IApplication
403
+ The application instance to enable method chaining.
204
404
  """
205
405
  pass
206
406
 
207
407
  @abstractmethod
208
408
  def setConfigMail(self, **mail_config) -> 'IApplication':
209
409
  """
210
- Set the mail configuration using keyword arguments.
410
+ Configure mail service settings using keyword arguments.
411
+
412
+ Parameters
413
+ ----------
414
+ **mail_config
415
+ Arbitrary keyword arguments representing mail service configuration
416
+ settings. Keys should match the expected mail parameter names.
417
+
418
+ Returns
419
+ -------
420
+ IApplication
421
+ The application instance to enable method chaining.
211
422
  """
212
423
  pass
213
424
 
214
425
  @abstractmethod
215
426
  def loadConfigMail(self, mail: Mail | dict) -> 'IApplication':
216
427
  """
217
- Load the mail configuration from a Mail instance or dictionary.
428
+ Load mail configuration from a configuration object or dictionary.
429
+
430
+ Parameters
431
+ ----------
432
+ mail : Mail | dict
433
+ A Mail configuration object or dictionary containing mail service
434
+ settings to be loaded into the application.
435
+
436
+ Returns
437
+ -------
438
+ IApplication
439
+ The application instance to enable method chaining.
218
440
  """
219
441
  pass
220
442
 
@@ -254,105 +476,273 @@ class IApplication(IContainer):
254
476
  storage_views: str | Path = (Path.cwd() / 'storage' / 'framework' / 'views').resolve(),
255
477
  ) -> 'IApplication':
256
478
  """
257
- Set the application paths configuration using keyword arguments.
479
+ Configure application directory paths using keyword arguments.
480
+
481
+ This method allows setting custom paths for various application directories
482
+ including controllers, models, views, storage locations, and other framework
483
+ components. All parameters are keyword-only and have sensible defaults based
484
+ on common MVC framework conventions.
485
+
486
+ Parameters
487
+ ----------
488
+ console_scheduler : str | Path, optional
489
+ Path to the console kernel scheduler file.
490
+ console_commands : str | Path, optional
491
+ Directory path for console command classes.
492
+ http_controllers : str | Path, optional
493
+ Directory path for HTTP controller classes.
494
+ http_middleware : str | Path, optional
495
+ Directory path for HTTP middleware classes.
496
+ http_requests : str | Path, optional
497
+ Directory path for HTTP request classes.
498
+ models : str | Path, optional
499
+ Directory path for model classes.
500
+ providers : str | Path, optional
501
+ Directory path for service provider classes.
502
+ events : str | Path, optional
503
+ Directory path for event classes.
504
+ listeners : str | Path, optional
505
+ Directory path for event listener classes.
506
+ notifications : str | Path, optional
507
+ Directory path for notification classes.
508
+ jobs : str | Path, optional
509
+ Directory path for job classes.
510
+ policies : str | Path, optional
511
+ Directory path for authorization policy classes.
512
+ exceptions : str | Path, optional
513
+ Directory path for custom exception classes.
514
+ services : str | Path, optional
515
+ Directory path for service classes.
516
+ views : str | Path, optional
517
+ Directory path for view templates.
518
+ lang : str | Path, optional
519
+ Directory path for language localization files.
520
+ assets : str | Path, optional
521
+ Directory path for static assets.
522
+ routes_web : str | Path, optional
523
+ File path for web routes definition.
524
+ routes_api : str | Path, optional
525
+ File path for API routes definition.
526
+ routes_console : str | Path, optional
527
+ File path for console routes definition.
528
+ routes_channels : str | Path, optional
529
+ File path for channel routes definition.
530
+ config : str | Path, optional
531
+ Directory path for configuration files.
532
+ migrations : str | Path, optional
533
+ Directory path for database migration files.
534
+ seeders : str | Path, optional
535
+ Directory path for database seeder files.
536
+ factories : str | Path, optional
537
+ Directory path for model factory files.
538
+ storage_logs : str | Path, optional
539
+ Directory path for log files.
540
+ storage_framework : str | Path, optional
541
+ Directory path for framework storage files.
542
+ storage_sessions : str | Path, optional
543
+ Directory path for session storage files.
544
+ storage_cache : str | Path, optional
545
+ Directory path for cache storage files.
546
+ storage_views : str | Path, optional
547
+ Directory path for compiled view cache files.
548
+
549
+ Returns
550
+ -------
551
+ IApplication
552
+ The application instance to enable method chaining.
258
553
  """
259
554
  pass
260
555
 
261
556
  @abstractmethod
262
557
  def loadPaths(self, paths: Paths | dict) -> 'IApplication':
263
558
  """
264
- Load the application paths configuration from a Paths instance or dictionary.
559
+ Load application paths configuration from a configuration object or dictionary.
560
+
561
+ Parameters
562
+ ----------
563
+ paths : Paths | dict
564
+ A Paths configuration object or dictionary containing application
565
+ directory paths to be loaded into the application.
566
+
567
+ Returns
568
+ -------
569
+ IApplication
570
+ The application instance to enable method chaining.
265
571
  """
266
572
  pass
267
573
 
268
574
  @abstractmethod
269
575
  def setConfigQueue(self, **queue_config) -> 'IApplication':
270
576
  """
271
- Set the queue configuration using keyword arguments.
577
+ Configure queue service settings using keyword arguments.
578
+
579
+ Parameters
580
+ ----------
581
+ **queue_config
582
+ Arbitrary keyword arguments representing queue service configuration
583
+ settings. Keys should match the expected queue parameter names.
584
+
585
+ Returns
586
+ -------
587
+ IApplication
588
+ The application instance to enable method chaining.
272
589
  """
273
590
  pass
274
591
 
275
592
  @abstractmethod
276
593
  def loadConfigQueue(self, queue: Queue | dict) -> 'IApplication':
277
594
  """
278
- Load the queue configuration from a Queue instance or dictionary.
595
+ Load queue configuration from a configuration object or dictionary.
596
+
597
+ Parameters
598
+ ----------
599
+ queue : Queue | dict
600
+ A Queue configuration object or dictionary containing queue service
601
+ settings to be loaded into the application.
602
+
603
+ Returns
604
+ -------
605
+ IApplication
606
+ The application instance to enable method chaining.
279
607
  """
280
608
  pass
281
609
 
282
610
  @abstractmethod
283
611
  def setConfigSession(self, **session_config) -> 'IApplication':
284
612
  """
285
- Set the session configuration using keyword arguments.
613
+ Configure session management settings using keyword arguments.
614
+
615
+ Parameters
616
+ ----------
617
+ **session_config
618
+ Arbitrary keyword arguments representing session management configuration
619
+ settings. Keys should match the expected session parameter names.
620
+
621
+ Returns
622
+ -------
623
+ IApplication
624
+ The application instance to enable method chaining.
286
625
  """
287
626
  pass
288
627
 
289
628
  @abstractmethod
290
629
  def loadConfigSession(self, session: Session | dict) -> 'IApplication':
291
630
  """
292
- Load the session configuration from a Session instance or dictionary.
631
+ Load session configuration from a configuration object or dictionary.
632
+
633
+ Parameters
634
+ ----------
635
+ session : Session | dict
636
+ A Session configuration object or dictionary containing session
637
+ management settings to be loaded into the application.
638
+
639
+ Returns
640
+ -------
641
+ IApplication
642
+ The application instance to enable method chaining.
293
643
  """
294
644
  pass
295
645
 
296
646
  @abstractmethod
297
647
  def setConfigTesting(self, **testing_config) -> 'IApplication':
298
648
  """
299
- Set the testing configuration using keyword arguments.
649
+ Configure testing environment settings using keyword arguments.
650
+
651
+ Parameters
652
+ ----------
653
+ **testing_config
654
+ Arbitrary keyword arguments representing testing configuration
655
+ settings. Keys should match the expected testing parameter names.
656
+
657
+ Returns
658
+ -------
659
+ IApplication
660
+ The application instance to enable method chaining.
300
661
  """
301
662
  pass
302
663
 
303
664
  @abstractmethod
304
665
  def loadConfigTesting(self, testing: Testing | dict) -> 'IApplication':
305
666
  """
306
- Load the testing configuration from a Testing instance or dictionary.
667
+ Load testing configuration from a configuration object or dictionary.
668
+
669
+ Parameters
670
+ ----------
671
+ testing : Testing | dict
672
+ A Testing configuration object or dictionary containing testing
673
+ environment settings to be loaded into the application.
674
+
675
+ Returns
676
+ -------
677
+ IApplication
678
+ The application instance to enable method chaining.
307
679
  """
308
680
  pass
309
681
 
310
682
  @abstractmethod
311
683
  def config(self, key: str = None, default: Any = None) -> Any:
312
684
  """
313
- Retrieve a configuration value using dot notation, or the entire configuration if no key is provided.
685
+ Retrieve configuration values using dot notation access.
686
+
687
+ This method provides access to the application's configuration system,
688
+ allowing retrieval of specific configuration values by key or the entire
689
+ configuration object when no key is specified.
314
690
 
315
691
  Parameters
316
692
  ----------
317
693
  key : str, optional
318
- The configuration key to retrieve.
694
+ The configuration key to retrieve using dot notation (e.g., 'database.host').
695
+ If None, returns the entire configuration object.
319
696
  default : Any, optional
320
- The default value to return if the key is not found.
697
+ The default value to return if the specified key is not found.
321
698
 
322
699
  Returns
323
700
  -------
324
701
  Any
325
- The configuration value or the default.
702
+ The configuration value associated with the key, the entire configuration
703
+ object if no key is provided, or the default value if the key is not found.
326
704
  """
327
705
  pass
328
706
 
329
707
  @abstractmethod
330
708
  def path(self, key: str = None, default: Any = None) -> Any:
331
709
  """
332
- Retrieve a path configuration value using dot notation, or the entire paths configuration if no key is provided.
710
+ Retrieve path configuration values using dot notation access.
711
+
712
+ This method provides access to the application's path configuration system,
713
+ allowing retrieval of specific path values by key or the entire paths
714
+ configuration when no key is specified.
333
715
 
334
716
  Parameters
335
717
  ----------
336
718
  key : str, optional
337
- The path key to retrieve.
719
+ The path configuration key to retrieve using dot notation (e.g., 'storage.logs').
720
+ If None, returns the entire paths configuration object.
338
721
  default : Any, optional
339
- The default value to return if the key is not found.
722
+ The default value to return if the specified key is not found.
340
723
 
341
724
  Returns
342
725
  -------
343
726
  Any
344
- The path value or the default.
727
+ The path value associated with the key, the entire paths configuration
728
+ object if no key is provided, or the default value if the key is not found.
345
729
  """
346
730
  pass
347
731
 
348
732
  @abstractmethod
349
733
  def create(self) -> 'IApplication':
350
734
  """
351
- Bootstrap the application, loading all necessary providers and kernels.
735
+ Bootstrap and initialize the application.
736
+
737
+ This method performs the complete application initialization process,
738
+ including loading and registering all configured service providers,
739
+ initializing kernels, and preparing the application for operation.
740
+ After calling this method, the application should be fully operational
741
+ and ready to handle requests or commands.
352
742
 
353
743
  Returns
354
744
  -------
355
745
  IApplication
356
- The initialized application instance.
746
+ The fully initialized application instance ready for operation.
357
747
  """
358
748
  pass