@@ -4,13 +4,31 @@ build-backend = "setuptools.build_meta"
44
55[project ]
66name = " episodicrag"
7- version = " 3.0 .0"
7+ version = " 3.2 .0"
88description = " EpisodicRAG - Hierarchical digest generation for long-term memory"
99requires-python = " >=3.10"
10+ license = {text = " MIT" }
11+ authors = [
12+ {name = " Weave" }
13+ ]
14+ readme = " README.md"
15+ classifiers = [
16+ " Development Status :: 4 - Beta" ,
17+ " Intended Audience :: Developers" ,
18+ " License :: OSI Approved :: MIT License" ,
19+ " Programming Language :: Python :: 3" ,
20+ " Programming Language :: Python :: 3.10" ,
21+ " Programming Language :: Python :: 3.11" ,
22+ " Programming Language :: Python :: 3.12" ,
23+ ]
1024
1125# Runtime dependencies (none - uses Python standard library only)
1226dependencies = []
1327
28+ [project .urls ]
29+ Homepage = " https://github.com/Bizuayeu/Plugins-Weave"
30+ Repository = " https://github.com/Bizuayeu/Plugins-Weave"
31+
1432[tool .setuptools .packages .find ]
1533where = [" ." ]
1634include = [" scripts*" ]
@@ -110,26 +128,37 @@ known-first-party = ["domain", "application", "infrastructure", "interfaces", "c
110128known-third-party = [" pytest" , " hypothesis" ]
111129
112130# =============================================================================
113- # Mypy Configuration
131+ # Mypy Configuration - Strict Mode for 100% Type Coverage
114132# =============================================================================
115133
116134[tool .mypy ]
117135python_version = " 3.10"
118136mypy_path = " scripts"
137+
138+ # Strict mode settings (equivalent to --strict flag)
139+ strict = true
119140warn_redundant_casts = true
120141warn_unused_configs = true
121142warn_no_return = true
122- check_untyped_defs = true
143+ warn_return_any = true
144+ warn_unreachable = true
145+
146+ # Allow Any for valid use cases (validation functions, logging)
147+ disallow_any_generics = false
148+
149+ # Import settings
123150ignore_missing_imports = true
151+
152+ # Exclude test layer (optional: can be enabled later)
124153exclude = [" scripts/test/" ]
125154
126- # Domain layer: strict mode ( already compliant)
155+ # Domain layer: already 100% compliant
127156[[tool .mypy .overrides ]]
128157module = " domain.*"
129158disallow_untyped_defs = true
130159disallow_incomplete_defs = true
131160
132- # Application layer: enable strict typing for all modules
161+ # Application layer: 100% type coverage
133162[[tool .mypy .overrides ]]
134163module = [
135164 # Package __init__.py files
@@ -156,8 +185,9 @@ module = [
156185 " application.tracking.digest_times" ,
157186]
158187disallow_untyped_defs = true
188+ disallow_incomplete_defs = true
159189
160- # Config layer: enable strict typing for all modules
190+ # Config layer: 100% type coverage
161191[[tool .mypy .overrides ]]
162192module = [
163193 " config" ,
@@ -169,27 +199,46 @@ module = [
169199 " config.path_resolver" ,
170200 " config.plugin_root_resolver" ,
171201 " config.threshold_provider" ,
202+ " config.source_path_resolver" ,
203+ " config.cli" ,
204+ " config.validation" ,
205+ " config.config_constants" ,
172206]
173207disallow_untyped_defs = true
208+ disallow_incomplete_defs = true
174209
175- # Infrastructure layer: enable strict typing for all modules
210+ # Infrastructure layer: 100% type coverage
176211[[tool .mypy .overrides ]]
177212module = [
213+ " infrastructure" ,
178214 " infrastructure.json_repository" ,
215+ " infrastructure.json_repository.operations" ,
216+ " infrastructure.json_repository.load_strategy" ,
217+ " infrastructure.json_repository.chained_loader" ,
179218 " infrastructure.file_scanner" ,
180219 " infrastructure.logging_config" ,
181220 " infrastructure.user_interaction" ,
221+ " infrastructure.structured_logging" ,
222+ " infrastructure.error_handling" ,
182223]
183224disallow_untyped_defs = true
225+ disallow_incomplete_defs = true
184226
185- # Interfaces layer: enable strict typing for all modules
227+ # Interfaces layer: 100% type coverage
186228[[tool .mypy .overrides ]]
187229module = [
230+ " interfaces" ,
231+ " interfaces.provisional" ,
188232 " interfaces.provisional.*" ,
189233 " interfaces.finalize_from_shadow" ,
190234 " interfaces.interface_helpers" ,
191235 " interfaces.save_provisional_digest" ,
192236]
193237disallow_untyped_defs = true
238+ disallow_incomplete_defs = true
194239
195- # Test layer: excluded via exclude = ["scripts/test/"] in [tool.mypy]
240+ # Note: Test layer excluded via exclude = ["scripts/test/"]
241+ # To enable strict typing for tests, remove the exclude and add:
242+ # [[tool.mypy.overrides]]
243+ # module = "test.*"
244+ # disallow_untyped_defs = true
0 commit comments