mirror of
https://github.com/kennethreitz/clint.git
synced 2026-06-05 14:50:17 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dbb063840a | |||
| 9a4705f090 | |||
| b16b2ce723 | |||
| 1ea4c5afdc | |||
| 39bb08253f | |||
| 8e6973253f | |||
| 84419f6bfb |
@@ -2,3 +2,4 @@
|
||||
MANIFEST
|
||||
*.pyc
|
||||
.tox
|
||||
build/
|
||||
|
||||
@@ -16,3 +16,4 @@ Patches and Suggestions
|
||||
- Will Thames
|
||||
- Greg Haskins
|
||||
- Miguel Araujo <maraujop>
|
||||
- takluyver
|
||||
@@ -1,6 +1,11 @@
|
||||
History
|
||||
-------
|
||||
|
||||
0.3.0
|
||||
+++++
|
||||
|
||||
* Python 3 support!
|
||||
|
||||
0.2.4
|
||||
+++++
|
||||
|
||||
|
||||
+3
-3
@@ -19,11 +19,11 @@ from .pipes import piped_in
|
||||
|
||||
|
||||
__title__ = 'clint'
|
||||
__version__ = '0.2.5'
|
||||
__build__ = 0x000205
|
||||
__version__ = '0.3.0'
|
||||
__build__ = 0x000300
|
||||
__author__ = 'Kenneth Reitz'
|
||||
__license__ = 'ISC'
|
||||
__copyright__ = 'Copyright 2011 Kenneth Reitz'
|
||||
__copyright__ = 'Copyright 2012 Kenneth Reitz'
|
||||
__docformat__ = 'restructuredtext'
|
||||
|
||||
|
||||
|
||||
+5
-1
@@ -14,7 +14,11 @@ from __future__ import absolute_import
|
||||
import os
|
||||
from sys import argv
|
||||
|
||||
from .packages.ordereddict import OrderedDict
|
||||
try:
|
||||
from collections import OrderedDict
|
||||
except ImportError:
|
||||
from .packages.ordereddict import OrderedDict
|
||||
|
||||
from .utils import expand_path, is_collection
|
||||
|
||||
__all__ = ('Args', )
|
||||
|
||||
+12
-6
@@ -7,12 +7,18 @@ clint.eng
|
||||
This module provides English language string helpers.
|
||||
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
MORON_MODE = False
|
||||
COMMA = ','
|
||||
CONJUNCTION = 'and'
|
||||
SPACE = ' '
|
||||
|
||||
try:
|
||||
unicode
|
||||
except NameError:
|
||||
unicode = str
|
||||
|
||||
|
||||
def join(l, conj=CONJUNCTION, im_a_moron=MORON_MODE, seperator=COMMA):
|
||||
"""Joins lists of words. Oxford comma and all."""
|
||||
@@ -41,9 +47,9 @@ def join(l, conj=CONJUNCTION, im_a_moron=MORON_MODE, seperator=COMMA):
|
||||
return unicode(str().join(collector))
|
||||
|
||||
if __name__ == '__main__':
|
||||
print join(['blue', 'red', 'yellow'], conj='or', im_a_moron=True)
|
||||
print join(['blue', 'red', 'yellow'], conj='or')
|
||||
print join(['blue', 'red'], conj='or')
|
||||
print join(['blue', 'red'], conj='and')
|
||||
print join(['blue'], conj='and')
|
||||
print join(['blue', 'red', 'yellow', 'green', 'ello'], conj='and')
|
||||
print(join(['blue', 'red', 'yellow'], conj='or', im_a_moron=True))
|
||||
print(join(['blue', 'red', 'yellow'], conj='or'))
|
||||
print(join(['blue', 'red'], conj='or'))
|
||||
print(join(['blue', 'red'], conj='and'))
|
||||
print(join(['blue'], conj='and'))
|
||||
print(join(['blue', 'red', 'yellow', 'green', 'ello'], conj='and'))
|
||||
|
||||
+1
-1
@@ -115,7 +115,7 @@ class AppDir(object):
|
||||
remove(fn)
|
||||
else:
|
||||
removedirs(fn)
|
||||
except OSError, why:
|
||||
except OSError as why:
|
||||
if why.errno == errno.ENOENT:
|
||||
pass
|
||||
else:
|
||||
|
||||
@@ -12,4 +12,4 @@ This module provides the text output helper system.
|
||||
from . import colored
|
||||
from . import progress
|
||||
|
||||
from core import *
|
||||
from .core import *
|
||||
|
||||
+13
-5
@@ -14,6 +14,8 @@ from __future__ import absolute_import
|
||||
import re
|
||||
import sys
|
||||
|
||||
PY3 = sys.version_info[0] >= 3
|
||||
|
||||
from ..packages import colorama
|
||||
|
||||
__all__ = (
|
||||
@@ -53,12 +55,18 @@ class ColoredString(object):
|
||||
def __repr__(self):
|
||||
return "<%s-string: '%s'>" % (self.color, self.s)
|
||||
|
||||
def __str__(self):
|
||||
return self.__unicode__().encode('utf8')
|
||||
|
||||
def __unicode__(self):
|
||||
return self.color_str
|
||||
|
||||
if PY3:
|
||||
__str__ = __unicode__
|
||||
else:
|
||||
def __str__(self):
|
||||
return unicode(self).encode('utf8')
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.color_str)
|
||||
|
||||
def __add__(self, other):
|
||||
return str(self.color_str) + str(other)
|
||||
|
||||
@@ -68,8 +76,8 @@ class ColoredString(object):
|
||||
def __mul__(self, other):
|
||||
return (self.color_str * other)
|
||||
|
||||
def split(self, x=' '):
|
||||
return map(self._new, self.s.split(x))
|
||||
def split(self, sep=None):
|
||||
return [self._new(s) for s in self.s.split(sep)]
|
||||
|
||||
def _new(self, s):
|
||||
return ColoredString(self.color, s)
|
||||
|
||||
@@ -17,16 +17,17 @@ STREAM = sys.stderr
|
||||
BAR_TEMPLATE = '%s[%s%s] %i/%i\r'
|
||||
|
||||
DOTS_CHAR = '.'
|
||||
BAR_FILLED_CHAR = '#'
|
||||
BAR_EMPTY_CHAR = ' '
|
||||
|
||||
|
||||
def bar(it, label='', width=32, hide=False, empty_char='-', filled_char='='):
|
||||
def bar(it, label='', width=32, hide=False, empty_char=BAR_EMPTY_CHAR, filled_char=BAR_FILLED_CHAR):
|
||||
"""Progress iterator. Wrap your iterables with it."""
|
||||
|
||||
def _show(_i):
|
||||
x = int(width*_i/count)
|
||||
if not hide:
|
||||
STREAM.write(BAR_TEMPLATE % (
|
||||
label, bar_filled_char*x, bar_empty_char*(width-x), _i, count))
|
||||
label, filled_char*x, empty_char*(width-x), _i, count))
|
||||
STREAM.flush()
|
||||
|
||||
count = len(it)
|
||||
|
||||
+5
-1
@@ -16,6 +16,10 @@ import os.path
|
||||
from os import makedirs
|
||||
from glob import glob
|
||||
|
||||
try:
|
||||
basestring
|
||||
except NameError:
|
||||
basestring = str
|
||||
|
||||
def expand_path(path):
|
||||
"""Expands directories and globs in given path."""
|
||||
@@ -49,7 +53,7 @@ def mkdir_p(path):
|
||||
"""Emulates `mkdir -p` behavior."""
|
||||
try:
|
||||
makedirs(path)
|
||||
except OSError, exc: # Python >2.5
|
||||
except OSError as exc: # Python >2.5
|
||||
if exc.errno == errno.EEXIST:
|
||||
pass
|
||||
else:
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
@@ -13,4 +15,4 @@ text = 'THIS TEXT IS COLORED %s!'
|
||||
if __name__ == '__main__':
|
||||
|
||||
for color in colored.COLORS:
|
||||
print getattr(colored, color)(text % color.upper())
|
||||
print(getattr(colored, color)(text % color.upper()))
|
||||
|
||||
@@ -17,7 +17,7 @@ colors = [
|
||||
colored.magenta('magenta')
|
||||
]
|
||||
|
||||
colors = map(str, colors)
|
||||
colors = [str(cs) for cs in colors]
|
||||
|
||||
|
||||
puts('Smart:')
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
@@ -13,16 +15,16 @@ resources.init('kennethreitz', 'clint')
|
||||
lorem = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
|
||||
|
||||
|
||||
print '%s created.' % resources.user.path
|
||||
print('%s created.' % resources.user.path)
|
||||
|
||||
resources.user.write('lorem.txt', lorem)
|
||||
print 'lorem.txt created'
|
||||
print('lorem.txt created')
|
||||
|
||||
assert resources.user.read('lorem.txt') == lorem
|
||||
print 'lorem.txt has correct contents'
|
||||
print('lorem.txt has correct contents')
|
||||
|
||||
resources.user.delete('lorem.txt')
|
||||
print 'lorem.txt deleted'
|
||||
print('lorem.txt deleted')
|
||||
|
||||
assert resources.user.read('lorem.txt') == None
|
||||
print 'lorem.txt deletion confirmed'
|
||||
print('lorem.txt deletion confirmed')
|
||||
|
||||
@@ -19,5 +19,6 @@ if __name__ == '__main__':
|
||||
|
||||
col = 60
|
||||
|
||||
puts(columns([(colored.red('Column 1')), col], [(colored.green('Column Two')), None], [(colored.magenta('Column III')), col]))
|
||||
puts(columns(['hi there my name is kenneth and this is a columns', col], [lorem, None], ['kenneths', col]))
|
||||
puts(columns([(colored.red('Column 1')), col], [(colored.green('Column Two')), None],
|
||||
[(colored.magenta('Column III')), col]))
|
||||
puts(columns(['hi there my name is kenneth and this is a columns', col], [lorem, None], ['kenneths', col]))
|
||||
|
||||
@@ -38,14 +38,18 @@ setup(
|
||||
license='ISC',
|
||||
classifiers=(
|
||||
# 'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Console',
|
||||
'Intended Audience :: Developers',
|
||||
'Natural Language :: English',
|
||||
'License :: OSI Approved :: ISC License (ISCL)',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.5',
|
||||
'Programming Language :: Python :: 2.6',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
# 'Programming Language :: Python :: 3.0',
|
||||
# 'Programming Language :: Python :: 3.1',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.1',
|
||||
'Programming Language :: Python :: 3.2',
|
||||
'Topic :: Terminals :: Terminal Emulators/X Terminals',
|
||||
),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user