Skip to content
Open
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
7 changes: 7 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@
packages=find_packages(exclude=[]),
install_requires=install_reqs,
extras_require={'gpu': ['py3nvml>=0.2']},
entry_points={
'console_scripts': [
'watermark=watermark.watermark:main',
],
},
long_description=long_description,
long_description_content_type="text/markdown",
)


10 changes: 9 additions & 1 deletion watermark/magic.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class WaterMark(Magics):
and various system information.
"""
@magic_arguments()
@argument('-a', '--author', type=str,
@argument('-a', '--author', type=str, nargs='+',
help='prints author name')
@argument('-gu', '--github_username', type=str,
help='prints author github username')
Expand Down Expand Up @@ -87,6 +87,12 @@ def watermark(self, line):
"""
args = vars(parse_argstring(self.watermark, line))

if isinstance(args.get('author'), list):
args['author'] = " ".join(args['author'])

if isinstance(args.get('website'), list):
args['website'] = " ".join(args['website'])

# renaming not to pollute the namespace
# while preserving backward compatibility
args['current_date'] = args.pop('date')
Expand All @@ -96,6 +102,8 @@ def watermark(self, line):
formatted_text = watermark.watermark(**args)
print(formatted_text)




def load_ipython_extension(ipython):
ipython.register_magics(WaterMark)
3 changes: 2 additions & 1 deletion watermark/tests/test_watermark.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ def test_defaults():
'Architecture']

for i in expected:
assert i in clean_txt, print(f'{i} not in {clean_txt}')
assert any (i in line for line in clean_txt), f'{i} not found in {clean_txt}'


def test_sorted_iversion():
a = watermark.watermark(iversions=True, globals_=globals())
Expand Down
4 changes: 2 additions & 2 deletions watermark/tests/test_watermark_gpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
def test_gpu_info():
a = watermark.watermark(gpu=True)
txt = a.split('\n')
clean_txt = []
clean_txt = [t.strip() for t in txt if t.strip()]
for t in txt:
t = t.strip()
if t:
Expand All @@ -22,4 +22,4 @@ def test_gpu_info():
]

for i in expected:
assert i in clean_txt, print(f'{i} not in {clean_txt}')
assert any (i in line for line in clean_txt), f'{i} not found in {clean_txt}'
27 changes: 25 additions & 2 deletions watermark/watermark.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,9 +240,8 @@ def _generate_formatted_text(list_of_dicts):
for section in list_of_dicts:
if section:
text = ""
longest = max(len(key) for key in section)
for key, value in section.items():
text += f"{key.ljust(longest)}: {value}\n"
text += f"{key} {value}\n"
result.append(text)
return "\n".join(result)

Expand Down Expand Up @@ -472,3 +471,27 @@ def _get_latest_version(package_name):
return data['info']['version']
except Exception:
return None

def main():
import argparse
import sys
from watermark.watermark import watermark

parser = argparse.ArgumentParser(description='Watermark CLI')
parser.add_argument('-a', '--author', type=str, nargs='+', help='author name')
parser.add_argument('-v', '--python', action='store_true', help='python version')
parser.add_argument('-p', '--packages', type=str, help='comma-separated packages')

if len(sys.argv) == 1:
parser.print_help()
sys.exit(0)

args = vars(parser.parse_args())

if args.get('author'):
args['author'] = " ".join(args['author'])

print(watermark(**args))

if __name__ == '__main__':
main()