Skip to content

Commit

Permalink
Merge pull request #16 from Carreau/version-docstring
Browse files Browse the repository at this point in the history
Better error message for missing docstring and version.
  • Loading branch information
takluyver committed Apr 11, 2015
2 parents c46e96c + 5c5db90 commit 7a05e1a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
12 changes: 9 additions & 3 deletions flit/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,22 @@ def main(argv=None):

if args.subcmd == 'wheel':
from .wheel import WheelBuilder
WheelBuilder(args.ini_file, upload=args.upload,
try:
WheelBuilder(args.ini_file, upload=args.upload,
verify_metadata=args.verify_metadata).build()
except (common.NoDocstringError, common.NoVersionError) as e:
sys.exit(e.args[0])
elif args.subcmd == 'install':
from .install import Installer
Installer(args.ini_file, user=args.user, symlink=args.symlink).install()
try:
Installer(args.ini_file, user=args.user, symlink=args.symlink).install()
except (common.NoDocstringError, common.NoVersionError) as e:
sys.exit(e.args[0])
elif args.subcmd == 'init':
from .init import TerminalIniter
TerminalIniter().initialise()
else:
sys.exit('No command specified')

if __name__ == '__main__':
main()
main()
14 changes: 12 additions & 2 deletions flit/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,24 @@ def file(self):
return self.path / '__init__.py'
else:
return self.path

class NoDocstringError(ValueError): pass
class NoVersionError(ValueError): pass

def get_info_from_module(target):
"""Load the module/package, get its docstring and __version__
"""
sl = SourceFileLoader(target.name, str(target.file))
m = sl.load_module()
docstring_lines = m.__doc__.splitlines()
docstring = m.__dict__.get('__doc__', None)
if not docstring:
raise NoDocstringError('Cannot build module without docstring. '
'Please add a docstring to you module.')
module_version = m.__dict__.get('__version__', None)
if not module_version:
raise NoVersionError('Cannot build module without a version string. '
'Please define a `__version__="x.y.z"` in your module')

docstring_lines = docstring.splitlines()
return {'summary': docstring_lines[0],
'version': m.__version__}

Expand Down

0 comments on commit 7a05e1a

Please sign in to comment.