GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - pixee/codemodder-python: Python implementation of the Codemodder framework

BranchesTags
Open more actions menu

Latest commit

 

History

1,269 Commits
1,269 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
ci_tests
ci_tests
 
 
img
img
 
 
integration_tests
integration_tests
 
 
src
src
 
 
tests
tests
 
 
.coveragerc
.coveragerc
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
.semgrepignore
.semgrepignore
 
 
.sonarcloud.properties
.sonarcloud.properties
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
MANIFEST.in
MANIFEST.in
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
codecov.yaml
codecov.yaml
 
 
pyproject.toml
pyproject.toml
 
 
renovate.json
renovate.json
 
 

Repository files navigation

Pixee Logo

codemodder-python

This is the Python version of the Codemodder Framework.

Codemodder is sponsored by pixee.ai.

Development Status

As of v0.80.0 the codemod API is relatively stable. However, backwards compatibility between releases will not be guaranteed until version 1.0.0.

See CHANGELOG.md for detailed release notes.

Installation

The codemodder package is available on PyPI. To install, run:

$ pip install codemodder

WARNING: You should also install the semgrep optional dependency for now as it isn't deprecated yet:

$ pip install codemodder[semgrep]

To install the package from source, use pip:

$ pip install /path/to/codemodder-python

Running codemodder

CLI

Codemodder can be run as a CLI. The codemodder package provides an executable called codemodder. This should be available on your path by default after installation.

For basic usage, run the codemodder command with a target directory path:

$ codemodder /path/to/my-project

Note that by default codemodder will make changes to files in your target directory. To run codemodder without making updates on disk, use the --dry-run flag:

$ codemodder --dry-run /path/to/my-project

To list all available codemods (including any that are registered with installed plugins), use the --list option:

$ codemodder --list

For a full list of options, use the --help flag:

$ codemodder --help

Library

You can also run codemodder as a library by importing the module and running run. For basic usage, pass a target directory path and the dry_run argument:

import codemodder

output, exit_code = codemodder.run("/path/to/my-project", dry_run=True)

Unlike the CLI which has a default dry_run of False, when calling codemodder as a library you must indicate if you want codemodder to make changes to your files.

Architecture

Codemods are composed of the following key components:

  • Detector
  • Transformer(s)
  • Metadata
Base Codemod Diagram

Custom Codemods

The Python codemodder supports a plugin infrastructure for custom codemods. For users interested in developing a custom codemod plugin, we recommend starting with the Cookiecutter template.

Documentation

Coming soon!

Contributing

See CONTRIBUTING.md.

About

Python implementation of the Codemodder framework

Resources

Readme
AGPL-3.0 license

Contributing

Contributing
Activity
Custom properties

Stars

43 stars

Watchers

5 watching

Forks

10 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.