Add configuration rules, refactor settings management, and enhance import functionality
- Introduced a new configuration file `.cursorrules` to define coding standards, error handling, testing requirements, and project-specific guidelines. - Refactored `config.py` to implement a `Settings` dataclass for better management of environment variables, improving testability and maintainability. - Updated the import duty schedule handler to utilize session management with `session_scope`, ensuring proper database session handling. - Enhanced the import service to streamline the duty schedule import process, improving code organization and readability. - Added new service layer functions to encapsulate business logic related to group duty pinning and duty schedule imports. - Updated README documentation to reflect the new configuration structure and improved import functionality.
This commit is contained in:
144
.cursorrules
Normal file
144
.cursorrules
Normal file
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"general": {
|
||||
"coding_style": {
|
||||
"language": "Python",
|
||||
"use_strict": true,
|
||||
"indentation": "4 spaces",
|
||||
"max_line_length": 120,
|
||||
"comments": {
|
||||
"style": "# for single-line, ''' for multi-line",
|
||||
"require_comments": true
|
||||
}
|
||||
},
|
||||
|
||||
"naming_conventions": {
|
||||
"variables": "snake_case",
|
||||
"functions": "snake_case",
|
||||
"classes": "PascalCase",
|
||||
"interfaces": "PascalCase",
|
||||
"files": "snake_case"
|
||||
},
|
||||
|
||||
"error_handling": {
|
||||
"prefer_try_catch": true,
|
||||
"log_errors": true
|
||||
},
|
||||
|
||||
"testing": {
|
||||
"require_tests": true,
|
||||
"test_coverage": "80%",
|
||||
"test_types": ["unit", "integration"]
|
||||
},
|
||||
|
||||
"documentation": {
|
||||
"require_docs": true,
|
||||
"doc_tool": "docstrings",
|
||||
"style_guide": "Google Python Style Guide"
|
||||
},
|
||||
|
||||
"security": {
|
||||
"require_https": true,
|
||||
"sanitize_inputs": true,
|
||||
"validate_inputs": true,
|
||||
"use_env_vars": true
|
||||
},
|
||||
|
||||
"configuration_management": {
|
||||
"config_files": [".env"],
|
||||
"env_management": "python-dotenv",
|
||||
"secrets_management": "environment variables"
|
||||
},
|
||||
|
||||
"code_review": {
|
||||
"require_reviews": true,
|
||||
"review_tool": "Gitea Pull Requests",
|
||||
"review_criteria": ["functionality", "code quality", "security"]
|
||||
},
|
||||
|
||||
"version_control": {
|
||||
"system": "Git",
|
||||
"branching_strategy": "Gitea Flow",
|
||||
"commit_message_format": "Conventional Commits"
|
||||
},
|
||||
|
||||
"logging": {
|
||||
"logging_tool": "Python logging module",
|
||||
"log_levels": ["debug", "info", "warn", "error"],
|
||||
"log_retention_policy": "7 days"
|
||||
},
|
||||
|
||||
"monitoring": {
|
||||
"monitoring_tool": "Not specified",
|
||||
"metrics": ["file processing time", "classification accuracy", "error rate"]
|
||||
},
|
||||
|
||||
"dependency_management": {
|
||||
"package_manager": "pip",
|
||||
"versioning_strategy": "Semantic Versioning"
|
||||
},
|
||||
|
||||
"accessibility": {
|
||||
"standards": ["Not applicable"],
|
||||
"testing_tools": ["Not applicable"]
|
||||
},
|
||||
|
||||
"internationalization": {
|
||||
"i18n_tool": "Not applicable",
|
||||
"supported_languages": ["English, Russian"],
|
||||
"default_language": "Russian"
|
||||
},
|
||||
|
||||
"code_formatting": {
|
||||
"formatter": "Black",
|
||||
"linting_tool": "Pylint",
|
||||
"rules": ["PEP 8", "project-specific rules"]
|
||||
},
|
||||
|
||||
"architecture": {
|
||||
"patterns": ["Modular design"],
|
||||
"principles": ["Single Responsibility", "DRY"]
|
||||
}
|
||||
},
|
||||
|
||||
"project_specific": {
|
||||
"use_framework": "None",
|
||||
"styling": "Not applicable",
|
||||
"testing_framework": "pytest",
|
||||
"build_tool": "setuptools",
|
||||
|
||||
"deployment": {
|
||||
"environment": "Local machine",
|
||||
"automation": "Not specified",
|
||||
"strategy": "Manual deployment"
|
||||
},
|
||||
|
||||
"performance": {
|
||||
"benchmarking_tool": "Not specified",
|
||||
"performance_goals": {
|
||||
"response_time": "< 5 seconds per file",
|
||||
"throughput": "Not specified",
|
||||
"error_rate": "< 1%"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"context": {
|
||||
"codebase_overview": "Python-based telegram bot, for team duty shift calendar, and group reminder",
|
||||
|
||||
"coding_practices": {
|
||||
"modularity": true,
|
||||
"DRY_principle": true,
|
||||
"performance_optimization": true
|
||||
}
|
||||
},
|
||||
|
||||
"behavior": {
|
||||
"verbosity": {
|
||||
"level": 2,
|
||||
"range": [0, 3]
|
||||
},
|
||||
"handle_incomplete_tasks": "Provide partial solution and explain limitations",
|
||||
"ask_for_clarification": true,
|
||||
"communication_tone": "Professional and concise"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user