Metadata-Version: 2.1
Name: AutoTransform
Version: 0.1.1
Summary: A component based framework for designing automated code modification
Home-page: https://github.com/nathro/AutoTransform
Author: Nathan Rockenbach
Author-email: nathro.software@gmail.com
License: UNKNOWN
Project-URL: Source, https://github.com/nathro/AutoTransform/
Project-URL: Bug Tracker, https://github.com/nathro/AutoTransform/issues
Project-URL: Say Thanks!, https://saythanks.io/to/nathro.software
Project-URL: Support, https://www.paypal.com/paypalme/nathrosoftware
Project-URL: Stream, https://www.twitch.tv/AllSublime
Keywords: codemod,automation,code change,codeshift,transformation,maintain
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: GitPython
Requires-Dist: PyGithub

# AutoTransform

AutoTransform is a structured, schema based approach to large scale code modification. It provides a structure for designing and implementing these types of modifications using common components that can be utilized to accelerate development.

### Installing

> **⚠ WARNING:** AutoTransform requires Python 3.10

 - **Latest Release** `pip install AutoTransform`
 - **Bleeding Edge** `pip install git+git://github.com/nathro/AutoTransform.git`
   - Windows users may need to replace `git://` with `https://`
   - If you do not have git use: `pip install https://github.com/nathro/AutoTransform/archive/master.zip`

### Components

AutoTransform schemas are structured around a set of components that define the transformation. These components are:
 - **Input**: Gets all eligible files for transformation
 - **Filters**: Filters down eligible files based on each Filter's criteria
 - **Batcher**: Breaks a set of files in to logical groupings with metadata
 - **Transformer**: Performs actual transformations on the batches
 - **Validators**: Performs post transformation validation to ensure code is valid (i.e. tests pass)
 - **Commands**: Performs any post transformation processing required (i.e. running a build/code generation suite)
 - **Repo**: Controls all interaction with the version control/code review system
 - **Config**: Stores all configuration options for the schema, such as what level of validation issues are allowed

Components are located within subpackages named for them (i.e. `autotransform.batcher`). Explore these packages either in source or through the interpreter to discover available components and the parameters they use. If you need components that do not exist check out CONTRIBUTING.md or CUSTOM_DEPLOYMENT.md

### Configuration

In addition to schema configuration, configuration is available for AutoTransform as a whole to provide things like credentials for github. The default configuration is pulled from data/config.ini, see data/sample_config.ini for the configuration format. Other configuration options are available using the environment vairable `AUTO_TRANSFORM_CONFIG` (see `autotransform.config`).

### Scripts

AutoTransform exposes two scripts as part of package deployment
 - autotransform.regexmod is exposed as `regexmod` run `regexmod -h` for options
 - autotransform.manager is exposed as `atmanager` run `atmanager -h` for options

