| Name | snakers JSON |
| Version |
0.1.6
JSON |
| download |
| home_page | None |
| Summary | Interactive Python exercises for upcoming Junior learners - Learn Python by fixing code! |
| upload_time | 2025-08-27 11:00:06 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.8 |
| license | None |
| keywords |
python
learning
exercises
tutorial
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Snakers 🐍
Interactive Python exercises with Ruff linting - Learn Python by fixing and completing code!
## Installation
```bash
# Initialize a virtual enviorentment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install the package
python3 -m pip install snakers
```
## Usage
### Initialize the exercises
```bash
# Create exercises directory and files in current directory
snakers init
# Create in a specific directory
snakers init --target /path/to/directory
```
### Run the next exercise
```bash
# If installed via pip
snakers run
# Or using the module
python -m snakers run
```
### Run a specific exercise
```bash
snakers run 01_variables/01_basic_types
```
### Watch mode (auto-check on file changes)
```bash
snakers watch
```
### List all exercises
```bash
snakers list
```
### Reset progress
```bash
snakers reset
```
### Manage solutions
```bash
# List all saved solutions
snakers solutions list
# View a specific solution
snakers solutions show 01_basic_types
# Reset all solutions
snakers solutions reset
```
### Get help
```bash
# General help
snakers help
# Topic-specific help
snakers help init
snakers help solutions
```
## Exercise Structure
Exercises are organized in the `exercises/` directory by topic:
- `00_intro/` - Introduction and environment setup
- `01_variables/` - Variables, types, basic operations
- `02_collections/` - Lists, dictionaries, tuples, sets
- `03_functions/` - Function definitions, parameters, returns
- `04_control_flow/` - Conditionals, loops, flow control
- `05_exceptions/` - Error handling and exceptions
- `06_classes/` - Object-oriented programming
- `07_functional/` - Functional programming concepts
- `08_file_io/` - File operations and data formats
- `09_modules_packages/` - Imports, packages, modules
- `10_advanced/` - Decorators, generators, advanced concepts
- `11_testing/` - Unit testing and test-driven development
- `12_concurrency/` - Threading, multiprocessing, async programming
- `13_data/` - Data processing and analysis
- `14_web/` - HTTP clients and web programming
- `15_stdlib/` - Standard library modules
- `16_project_management/` - Virtual environments, packaging, project structure
- `17_design_patterns/` - Common design patterns
- `18_regex/` - Regular expressions
Each exercise file contains:
- Learning objectives
- TODO items to complete
- Hints and tips
- Test cases
## How It Works
1. **Find TODOs**: Each exercise has `# TODO` comments marking what you need to implement
2. **Fix the code**: Replace TODOs with working Python code
3. **Pass Ruff checks**: Your code must pass Ruff linting (style, formatting, basic errors)
4. **Run successfully**: The exercise file must execute without runtime errors
5. **Progress tracking**: Completed exercises are automatically tracked
## Ruff Configuration
Snakers uses Ruff for:
- Code formatting
- Style checking (PEP 8)
- Error detection
- Import sorting
- Modern Python practices
## Contributing
1. Fork the repository
2. Add new exercises in the appropriate topic directory
3. Follow the existing exercise format
4. Test your exercises
5. Submit a pull request
## Exercise Template
```python
"""
Exercise N: Title
Description of what the student will learn.
Tasks:
1. Task description
2. Another task
Hints:
- Helpful hint
- Another hint
"""
# TODO: Implementation task
def example_function():
# TODO: Implement this function
pass
if __name__ == "__main__":
# Test code here
pass
```
Happy coding! 🐍✨
Raw data
{
"_id": null,
"home_page": null,
"name": "snakers",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "python, learning, exercises, tutorial",
"author": null,
"author_email": "Arman Rostami <armanrostami@outlook.com>",
"download_url": "https://files.pythonhosted.org/packages/d3/5a/b718120256e7cde83e5fe79da22c38b26018bf40fae16295e9d977d39be2/snakers-0.1.6.tar.gz",
"platform": null,
"description": "# Snakers \ud83d\udc0d\n\nInteractive Python exercises with Ruff linting - Learn Python by fixing and completing code!\n\n## Installation\n\n```bash\n# Initialize a virtual enviorentment\npython3 -m venv .venv\nsource .venv/bin/activate # On Windows: .venv\\Scripts\\activate\n\n# Install the package\npython3 -m pip install snakers\n```\n\n## Usage\n\n### Initialize the exercises\n```bash\n# Create exercises directory and files in current directory\nsnakers init\n\n# Create in a specific directory\nsnakers init --target /path/to/directory\n```\n\n### Run the next exercise\n```bash\n# If installed via pip\nsnakers run\n\n# Or using the module\npython -m snakers run\n```\n\n### Run a specific exercise\n```bash\nsnakers run 01_variables/01_basic_types\n```\n\n### Watch mode (auto-check on file changes)\n```bash\nsnakers watch\n```\n\n### List all exercises\n```bash\nsnakers list\n```\n\n### Reset progress\n```bash\nsnakers reset\n```\n\n### Manage solutions\n```bash\n# List all saved solutions\nsnakers solutions list\n\n# View a specific solution\nsnakers solutions show 01_basic_types\n\n# Reset all solutions\nsnakers solutions reset\n```\n\n### Get help\n```bash\n# General help\nsnakers help\n\n# Topic-specific help\nsnakers help init\nsnakers help solutions\n```\n\n## Exercise Structure\n\nExercises are organized in the `exercises/` directory by topic:\n- `00_intro/` - Introduction and environment setup\n- `01_variables/` - Variables, types, basic operations\n- `02_collections/` - Lists, dictionaries, tuples, sets\n- `03_functions/` - Function definitions, parameters, returns\n- `04_control_flow/` - Conditionals, loops, flow control\n- `05_exceptions/` - Error handling and exceptions\n- `06_classes/` - Object-oriented programming\n- `07_functional/` - Functional programming concepts\n- `08_file_io/` - File operations and data formats\n- `09_modules_packages/` - Imports, packages, modules\n- `10_advanced/` - Decorators, generators, advanced concepts\n- `11_testing/` - Unit testing and test-driven development\n- `12_concurrency/` - Threading, multiprocessing, async programming\n- `13_data/` - Data processing and analysis\n- `14_web/` - HTTP clients and web programming\n- `15_stdlib/` - Standard library modules\n- `16_project_management/` - Virtual environments, packaging, project structure\n- `17_design_patterns/` - Common design patterns\n- `18_regex/` - Regular expressions\n\nEach exercise file contains:\n- Learning objectives\n- TODO items to complete\n- Hints and tips\n- Test cases\n\n## How It Works\n\n1. **Find TODOs**: Each exercise has `# TODO` comments marking what you need to implement\n2. **Fix the code**: Replace TODOs with working Python code\n3. **Pass Ruff checks**: Your code must pass Ruff linting (style, formatting, basic errors)\n4. **Run successfully**: The exercise file must execute without runtime errors\n5. **Progress tracking**: Completed exercises are automatically tracked\n\n## Ruff Configuration\n\nSnakers uses Ruff for:\n- Code formatting\n- Style checking (PEP 8)\n- Error detection\n- Import sorting\n- Modern Python practices\n\n## Contributing\n\n1. Fork the repository\n2. Add new exercises in the appropriate topic directory\n3. Follow the existing exercise format\n4. Test your exercises\n5. Submit a pull request\n\n## Exercise Template\n\n```python\n\"\"\"\nExercise N: Title\n\nDescription of what the student will learn.\n\nTasks:\n1. Task description\n2. Another task\n\nHints:\n- Helpful hint\n- Another hint\n\"\"\"\n\n# TODO: Implementation task\n\ndef example_function():\n # TODO: Implement this function\n pass\n\nif __name__ == \"__main__\":\n # Test code here\n pass\n```\n\nHappy coding! \ud83d\udc0d\u2728\n",
"bugtrack_url": null,
"license": null,
"summary": "Interactive Python exercises for upcoming Junior learners - Learn Python by fixing code!",
"version": "0.1.6",
"project_urls": {
"Homepage": "https://github.com/armanrasta/snakers",
"Issues": "https://github.com/armanrasta/snakers/issues",
"Repository": "https://github.com/armanrasta/snakers"
},
"split_keywords": [
"python",
" learning",
" exercises",
" tutorial"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7e521b9f6c0208b72a6c287f908f9c2eac2679ef3e98c32b9db7576c513640a6",
"md5": "8c97ea4b108278ef332b96ecdff2f9fe",
"sha256": "c51e2314ed613da2f067c6c334feb14307ab8e11443b2d43536fbca8d3000abb"
},
"downloads": -1,
"filename": "snakers-0.1.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8c97ea4b108278ef332b96ecdff2f9fe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 104632,
"upload_time": "2025-08-27T11:00:03",
"upload_time_iso_8601": "2025-08-27T11:00:03.698534Z",
"url": "https://files.pythonhosted.org/packages/7e/52/1b9f6c0208b72a6c287f908f9c2eac2679ef3e98c32b9db7576c513640a6/snakers-0.1.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d35ab718120256e7cde83e5fe79da22c38b26018bf40fae16295e9d977d39be2",
"md5": "1212bc294c77f8784ce9b3ec8b2da269",
"sha256": "4bd46fad5c0466630a65bcb9616eba34cd1075a0bae1748d0e74587452f2a6a2"
},
"downloads": -1,
"filename": "snakers-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "1212bc294c77f8784ce9b3ec8b2da269",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 76895,
"upload_time": "2025-08-27T11:00:06",
"upload_time_iso_8601": "2025-08-27T11:00:06.087422Z",
"url": "https://files.pythonhosted.org/packages/d3/5a/b718120256e7cde83e5fe79da22c38b26018bf40fae16295e9d977d39be2/snakers-0.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-27 11:00:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "armanrasta",
"github_project": "snakers",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "snakers"
}