investing-algorithm-framework 2.5.2__tar.gz → 2.5.3__tar.gz

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 (132) hide show
  1. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/PKG-INFO +1 -1
  2. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +12 -5
  3. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/backtesting/backtest_service.py +10 -1
  4. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/pyproject.toml +1 -1
  5. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/LICENSE +0 -0
  6. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/README.md +0 -0
  7. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/__init__.py +0 -0
  8. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/__init__.py +0 -0
  9. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/algorithm.py +0 -0
  10. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/app.py +0 -0
  11. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
  12. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
  13. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
  14. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
  15. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
  16. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
  17. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/strategy.py +0 -0
  18. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/task.py +0 -0
  19. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/__init__.py +0 -0
  20. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
  21. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
  22. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
  23. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
  24. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/create_app.py +0 -0
  25. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/error_handler.py +0 -0
  26. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/responses.py +0 -0
  27. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
  28. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
  29. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
  30. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
  31. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
  32. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
  33. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/create_app.py +0 -0
  34. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/dependency_container.py +0 -0
  35. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/__init__.py +0 -0
  36. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/config.py +0 -0
  37. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/constants.py +0 -0
  38. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/data_structures.py +0 -0
  39. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
  40. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/exceptions.py +0 -0
  41. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/__init__.py +0 -0
  42. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
  43. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
  44. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/base_model.py +0 -0
  45. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
  46. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
  47. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
  48. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/order/order.py +0 -0
  49. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/order/order_fee.py +0 -0
  50. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
  51. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
  52. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
  53. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
  54. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
  55. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
  56. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
  57. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
  58. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/position/position.py +0 -0
  59. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
  60. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
  61. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
  62. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
  63. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
  64. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/trade.py +0 -0
  65. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
  66. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
  67. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/services/__init__.py +0 -0
  68. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/services/market_data_sources.py +0 -0
  69. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/services/market_service.py +0 -0
  70. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/singleton.py +0 -0
  71. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
  72. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/strategy.py +0 -0
  73. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
  74. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/backtesting.py +0 -0
  75. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/csv.py +0 -0
  76. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/random.py +0 -0
  77. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
  78. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
  79. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
  80. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
  81. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
  82. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
  83. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
  84. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
  85. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
  86. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +0 -0
  87. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +0 -0
  88. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
  89. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
  90. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
  91. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/order/order_fee.py +0 -0
  92. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
  93. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py +0 -0
  94. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
  95. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
  96. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
  97. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
  98. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
  99. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/order_fee_repository.py +0 -0
  100. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
  101. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
  102. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
  103. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
  104. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
  105. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
  106. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
  107. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
  108. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +0 -0
  109. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
  110. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
  111. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
  112. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/__init__.py +0 -0
  113. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
  114. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/configuration_service.py +0 -0
  115. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/market_credential_service.py +0 -0
  116. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
  117. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
  118. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -0
  119. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
  120. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
  121. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
  122. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/portfolio_configuration_service.py +0 -0
  123. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/portfolio_service/__init__.py +0 -0
  124. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/portfolio_service/backtest_portfolio_service.py +0 -0
  125. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/portfolio_service/portfolio_service.py +0 -0
  126. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/portfolio_snapshot_service.py +0 -0
  127. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/position_service.py +0 -0
  128. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
  129. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/repository_service.py +0 -0
  130. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
  131. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
  132. {investing_algorithm_framework-2.5.2 → investing_algorithm_framework-2.5.3}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: investing-algorithm-framework
3
- Version: 2.5.2
3
+ Version: 2.5.3
4
4
  Summary: A framework for creating trading bots
5
5
  Author: MDUYN
6
6
  Requires-Python: >=3.8.1,<4.0.0
@@ -22,11 +22,18 @@ class BacktestReportWriterService:
22
22
  if not os.path.exists(output_directory):
23
23
  os.makedirs(output_directory)
24
24
 
25
- csv_file_path = os.path.join(
26
- output_directory,
27
- f"report_{report.identifier}_"
28
- f"{report.created_at.strftime(DATETIME_FORMAT)}.csv"
29
- )
25
+ if report.identifier is None:
26
+ csv_file_path = os.path.join(
27
+ output_directory,
28
+ f"report_"
29
+ f"{report.created_at.strftime(DATETIME_FORMAT)}.csv"
30
+ )
31
+ else:
32
+ csv_file_path = os.path.join(
33
+ output_directory,
34
+ f"report_{report.identifier}_"
35
+ f"{report.created_at.strftime(DATETIME_FORMAT)}.csv"
36
+ )
30
37
  report_dict = report.to_dict()
31
38
 
32
39
  with open(csv_file_path, 'w', newline='') as csv_file:
@@ -184,7 +184,16 @@ class BacktestService:
184
184
  """
185
185
  for portfolio in self._portfolio_repository.get_all():
186
186
  ids = [strategy.strategy_id for strategy in algorithm.strategies]
187
- identifier = '_'.join(ids)
187
+
188
+ # Check if strategy_id is None
189
+ if None in ids:
190
+ # Remove None from ids
191
+ ids = [x for x in ids if x is not None]
192
+
193
+ if len(ids) != 0:
194
+ identifier = '_'.join(ids)
195
+ else:
196
+ identifier = None
188
197
 
189
198
  backtest_profile = BacktestReport(
190
199
  identifier=identifier,
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "investing-algorithm-framework"
3
- version = "v2.5.2"
3
+ version = "v2.5.3"
4
4
  description = "A framework for creating trading bots"
5
5
  authors = ["MDUYN"]
6
6
  readme = "README.md"