diff --git a/scripts/fix_ext_import.py b/scripts/fix_ext_import.py new file mode 100644 index 00000000..ca945d8a --- /dev/null +++ b/scripts/fix_ext_import.py @@ -0,0 +1,20 @@ +from lib2to3.fixer_base import BaseFix +from lib2to3.fixer_util import Name, syms + + +class FixExtImport(BaseFix): + + PATTERN = "fixnode='oldname'" + + def transform(self, node, results): + fixnode = results['fixnode'] + fixnode.replace(Name('newname', prefix=fixnode.prefix)) + + if node.type == syms.import_from and \ + getattr(results['imp'], 'value', None) == 'flask.ext': + return 0 + # TODO: Case 2 + + +# CASE 1 - from flask.ext.foo import bam --> from flask_foo import bam +# CASE 2 - from flask.ext import foo --> import flask_foo as foo diff --git a/scripts/flaskext_migrate.py b/scripts/flaskext_migrate.py index 6e6367a3..56e28f46 100644 --- a/scripts/flaskext_migrate.py +++ b/scripts/flaskext_migrate.py @@ -1,30 +1,14 @@ -# from flask.ext import foo => import flask_foo as foo -# from flask.ext.foo import bam => from flask_foo import bam -# import flask.ext.foo => import flask_foo +# CASE 1 - from flask.ext.foo import bam --> from flask_foo import bam +# CASE 2 - from flask.ext import foo --> import flask_foo as foo +from redbaron import RedBaron import sys -def migrate(old_file): - new_file = open("temp.py", "w") - for line in old_file: - if line[0:14] == "from flask.ext": - if line[14] == '.': - import_statement = line[15::].split(' ') - extension = import_statement[0] - line = line.replace("flask.ext." + extension, - "flask_" + extension) - elif line[14] == " ": - import_statement = line[15::].split(' ')[1] - import_statement = import_statement.strip('\n') - line = ("import flask_" + - import_statement + - " as " + - import_statement) +with open("test.py", "r") as source_code: + red = RedBaron(source_code.read()) - new_file.write(line) - new_file.close() +print red.dumps() -if __name__ == "__main__": - old_file = open(sys.argv[1]) - migrate(old_file) +# with open("code.py", "w") as source_code: +# source_code.write(red.dumps()) diff --git a/scripts/temp.py b/scripts/temp.py deleted file mode 100644 index 38ff98cf..00000000 --- a/scripts/temp.py +++ /dev/null @@ -1,19 +0,0 @@ -from flask_foo import bam -import flask_foo as foo - -def migrate(old_file): - new_file = open("temp.py", "w") - for line in old_file: - if line[0, 15] is "from flask.ext": - if line[15] == '.': - import_statement = line[16::].split(' ') - extension = import_statement[0] - line = line. replace("flask.ext." + extension, - "flask_" + extension) - else: - pass - - new_file.write(line) - -if __name__ == "__main__": - old_file = open(sys.arv[1]) \ No newline at end of file diff --git a/scripts/test.txt b/scripts/test.py similarity index 100% rename from scripts/test.txt rename to scripts/test.py