Skip to content

Refining ModuleNotFoundError #3

Open
@ehmatthes

Description

@ehmatthes

Polish this, and then start working on other exceptions.

  • Write an e2e test.
  • Run on Linux.
  • Run on Windows.
  • Update README to try out on Pillow?
  • Update README to install from PyPI.
  • Should modify only one import statement. Running against Pillow/src/PIL modifies all three plain import statements.
    • failing test (test file with two imports, should change only one)
    • pass the test
  • Find all target elements, and choose one at random to modify.
  • Implement a --num-bugs to introduce.
    • failing test
    • pass the test
  • Consider implementing CLI with click; it's likely to grow larger than I want to manage with stdlib.
  • Parse all .py files not in .gitignore.
  • Start a utils/ dir, and a set of utils functions.
  • Target random .py files, not just first one found. (Target random .py files, not first one found #14)
  • Support --target-file.
  • Try supporting -e IndexError?
  • Make a 0.2 release, share.
  • Make a 541 request? opened 3/25/25
  • Move cli files to a separate cli/ dir, with a utils file.
  • Move CST classes to a separate module.
  • add_typo(name) - Add a typo to a legal python identifier.
    • Remove a char (if len(name) > 1)
    • Add a char
    • Replace a char
    • Add an illegal symbol
    • Replace _ with -.
    • But, make sure the intended exception is induced. ie, don't add a hyphen if that becomes a syntax error. (Maybe check the args, and if SyntaxError not in args, don't make that kind of change.)
  • Keep a clean main file.
    • Move most logic to other modules and subdirs.
  • Finish logic for simple imports.
    • Find all imports before choosing which to modify.
    • Add an arg for modifying more than one. (post 1.0)
    • Maybe parse all nodes before focusing on specific modifications.
  • Manage git.
    • Make sure .git dir.
    • Make sure clean commit.
    • Make a commit after modifying files.
  • Make an initial release.
  • Share this, for early feedback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions