Utilities for refactoring imports in python-like syntax.
Project description
aspy.refactor_imports
Utilities for refactoring imports in python-like syntax.
Installation
pip install aspy.refactor_imports
Examples
aspy.refactor_imports.import_obj
Constructing an import object
>>> from aspy.refactor_imports.import_obj import FromImport
>>> from aspy.refactor_imports.import_obj import ImportImport
>>> FromImport.from_str('from foo import bar').to_text()
'from foo import bar\n'
>>> ImportImport.from_str('import bar as baz').to_text()
'import bar as baz\n'
Splitting an import object
>>> from aspy.refactor_imports.import_obj import ImportImport
>>> obj = ImportImport.from_str('import foo, bar, baz')
>>> [i.to_text() for i in obj.split_imports()]
['import foo\n', 'import bar\n', 'import baz\n']
Sorting import objects
>>> import pprint
>>> from aspy.refactor_imports.import_obj import FromImport
>>> objs = sorted([
FromImport.from_str('from a import foo'),
FromImport.from_str('from a.b import baz'),
FromImport.from_str('from a import bar'),
FromImport.from_str('from a import bar as buz'),
FromImport.from_str('from a import bar as baz'),
])
>>> pprint.pprint([i.to_text() for i in objs])
['from a import bar\n',
'from a import bar as baz\n',
'from a import bar as buz\n',
'from a import foo\n',
'from a.b import baz\n']
# Or to partition into blocks (even with mixed imports)
>>> import buck.pprint as pprint
>>> from aspy.refactor_imports.import_obj import FromImport
>>> from aspy.refactor_imports.import_obj import ImportImport
>>> from aspy.refactor_imports.sort import sort
>>> partitioned = sort(
[
FromImport.from_str('from aspy import refactor_imports'),
ImportImport.from_str('import sys'),
FromImport.from_str('from pyramid.view import view_config'),
ImportImport.from_str('import cached_property'),
],
separate=True,
import_before_from=True,
))
>>> pprint.pprint(partitioned)
(
(ImportImport.from_str('import sys\n'),),
(
ImportImport.from_str('import cached_property\n'),
FromImport.from_str('from pyramid.view import view_config\n'),
),
(FromImport.from_str('from aspy import refactor_imports\n'),),
)
aspy.refactor_imports.classify
Classify a module
>>> from aspy.refactor_imports.classify import classify_import
>>> classify_import('__future__')
'FUTURE'
>>> classify_import('aspy')
'APPLICATION'
>>> classify_import('pyramid')
'THIRD_PARTY'
>>> classify_import('os')
'BUILTIN'
>>> classify_import('os.path')
'BUILTIN'
Also as convenient constants
## From aspy.refactor_imports.classify
class ImportType(object):
__slots__ = ()
FUTURE = 'FUTURE'
BUILTIN = 'BUILTIN'
THIRD_PARTY = 'THIRD_PARTY'
APPLICATION = 'APPLICATION'
__all__ = (FUTURE, BUILTIN, THIRD_PARTY, APPLICATION)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for aspy.refactor_imports-2.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5b2fcbf9fd68361168588f14eda64d502d029eefe632d15094cd0683ae12984 |
|
MD5 | b570311cbedbdcc93475335beba0180c |
|
BLAKE2b-256 | 63e374f8042eb50fe161cd08cb94bc93f17a05fe76c387aeb22087db03e8173e |
Close
Hashes for aspy.refactor_imports-2.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ace9ca78abf6cfdd20ea1a321b75b20c8cc2c1af58aecb9dc4ba9d6f70f74645 |
|
MD5 | f45e10a1bf6030f5dfbf3d61908918dd |
|
BLAKE2b-256 | 53020dfe314aab632f8458312ebfd0ea48a2b00191a0885317bac9155eb73718 |