Skip to content

joegasewicz/code-spy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Spy

Python developer tool that watches for file changes & runs tasks against your Python code.

Terminal Example

Install

 pip install code-spy

Quickstart

from flask import Flask  # Or any WSGI application framework
from code_spy.core import CodeSpy
from code_spy.tasks import (
    MyPyTask,
    DevServerTask,
    PylintTask,
    PytestTask,
    BlackTask,
)

if __name__ == "__main__":
    # Create an instance of a WSGI application
    flask = Flask(__name__)

    # Pass the code spy shipped tasks to the `tasks` kwarg:
    cs = CodeSpy(
        watch_path=".",  # Optional: The path that codespy will run tasks against on file system change.
        interval=1,  # Optional (Default is 1 second) Restrict how often codespy can rerun tasks.
        ignore_dirs=["some_file"],  # Optional: Ignore files & directories from this directory path.
        log_length=100, # Optional: Restrict the character length of logs.
        tasks=[
            MyPyTask(path="routes", mypy_file="mypy.ini"),
            PylintTask(path="routes", rcfile=".pylintrc"),
            PytestTask(path="tests"),
            BlackTask(path="routes"),
            DevServerTask(wsgi_app=flask),
        ]
    )

    # Now call `watch`, that's it!
    cs.watch()

Tasks

  • Mypy
  • SimpleHttpServer
  • Pylint
  • Pytest
  • Black

Tasks Requiring Library Installs

To restrict the amount of third party libraries that ship with code-spy, the rest of the tasks require library installs:

  • ISort TODO
  • Flake8 TODO
  • Bandit TODO
  • Sphinx TODO
  • Custom Task TODO