Skip to content

Several Changes (options, refactoring, and bugfixes) #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 3, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,15 @@ from ubelt.util_import import (import_module_from_name,
modpath_to_modname, split_modpath,)
from ubelt.orderedset import (OrderedSet, oset,)
from ubelt.progiter import (ProgIter,)
__all__ = ['util_arg', 'util_cmd', 'util_dict', 'util_links', 'util_hash',
'util_import', 'orderedset', 'progiter', 'argflag', 'argval', 'cmd',
'AutoDict', 'AutoOrderedDict', 'ddict', 'dict_hist', 'dict_subset',
'dict_take', 'dict_union', 'dzip', 'find_duplicates', 'group_items',
'invert_dict', 'map_keys', 'map_vals', 'odict', 'symlink',
'hash_data', 'hash_file', 'import_module_from_name',
'import_module_from_path', 'modname_to_modpath',
'modpath_to_modname', 'split_modpath', 'OrderedSet', 'oset',
'ProgIter']
# </AUTOGEN_INIT>
```

Expand Down Expand Up @@ -237,3 +246,7 @@ following:
tool will create one.
* By default we ignore attributes that are marked as non-public by a leading
underscore

## TODO:

- [ ] Give `dynamic_init` an options dict to maintain a compatible API with `static_init`.
8 changes: 7 additions & 1 deletion mkinit/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@
else:
# <AUTOGEN_INIT>
from mkinit import dynamic_mkinit
from mkinit import formatting
from mkinit import static_mkinit
from mkinit import top_level_ast
from mkinit.dynamic_mkinit import (dynamic_init,)
from mkinit.static_mkinit import (autogen_init, parse_submodule_definition,
static_init,)
from mkinit.top_level_ast import (TopLevelVisitor,)
from mkinit.top_level_ast import (TopLevelVisitor, get_conditional_attrnames,
static_truthiness, unpack_if_nodes,)
__all__ = ['dynamic_mkinit', 'formatting', 'static_mkinit', 'top_level_ast',
'dynamic_init', 'autogen_init', 'parse_submodule_definition',
'static_init', 'TopLevelVisitor', 'get_conditional_attrnames',
'static_truthiness', 'unpack_if_nodes']
# </AUTOGEN_INIT>
29 changes: 25 additions & 4 deletions mkinit/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,20 @@ def main():
parser = argparse.ArgumentParser(prog='python -m mkinit', description=description)
parser.add_argument('modname_or_path', nargs='?', help='module or path to generate __init__.py for', default='.')
parser.add_argument('--dry', action='store_true', default=False)
parser.add_argument('--noattrs', action='store_true', default=False)

parser.add_argument('--noattrs', action='store_true', default=False,
help='Do not generate attribute from imports')
parser.add_argument('--nomods', action='store_true', default=False,
help='Do not generate modules imports')
parser.add_argument('--noall', action='store_true', default=False,
help='Do not generate an __all__ variable')

parser.add_argument('--relative', action='store_true', default=False,
help='Use relative . imports instead of <modname>')

parser.add_argument('--ignore_all', action='store_true', default=False,
help='Ignores __all__ variables when parsing')

args, unknown = parser.parse_known_args()
ns = args.__dict__.copy()

Expand All @@ -34,9 +47,17 @@ def touch(fpath):
# if isdir(modname_or_path) and not exists(join(modname_or_path, '__init__.py')):
# touch(join(modname_or_path, '__init__.py'))

static_mkinit.autogen_init(modname_or_path,
attrs=not ns['noattrs'],
dry=ns['dry'])
use_all = not ns['ignore_all']

# Formatting options
options = {
'with_attrs': not ns['noattrs'],
'with_mods': not ns['nomods'],
'with_all': not ns['noall'],
'relative': ns['relative'],
}
static_mkinit.autogen_init(modname_or_path, use_all=use_all,
options=options, dry=ns['dry'])

if __name__ == '__main__':
main()
4 changes: 4 additions & 0 deletions mkinit/dynamic_mkinit.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,10 @@ def _find_local_submodule_names(pkgpath):


def _autogen_write(modpath, initstr):
"""
TODO:
- [ ] : replace with code in mkinit/formatting.py
"""
# Get path to init file so we can overwrite it
init_fpath = join(modpath, '__init__.py')
print('attempting to update: %r' % init_fpath)
Expand Down
Loading