snakers


Namesnakers JSON
Version 0.1.6 PyPI version JSON
download
home_pageNone
SummaryInteractive Python exercises for upcoming Junior learners - Learn Python by fixing code!
upload_time2025-08-27 11:00:06
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
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"
}
        
Elapsed time: 2.19960s