morphml 1.0.0__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 (159) hide show
  1. morphml-1.0.0/CHANGELOG.md +135 -0
  2. morphml-1.0.0/CONTRIBUTING.md +248 -0
  3. morphml-1.0.0/LICENSE +21 -0
  4. morphml-1.0.0/PKG-INFO +434 -0
  5. morphml-1.0.0/README.md +356 -0
  6. morphml-1.0.0/morphml/__init__.py +14 -0
  7. morphml-1.0.0/morphml/api/__init__.py +26 -0
  8. morphml-1.0.0/morphml/api/app.py +326 -0
  9. morphml-1.0.0/morphml/api/auth.py +193 -0
  10. morphml-1.0.0/morphml/api/client.py +338 -0
  11. morphml-1.0.0/morphml/api/models.py +132 -0
  12. morphml-1.0.0/morphml/api/rate_limit.py +192 -0
  13. morphml-1.0.0/morphml/benchmarking/__init__.py +36 -0
  14. morphml-1.0.0/morphml/benchmarking/comparison.py +430 -0
  15. morphml-1.0.0/morphml/benchmarks/__init__.py +56 -0
  16. morphml-1.0.0/morphml/benchmarks/comparator.py +409 -0
  17. morphml-1.0.0/morphml/benchmarks/datasets.py +280 -0
  18. morphml-1.0.0/morphml/benchmarks/metrics.py +199 -0
  19. morphml-1.0.0/morphml/benchmarks/openml_suite.py +201 -0
  20. morphml-1.0.0/morphml/benchmarks/problems.py +289 -0
  21. morphml-1.0.0/morphml/benchmarks/suite.py +318 -0
  22. morphml-1.0.0/morphml/cli/__init__.py +5 -0
  23. morphml-1.0.0/morphml/cli/commands/experiment.py +329 -0
  24. morphml-1.0.0/morphml/cli/main.py +457 -0
  25. morphml-1.0.0/morphml/cli/quickstart.py +312 -0
  26. morphml-1.0.0/morphml/config.py +278 -0
  27. morphml-1.0.0/morphml/constraints/__init__.py +19 -0
  28. morphml-1.0.0/morphml/constraints/handler.py +205 -0
  29. morphml-1.0.0/morphml/constraints/predicates.py +285 -0
  30. morphml-1.0.0/morphml/core/__init__.py +3 -0
  31. morphml-1.0.0/morphml/core/crossover.py +449 -0
  32. morphml-1.0.0/morphml/core/dsl/README.md +359 -0
  33. morphml-1.0.0/morphml/core/dsl/__init__.py +72 -0
  34. morphml-1.0.0/morphml/core/dsl/ast_nodes.py +364 -0
  35. morphml-1.0.0/morphml/core/dsl/compiler.py +318 -0
  36. morphml-1.0.0/morphml/core/dsl/layers.py +368 -0
  37. morphml-1.0.0/morphml/core/dsl/lexer.py +336 -0
  38. morphml-1.0.0/morphml/core/dsl/parser.py +455 -0
  39. morphml-1.0.0/morphml/core/dsl/search_space.py +386 -0
  40. morphml-1.0.0/morphml/core/dsl/syntax.py +199 -0
  41. morphml-1.0.0/morphml/core/dsl/type_system.py +361 -0
  42. morphml-1.0.0/morphml/core/dsl/validator.py +386 -0
  43. morphml-1.0.0/morphml/core/graph/__init__.py +40 -0
  44. morphml-1.0.0/morphml/core/graph/edge.py +124 -0
  45. morphml-1.0.0/morphml/core/graph/graph.py +507 -0
  46. morphml-1.0.0/morphml/core/graph/mutations.py +409 -0
  47. morphml-1.0.0/morphml/core/graph/node.py +196 -0
  48. morphml-1.0.0/morphml/core/graph/serialization.py +361 -0
  49. morphml-1.0.0/morphml/core/graph/visualization.py +431 -0
  50. morphml-1.0.0/morphml/core/objectives/__init__.py +20 -0
  51. morphml-1.0.0/morphml/core/search/__init__.py +33 -0
  52. morphml-1.0.0/morphml/core/search/individual.py +252 -0
  53. morphml-1.0.0/morphml/core/search/parameters.py +453 -0
  54. morphml-1.0.0/morphml/core/search/population.py +375 -0
  55. morphml-1.0.0/morphml/core/search/search_engine.py +340 -0
  56. morphml-1.0.0/morphml/distributed/__init__.py +76 -0
  57. morphml-1.0.0/morphml/distributed/fault_tolerance.py +497 -0
  58. morphml-1.0.0/morphml/distributed/health_monitor.py +348 -0
  59. morphml-1.0.0/morphml/distributed/master.py +709 -0
  60. morphml-1.0.0/morphml/distributed/proto/README.md +224 -0
  61. morphml-1.0.0/morphml/distributed/proto/__init__.py +74 -0
  62. morphml-1.0.0/morphml/distributed/proto/worker.proto +170 -0
  63. morphml-1.0.0/morphml/distributed/proto/worker_pb2.py +79 -0
  64. morphml-1.0.0/morphml/distributed/proto/worker_pb2_grpc.py +423 -0
  65. morphml-1.0.0/morphml/distributed/resource_manager.py +416 -0
  66. morphml-1.0.0/morphml/distributed/scheduler.py +567 -0
  67. morphml-1.0.0/morphml/distributed/storage/__init__.py +33 -0
  68. morphml-1.0.0/morphml/distributed/storage/artifacts.py +381 -0
  69. morphml-1.0.0/morphml/distributed/storage/cache.py +366 -0
  70. morphml-1.0.0/morphml/distributed/storage/checkpointing.py +329 -0
  71. morphml-1.0.0/morphml/distributed/storage/database.py +459 -0
  72. morphml-1.0.0/morphml/distributed/worker.py +549 -0
  73. morphml-1.0.0/morphml/evaluation/__init__.py +5 -0
  74. morphml-1.0.0/morphml/evaluation/heuristic.py +237 -0
  75. morphml-1.0.0/morphml/exceptions.py +55 -0
  76. morphml-1.0.0/morphml/execution/__init__.py +5 -0
  77. morphml-1.0.0/morphml/execution/local_executor.py +350 -0
  78. morphml-1.0.0/morphml/integrations/__init__.py +28 -0
  79. morphml-1.0.0/morphml/integrations/jax_adapter.py +206 -0
  80. morphml-1.0.0/morphml/integrations/pytorch_adapter.py +530 -0
  81. morphml-1.0.0/morphml/integrations/sklearn_adapter.py +206 -0
  82. morphml-1.0.0/morphml/integrations/tensorflow_adapter.py +230 -0
  83. morphml-1.0.0/morphml/logging_config.py +93 -0
  84. morphml-1.0.0/morphml/meta_learning/__init__.py +66 -0
  85. morphml-1.0.0/morphml/meta_learning/architecture_similarity.py +277 -0
  86. morphml-1.0.0/morphml/meta_learning/experiment_database.py +240 -0
  87. morphml-1.0.0/morphml/meta_learning/knowledge_base/__init__.py +19 -0
  88. morphml-1.0.0/morphml/meta_learning/knowledge_base/embedder.py +179 -0
  89. morphml-1.0.0/morphml/meta_learning/knowledge_base/knowledge_base.py +313 -0
  90. morphml-1.0.0/morphml/meta_learning/knowledge_base/meta_features.py +265 -0
  91. morphml-1.0.0/morphml/meta_learning/knowledge_base/vector_store.py +271 -0
  92. morphml-1.0.0/morphml/meta_learning/predictors/__init__.py +27 -0
  93. morphml-1.0.0/morphml/meta_learning/predictors/ensemble.py +221 -0
  94. morphml-1.0.0/morphml/meta_learning/predictors/gnn_predictor.py +552 -0
  95. morphml-1.0.0/morphml/meta_learning/predictors/learning_curve.py +231 -0
  96. morphml-1.0.0/morphml/meta_learning/predictors/proxy_metrics.py +261 -0
  97. morphml-1.0.0/morphml/meta_learning/strategy_evolution/__init__.py +27 -0
  98. morphml-1.0.0/morphml/meta_learning/strategy_evolution/adaptive_optimizer.py +226 -0
  99. morphml-1.0.0/morphml/meta_learning/strategy_evolution/bandit.py +276 -0
  100. morphml-1.0.0/morphml/meta_learning/strategy_evolution/portfolio.py +230 -0
  101. morphml-1.0.0/morphml/meta_learning/transfer.py +581 -0
  102. morphml-1.0.0/morphml/meta_learning/warm_start.py +286 -0
  103. morphml-1.0.0/morphml/optimizers/__init__.py +74 -0
  104. morphml-1.0.0/morphml/optimizers/adaptive_operators.py +399 -0
  105. morphml-1.0.0/morphml/optimizers/bayesian/__init__.py +52 -0
  106. morphml-1.0.0/morphml/optimizers/bayesian/acquisition.py +387 -0
  107. morphml-1.0.0/morphml/optimizers/bayesian/base.py +319 -0
  108. morphml-1.0.0/morphml/optimizers/bayesian/gaussian_process.py +635 -0
  109. morphml-1.0.0/morphml/optimizers/bayesian/smac.py +534 -0
  110. morphml-1.0.0/morphml/optimizers/bayesian/tpe.py +411 -0
  111. morphml-1.0.0/morphml/optimizers/differential_evolution.py +220 -0
  112. morphml-1.0.0/morphml/optimizers/evolutionary/__init__.py +61 -0
  113. morphml-1.0.0/morphml/optimizers/evolutionary/cma_es.py +416 -0
  114. morphml-1.0.0/morphml/optimizers/evolutionary/differential_evolution.py +556 -0
  115. morphml-1.0.0/morphml/optimizers/evolutionary/encoding.py +426 -0
  116. morphml-1.0.0/morphml/optimizers/evolutionary/particle_swarm.py +449 -0
  117. morphml-1.0.0/morphml/optimizers/genetic_algorithm.py +486 -0
  118. morphml-1.0.0/morphml/optimizers/gradient_based/__init__.py +22 -0
  119. morphml-1.0.0/morphml/optimizers/gradient_based/darts.py +550 -0
  120. morphml-1.0.0/morphml/optimizers/gradient_based/enas.py +585 -0
  121. morphml-1.0.0/morphml/optimizers/gradient_based/operations.py +474 -0
  122. morphml-1.0.0/morphml/optimizers/gradient_based/utils.py +601 -0
  123. morphml-1.0.0/morphml/optimizers/hill_climbing.py +169 -0
  124. morphml-1.0.0/morphml/optimizers/multi_objective/__init__.py +56 -0
  125. morphml-1.0.0/morphml/optimizers/multi_objective/indicators.py +504 -0
  126. morphml-1.0.0/morphml/optimizers/multi_objective/nsga2.py +647 -0
  127. morphml-1.0.0/morphml/optimizers/multi_objective/visualization.py +427 -0
  128. morphml-1.0.0/morphml/optimizers/nsga2.py +308 -0
  129. morphml-1.0.0/morphml/optimizers/random_search.py +172 -0
  130. morphml-1.0.0/morphml/optimizers/simulated_annealing.py +181 -0
  131. morphml-1.0.0/morphml/plugins/__init__.py +35 -0
  132. morphml-1.0.0/morphml/plugins/custom_evaluator_example.py +81 -0
  133. morphml-1.0.0/morphml/plugins/custom_optimizer_example.py +63 -0
  134. morphml-1.0.0/morphml/plugins/plugin_system.py +454 -0
  135. morphml-1.0.0/morphml/reports/__init__.py +30 -0
  136. morphml-1.0.0/morphml/reports/generator.py +362 -0
  137. morphml-1.0.0/morphml/tracking/__init__.py +7 -0
  138. morphml-1.0.0/morphml/tracking/experiment.py +309 -0
  139. morphml-1.0.0/morphml/tracking/logger.py +301 -0
  140. morphml-1.0.0/morphml/tracking/reporter.py +357 -0
  141. morphml-1.0.0/morphml/utils/__init__.py +6 -0
  142. morphml-1.0.0/morphml/utils/checkpoint.py +189 -0
  143. morphml-1.0.0/morphml/utils/comparison.py +390 -0
  144. morphml-1.0.0/morphml/utils/export.py +407 -0
  145. morphml-1.0.0/morphml/utils/progress.py +392 -0
  146. morphml-1.0.0/morphml/utils/validation.py +392 -0
  147. morphml-1.0.0/morphml/version.py +7 -0
  148. morphml-1.0.0/morphml/visualization/__init__.py +50 -0
  149. morphml-1.0.0/morphml/visualization/analytics.py +423 -0
  150. morphml-1.0.0/morphml/visualization/architecture_diagrams.py +353 -0
  151. morphml-1.0.0/morphml/visualization/architecture_plot.py +223 -0
  152. morphml-1.0.0/morphml/visualization/convergence_plot.py +174 -0
  153. morphml-1.0.0/morphml/visualization/crossover_viz.py +386 -0
  154. morphml-1.0.0/morphml/visualization/graph_viz.py +338 -0
  155. morphml-1.0.0/morphml/visualization/pareto_plot.py +149 -0
  156. morphml-1.0.0/morphml/visualization/plotly_dashboards.py +422 -0
  157. morphml-1.0.0/morphml/visualization/population.py +309 -0
  158. morphml-1.0.0/morphml/visualization/progress.py +260 -0
  159. morphml-1.0.0/pyproject.toml +232 -0
@@ -0,0 +1,135 @@
1
+ # Changelog
2
+
3
+ All notable changes to MorphML will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.0] - 2024-11-11
9
+
10
+ ### 🎉 First Stable Release
11
+
12
+ MorphML v1.0.0 marks the first production-ready release with complete ecosystem features.
13
+
14
+ ### Added
15
+
16
+ #### Complete Ecosystem (Phase 5)
17
+ - Web dashboard with real-time monitoring (React + FastAPI)
18
+ - REST API with JWT authentication and rate limiting
19
+ - Framework integrations (PyTorch, TensorFlow, JAX, Scikit-learn)
20
+ - Interactive Plotly dashboards for visualization
21
+ - Professional architecture diagram generator with Graphviz
22
+ - Performance analytics and statistical analysis
23
+ - Extensible plugin system
24
+ - Enhanced CLI with interactive commands
25
+ - Python API client library
26
+ - Complete documentation site with MkDocs Material
27
+
28
+ #### Production Features
29
+ - Automatic shape inference for all frameworks
30
+ - GPU acceleration support
31
+ - Multiple installation options with extras
32
+ - Comprehensive error handling
33
+ - Type hints throughout codebase
34
+ - PyPI publishing configuration
35
+
36
+ ### Changed
37
+ - Updated authors information (Vedanth & Eshan Roy)
38
+ - Improved documentation structure
39
+ - Enhanced code organization
40
+
41
+ ### Infrastructure
42
+ - Added publish.sh for automated PyPI publishing
43
+ - Added MANIFEST.in for package data
44
+ - Added setup.py for backwards compatibility
45
+ - Complete PyPI metadata in pyproject.toml
46
+
47
+ ---
48
+
49
+ ## [0.1.0] - 2024-11-11
50
+
51
+ ### Initial Beta Release
52
+
53
+ ### Added
54
+
55
+ #### Core Features (Phase 1)
56
+ - Neural Architecture Search framework with pythonic DSL
57
+ - `Layer.flatten()` method for CNN-to-Dense transitions
58
+ - Genetic Algorithm optimizer with true crossover implementation
59
+ - Random Search and Hill Climbing optimizers
60
+ - Simulated Annealing optimizer
61
+ - Differential Evolution optimizer
62
+ - `ModelGraph` class for architecture representation
63
+ - `SearchSpace` class for defining search spaces
64
+ - `HeuristicEvaluator` for fast architecture assessment
65
+ - Constraint system (MaxParameters, MinParameters, Depth, Width)
66
+ - Architecture export to PyTorch and Keras code
67
+ - Checkpointing system for long-running searches
68
+
69
+ #### Enhanced Features (Phase 2)
70
+ - Automatic shape inference in code export
71
+ - Enhanced constraint violation messages with detailed reporting
72
+ - Comprehensive DSL layer documentation
73
+ - Integrated crossover operators in GeneticAlgorithm
74
+ - Support for all layer types in exporter (avgpool, batchnorm, flatten)
75
+ - Import aliases for backward compatibility
76
+
77
+ #### Advanced Features (Phase 3)
78
+ - Crossover visualization utilities
79
+ - Adaptive crossover and mutation rate managers
80
+ - Custom layer handler support in exporter
81
+ - Flatten layer examples and tutorials
82
+ - Advanced features showcase examples
83
+
84
+ #### Quality of Life (Phase 4)
85
+ - Progress tracking system with rich output
86
+ - Quick-start CLI helper with templates
87
+ - Architecture comparison utilities
88
+ - Search space validation system
89
+ - Updated README with all features
90
+
91
+ #### Ecosystem (Phase 5)
92
+ - REST API foundation with FastAPI
93
+ - Web dashboard with React frontend
94
+ - Real-time monitoring via WebSocket
95
+ - Experiment management interface
96
+ - Interactive convergence visualization
97
+ - Architecture graph viewer
98
+
99
+ ### Documentation
100
+ - Complete README with examples
101
+ - API documentation
102
+ - DSL layer reference guide
103
+ - Contributing guidelines
104
+ - Phase summaries (P1-P5)
105
+ - Dashboard setup guide
106
+
107
+ ### Infrastructure
108
+ - Poetry-based dependency management
109
+ - Pre-commit hooks
110
+ - Black code formatting
111
+ - Ruff linting
112
+ - MyPy type checking
113
+ - Pytest test suite
114
+ - PyPI packaging configuration
115
+
116
+ ## [Unreleased]
117
+
118
+ ### Planned
119
+ - Database persistence for experiments
120
+ - Authentication system for dashboard
121
+ - PyTorch training integration
122
+ - TensorFlow/Keras integration
123
+ - JAX/Flax integration
124
+ - Plugin system
125
+ - Comprehensive documentation site
126
+ - Docker images
127
+ - Kubernetes deployment configs
128
+
129
+ ---
130
+
131
+ ## Version History
132
+
133
+ - **0.1.0** (2024-11-11) - Initial release with core NAS functionality, web dashboard, and comprehensive tooling
134
+
135
+ [0.1.0]: https://github.com/TIVerse/MorphML/releases/tag/v0.1.0
@@ -0,0 +1,248 @@
1
+ # Contributing to MorphML
2
+
3
+ Thank you for your interest in contributing to MorphML! This document provides guidelines and instructions for contributing to the project.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Code of Conduct](#code-of-conduct)
8
+ - [Getting Started](#getting-started)
9
+ - [Development Setup](#development-setup)
10
+ - [How to Contribute](#how-to-contribute)
11
+ - [Coding Standards](#coding-standards)
12
+ - [Testing](#testing)
13
+ - [Documentation](#documentation)
14
+ - [Pull Request Process](#pull-request-process)
15
+ - [Reporting Bugs](#reporting-bugs)
16
+ - [Suggesting Enhancements](#suggesting-enhancements)
17
+
18
+ ## Code of Conduct
19
+
20
+ This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
21
+
22
+ ## Getting Started
23
+
24
+ 1. Fork the repository on GitHub
25
+ 2. Clone your fork locally
26
+ 3. Set up the development environment
27
+ 4. Create a new branch for your contribution
28
+ 5. Make your changes
29
+ 6. Submit a pull request
30
+
31
+ ## Development Setup
32
+
33
+ MorphML uses Poetry for dependency management. To set up your development environment:
34
+
35
+ ```bash
36
+ # Clone the repository
37
+ git clone https://github.com/TIVerse/MorphML.git
38
+ cd MorphML
39
+
40
+ # Install Poetry (if not already installed)
41
+ curl -sSL https://install.python-poetry.org | python3 -
42
+
43
+ # Install dependencies
44
+ poetry install
45
+
46
+ # Activate the virtual environment
47
+ poetry shell
48
+ ```
49
+
50
+ ## How to Contribute
51
+
52
+ ### Types of Contributions
53
+
54
+ - **Bug fixes**: Fix issues reported in the issue tracker
55
+ - **Features**: Implement new features or improve existing ones
56
+ - **Documentation**: Improve or add documentation
57
+ - **Tests**: Add or improve test coverage
58
+ - **Examples**: Add examples demonstrating MorphML usage
59
+
60
+ ### Before Starting
61
+
62
+ 1. Check the [issue tracker](https://github.com/TIVerse/MorphML/issues) for existing issues
63
+ 2. If you're planning a major change, open an issue first to discuss it
64
+ 3. Make sure your contribution aligns with the project's goals
65
+
66
+ ## Coding Standards
67
+
68
+ ### Python Style
69
+
70
+ - Follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) style guide
71
+ - Use type hints for function signatures
72
+ - Write descriptive docstrings (Google style)
73
+ - Keep functions focused and concise
74
+
75
+ ### Code Quality Tools
76
+
77
+ We use several tools to maintain code quality:
78
+
79
+ - **Ruff**: For linting and formatting
80
+ - **MyPy**: For static type checking
81
+ - **Pytest**: For testing
82
+
83
+ Run these checks before submitting:
84
+
85
+ ```bash
86
+ # Format code
87
+ poetry run ruff format .
88
+
89
+ # Lint code
90
+ poetry run ruff check .
91
+
92
+ # Type check
93
+ poetry run mypy morphml
94
+
95
+ # Run tests
96
+ poetry run pytest
97
+ ```
98
+
99
+ ### Commit Messages
100
+
101
+ - Use clear and descriptive commit messages
102
+ - Start with a verb in the imperative mood (e.g., "Add", "Fix", "Update")
103
+ - Keep the first line under 72 characters
104
+ - Reference relevant issues (e.g., "Fixes #123")
105
+
106
+ Example:
107
+ ```
108
+ Add support for custom loss functions
109
+
110
+ - Implement LossFunction base class
111
+ - Add validation for loss function parameters
112
+ - Update documentation with examples
113
+
114
+ Fixes #123
115
+ ```
116
+
117
+ ## Testing
118
+
119
+ All contributions should include appropriate tests:
120
+
121
+ - **Unit tests**: Test individual functions and classes
122
+ - **Integration tests**: Test interactions between components
123
+ - **Regression tests**: Ensure bugs don't reappear
124
+
125
+ ### Running Tests
126
+
127
+ ```bash
128
+ # Run all tests
129
+ poetry run pytest
130
+
131
+ # Run with coverage
132
+ poetry run pytest --cov=morphml --cov-report=html
133
+
134
+ # Run specific test file
135
+ poetry run pytest tests/test_phase1_syntax.py
136
+
137
+ # Run tests matching a pattern
138
+ poetry run pytest -k "test_optimizer"
139
+ ```
140
+
141
+ ## Documentation
142
+
143
+ Good documentation is crucial:
144
+
145
+ - Update docstrings when changing function signatures
146
+ - Add examples for new features
147
+ - Update README.md if adding significant functionality
148
+ - Keep documentation clear and concise
149
+
150
+ ### Docstring Format
151
+
152
+ We use Google-style docstrings:
153
+
154
+ ```python
155
+ def function_name(param1: str, param2: int) -> bool:
156
+ """Short description of the function.
157
+
158
+ Longer description with more details about what the function
159
+ does and how it works.
160
+
161
+ Args:
162
+ param1: Description of param1
163
+ param2: Description of param2
164
+
165
+ Returns:
166
+ Description of return value
167
+
168
+ Raises:
169
+ ValueError: When param2 is negative
170
+
171
+ Examples:
172
+ >>> result = function_name("test", 42)
173
+ >>> print(result)
174
+ True
175
+ """
176
+ pass
177
+ ```
178
+
179
+ ## Pull Request Process
180
+
181
+ 1. **Update your branch**: Ensure your branch is up to date with main
182
+ ```bash
183
+ git checkout main
184
+ git pull upstream main
185
+ git checkout your-branch
186
+ git rebase main
187
+ ```
188
+
189
+ 2. **Run all tests and checks**: Make sure everything passes
190
+ ```bash
191
+ poetry run pytest
192
+ poetry run ruff check .
193
+ poetry run mypy morphml
194
+ ```
195
+
196
+ 3. **Update documentation**: If needed, update docs and examples
197
+
198
+ 4. **Create pull request**:
199
+ - Use a clear and descriptive title
200
+ - Fill out the PR template completely
201
+ - Link related issues
202
+ - Add screenshots/examples if relevant
203
+
204
+ 5. **Code review**:
205
+ - Address review comments promptly
206
+ - Be open to feedback and suggestions
207
+ - Update your PR as needed
208
+
209
+ 6. **Merge**: Once approved, a maintainer will merge your PR
210
+
211
+ ## Reporting Bugs
212
+
213
+ When reporting bugs, please use the bug report template and include:
214
+
215
+ - **Description**: Clear description of the bug
216
+ - **Steps to reproduce**: Detailed steps to reproduce the issue
217
+ - **Expected behavior**: What you expected to happen
218
+ - **Actual behavior**: What actually happened
219
+ - **Environment**: Python version, OS, MorphML version
220
+ - **Code sample**: Minimal code to reproduce the issue
221
+ - **Error messages**: Full error messages and stack traces
222
+
223
+ ## Suggesting Enhancements
224
+
225
+ When suggesting enhancements, please:
226
+
227
+ - Use the feature request template
228
+ - Explain the motivation and use case
229
+ - Provide examples of how it would be used
230
+ - Consider backwards compatibility
231
+ - Discuss alternative approaches
232
+
233
+ ## Questions?
234
+
235
+ If you have questions:
236
+
237
+ - Check the [documentation](docs/)
238
+ - Search existing [issues](https://github.com/TIVerse/MorphML/issues)
239
+ - Ask in discussions or open a new issue
240
+
241
+ ## Recognition
242
+
243
+ Contributors will be:
244
+ - Listed in the project's contributors page
245
+ - Acknowledged in release notes for significant contributions
246
+ - Part of a growing community building the future of ML frameworks
247
+
248
+ Thank you for contributing to MorphML! 🎉
morphml-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 TIVerse
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.