From 29ca02a02f435e78d9d66387e2399c606efd382b Mon Sep 17 00:00:00 2001 From: rasbt Date: Mon, 11 Jan 2016 17:16:32 -0500 Subject: [PATCH] v 2.9.4 --- .gitignore | 1 - CHANGELOG.txt => CHANGELOG.md | 30 +- LICENSE | 28 + LICENSE.txt | 674 ------------------ MANIFEST | 4 +- README.md | 69 +- .../pyprind_demo-checkpoint.ipynb | 263 +++---- examples/pyprind_demo.ipynb | 263 +++---- images/overview_1.png | Bin 42436 -> 49640 bytes images/overview_2.png | Bin 54244 -> 58532 bytes images/overview_3.png | Bin 27188 -> 30866 bytes pyprind/__init__.py | 8 +- pyprind/generator_factory.py | 7 + pyprind/prog_class.py | 19 +- pyprind/progbar.py | 11 +- pyprind/progpercent.py | 11 +- setup.py | 14 +- test/percentage_indicator.py | 16 +- test/progress_bar.py | 20 +- 19 files changed, 381 insertions(+), 1057 deletions(-) rename CHANGELOG.txt => CHANGELOG.md (96%) create mode 100644 LICENSE delete mode 100644 LICENSE.txt diff --git a/.gitignore b/.gitignore index 187aa40..85d5285 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -*.txt *.sqlite gmon.out __pycache__ diff --git a/CHANGELOG.txt b/CHANGELOG.md similarity index 96% rename from CHANGELOG.txt rename to CHANGELOG.md index 6801668..921e7c2 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Version 2.9.4 +================ +- new time formatting in hh:mm:ss format (by Divyanshu Sharma, https://github.com/Div44) +- permissive new BSD license + + VERSION 2.9.3 ================ - some PEP8 adjustments and code cleanup @@ -7,7 +13,6 @@ VERSION 2.9.3 VERSION 2.9.2 ================ - - support for psutil >= 2.0 and < 2.0. - removed psutil from the setup requirements and made it's installation optional via "pip install pyprind -r requirements.txt" @@ -15,17 +20,13 @@ VERSION 2.9.2 VERSION 2.9.1 ================ - - Minor reorganization of the generator interface. - Minor changes to the code documentation. - Added new test files. - VERSION 2.9.0 ================ - - - New generator functions for progress bar and percentage indicators via: for i in pyprind.prog_bar(range(n)): @@ -39,10 +40,8 @@ VERSION 2.9.0 (by Olaf Gladis, https://github.com/hwmrocker) - VERSION 2.8.0 ================ - - A new `.stop()` method to stop the progress bar / percentage indicator early. - `.update()` method accepts an `item_id` argument now in order to display which item is currently processed next to the progress bar / percentage indicator. @@ -54,53 +53,45 @@ VERSION 2.8.0 VERSION 2.7.0 ================ - - Version intentionally skipped to not cause confusion that this is a tool exclusively for Python 2.7. VERSION 2.6.2 ================ - - Fixed bug that the report was squeezed after the bar and before the "time elapsed" string if printed immediately after the progress bar has reached 100%. VERSION 2.6.1 ================ - - Small bugfix on some system a warning was printed although a valid output string was provided. VERSION 2.6.0 ================ - - Added IPython Notebook support - Fixed to work with most recent psutil v. 0.6 for monitoring CPU and memory usage VERSION 2.5.0 ================ - - New default argument `monitor=False` was added to `ProgBar()` and `ProgPercent()` objects to monitor memory and CPU usage (via `psutil`) if `monitor` is set to True. VERSION 2.4.0 ================ - - Default argument for `.update(iterations=1)` methods to increment the count by more than 1 per iteration. VERSION 2.3.1 ================ - - Minor fix of the output formatting. VERSION 2.3.0 ================ - - Added native print() support prints title and elapsed time of an tracked object after loop completed. - Data member self.end stores elapsed time when loop completed. @@ -109,7 +100,6 @@ VERSION 2.3.0 VERSION 2.2.0 ================ - - added ETA (estimated time until arrival) tracking to progress bar (by Taylan Aydinli). - better support for Python 2.x. @@ -118,26 +108,22 @@ VERSION 2.2.0 VERSION 2.1.1 ================ - - Changed visuals of the printed progress for percentage indicators. VERSION 2.1.0 ================ - - added ETA (estimated time until arrival) tracking to percentage indicator (by Taylan Aydinli, https://github.com/taylan) VERSION 2.0.3 ================ - - Accepts a given outputstream for the `stream` parameter. VERSION 2.0.2 ================ - - Fixed bug that occurred for some Python 3.3.3 users specifically on Linux Red Hat 4.4.7-1, GCC v. 4.4.7 that self.max_iter was cast to a float when `ProgBar()` @@ -158,16 +144,15 @@ VERSION 2.0.0 my_prbar = pyprind.ProgBar(n, stream=1) # writes to stdout my_prbar = pyprind.ProgBar(n, stream=2) # writes to stderr, default - - Does not redirect data to the standard output or error stream if program is not outputting to a terminal. - VERSION 1.1.1 ============== - Fixed problem with packaging of example scripts. + VERSION 1.1.0 =============== - Added live time tracking to percentage indicator @@ -197,7 +182,6 @@ VERSION 1.0.2 VERSION 1.0.1 =============== - - Added more README formats. - Added class descriptions. - Added example scripts to the distribution. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..049fbf0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2014-2016, Sebastian Raschka +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of biopandas nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 804a80f..0000000 --- a/LICENSE.txt +++ /dev/null @@ -1,674 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - PyPrind Copyright (C) 2014 Sebastian Raschka - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/MANIFEST b/MANIFEST index 4a9d280..94660e8 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,6 +1,6 @@ # file GENERATED by distutils, do NOT edit -CHANGELOG.txt -LICENSE.txt +CHANGELOG.md +LICENSE README.html setup.py examples/ex1_percentage_indicator_stderr.py diff --git a/README.md b/README.md index f4c44d7..d731533 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ [![PyPI version](https://badge.fury.io/py/pyprind.svg)](http://badge.fury.io/py/pyprind) +[![License](https://img.shields.io/badge/license-new%20BSD-blue.svg)](https://github.com/rasbt/pyprind/blob/master/LICENSE.txt) ![Python 2.7](https://img.shields.io/badge/python-2.7-blue.svg) ![Python 3.4](https://img.shields.io/badge/python-3.4-blue.svg) ![Python 3.4](https://img.shields.io/badge/license-GPLv3-blue.svg) @@ -7,7 +8,7 @@ The `PyPrind` (Python Progress Indicator) module provides a **progress bar** and a **percentage indicator** object that let you track the progress of a loop structure or other iterative computation. -Typical applications include the processing of large data sets to provide an intuitive estimate +Typical applications include the processing of large data sets to provide an intuitive estimate at runtime about the progress of the computation. @@ -41,6 +42,7 @@ at runtime about the progress of the computation. + # Sections @@ -52,11 +54,13 @@ at runtime about the progress of the computation.

+


# Installation + [[back to top](#sections)] The most convenient way to install PyPrind is via tools like `pip` or `easy_install`: @@ -68,7 +72,7 @@ The most convenient way to install PyPrind is via tools like `pip` or `easy_inst PyPrind comes without any dependencies except for the optional [psutil](https://pypi.python.org/pypi/psutil) to [monitor CPU and memory usages](#advanced_tracking). You can install `psutil` via `pip install pyprind` or install it automatically with PyPrind: - `pip install pyprind -r requirements.txt` + `pip install pyprind -r requirements.txt` @@ -85,6 +89,7 @@ Alternatively, you can install PyPrind the classic way: Download the package fro
# Documentation + [[back to top](#sections)] @@ -94,7 +99,7 @@ Progress bars are available via `ProgBar`, and percentage indicators can be used n = 10000000 bar = pyprind.ProgBar(n) # 1) initialization with number of iterations - for i in range(n): + for i in range(n): # do some computation bar.update() # 2) update the progress visualization @@ -105,62 +110,64 @@ Alternatively, the progress can be tracked via the equivalent generator function pass
+ #### Complete Parameter List for ProgBar Objects class ProgBar(Prog): - """ + """ Initializes a progress bar object that allows visuzalization - of an iterational computation in the standard output screen. - + of an iterational computation in the standard output screen. + Parameters ---------- iterations : `int` Number of iterations for the iterative computation. - - track_time : `bool` (default = `True`) + + track_time : `bool` (default = `True`) Prints elapsed time when loop has finished. - + width : `int` (default = 30) Sets the progress bar width in characters. - - stream : `int` (default = 2). - Setting the output stream. + + stream : `int` (default = 2). + Setting the output stream. Takes `1` for stdout, `2` for stderr, or a custom stream object - - title : `str` (default = `''`). + + title : `str` (default = `''`). Setting a title for the progress bar. - + monitor : `bool` (default = False) Monitors CPU and memory usage if `True` (requires `psutil` package). - + """
+ #### Complete Parameter List for ProgPercent Objects class ProgPercent(Prog): - """ + """ Initializes a progress bar object that allows visuzalization - of an iterational computation in the standard output screen. - + of an iterational computation in the standard output screen. + Parameters ---------- iterations : `int` Number of iterations for the iterative computation. - - track_time : `bool` (default = `True`) + + track_time : `bool` (default = `True`) Prints elapsed time when loop has finished. - - stream : `int` (default = 2). - Setting the output stream. + + stream : `int` (default = 2). + Setting the output stream. Takes `1` for stdout, `2` for stderr, or a custom stream object - - title : `str` (default = `''`). + + title : `str` (default = `''`). Setting a title for the percentage indicator. - + monitor : `bool` (default = False) Monitors CPU and memory usage if `True` (requires `psutil` package). - + """ @@ -171,6 +178,7 @@ Alternatively, the progress can be tracked via the equivalent generator function
# Examples + [[back to top](#sections)] Examples for using the progress bar and percentage indicator objects can be found in the [IPython Demo Notebook](http://nbviewer.ipython.org/github/rasbt/pyprind/blob/master/examples/pyprind_demo.ipynb). @@ -185,13 +193,12 @@ Examples for using the progress bar and percentage indicator objects can be foun # Contact + [[back to top](#sections)] If you have any questions or comments about `PyPrind`, please feel free to contact me via -eMail: [se.raschka@gmail.com](mailto:se.raschka@gmail.com) +eMail: [mail@sebastianraschka.com](mailto:mail@sebastianraschka.com) or Twitter: [@rasbt](https://twitter.com/rasbt) The `pyprind` module is available on GitHub at [https://github.com/rasbt/pyprind](https://github.com/rasbt/pyprind). - - diff --git a/examples/.ipynb_checkpoints/pyprind_demo-checkpoint.ipynb b/examples/.ipynb_checkpoints/pyprind_demo-checkpoint.ipynb index f96e7dc..92db04d 100644 --- a/examples/.ipynb_checkpoints/pyprind_demo-checkpoint.ipynb +++ b/examples/.ipynb_checkpoints/pyprind_demo-checkpoint.ipynb @@ -18,10 +18,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Last updated: 07/19/2015 \n", + "Last updated: 01/11/2016 \n", "\n", - "CPython 3.4.3\n", - "IPython 3.2.0\n" + "CPython 3.5.1\n", + "IPython 4.0.1\n" ] } ], @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -122,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -132,17 +132,19 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.645 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", + "import time\n", + "n = 100\n", + "timesleep = 0.05\n", "\n", "bar = pyprind.ProgBar(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, @@ -179,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -188,17 +190,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "[100 %] elapsed[sec]: 1.410 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.410 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 1500\n", - "\n", "perc = pyprind.ProgPercent(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " perc.update()" ] }, @@ -234,7 +234,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -244,20 +244,19 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 0.115 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ "for i in pyprind.prog_bar(range(n)):\n", - " # do something\n", - " pass" + " time.sleep(timesleep) # your computation here" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -266,15 +265,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "[100 %] elapsed[sec]: 1.418 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.418 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ "for i in pyprind.prog_percent(range(n)):\n", - " # do something\n", - " pass" + " time.sleep(timesleep) # your computation here" ] }, { @@ -309,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -319,8 +317,8 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.614 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -328,27 +326,26 @@ "output_type": "stream", "text": [ "Title: \n", - " Started: 01/21/2015 23:21:28\n", - " Finished: 01/21/2015 23:21:29\n", - " Total time elapsed: 1.614 sec\n" + " Started: 01/11/2016 17:01:09\n", + " Finished: 01/11/2016 17:01:14\n", + " Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()\n", "print(bar)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [ { @@ -357,8 +354,8 @@ "text": [ "Job_1\n", "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 2.016 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -366,20 +363,18 @@ "output_type": "stream", "text": [ "Title: Job_1\n", - " Started: 01/21/2015 23:21:30\n", - " Finished: 01/21/2015 23:21:32\n", - " Total time elapsed: 2.016 sec\n", - " CPU %: 56.100000\n", - " Memory %: 0.333166\n" + " Started: 01/11/2016 17:01:19\n", + " Finished: 01/11/2016 17:01:24\n", + " Total time elapsed: 00:00:05\n", + " CPU %: 1.200000\n", + " Memory %: 0.365305\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, monitor=True, title='Job_1')\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()\n", " \n", "# print report for future reference\n", @@ -425,7 +420,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -435,8 +430,8 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.688 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -444,20 +439,18 @@ "output_type": "stream", "text": [ "Title: \n", - " Started: 01/21/2015 23:21:34\n", - " Finished: 01/21/2015 23:21:36\n", - " Total time elapsed: 1.688 sec\n", - " CPU %: 57.800000\n", - " Memory %: 0.333261\n" + " Started: 01/11/2016 17:01:40\n", + " Finished: 01/11/2016 17:01:45\n", + " Total time elapsed: 00:00:05\n", + " CPU %: 1.100000\n", + " Memory %: 0.365353\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, monitor=True)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()\n", "print(bar)" ] @@ -471,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -480,8 +473,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "[100 %] elapsed[sec]: 1.255 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.255 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -489,20 +482,18 @@ "output_type": "stream", "text": [ "Title: \n", - " Started: 01/21/2015 23:21:37\n", - " Finished: 01/21/2015 23:21:38\n", - " Total time elapsed: 1.255 sec\n", - " CPU %: 48.600000\n", - " Memory %: 0.333738\n" + " Started: 01/11/2016 17:01:50\n", + " Finished: 01/11/2016 17:01:55\n", + " Total time elapsed: 00:00:05\n", + " CPU %: 1.700000\n", + " Memory %: 0.365448\n" ] } ], "source": [ - "n = 1500\n", - "\n", "perc = pyprind.ProgPercent(n, monitor=True)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " perc.update()\n", "print(perc)" ] @@ -539,7 +530,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -550,23 +541,21 @@ "text": [ "My 1st Progress Bar\n", "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.929 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, title='My 1st Progress Bar')\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -576,17 +565,15 @@ "output_type": "stream", "text": [ "My 1st Percent Tracker\n", - "[100 %] elapsed[sec]: 1.211 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.211 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 1500\n", - "\n", "perc = pyprind.ProgPercent(n, title='My 1st Percent Tracker')\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " perc.update()" ] }, @@ -622,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -632,25 +619,39 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##########] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.189 sec\n", - "0% 100%\n", - "[######################################################################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 2.085 sec\n" + "[##########] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, width=10)\n", "for i in range(n):\n", - " # do some computation\n", - " bar.update()\n", - "\n", + " time.sleep(timesleep) # your computation here\n", + " bar.update()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "0% 100%\n", + "[######################################################################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" + ] + } + ], + "source": [ "bar = pyprind.ProgBar(n, width=70)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, @@ -686,7 +687,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -696,23 +697,21 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.789 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, stream=1)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -722,21 +721,21 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.604 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ "bar = pyprind.ProgBar(n, stream=2)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -746,8 +745,8 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.729 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], @@ -756,7 +755,7 @@ "\n", "bar = pyprind.ProgBar(n, stream=sys.stdout)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, @@ -791,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -801,17 +800,15 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 0.184 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " if i == 10000:\n", " bar.stop()\n", " bar.update()" @@ -848,7 +845,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -858,19 +855,17 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[####################] | ETA[sec]: 0.000 | Item ID: file_20.csv\n", - "Total time elapsed: 10.104 sec\n" + "[####################] | ETA: 00:00:00 | Item ID: file_20.csv\n", + "Total time elapsed: 00:00:01\n" ] } ], "source": [ - "import time\n", - "\n", "items = ['file_%s.csv' %i for i in range(1,21)]\n", "\n", "bar = pyprind.ProgBar(len(items))\n", "for i in items:\n", - " time.sleep(0.5) # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update(item_id = i)" ] }, @@ -900,21 +895,7 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import sys\n", - "sys.path = ['/Users/sebastian/github/pyprind/'] + sys.path\n", - "import pyprind\n", - "import time" - ] - }, - { - "cell_type": "code", - "execution_count": 9, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -924,27 +905,17 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[██████████████████████████████] | ETA[sec]: 0.000 \n", - "Total time elapsed: 10.346 sec\n" + "[██████████████████████████████] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:10\n" ] } ], "source": [ - "n = 100\n", "bar = pyprind.ProgBar(n, bar_char='█')\n", "for i in range(n):\n", " time.sleep(0.1) # do some computation\n", " bar.update()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -963,7 +934,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, diff --git a/examples/pyprind_demo.ipynb b/examples/pyprind_demo.ipynb index f96e7dc..92db04d 100644 --- a/examples/pyprind_demo.ipynb +++ b/examples/pyprind_demo.ipynb @@ -18,10 +18,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Last updated: 07/19/2015 \n", + "Last updated: 01/11/2016 \n", "\n", - "CPython 3.4.3\n", - "IPython 3.2.0\n" + "CPython 3.5.1\n", + "IPython 4.0.1\n" ] } ], @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -122,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -132,17 +132,19 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.645 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", + "import time\n", + "n = 100\n", + "timesleep = 0.05\n", "\n", "bar = pyprind.ProgBar(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, @@ -179,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -188,17 +190,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "[100 %] elapsed[sec]: 1.410 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.410 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 1500\n", - "\n", "perc = pyprind.ProgPercent(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " perc.update()" ] }, @@ -234,7 +234,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -244,20 +244,19 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 0.115 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ "for i in pyprind.prog_bar(range(n)):\n", - " # do something\n", - " pass" + " time.sleep(timesleep) # your computation here" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -266,15 +265,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "[100 %] elapsed[sec]: 1.418 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.418 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ "for i in pyprind.prog_percent(range(n)):\n", - " # do something\n", - " pass" + " time.sleep(timesleep) # your computation here" ] }, { @@ -309,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -319,8 +317,8 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.614 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -328,27 +326,26 @@ "output_type": "stream", "text": [ "Title: \n", - " Started: 01/21/2015 23:21:28\n", - " Finished: 01/21/2015 23:21:29\n", - " Total time elapsed: 1.614 sec\n" + " Started: 01/11/2016 17:01:09\n", + " Finished: 01/11/2016 17:01:14\n", + " Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()\n", "print(bar)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [ { @@ -357,8 +354,8 @@ "text": [ "Job_1\n", "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 2.016 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -366,20 +363,18 @@ "output_type": "stream", "text": [ "Title: Job_1\n", - " Started: 01/21/2015 23:21:30\n", - " Finished: 01/21/2015 23:21:32\n", - " Total time elapsed: 2.016 sec\n", - " CPU %: 56.100000\n", - " Memory %: 0.333166\n" + " Started: 01/11/2016 17:01:19\n", + " Finished: 01/11/2016 17:01:24\n", + " Total time elapsed: 00:00:05\n", + " CPU %: 1.200000\n", + " Memory %: 0.365305\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, monitor=True, title='Job_1')\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()\n", " \n", "# print report for future reference\n", @@ -425,7 +420,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -435,8 +430,8 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.688 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -444,20 +439,18 @@ "output_type": "stream", "text": [ "Title: \n", - " Started: 01/21/2015 23:21:34\n", - " Finished: 01/21/2015 23:21:36\n", - " Total time elapsed: 1.688 sec\n", - " CPU %: 57.800000\n", - " Memory %: 0.333261\n" + " Started: 01/11/2016 17:01:40\n", + " Finished: 01/11/2016 17:01:45\n", + " Total time elapsed: 00:00:05\n", + " CPU %: 1.100000\n", + " Memory %: 0.365353\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, monitor=True)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()\n", "print(bar)" ] @@ -471,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -480,8 +473,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "[100 %] elapsed[sec]: 1.255 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.255 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] }, { @@ -489,20 +482,18 @@ "output_type": "stream", "text": [ "Title: \n", - " Started: 01/21/2015 23:21:37\n", - " Finished: 01/21/2015 23:21:38\n", - " Total time elapsed: 1.255 sec\n", - " CPU %: 48.600000\n", - " Memory %: 0.333738\n" + " Started: 01/11/2016 17:01:50\n", + " Finished: 01/11/2016 17:01:55\n", + " Total time elapsed: 00:00:05\n", + " CPU %: 1.700000\n", + " Memory %: 0.365448\n" ] } ], "source": [ - "n = 1500\n", - "\n", "perc = pyprind.ProgPercent(n, monitor=True)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " perc.update()\n", "print(perc)" ] @@ -539,7 +530,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -550,23 +541,21 @@ "text": [ "My 1st Progress Bar\n", "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.929 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, title='My 1st Progress Bar')\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -576,17 +565,15 @@ "output_type": "stream", "text": [ "My 1st Percent Tracker\n", - "[100 %] elapsed[sec]: 1.211 | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.211 sec\n" + "[100 %] Time elapsed: 00:00:05 | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 1500\n", - "\n", "perc = pyprind.ProgPercent(n, title='My 1st Percent Tracker')\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " perc.update()" ] }, @@ -622,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -632,25 +619,39 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##########] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.189 sec\n", - "0% 100%\n", - "[######################################################################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 2.085 sec\n" + "[##########] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, width=10)\n", "for i in range(n):\n", - " # do some computation\n", - " bar.update()\n", - "\n", + " time.sleep(timesleep) # your computation here\n", + " bar.update()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "0% 100%\n", + "[######################################################################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" + ] + } + ], + "source": [ "bar = pyprind.ProgBar(n, width=70)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, @@ -686,7 +687,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -696,23 +697,21 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.789 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n, stream=1)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -722,21 +721,21 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.604 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ "bar = pyprind.ProgBar(n, stream=2)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -746,8 +745,8 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 1.729 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], @@ -756,7 +755,7 @@ "\n", "bar = pyprind.ProgBar(n, stream=sys.stdout)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update()" ] }, @@ -791,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -801,17 +800,15 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[##############################] | ETA[sec]: 0.000 \n", - "Total time elapsed: 0.184 sec\n" + "[##############################] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:05\n" ] } ], "source": [ - "n = 150000\n", - "\n", "bar = pyprind.ProgBar(n)\n", "for i in range(n):\n", - " # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " if i == 10000:\n", " bar.stop()\n", " bar.update()" @@ -848,7 +845,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -858,19 +855,17 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[####################] | ETA[sec]: 0.000 | Item ID: file_20.csv\n", - "Total time elapsed: 10.104 sec\n" + "[####################] | ETA: 00:00:00 | Item ID: file_20.csv\n", + "Total time elapsed: 00:00:01\n" ] } ], "source": [ - "import time\n", - "\n", "items = ['file_%s.csv' %i for i in range(1,21)]\n", "\n", "bar = pyprind.ProgBar(len(items))\n", "for i in items:\n", - " time.sleep(0.5) # do some computation\n", + " time.sleep(timesleep) # your computation here\n", " bar.update(item_id = i)" ] }, @@ -900,21 +895,7 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import sys\n", - "sys.path = ['/Users/sebastian/github/pyprind/'] + sys.path\n", - "import pyprind\n", - "import time" - ] - }, - { - "cell_type": "code", - "execution_count": 9, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -924,27 +905,17 @@ "output_type": "stream", "text": [ "0% 100%\n", - "[██████████████████████████████] | ETA[sec]: 0.000 \n", - "Total time elapsed: 10.346 sec\n" + "[██████████████████████████████] | ETA: 00:00:00\n", + "Total time elapsed: 00:00:10\n" ] } ], "source": [ - "n = 100\n", "bar = pyprind.ProgBar(n, bar_char='█')\n", "for i in range(n):\n", " time.sleep(0.1) # do some computation\n", " bar.update()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -963,7 +934,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, diff --git a/images/overview_1.png b/images/overview_1.png index 10670e4ffb5ae4d54b5ce1839f6265932a105ec1..2c244354b76873415216c9f5bc6fb61f334eac44 100644 GIT binary patch literal 49640 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 literal 42436 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 Wyc{W@t_aNQr68js{X_C&@c#gh)U?I` diff --git a/images/overview_2.png b/images/overview_2.png index 9abae27422466bf0ffc1bb16454533d7931f22d3..5d70966b7045e53a0aca9866b90cd9264f8c68f4 100644 GIT binary patch literal 58532 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 literal 54244 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 Z?r{!iC|hw8WvV&Y!`i~Zyw(hz^e;e7Z;Su{ diff --git a/images/overview_3.png b/images/overview_3.png index 3acfe4ca2abe272e8117d9bd21b904ea6eb79ceb..73a589187a4a35ed2522610d38ea86c376602063 100644 GIT binary patch literal 30866 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 qU|rFafCtfKCnl!f&UL<@8{qE literal 27188 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 +# Contributors: https://github.com/rasbt/pyprind/graphs/contributors +# License: BSD 3 clause +# Code Repository: https://github.com/rasbt/pyprind +# PyPI: https://pypi.python.org/pypi/PyPrind """ The PyPrind (Python Progress Indicator) module lets you visualize the progress of a programming task in Python via a progress bar or a diff --git a/pyprind/generator_factory.py b/pyprind/generator_factory.py index 278e9b5..fb60c1f 100755 --- a/pyprind/generator_factory.py +++ b/pyprind/generator_factory.py @@ -1,3 +1,10 @@ +# PyPrind +# Author: Sebastian Raschka +# Contributors: https://github.com/rasbt/pyprind/graphs/contributors +# License: BSD 3 clause +# Code Repository: https://github.com/rasbt/pyprind +# PyPI: https://pypi.python.org/pypi/PyPrind + from .progbar import ProgBar from .progpercent import ProgPercent diff --git a/pyprind/prog_class.py b/pyprind/prog_class.py index 80e4122..bf5d8fc 100644 --- a/pyprind/prog_class.py +++ b/pyprind/prog_class.py @@ -1,3 +1,10 @@ +# PyPrind +# Author: Sebastian Raschka +# Contributors: https://github.com/rasbt/pyprind/graphs/contributors +# License: BSD 3 clause +# Code Repository: https://github.com/rasbt/pyprind +# PyPI: https://pypi.python.org/pypi/PyPrind + import time import sys import os @@ -95,12 +102,12 @@ def _calc_percent(self): def _no_stream(self, text=None): """ Called when no valid output stream is available. """ pass - + def _get_time(self, _time): - if (_time < 86400): - return time.strftime("%H:%M:%S", time.gmtime(_time)) - else: - return str(int(_time//3600)) + ':' + time.strftime("%M:%S", time.gmtime(_time)) + if (_time < 86400): + return time.strftime("%H:%M:%S", time.gmtime(_time)) + else: + return str(int(_time//3600)) + ':' + time.strftime("%M:%S", time.gmtime(_time)) def _finish(self): """ Determines if maximum number of iterations (seed) is reached. """ @@ -128,7 +135,7 @@ def _print_eta(self): def _print_item_id(self): """ Prints an item id behind the tracking object.""" - self._stream_out('| Item ID: %s' % self.item_id) + self._stream_out(' | Item ID: %s' % self.item_id) self._stream_flush() def __repr__(self): diff --git a/pyprind/progbar.py b/pyprind/progbar.py index 41a9624..c1a3416 100755 --- a/pyprind/progbar.py +++ b/pyprind/progbar.py @@ -1,8 +1,9 @@ -# Sebastian Raschka 2014 -# -# Progress Bar class to instantiate a progress bar object -# that is printed to the standard output screen to visualize the -# progress in a iterative Python procedure +# PyPrind +# Author: Sebastian Raschka +# Contributors: https://github.com/rasbt/pyprind/graphs/contributors +# License: BSD 3 clause +# Code Repository: https://github.com/rasbt/pyprind +# PyPI: https://pypi.python.org/pypi/PyPrind from math import floor from pyprind.prog_class import Prog diff --git a/pyprind/progpercent.py b/pyprind/progpercent.py index 1f5b501..11a8f54 100755 --- a/pyprind/progpercent.py +++ b/pyprind/progpercent.py @@ -1,8 +1,9 @@ -# Sebastian Raschka 2014 -# -# Progress Percentage class to instantiate a percentage indicator object -# that is printed to the standard output screen to visualize the -# progress in a iterative Python procedure +# PyPrind +# Author: Sebastian Raschka +# Contributors: https://github.com/rasbt/pyprind/graphs/contributors +# License: BSD 3 clause +# Code Repository: https://github.com/rasbt/pyprind +# PyPI: https://pypi.python.org/pypi/PyPrind from pyprind.prog_class import Prog diff --git a/setup.py b/setup.py index 3a3c44b..6e56712 100644 --- a/setup.py +++ b/setup.py @@ -1,15 +1,15 @@ from distutils.core import setup setup(name='PyPrind', - version='2.9.3', + version='2.9.4', description='Python Progress Indicator Utility', author='Sebastian Raschka', - author_email='se.raschka@gmail.com', + author_email='mail@sebastianraschka.com', url='https://github.com/rasbt/pyprind', packages=['pyprind'], - data_files=[('', ['LICENSE.txt']), + data_files=[('', ['LICENSE']), ('', ['README.html']), - ('', ['CHANGELOG.txt']), + ('', ['CHANGELOG.md']), ('examples', ['examples/ex1_percentage_indicator_stderr.py']), ('examples', ['examples/ex1_percentage_indicator_stdout.py']), ('examples', ['examples/ex1_progress_bar_stderr.py']), @@ -19,10 +19,10 @@ ('examples', ['examples/ex3_percentage_indicator_monitor.py']), ('examples', ['examples/ex3_progress_bar_monitor.py']), ], - license='GPLv3', + license='New BSD', platforms='any', classifiers=[ - 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', + 'License :: OSI Approved :: BSD License', 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', @@ -42,7 +42,7 @@ ============= If you have any questions or comments about PyPrind, please feel free to contact me via -email: se.raschka@gmail.com +email: mail@sebastianraschka.com or Twitter: https://twitter.com/rasbt """,) diff --git a/test/percentage_indicator.py b/test/percentage_indicator.py index 4c212ed..f93f1de 100644 --- a/test/percentage_indicator.py +++ b/test/percentage_indicator.py @@ -1,13 +1,19 @@ import sys +sys.path = ['/Users/Sebastian/Dropbox/_ot/code/pyprind'] + sys.path +import time import pyprind + print('\n%s' % (80 * '=')) print('%s\n' % (80 * '=')) print('Testing Basic Percentage Indicator\n') -n = 100000 +n = 100 +sleeptime = 0.02 + perc = pyprind.ProgPercent(n) for i in range(n): + time.sleep(sleeptime) perc.update() print('\n%s' % (80 * '=')) @@ -16,16 +22,15 @@ perc = pyprind.ProgPercent(n, stream=sys.stdout) for i in range(n): + time.sleep(sleeptime) perc.update() - print('\n%s' % (80 * '=')) print('%s\n' % (80 * '=')) print('Testing Percentage Indicator Generator\n') for i in pyprind.prog_percent(range(n), stream=sys.stdout): - # do something - pass + time.sleep(sleeptime) print('\n%s' % (80 * '=')) @@ -34,6 +39,7 @@ perc = pyprind.ProgPercent(n, monitor=True) for i in range(n): + time.sleep(sleeptime) perc.update() print(perc) @@ -45,5 +51,5 @@ items = ['file_%s.csv' % i for i in range(0, n)] perc = pyprind.ProgPercent(len(items)) for i in items: - # do some computation + time.sleep(sleeptime) perc.update(item_id=i) diff --git a/test/progress_bar.py b/test/progress_bar.py index 081b69a..dc59a04 100644 --- a/test/progress_bar.py +++ b/test/progress_bar.py @@ -1,13 +1,22 @@ import sys +sys.path = ['/Users/Sebastian/Dropbox/_ot/code/pyprind'] + sys.path + +import sys +import time import pyprind print('\n%s' % (80 * '=')) print('%s\n' % (80 * '=')) print('Testing Basic Progress Bar\n') -n = 100000 +#n = 10000000 +#sleeptime = 0.1 +n = 100 +sleeptime = 0.02 + bar = pyprind.ProgBar(n) for i in range(n): + time.sleep(sleeptime) bar.update() print('\n%s' % (80 * '=')) @@ -16,6 +25,7 @@ bar = pyprind.ProgBar(n, stream=sys.stdout) for i in range(n): + time.sleep(sleeptime) bar.update() @@ -24,8 +34,7 @@ print('Testing Progress Bar Generator\n') for i in pyprind.prog_bar(range(n), stream=sys.stdout): - # do something - pass + time.sleep(sleeptime) print('\n%s' % (80 * '=')) @@ -34,6 +43,7 @@ bar = pyprind.ProgBar(n, monitor=True) for i in range(n): + time.sleep(sleeptime) bar.update() print(bar) print('\n%s' % (80 * '=')) @@ -42,6 +52,7 @@ bar = pyprind.ProgBar(n, width=10) for i in range(n): + time.sleep(sleeptime) bar.update() print('\n%s' % (80 * '=')) @@ -51,7 +62,7 @@ items = ['file_%s.csv' % i for i in range(0, n)] bar = pyprind.ProgBar(len(items)) for i in items: - # do some computation + time.sleep(sleeptime) bar.update(item_id=i) print('\n%s' % (80 * '=')) @@ -60,4 +71,5 @@ bar = pyprind.ProgBar(n, bar_char='>') for i in range(n): + time.sleep(sleeptime) bar.update()