final post-split cleanup
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
python_data_structures
|
multi_key_dict
|
||||||
======================
|
======================
|
||||||
|
|
||||||
distribution can be found on pypi:
|
distribution can be found on pypi:
|
||||||
|
|
||||||
* https://pypi.python.org/pypi?:action=display&name=multi_key_dict
|
* https://pypi.python.org/pypi?:action=display&name=multi_key_dict
|
||||||
|
|
||||||
Build status (on Travis CI) [](https://travis-ci.org/formiaczek/python_data_structures)
|
Build status (on Travis CI) [](https://travis-ci.org/formiaczek/multi_key_dict)
|
||||||
|
|
||||||
|
|||||||
@@ -32,9 +32,3 @@ Multi-key dict provides also extended interface for iterating over items and key
|
|||||||
It can be useful for many many other similar use-cases, and there is no limit to the number of keys used to map to the value.
|
It can be useful for many many other similar use-cases, and there is no limit to the number of keys used to map to the value.
|
||||||
|
|
||||||
There are few other useful methods, e.g. to iterate over dictionary (by/using) selected key type, finding other keys mapping to the same value etc. Refer to example/test code to see it in action.
|
There are few other useful methods, e.g. to iterate over dictionary (by/using) selected key type, finding other keys mapping to the same value etc. Refer to example/test code to see it in action.
|
||||||
|
|
||||||
Distributions can be found on pypi:
|
|
||||||
|
|
||||||
* https://pypi.python.org/pypi?:action=display&name=multi_key_dict
|
|
||||||
|
|
||||||
Build status (on Travis CI) [](https://travis-ci.org/formiaczek/python_data_structures)
|
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -12,7 +12,7 @@ setup(name='multi_key_dict',
|
|||||||
description='Multi key dictionary implementation',
|
description='Multi key dictionary implementation',
|
||||||
author='Lukasz Forynski',
|
author='Lukasz Forynski',
|
||||||
author_email='lukasz.forynski@gmail.com',
|
author_email='lukasz.forynski@gmail.com',
|
||||||
url='https://github.com/formiaczek/python_data_structures',
|
url='https://github.com/formiaczek/multi_key_dict',
|
||||||
py_modules=['multi_key_dict'],
|
py_modules=['multi_key_dict'],
|
||||||
license=['License :: OSI Approved :: MIT License (http://opensource.org/licenses/MIT)'],
|
license=['License :: OSI Approved :: MIT License (http://opensource.org/licenses/MIT)'],
|
||||||
long_description=long_descr,
|
long_description=long_descr,
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
text_progress_bar
|
|
||||||
======================
|
|
||||||
|
|
||||||
|
|
||||||
Implementation of a simple text progress bar.
|
|
||||||
|
|
||||||
It looks something like this:
|
|
||||||
|
|
||||||
[================..............] : downloading xyz (186/335)
|
|
||||||
|
|
||||||
distributions can be found on pypi:
|
|
||||||
* https://pypi.python.org/pypi?:action=display&name=text_progress_bar
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!python
|
|
||||||
|
|
||||||
from distutils.core import setup
|
|
||||||
|
|
||||||
long_descr=''
|
|
||||||
|
|
||||||
with open('README.txt') as readme:
|
|
||||||
long_descr = readme.read()
|
|
||||||
|
|
||||||
setup(name='text_progress_bar',
|
|
||||||
version='1.0.1',
|
|
||||||
description='Simple text progress bar',
|
|
||||||
author='Lukasz Forynski',
|
|
||||||
author_email='lukasz.forynski@gmail.com',
|
|
||||||
url='https://github.com/formiaczek/python_data_structures',
|
|
||||||
py_modules=['text_progress_bar'],
|
|
||||||
license=['License :: OSI Approved :: MIT License (http://opensource.org/licenses/MIT)'],
|
|
||||||
long_description=long_descr,
|
|
||||||
classifiers=[
|
|
||||||
'Programming Language :: Python',
|
|
||||||
'License :: OSI Approved :: MIT License',
|
|
||||||
'Development Status :: 4 - Beta',
|
|
||||||
'Operating System :: OS Independent',
|
|
||||||
'Intended Audience :: Developers',
|
|
||||||
'Topic :: Software Development :: Libraries :: Python Modules'
|
|
||||||
]
|
|
||||||
)
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
'''
|
|
||||||
Created on 5 Jun 2013
|
|
||||||
|
|
||||||
@author: lukasz.forynski
|
|
||||||
|
|
||||||
@brief Simple text progress-bar.
|
|
||||||
|
|
||||||
https://github.com/formiaczek/python_data_structures
|
|
||||||
___________________________________
|
|
||||||
|
|
||||||
Copyright (c) 2013 Lukasz Forynski <lukasz.forynski@gmail.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
|
||||||
software and associated documentation files (the "Software"), to deal in the Software
|
|
||||||
without restriction, including without limitation the rights to use, copy, modify, merge,
|
|
||||||
publish, distribute, sub-license, and/or sell copies of the Software, and to permit persons
|
|
||||||
to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
- The above copyright notice and this permission notice shall be included in all copies
|
|
||||||
or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
||||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
|
||||||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
DEALINGS IN THE SOFTWARE.
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
|
|
||||||
|
|
||||||
class text_progress_bar(object):
|
|
||||||
## Init method.
|
|
||||||
# @param length_in_chars lenght of the progress bar.
|
|
||||||
def __init__(self, length_in_chars, str_to_write_on_finished = '\n'):
|
|
||||||
self.length = length_in_chars
|
|
||||||
self.str_on_finished = str_to_write_on_finished
|
|
||||||
self.reset()
|
|
||||||
|
|
||||||
## resets the progress bar
|
|
||||||
def reset(self):
|
|
||||||
self.current = 0
|
|
||||||
self.total = 0
|
|
||||||
self.description = ''
|
|
||||||
self.bar = list('.' * self.length)
|
|
||||||
|
|
||||||
## method to set the progress description
|
|
||||||
# @description test to be displayed next to the progress bar
|
|
||||||
# (e.g. name of the task for which the progress is displayed)
|
|
||||||
def set_description(self, description):
|
|
||||||
if len(description):
|
|
||||||
self.description = ': %s' % description
|
|
||||||
|
|
||||||
## Callback to indicate (update and display) the progress
|
|
||||||
# @param current - current value of the progress
|
|
||||||
# @param total total value (i.e. he number current is converging to)
|
|
||||||
def progress_callback(self, current, total):
|
|
||||||
if self.total != total:
|
|
||||||
self.total = total
|
|
||||||
|
|
||||||
if total:
|
|
||||||
new_current = (current * self.length)
|
|
||||||
new_current /= self.total
|
|
||||||
if new_current > self.current:
|
|
||||||
for i in xrange(self.current,new_current):
|
|
||||||
self.bar[i] = '='
|
|
||||||
self.current = new_current
|
|
||||||
sys.stdout.write('\r[%s] %s (%d/%d) ' % (''.join(self.bar),
|
|
||||||
self.description,
|
|
||||||
current,
|
|
||||||
total))
|
|
||||||
if current == self.total:
|
|
||||||
self.reset()
|
|
||||||
sys.stdout.write('\n')
|
|
||||||
|
|
||||||
def test_progress_bar():
|
|
||||||
b = text_progress_bar(30)
|
|
||||||
b.set_description('testing progress')
|
|
||||||
for i in xrange(0, 335+1): # say our task is from 0-335 steps..
|
|
||||||
b.progress_callback(i, 335)
|
|
||||||
time.sleep(0.025)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
test_progress_bar()
|
|
||||||
Reference in New Issue
Block a user