Python.py
made by https://0x3d.site
Thingswe have.
GitHub - rsalmei/alive-progress: A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations!A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations! - rsalmei/alive-progress
Visit Site
GitHub - rsalmei/alive-progress: A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations!
alive-progress
Have you ever wondered where your lengthy processing was at, and when would it finish? Do you usually hit RETURN
several times to make sure it didn't crash, or the SSH connection didn't freeze? Have you ever thought it'd be awesome to be able to pause some processing without hassle, return to the Python prompt to manually fix some items, then seamlessly resume it? I did...
I've started this new progress bar thinking about all that, behold the alive-progress! š
Introducing the newest concept in progress bars for Python! alive-progress
is in a class of its own, with an array of cool features that set it apart. Here are a few highlights:
- A mesmerizing live spinner that reacts to your actual processing speed, i.e., it dynamically gets faster or slower with your throughput, and clearly shows a lengthy task is in progress, i.e., did not crash even if taking too long (and your SSH connection did not freeze if remote).
- An efficient multithreaded bar that updates itself at a fraction of the actual processing speed to keep CPU usage low and avoid terminal spamming (1,000,000 iterations per second equates to roughly 60 updates per second), and you can also calibrate it to your liking.
- An accurate ETA (Expected Time of Arrival) with an intelligent Exponential Smoothing Algorithm that shows the time to completion, allowing you to plan your time and manage your workload more effectively.
- Automatic print and logging hooks that provide seamless and efortless integration with any code, even enriching these outputs with the current bar position when they occurred.
- It prints a nice final receipt when your processing ends, including the total items, the elapsed time, and the observed throughput.
- It detects under and overflows, enabling you to track hits, misses, or any desired counts, not necessarily the actually performed iterations.
- You can suspend it! That's right, you heard it here first! No other progress bar anywhere in any language has this feature! You can suspend your processing and get back to the Python prompt, adjust or fix some items, and then get back into the same processing as if it had never stopped!
- It is highly customizable, with a smorgasbord of ready-to-use spinner and bar styles, as well as several factories to easily create yours! There's even a super powerful
check()
tool that helps you design your own animations! You can see how the generated frames and animation cycles will look like, exploded on your screen, and even see it alive before installing inalive-progress
! It's the coolest tool in the world! Unleash your creativity!
Table of contents
This README is always evolving, so do take a more comprehensive look from time to time... You might find great new details in other sections! š
- alive-progress
š What's new in 3.2 series
After about a year of reassuring stability, the new alive-progress
has finally landed!
The main features and improvements are:
- The print/logging hooks now support multithreading => a highly requested feature: everything is synchronized now so you can print from different threads without issues! No more queues to send messages to the main thread!
- Rounded ETAs for long tasks => now the ETA automatically decreases its precision the higher it gets, making it smoother and easier to read!
- Support for zero and even negative bar increments => now on par with the manual mode, you can call
bar()
with0
and even-N
to make it go backwards! Useful when you couldn't make any progress in an iteration or had to roll back something!
And more!
- Custom offset for the enriched print/logging messages => now you can specify a custom
enrich_offset
to use for printed or logged messages, allowing you to start withon 1:
or continue where you left from previous computations! - Improved compatibility with PyInstaller => now custom bars, unknown bars, and spinners work when bundled!
- Improved compatibility with Celery => it will just work within Celery tasks!
- drop python 3.7 and 3.8, hello 3.12 and 3.13!
Previous releases
A very cool update here! In addition to polishing things up and improving terminal support, now alive-progress
supports resuming computations!
When processing huge datasets or things that take a long time, you might either use batches or cache partial results. Then, in case it stops and is restarted, you end up skipping all those already done items very quickly, which makes the alive_bar
think you're processing thousands of items per second, which in turn completely ruins the ETA... But not anymore! Just tell bar()
that you've skipped items... š
You can use it in two ways:
1. If you do know where you've stopped:
with alive_bar(120000) as bar:
bar(60000, skipped=True)
for i in range(60000, 120000):
# process item
bar()
Yep, just call bar(N, skipped=True)
once, with the number of items.
2. If you do not know or the items are scattered:
with alive_bar(120000) as bar:
for i in range(120000):
if done(i):
bar(skipped=True)
continue
# process item
bar()
Yep, it's as simple as that! Just call bar(skipped=True)
when an item is already done, or bar()
as usual otherwise. You could also share a single bar(skipped=?)
call at the end, with a bool saying whether you did skip that item or not. Cool, huh?
Also in this version:
- new
max_cols
config setting, the number of columns to use if not possible to fetch it, like in jupyter and other platforms which doesn't support size - fix fetching the size of the terminal when using stderr
- officially supports Python 3.11
- included ruff linter before building
Yep, I could finally get this version out! These are the new goodies:
- Units support! You can now label the data you're processing, like
B
,bytes
, or evenĀ°C
! - Automatic scaling! With support for SI (base 1000), IEC (base 1024), and even an alternate SI with base 1024, you'll be well served!
- Configurable precision! When your numbers are scaled, you get to choose how many decimals they display!
- Automatic stats scaling for slow throughputs! If your processing takes minutes or more, now you'll see rates per minute, per hour, and even per day! (It works within the auto-scaling system!)
- Support for using
sys.stderr
and other files instead ofsys.stdout
! - Smoothed out the rate estimation with the same Exponential Smoothing Algorithm that powers the ETA, so the bar returns a more realistic ETA!
- Query the currently running widgets' data, like the monitor, rate, and ETA!
- New help system on configuration errors, which explains why a value was not accepted, and what were the expected ones!
Highly anticipated fixes:
- Support for reusing logging handlers! No more
TypeError: unhashable type: 'types.SimpleNamespace'
. - Support for logging when using
RotatingFileHandler
s! Yep, seek support is here. - Fix unknown mode always ending with a warning (!)
And last but not least, a more polished layout for you to enjoy your progress!
Now, alive_bar
supports Dual Line text mode!
If you ever wanted to include longer situational messages within the bar, you probably felt squeezed into one line. You had to shrink the beautifully animated bar or, even worse, remove widgets (!) to be able to see what you needed... Not anymore!! You can now make the bar Dual Line, and put text below it!
Yes, there's a message below the whole bar, and any other print/logging messages scroll above it!
letters = [chr(ord('A') + x) for x in range(26)]
with alive_bar(26, dual_line=True, title='Alphabet') as bar:
for c in letters:
bar.text = f'-> Teaching the letter: {c}, please wait...'
if c in 'HKWZ':
print(f'fail "{c}", retry later')
time.sleep(0.3)
bar()
Output:
on 7: fail "H", retry later
on 10: fail "K", retry later
Alphabet |āāāāāāāāāāāāāāāāāāāāāāāāāāāā | āā
ā 18/26 [69%] in 6s (3.2/s, eta: 3s)
-> Teaching the letter: S, please wait...
There's also a new finalize
function parameter in alive_it
which enables you to set the title and/or text of the final receipt, and improved logging support which detects customized loggers.
This is all about customization; the core widgets can now be changed:
- send a string to the
monitor
,elapsed
, andstats
widgets to make them look anyway you want!
It's incredible that these strings support all Python format features, so you can e.g.,
{percent:.1%}
š.
They can be further customized when on the final receipt!
- new
monitor_end
,elapsed_end
, andstats_end
, with dynamic formats inherited from the standard ones!
If you've hidden some widgets before, just so they wouldn't appear on the receipt, now you can see them in all their running glory, and hide just the receipt ones! Or the other way around š
Another addition, now alive-progress
beautifully renders its cool final receipt whenever it is stopped, even if you CTRL+C it prematurely! I don't know why I haven't thought about that before...
Download |āāāāāāāāāāāāāāāāāāā ļø | (!) 45/100 [45%] in 4.8s (9.43/s)
And finally, you can choose to disable CTRL+C at all! The default is the safer ctrl_c=True
, which does make CTRL-C work as usual.
Disable it ctrl_c=False
, to make your interactive alive_bar
much smoother to use (there are no stack traces if you stop it), and/or if it is at the top-level of your program!
Beware: If it is e.g. inside a for-loop, it will just continue to the next iteration, which may or may not be what you want...
for i in range(10):
with alive_bar(100, ctrl_c=False, title=f'Download {i}') as bar:
for i in range(100):
time.sleep(0.02)
bar()
Output:
Download 0 |āāāāāāāāāā ļø | (!) 22/100 [22%] in 0.6s (36.40/s)
Download 1 |āāāāāāāāāāāāāāāāāā ļø | (!) 42/100 [42%] in 1.0s (41.43/s)
Download 2 |āāāāāāāā ļø | (!) 16/100 [16%] in 0.4s (39.29/s)
Download 3 |āāāāāāā ļø | (!) 14/100 [14%] in 0.4s (33.68/s)
Download 4 |āāāāāāāāāāāāāāā ļø | (!) 33/100 [33%] in 0.8s (39.48/s)
Download 5 |āāāāāāāāā ļø | (!) 18/100 [18%] in 0.5s (37.69/s)
Download 6 |āāāāāāā ļø | (!) 13/100 [13%] in 0.3s (37.28/s)
Download 7 |āāāāāāāāāāāāā ļø | (!) 30/100 [30%] in 0.8s (38.43/s)
Download 8 |āāāāāāā ļø | (!) 15/100 [15%] in 0.4s (36.26/s)
...
Some major new features, often requested, have finally landed!
- bar title can be dynamically set, changed, or even removed after being displayed
- new custom fps system, which enables very slow refresh rates (to let it run on those k8s for long periods)
- the final receipt can be totally hidden (great for special effects, like using the cool spinners standalone)
- new support for
click.echo()
printing - terminal columns detection is safer for exotic environments
- requires Python 3.7+
YES! Now alive-progress
has support for Jupyter Notebooks and also includes a Disabled state! Both were highly sought after, and have finally landed!
And better, I've implemented an auto-detection mechanism for jupyter notebooks, so it just works, out of the box, without any changes in your code!!
See for yourself:
It seems to work very well, but at this moment, it should be considered experimental. There were instances in which some visual glitches have appeared, like two
alive_bar
refreshes being concatenated together instead of over one another... And it's something I think I can't possibly work around: it seems Jupyter sometimes refresh the canvas at odd times, which makes it lose some data. Please let me know on the issues if something funnier arises.
This is a major breakthrough in alive-progress
!
I took 1 year developing it, and I'm very proud of what I've accomplished \o/
- now, there's complete support for Emojis š¤© and exotic Unicode chars in general, which required MAJOR refactoring deep within the project, giving rise to what I called "Cell Architecture" => now, all internal components use and generate streams of cells instead of characters, and correctly interpret grapheme clusters ā those so-called wide chars, which are encoded with a variable number of chars, but always take two cells on screen!! This has enabled us to render complex multi-chars symbols as if they were one, thus making them work on any spinners, bars, texts, borders and backgrounds, even when fractured!!! Pretty advanced stuff š¤
- new super cool spinner compiler and runner, which generates complete animations ahead of time, and plays these ready-to-go animations seamlessly, with no overhead at all! š
- the spinner compiler also includes advanced extra commands to generate and modify animations, like reshape, replace, transpose, or randomize the animation cycles!
- new powerful and polished
.check()
tools that compile and beautifully render all frames from all animation cycles of spinners and bars! they can even include complete frame data, internal codepoints, and even their animations! š - bars engine revamp, with invisible fills, advanced support for multi-char tips (which gradually enter and leave the bar), borders, tips and errors of any length, and underflow errors that can leap into the border if they can't fit!
- spinners engine revamp, with standardized factory signatures, improved performance, new types, and new features: smoother bouncing spinners (with an additional frame at the edges), optimized scrolling of text messages (which go slower and pause for a moment at the edges), new alongside and sequential spinners, nicer effect in alongside spinners (which use weighted spreading over the available space), smoother animation in scrolling spinners (when the input is longer than the available space)
- new builtin spinners, bars, and themes, which make use of the new animation features
- new showtime that displays themes and is dynamic => it does not scroll the screen when it can't fit vertically or horizontally, and can even filter for patterns!
- improved support for logging into files, which gets enriched as the print hook is!
- several new configuration options for customizing appearance, including support for disabling any
alive-progress
widgets! - includes a new iterator adapter,
alive_it
, that accepts an iterable and callsbar()
for you! - requires Python 3.6+ (and officially supports Python 3.9 and 3.10)
Since this is a major version change, direct backward compatibility is not guaranteed. If something does not work at first, just check the new imports and functions' signatures, and you should be good to go. All previous features should still work here! š
Using alive-progress
Get it
Just install with pip:
āÆ pip install alive-progress
Try it
If you're wondering what styles are builtin, it's showtime
! ;)
from alive_progress.styles import showtime
showtime()
Note: Please disregard the path in the animated gif below, the correct one is above. These long gifs are very time-consuming to generate, so I can't make another on every single change. Thanks for your understanding.
I've made these styles just to try all the animation factories I've created, but I think some of them ended up very, very cool! Use them at will, and mix them to your heart's content!
Do you want to see actual alive-progress
bars gloriously running in your system before trying them yourself?
āÆ python -m alive_progress.tools.demo
Awake it
Cool, huh?? Now enter an ipython
REPL and try this:
from alive_progress import alive_bar
import time
for x in 1000, 1500, 700, 0:
with alive_bar(x) as bar:
for i in range(1000):
time.sleep(.005)
bar()
You'll see something like this, with cool animations throughout the process š:
|āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā| 1000/1000 [100%] in 5.8s (171.62/s)
|āāāāāāāāāāāāāāāāāāāāāāāāāāāā ļø | (!) 1000/1500 [67%] in 5.8s (172.62/s)
|āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāļø (!) 1000/700 [143%] in 5.8s (172.06/s)
|āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā| 1000 in 5.8s (172.45/s)
Nice, huh? Loved it? I knew you would, thank you š.
To actually use it, just wrap your normal loop in an alive_bar
context manager like this:
with alive_bar(total) as bar: # declare your expected total
for item in items: # <<-- your original loop
print(item) # process each item
bar() # call `bar()` at the end
And it's alive! š
So, in a nutshell: retrieve the items as always, enter the alive_bar
context manager with the number of items, and then iterate/process those items, calling bar()
at the end! It's that simple! :)
Master it
items
can be any iterable, like for example, a queryset;- the first argument of the
alive_bar
is the expected total, likeqs.count()
for querysets,len(items)
for iterables with length, or even a static number; - the call
bar()
is what makes the bar go forward ā you usually call it in every iteration, just after finishing an item; - if you call
bar()
too much (or too few at the end), the bar will graphically render that deviation from the expectedtotal
, making it very easy to notice overflows and underflows; - to retrieve the current bar count or percentage, call
bar.current
.
You can get creative! Since the bar only goes forward when you call
bar()
, it is independent of the loop! So you can use it to monitor anything you want, like pending transactions, broken items, etc., or even call it more than once in the same iteration! So, in the end, you'll get to know how many of those "special" events there were, including their percentage relative to the total!
Displaying messages
While inside an alive_bar
context, you can effortlessly display messages tightly integrated with the current progress bar being displayed! It won't break in any way and will even enrich your message!
- the cool
bar.text('message')
andbar.text = 'message'
set a situational message right within the bar, where you can display something about the current item or the phase the processing is in; - the (š new) dynamic title, which can be set right at the start, but also be changed anytime with
bar.title('Title')
andbar.title = 'Title'
ā mix withtitle_length
to keep the bar from changing its length; - the usual Python
print()
statement, wherealive_bar
nicely cleans up the line, prints your message alongside the current bar position at the time, and continues the bar right below it; - the standard Python
logging
framework, including file outputs, is also enriched exactly like the previous one; - if you're using click CLI lib, you can even use
click.echo()
to print styled text.
Awesome right? And all of these work just the same in a terminal or in a Jupyter notebook!
Auto-iterating
You now have a quicker way to monitor anything! Here, the items are automatically tracked for you!
Behold the alive_it
=> the alive_bar
iterator adapter!
Simply wrap your items with it, and loop over them as usual! The bar will just work; it's that simple!
from alive_progress import alive_it
for item in alive_it(items): # <<-- wrapped items
print(item) # process each item
HOW COOL IS THAT?! š
All alive_bar
parameters apply but total
, which is smarter (if not supplied, it will be auto-inferred from your data using len
or length_hint
), and manual
that does not make sense here.
Note there isn't any bar
handle at all in there. But what if you do want it, e.g. to set text messages or retrieve the current progress?
You can interact with the internal alive_bar
by just assigning alive_it
to a variable like this:
bar = alive_it(items) # <<-- bar with wrapped items
for item in bar: # <<-- iterate on bar
print(item) # process each item
bar.text(f'ok: {item}') # WOW, it works!
Note that this is a slightly special bar
, which does not support bar()
, since the iterator adapter tracks items automatically for you. Also, it supports finalize
, which enables you to set the title and/or text of the final receipt:
alive_it(items, finalize=lambda bar: bar.text('Success!'))
...
In a nutshell:
- full use is always
with alive_bar() as bar
, where you iterate and callbar()
whenever you want;- quick adapter use is
for item in alive_it(items)
, where items are automatically tracked;- full adapter use is
bar = alive_it(items)
, where in addition to items being automatically tracked, you get a special iterablebar
able to customize the inneralive_progress
however you want.
Modes of operation
Auto and Unknown: Counter
The default modes are auto and unknown, which use internally a counter to track the progress. They count the number of items processed, and use it to update the progress bar accordingly.
The total
argument is optional. If you do provide it, the bar enters in auto mode. In this mode, the progress of the operation is automatically tracked, and all the widgets alive-progress
has to offer are available: precise bar, spinner, percentage, counter, throughput, and ETA.
If you don't provide total
, the bar enters in unknown mode. In this mode, the progress is indeterminable, and therefore the ETA, so the whole progress bar is continuously animated. The widgets available are: animated bar, spinner, counter, and throughput.
The cool spinner runs completely independently of the animated bar, both running their own animations concurrently, rendering a unique show in your terminal! š
Last but not least, the auto mode has a unique ability: mark items as skipped, making the throughput and ETA much more accurate! More on that later.
Manual: Percentage
The manual mode, manually activated by the manual=True
argument, uses internally a percentage to track the progress. It enables you to get complete control of the bar position. It's usually used to monitor processes that only feed you a percentage of completion, or to generate some random special effects.
You can use it directly with alive_bar
or via config_handler
, and it allows you to send percentages to the bar()
handler! For example, to set it to 15% completion, just call bar(0.15)
ā which is 15 / 100.
You can also provide total
here. If you do, alive-progress
will automatically infer an internal counter, and will thus be able to offer you all the same widgets available in auto mode!
If you don't provide total
, you'll at least get rough versions of the throughput and ETA widgets, computed as "%/s" (percentage per second) and until 100%, respectively. Neither of them are very accurate, but they are better than nothing.
Widgets available
When total
is provided all is cool:
mode | counter | percentage | throughput | ETA | over/underflow |
---|---|---|---|---|---|
auto | ā (user tick) | ā (inferred) | ā | ā | ā |
manual | ā (inferred) | ā (user set) | ā | ā | ā |
When it isn't, some compromises have to be made:
mode | counter | percentage | throughput | ETA | over/underflow |
---|---|---|---|---|---|
unknown | ā (user tick) | ā | ā | ā | ā |
manual | ā | ā (user set) | ā ļø (simpler) | ā ļø (rough) | ā |
But it's actually simple to understand: you do not need to think about which mode you should use!
- Just always send the
total
if you have it, and usemanual
if you need it!
That's it! It will just work the best it can! š \o/
The different bar()
handlers
The bar()
handlers support either relative or absolute semantics, depending on the mode:
- auto and unknown modes use optional relative positioning, so you can just call
bar()
to increment the counter by one, or send any other increment likebar(200)
to increment by 200 at once;they even support
bar(0)
andbar(-5)
to hold or decrement if needed! - manual mode uses mandatory absolute positioning, so you can call
bar(0.35)
to make the bar instantly jump to 35% progress.
Both modes enable you to get creative! Since you can just make the bar go instantly to whatever position you want, you can:
- make it go backwards ā e.g. to graphically display the timeout of something;
- create special effects ā e.g. to mimic a real-time analog gauge of some sort.
You can call bar()
as many times as you want! The terminal refresh rate will always be asynchronously computed according to the current throughput and progress, so you won't risk spamming the terminal with more updates than needed.
In any case, to retrieve the current counter/percentage, just call: bar.current
:
- in auto and unknown modes, this provides an integer ā the actual internal counter;
- in manual mode, this provides a float in the interval [0, 1] ā the last percentage set.
Finally, the bar()
handler leverages the auto mode unique ability: just call bar(skipped=True)
or bar(N, skipped=True)
to use it. When skipped
is set to=True
, the associated item(s) are excluded from throughput calculations, preventing skipped items from inaccurately affecting the ETA.
Maintaining an open source project is hard and time-consuming, and I've put much ā¤ļø and effort into this.
If you've appreciated my work, you can back me up with a donation! Thank you š
Styles
The showtime
exhibit has an optional argument to choose which show to present, Show.SPINNERS
(default), Show.BARS
or Show.THEMES
, do take a look at them! ;)
from alive_progress.styles import showtime, Show
showtime(Show.BARS)
showtime(Show.THEMES)
Note: Please disregard the path in the animated gif below, the correct one is above. These long gifs are very time-consuming to generate, so I can't make another on every single change. Thanks for your understanding.
And the themes one (š new in 2.0):
The showtime
exhibit also accepts some customization options:
- fps: the frames per second rate refresh rate, default is 15;
- length: the length of the bars, default is 40;
- pattern: a filter to choose which ones to display.
For example to get a marine show, you can showtime(pattern='boat|fish|crab')
:
You can also access these shows with the shorthands
show_bars()
,show_spinners()
, andshow_themes()
!
There's also a small utility called
print_chars()
, to help find that cool character to put in your customized spinners and bars, or to determine if your terminal does support Unicode characters.
Configuration
There are several options to customize both appearance and behavior!
All of them can be set both directly in the alive_bar
or globally in the config_handler
!
These are the options - default values in brackets:
title
: an optional, always visible bar titlelength
: [40
] the number of cols to render the animated progress barmax_cols
: [80
] the maximum cols to use if not possible to fetch it, like in jupyterspinner
: the spinner style to be rendered next to the bar ā³ accepts a predefined spinner name, a custom spinner factory, or Nonebar
: the bar style to be rendered in known modes ā³ accepts a predefined bar name, a custom bar factory, or Noneunknown
: the bar style to be rendered in the unknown mode ā³ accepts a predefined spinner name, or a custom spinner factory (cannot be None)theme
: ['smooth'
] a set of matching spinner, bar, and unknown ā³ accepts a predefined theme nameforce_tty
: [None
] forces animations to be on, off, or according to the tty (more details here) ā³ None -> auto select, according to the terminal/Jupyter ā³ True -> unconditionally enables animations, but still auto-detects Jupyter Notebooks ā³ False -> unconditionally disables animations, keeping only the final receiptfile
: [sys.stdout
] the file object to use:sys.stdout
,sys.stderr
, or a similarTextIOWrapper
disable
: [False
] if True, completely disables all output, do not install hooksmanual
: [False
] set to manually control the bar positionenrich_print
: [True
] enriches print() and logging messages with the bar positionenrich_offset
: [0
] the offset to apply to enrich_printreceipt
: [True
] prints the nice final receipt, disables if Falsereceipt_text
: [False
] set to repeat the last text message in the final receiptmonitor
(bool|str): [True
] configures the monitor widget152/200 [76%]
ā³ send a string with{count}
,{total}
and{percent}
to customize itelapsed
(bool|str): [True
] configures the elapsed time widgetin 12s
ā³ send a string with{elapsed}
to customize itstats
(bool|str): [True
] configures the stats widget(123.4/s, eta: 12s)
ā³ send a string with{rate}
and{eta}
to customize itmonitor_end
(bool|str): [True
] configures the monitor widget within final receipt ā³ same as monitor, the default format is dynamic, it inheritsmonitor
's oneelapsed_end
(bool|str): [True
] configures the elapsed time widget within final receipt ā³ same as elapsed, the default format is dynamic, it inheritselapsed
's onestats_end
(bool|str): [True
] configures the stats widget within final receipt ā³ send a string with{rate}
to customize it (no relation to stats)title_length
: [0
] fixes the length of titles, or 0 for unlimited ā³ title will be truncated if longer, and a cool ellipsis "ā¦" will appear at the endspinner_length
: [0
] forces the spinner length, or0
for its natural onerefresh_secs
: [0
] forces the refresh period to this,0
is the reactive visual feedbackctrl_c
: [True
] if False, disables CTRL+C (captures it)dual_line
: [False
] if True, places the text below the barunit
: any text that labels your entitiesscale
: the scaling to apply to units:None
,SI
,IEC
, orSI2
ā³ supports aliases:False
or''
->None
,True
->SI
,10
or'10'
->SI
,2
or'2'
->IEC
precision
: [1
] how many decimals do display when scaling
And there's also one that can only be set locally in the alive_bar
context:
calibrate
: maximum theoretical throughput to calibrate the animation speed (more details here)
To set them locally, just send them as keyword arguments to alive_bar
:
with alive_bar(total, title='Processing', length=20, bar='halloween') as bar:
...
To use them globally, send them to config_handler
, and any alive_bar
created after that will include those options! And you can mix and match them, local options always have precedence over global ones:
from alive_progress import config_handler
config_handler.set_global(length=20, spinner='wait')
with alive_bar(total, bar='blocks', spinner='twirls') as bar:
# the length is 20, the bar is 'blocks' and the spinner is 'twirls'.
...
Create your own animations
Yes, you can assemble your own spinners! And it's easy! I've created a plethora of special effects, so you can just mix and match them any way you want! There are frames, scrolling, bouncing, sequential, alongside, and delayed spinners! Get creative! š
Intro: How do they work?
The spinners' animations are engineered by very advanced generator expressions, deep within several layers of meta factories, factories and generators š¤Æ!
- the meta factory (public interface) receives the styling parameters from you, the user, and processes/stores them inside a closure to create the actual factory => this is the object you'll send to both
alive_bar
andconfig_handler
; - internally it still receives other operating parameters (like for instance the rendition length), to assemble the actual generator expression of the animation cycles of some effect, within yet another closure;
- this, for each cycle, assembles another generator expression for the animation frames of the same effect;
- these generators together finally produce the streams of cycles and frames of the cool animations we see on the screen! Wow! šš
These generators are capable of multiple different animation cycles according to the spinner behavior, e.g. a bouncing spinner can run one cycle to smoothly bring a subject into the scene, then repeatedly reposition it until the other side, then make it smoothly disappear off the scene => and this is all only one cycle! Then it can be followed by another cycle to make it all again but backwards! And bouncing spinners also accept different and alternating patterns in both the right and left directions, which makes them generate the cartesian product of all the combinations, possibly producing dozens of different cycles until they start repeating them!! š¤Æ
And there's more, I think one of the most impressive achievements I got in this animation system (besides the spinner compiler itself)... They only yield more animation frames until the current cycle is not exhausted, then they halt themselves! Yep, the next cycle does not start just yet! This behavior creates natural breaks in exactly the correct spots, where the animations are not disrupted, so I can smoothly link with whatever other animation I want!! This has all kinds of cool implications: the cycles can have different frame counts, different screen lengths, they do not need to be synchronized, they can create long different sequences by themselves, they can cooperate to play cycles in sequence or alongside, and I can amaze you displaying several totally distinct animations at the same time without any interferences whatsoever!
It's almost like they were... alive!! š ==> Yes, that's where this project's name came from! š
A Spinner Compiler, really?
Now, these generators of cycles and frames are fully consumed ahead of time by the Spinner Compiler! This is a very cool new processor that I made inside the Cell Architecture effort, to make all these animations work even in the presence of wide chars or complex grapheme clusters! It was very hard to make these clusters gradually enter and exit frames, smoothly, while keeping them from breaking the Unicode encoding and especially maintain their original lengths in all frames! Yes, several chars in sequence can represent another completely different symbol, so they cannot ever be split! They have to enter and exit the frame always together, all at once, or the grapheme won't show up at all (an Emoji for instance)!! Enter the Spinner Compiler......
This has made possible some incredible things!! Since this Compiler generates the whole spinner frame data beforehand:
- the grapheme fixes can be applied only once;
- the animations do not need to be calculated again!
So, I can just collect all that ready to play animations and be done with it, no runtime overhead at all!! š
Also, with the complete frame data compiled and persisted, I could create several commands to refactor that data, like changing shapes, replacing chars, adding visual pauses (frame repetitions), generating bouncing effects on-demand over any content, and even transposing cycles with frames!!
But how can you see these effects? Does the effect you created look good? Or is it not working as you thought? YES, now you can see all generated cycles and frames analytically, in a very beautiful rendition!!
I love what I've achieved here š, it's probably THE most beautiful tool I've ever created... Behold the check
tool!!
It's awesome if I say so myself, isn't it? And a very complex piece of software I'm proud of, take a look at its code if you'd like.
And the check
tool is much more powerful! For instance, you can see the codepoints of the frames!!! And maybe have a glimpse of why this version was so, so very hard and complex to make...
In red, you see the grapheme clusters, that occupy one or two "logical positions", regardless of their actual sizes... These are the "Cells" of the new Cell Architecture... Look how awesome an Emoji Flag is represented:
The flag seems to move so smoothly because it uses "half-characters"! Since it is a wide char, alive-progress
knows it will be rendered with "two visible chars", and the animations consider this, but compose with spaces, which occupy only one. When one uses mixed backgrounds, the situation is much more complex...
Spinner Factories
The types of factories I've created are:
frames
: draws any sequence of characters at will, that will be played frame by frame in sequence;scrolling
: generates a smooth flow from one side to the other, hiding behind or wrapping upon invisible borders ā allows using subjects one at a time, generating several cycles of distinct characters;bouncing
: similar toscrolling
, but makes the animations bounce back to the start, hiding behind or immediately bouncing upon invisible borders;sequential
get a handful of factories and play them one after the other sequentially! allows to intermix them or not;alongside
get a handful of factories and play them alongside simultaneously, why choose when you can have them all?! allows to choose the pivot of the animation;delayed
: get any other factory and copy it multiple times, increasingly skipping some frames on each one! very cool effects are made here!
For more details please look at their docstrings, which are very complete.
Bar Factories
Customizing bars is nowhere near that involved. Let's say they are "immediate", passive objects. They do not support animations, i.e. they will always generate the same rendition given the same parameters. Remember spinners are infinite generators, capable of generating long and complex sequences.
Well, bars also have a meta factory, use closures to store the styling parameters, and receive additional operating parameters, but then the actual factory can't generate any content by itself. It still needs an extra parameter, a floating-point number between 0 and 1, which is the percentage to render itself.
alive_bar
calculates this percentage automatically based on the counter and total, but you can send it yourself when in themanual
mode!
Bars also do not have a Bar Compiler, but they do provide the check tool!! š
You can even mix and match wide chars and normal chars just like in spinners! (and everything keeps perfectly aligned š )
Use the check tools to your heart's content!! They have even more goodies awaiting you, even real-time animations!
Create the wildest and coolest animations you can and send them to me! I'm thinking about creating some kind of
contrib
package, with user-contributed spinners and bars!
Wow, if you've read everything till here, you should now have a sound knowledge about using alive-progress
! š
But brace yourself because there is even more, exciting stuff lies ahead!
Maintaining an open source project is hard and time-consuming, and I've put much ā¤ļø and effort into this.
If you've appreciated my work, you can back me up with a donation! Thank you š
Advanced
The Pause Mechanism
Oh, you want to pause it altogether, I hear? This is an amazing novel concept, not found anywhere AFAIK. With this you get to act on some items manually, at will, right in the middle of an ongoing processing!! YES, you can return to the prompt and fix, change, submit things, and the bar will just "remember" where it was...
Suppose you need to reconcile payment transactions (been there, done that). You need to iterate over thousands of them, detect somehow the faulty ones, and fix them. This fix is not simple nor deterministic, you need to study each one to understand what to do. They could be missing a recipient, or have the wrong amount, or not be synced with the server, etc., it's hard to even imagine all possibilities.
Typically, you would have to let the detection process run until completion, appending to a list each inconsistency it finds and waiting, potentially a long time, until you can finally start fixing them... You could of course mitigate that by processing in chunks, or printing them and acting via another shell, etc., but those have their own shortcomings... š Now, there's a better way! Simply pause the actual detection process for a while! Then you just have to wait till the next fault is found, and act in near real-time!
To use the pause mechanism you just have to write a function, so the code can yield
the items you want to interact with. You most probably already use one in your code, but in the ipython
shell or another REPL you probably don't. So just wrap your debug code in a function, then enter within a bar.pause()
context!!
def reconcile_transactions():
qs = Transaction.objects.filter() # django example, or in sqlalchemy: session.query(Transaction).filter()
with alive_bar(qs.count()) as bar:
for transaction in qs:
if faulty(transaction):
with bar.pause():
yield transaction
bar()
That's it! It's that simple! \o/
Now run gen = reconcile_transactions()
to instantiate the generator, and whenever you want the next faulty transaction, just call next(gen, None)
! I love it...
The alive-progress
bar will start and run as usual, but as soon as any inconsistency is found, the bar will pause itself, turning off the refresh thread and remembering its exact state, and yield the transaction to you directly on the prompt! It's almost magic! š
In [11]: gen = reconcile_transactions()
In [12]: next(gen, None)
|āāāāāāāāāāāāāāāāāāāāā | 105/200 [52%] in 5s (18.8/s, eta: 4s)
Out[12]: Transaction<#123>
You can then inspect the transaction with the usual _
shortcut of ipython
(or just directly assign it with t = next(gen, None)
), and you're all set to fix it!
When you're done, just reactivate the bar with the same next
call as before!! The bar reappears, turns everything back on, and continues like it had never stopped!! Ok, it is magic š
In [21]: next(gen, None)
|āāāāāāāāāāāāāāāāāāāāā | āāā
106/200 [52%] in 5s (18.8/s, eta: 4s)
Rinse and repeat till the final receipt appears, and there'll be no faulty transactions anymore. š
Loop-less use
So, you need to monitor a fixed operation, without any loops, right? It'll work for sure! Here is a naive example (we'll do better in a moment):
with alive_bar(4) as bar:
corpus = read_file(file)
bar() # file was read, tokenizing
tokens = tokenize(corpus)
bar() # tokens generated, processing
data = process(tokens)
bar() # process finished, sending response
resp = send(data)
bar() # we're done! four bar calls with `total=4`
It's naive because it assumes all steps take the same amount of time, but actually, each one may take a very different time to complete. Think read_file
and tokenize
may be extremely fast, which makes the percentage skyrocket to 50%, then stopping for a long time in the process
step... You get the point, it can ruin the user experience and create a very misleading ETA.
To improve upon that you need to distribute the steps' percentages accordingly! Since you told alive_bar
there were four steps, when the first one was completed it understood 1/4 or 25% of the whole processing was complete... Thus, you need to measure how long your steps actually take and use the manual mode to increase the bar percentage by the right amount at each step!
You can use my other open source project about-time to easily measure these durations! Just try to simulate with some representative inputs, to get better results. Something like:
from about_time import about_time
with about_time() as t_total: # this about_time will measure the whole time of the block.
with about_time() as t1: # the other four will get the relative timings within the whole.
corpus = read_file(file) # `about_time` supports several calling conventions, including one-liners.
with about_time() as t2: # see its documentation for more details.
tokens = tokenize(corpus)
with about_time() as t3:
data = process(tokens)
with about_time() as t4:
resp = send(data)
print(f'percentage1 = {t1.duration / t_total.duration}')
print(f'percentage2 = {t2.duration / t_total.duration}')
print(f'percentage3 = {t3.duration / t_total.duration}')
print(f'percentage4 = {t4.duration / t_total.duration}')
There you go! Now you know the relative timings of all the steps, and can use them to improve your original code! Just get the cumulative timings and put them within a manual mode alive_bar
!
For example, if the timings you found were 10%, 30%, 20%, and 40%, you'd use 0.1, 0.4, 0.6, and 1.0 (the last one should always be 1.0):
with alive_bar(4, manual=True) as bar:
corpus = read_big_file()
bar(0.1) # 10%
tokens = tokenize(corpus)
bar(0.4) # 30% + 10% from previous steps
data = process(tokens)
bar(0.6) # 20% + 40% from previous steps
resp = send(data)
bar(1.) # always 1. in the last step
That's it! The user experience and ETA should be greatly improved now.
FPS Calibration
Yes, you can calibrate the spinner speed!
The alive-progress
bars have cool visual feedback of the current throughput, so you can actually see how fast your processing is, as the spinner runs faster or slower with it.
For this to happen, I've put together and implemented a few fps curves to empirically find which one gave the best feel of speed:
The graph shows the logarithmic (red), parabolic (blue) and linear (green) curves, these are the ones I started with. It was not an easy task, I've made dozens of tests, and never found one that really inspired that feel of speed I was looking for. The best one seemed to be the logarithmic one, but it reacted poorly with small numbers. I know I could make it work with a few twists for those small numbers, so I experimented a lot and adjusted the logarithmic curve (dotted orange) until I finally found the behavior I expected! It is the one that seemed to provide the best all-around perceived speed changes throughout the whole spectrum from a few to billions... That is the curve I've settled with, and it's the one used in all modes and conditions. In the future and if someone would find it useful, that curve could be configurable.
Well, the default alive-progress
calibration is 1,000,000 in bounded modes, i.e., it takes 1 million iterations per second for the bar to refresh itself at 60 frames per second. In the manual unbounded mode, it is 1.0 (100%). Both enable a vast operating range and generally work quite well.
For example, take a look at the effect these very different calibrations have, running the very same code at the very same speed! Notice the feel the spinner passes to the user, is this processing going slow or going fast? And remember that isn't only the spinner refreshing but the whole line, complete with the bar rendition and all widgets, so everything gets smoother or sluggish:
So, if your processing hardly gets to 20 items per second, and you think
alive-progress
is rendering sluggish, you could increase that sense of speed by calibrating it to let's say40
, and it will be running waaaay faster... It is better to always leave some headroom and calibrate it to something between 50% and 100% more, and then tweak it from there to find the one you like the most! :)
Forcing animations on PyCharm, Jupyter, etc.
Do these astonishing alive-progress
animations refuse to display?
PyCharm is awesome, I love it! But I'll never understand why they've disabled emulating a terminal by default... If you do use PyCharm's output console, please enable this on all your Run Configurations:
I even recommend you go into
File
>New Projects Setup
>Run Configuration Templates
, selectPython
, and also enable it there, so any new ones you create will already have this set.
In addition to that, some terminals report themselves as "non-interactive", like when running out of a real terminal (PyCharm and Jupyter for example), in shell pipelines (cat file.txt | python program.py
), or in background processes (not connected to a tty).
When alive-progress
finds itself in a non-interactive terminal, it automatically disables all kinds of animations, printing only the final receipt. This is made in order to avoid both messing up the pipeline output and spamming your log file with thousands of alive-progress
refreshes.
So, when you know it's safe, you can force them to see alive-progress
in all its glory! Here is the force_tty
argument:
with alive_bar(1000, force_tty=True) as bar:
for i in range(1000):
time.sleep(.01)
bar()
The values accepted are:
force_tty=True
-> always enables animations, and auto-detects Jupyter Notebooks!force_tty=False
-> always disables animations, keeping only the final receiptforce_tty=None
(default) -> auto detect, according to the terminal's tty state
You can also set it system-wide using config_handler
, so you don't need to pass it manually anymore.
Do note that PyCharm's console and Jupyter notebooks are heavily instrumented and thus have much more overhead, so the outcome may not be as fluid as you would expect. On top of that, Jupyter notebooks do not support ANSI Escape Codes, so I had to develop some workarounds to emulate functions like "clear the line" and "clear from cursor"... To see the fluid and smooth
alive_bar
animations as I intended, always prefer a full-fledged terminal.
Interesting facts
- This whole project was implemented in functional style;
- It uses extensively (and very creatively) Python Closures and Generators, e.g. all spinners are made with cool Generator Expressions! Besides it, there are other cool examples like the exhibit module, and the core spinner player/spinner runner generators; š
- Until 2.0,
alive-progress
hadn't had any dependency. Now it has two: one is about-time (another interesting project of mine, if I say so myself), which is used to track the time it takes for the spinner compilation, and to generate its human-friendly renditions. The other is grapheme, to detect grapheme cluster breaks (I've opened an issue there asking about the future and correctness of it, and the author guarantees he intends to update the project on every new Unicode version); - Also, until 2.0,
alive-progress
hadn't had a single Python class! Now it has a few tiny ones for very specific reasons (change callables, iterator adapters, and some descriptors for thealive_bar
widgets). - Everything else is either a function or a closure, which generate other closures internally with some state on the parent context. I've used them to create spinner factories, bar factories, the global configuration, the system hooks, the spinner compiler (which is also a big Function Decorator), etc.! Even
alive_bar
itself is just a function! Although, to be fair, it is "just" a function where I dynamically plug several closures from within into itself (remember that Python functions have a__dict__
just like classes do š).
To do
- enable multiple simultaneous bars for nested or multiple activities (the most requested feature, but very complex).
- reset a running bar context, i.e. run in unknown mode while "quantifying" the work, then switch to the auto mode.
- dynamic bar width rendition, which notices terminal size changes and shrink or expand the bar as needed (currently
alive_bar
does notice terminal size changes, but just truncates the line accordingly). - improve test coverage, currently at 87% branch coverage (but it's very hard since it's multithreaded, full of stateful closures, and includes system print hooks).
- create a
contrib
system somehow, to allow a simple way to share cool spinners and bars from users. - support colors in spinners and bars (it's very hard, since color codes alter string sizes, which makes it tricky to synchronize animations and correctly slicing, reversing, and iterating fragments of strings while still keeping color codes--which is very, very complex) --> probably simpler now with the new Cell Architecture.
- any other ideas are welcome!
- resuming computations support with
skipped
items - help system on configuration errors
- readable widgets to extract information
- exponential smoothing algorithm for the rate
- support for using
stderr
and other files instead ofstdout
- units with automatic scaling
- dual-line mode
- customize final receipt widgets
- customize widgets rendition like
monitor
,elapsed
,stats
- bar title can be dynamically set, changed or removed
- exponential smoothing algorithm for the ETA
- jupyter notebook support, which works the same as in the terminal, animations and everything
- create an unknown mode for bars (without a known total and eta)
- implement a pausing mechanism
- change spinner styles
- change bar styles
- include a global configuration system
- create customizable generators for scrolling, bouncing, delayed, and compound spinners
- create an exhibition for spinners and bars, to see them all in motion
- include theme support in configuration
- soft wrapping support
- hiding cursor support
- Python logging support
- exponential smoothing of ETA time series
- create an exhibition for themes
Complete here.
- 3.2.0: print/logging hooks now support multithreading, rounded ETAs for long tasks, support for zero and negative bar increments, custom offset for enriched print/logging messages, improved compatibility with PyInstaller and Celery, drop 3.7 and 3.8, hello 3.12 and 3.13
- 3.1.4: support spaces at the start and end of titles and units
- 3.1.3: better error handling of invalid
alive_it
calls, detect nested uses of alive_progress and throw a clearer error message - 3.1.2: fix some exotic ANSI Escape Codes not being printed (OSC)
- 3.1.1: support for printing ANSI Escape Codes without extra newlines, typing annotations in
alive_it
- 3.1.0: new resuming computations support with
skipped
items, newmax_cols
config setting for jupyter, fix fetching the size of the terminal when using stderr, officially supports Python 3.11 - 3.0.1: fix for logging streams that extend StreamHandler but doesn't allow changing streams
- 3.0.0: units support with automatic and configurable scaling and precision, automatic stats scaling for slow throughputs, support for using
sys.stderr
and other files instead ofsys.stdout
, smoothed out the rate estimation, more queries into the currently running widgets' data, help system in configuration errors - 2.4.1: fix a crash when dual-line and disabled are set
- 2.4.0: support dual line text mode; finalize function parameter in alive_it; improve logging support, detecting customized ones
- 2.3.1: introduce ctrl_c config param; print the final receipt even when interrupted
- 2.3.0: customizable
monitor
,elapsed
, andstats
core widgets, newmonitor_end
,elapsed_end
, andstats_end
core widgets, better support for CTRL+C, which makesalive_bar
stop prematurely - 2.2.0: bar title can be dynamically set, changed or removed; customizable refresh rates; final receipt can be hidden;
click.echo()
support; faster performance; safer detection of terminal columns;bar.current
acts like a property; remove Python 3.6 - 2.1.0: Jupyter notebook support (experimental), Jupyter auto-detection, disable feature and configuration
- 2.0.0: new system-wide Cell Architecture with grapheme clusters support; super cool spinner compiler and runner;
.check()
tools in both spinners and bars; bars and spinners engines revamp; new animation modes in alongside and sequential spinners; new builtin spinners, bars, and themes; dynamic showtime with themes, scroll protection and filter patterns; improved logging for files; several new configuration options for customizing appearance; new iterator adapteralive_it
; usestime.perf_counter()
high-resolution clock; requires Python 3.6+ (and officially supports Python 3.9 and 3.10) - 1.6.2: new
bar.current()
method; newlines get printed on vanilla Python REPL; the bar is truncated to 80 chars on Windows - 1.6.1: fix logging support for Python 3.6 and lower; support logging for file; support for wide Unicode chars, which use 2 columns but have length 1
- 1.6.0: soft wrapping support; hiding cursor support; Python logging support; exponential smoothing of ETA time series; proper bar title, always visible; enhanced times representation; new
bar.text()
method, to set situational messages at any time, without incrementing position (deprecates 'text' parameter inbar()
); performance optimizations - 1.5.1: fix compatibility with Python 2.7 (should be the last one, version 2 is in the works, with Python 3 support only)
- 1.5.0: standard_bar accepts a
background
parameter instead ofblank
, which accepts arbitrarily sized strings and remains fixed in the background, simulating a bar going "over it" - 1.4.4: restructure internal packages; 100% branch coverage of all animations systems, i.e., bars and spinners
- 1.4.3: protect configuration system against other errors (length='a' for example); first automated tests, 100% branch coverage of configuration system
- 1.4.2: sanitize text input, keeping \n from entering and replicating bar on the screen
- 1.4.1: include license file in the source distribution
- 1.4.0: print() enrichment can now be disabled (locally and globally), exhibits now have a real-time fps indicator, new exhibit functions
show_spinners
andshow_bars
, new utilityprint_chars
,show_bars
gain some advanced demonstrations (try it again!) - 1.3.3: further improve stream compatibility with isatty
- 1.3.2: beautifully finalize bar in case of unexpected errors
- 1.3.1: fix a subtle race condition that could leave artifacts if ended very fast, flush print buffer when position changes or bar terminates, keep the total argument from unexpected types
- 1.3.0: new fps calibration system, support force_tty and manual options in global configuration, multiple increment support in bar handler
- 1.2.0: filled blanks bar styles, clean underflow representation of filled blanks
- 1.1.1: optional percentage in manual mode
- 1.1.0: new manual mode
- 1.0.1: pycharm console support with force_tty, improve compatibility with Python stdio streams
- 1.0.0: first public release, already very complete and mature
Python End of Life notice
alive_progress
will always try to keep up with Python, so starting from version 2.0, I'll drop support for all Python versions which enter EoL. See their schedule here.
But don't worry if you can't migrate just yet: alive_progress
versions are perennial, so just keep using the one that works for you and you're good.
I just strongly recommend setting older alive_progress
packages in a requirements.txt file with the following formats. These will always fetch the latest build releases previous to a given version, so, if I ever release bug fixes, you'll get them too.
For Python 2.7 and 3.5
āÆ pip install -U "alive_progress<2"
For Python 3.6
āÆ pip install -U "alive_progress<2.2"
For Python 3.7 and 3.8
āÆ pip install -U "alive_progress<3.2"
License
This software is licensed under the MIT License. See the LICENSE file in the top distribution directory for the full license text.
Maintaining an open source project is hard and time-consuming, and I've put much ā¤ļø and effort into this.
If you've appreciated my work, you can back me up with a donation! Thank you š
Resourceswhich are currently available to browse on.
mail [email protected] to add your project or resources here š„.
- 1dataclasses ā Data Classes
https://docs.python.org/3/library/dataclasses.html
Source code: Lib/dataclasses.py This module provides a decorator and functions for automatically adding generated special methods such as__init__() and__repr__() to user-defined classes. It was ori...
- 2curses ā Terminal handling for character-cell displays
https://docs.python.org/3/library/curses.html
Source code: Lib/curses The curses module provides an interface to the curses library, the de-facto standard for portable advanced terminal handling. While curses is most widely used in the Unix en...
- 3cssutils
https://pypi.org/project/cssutils/
A CSS Cascading Style Sheets library for Python
- 4selenium
https://pypi.org/project/selenium/
Official Python bindings for Selenium WebDriver
- 5Coroutine-based concurrency library for Python
https://github.com/gevent/gevent
Coroutine-based concurrency library for Python. Contribute to gevent/gevent development by creating an account on GitHub.
- 6Django Channels HTTP/WebSocket server
https://github.com/django/daphne
Django Channels HTTP/WebSocket server. Contribute to django/daphne development by creating an account on GitHub.
- 7Command Line Interface Formulation Framework. Mirror of code maintained at opendev.org.
https://github.com/openstack/cliff
Command Line Interface Formulation Framework. Mirror of code maintained at opendev.org. - openstack/cliff
- 8Because sometimes you need to do it live
https://github.com/sloria/doitlive
Because sometimes you need to do it live. Contribute to sloria/doitlive development by creating an account on GitHub.
- 9Python dictionaries with advanced dot notation access
https://github.com/cdgriffith/Box
Python dictionaries with advanced dot notation access - cdgriffith/Box
- 10Simple cross-platform colored terminal text in Python
https://github.com/tartley/colorama
Simple cross-platform colored terminal text in Python - tartley/colorama
- 11asyncio ā Asynchronous I/O
https://docs.python.org/3/library/asyncio.html
Hello World!: asyncio is a library to write concurrent code using the async/await syntax. asyncio is used as a foundation for multiple Python asynchronous frameworks that provide high-performance n...
- 12difflib ā Helpers for computing deltas
https://docs.python.org/3/library/difflib.html
Source code: Lib/difflib.py This module provides classes and functions for comparing sequences. It can be used for example, for comparing files, and can produce information about file differences i...
- 13Open Source Cloud Computing Infrastructure - OpenStack
https://www.openstack.org/
OpenStack is an open source cloud computing infrastructure software project and is one of the three most active open source projects in the world.
- 14multiprocessing ā Process-based parallelism
https://docs.python.org/3/library/multiprocessing.html
Source code: Lib/multiprocessing/ Availability: not Emscripten, not WASI. This module does not work or is not available on WebAssembly platforms wasm32-emscripten and wasm32-wasi. See WebAssembly p...
- 15Hypercorn is an ASGI and WSGI Server based on Hyper libraries and inspired by Gunicorn.
https://github.com/pgjones/hypercorn
Hypercorn is an ASGI and WSGI Server based on Hyper libraries and inspired by Gunicorn. - pgjones/hypercorn
- 16Automatic caching and invalidation for Django models through the ORM.
https://github.com/django-cache-machine/django-cache-machine
Automatic caching and invalidation for Django models through the ORM. - django-cache-machine/django-cache-machine
- 17A jazzy skin for the Django Admin-Interface (official repository).
https://github.com/sehmaschine/django-grappelli
A jazzy skin for the Django Admin-Interface (official repository). - sehmaschine/django-grappelli
- 18A Python wrapper for the tesseract-ocr API
https://github.com/sirfz/tesserocr
A Python wrapper for the tesseract-ocr API. Contribute to sirfz/tesserocr development by creating an account on GitHub.
- 19Library and command-line utility for rendering projects templates.
https://github.com/copier-org/copier
Library and command-line utility for rendering projects templates. - copier-org/copier
- 20Scrapy, a fast high-level web crawling & scraping framework for Python.
https://github.com/scrapy/scrapy
Scrapy, a fast high-level web crawling & scraping framework for Python. - scrapy/scrapy
- 21Python - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=ms-python.python
Extension for Visual Studio Code - Python language support with extension access points for IntelliSense (Pylance), Debugging (Python Debugger), linting, formatting, refactoring, unit tests, and more.
- 22coverage
https://pypi.org/project/coverage/
Code coverage measurement for Python
- 23Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
https://github.com/pennersr/django-allauth
Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication. - pennersr/django-allauth
- 24doublex
https://pypi.org/project/doublex/
Python test doubles
- 25configparser ā Configuration file parser
https://docs.python.org/3/library/configparser.html
Source code: Lib/configparser.py This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to whatās found in Microsoft Windows ...
- 26WSGI middleware for sessions and caching
https://github.com/bbangert/beaker
WSGI middleware for sessions and caching. Contribute to bbangert/beaker development by creating an account on GitHub.
- 27A simple but flexible plugin system for Python.
https://github.com/mitsuhiko/pluginbase
A simple but flexible plugin system for Python. Contribute to mitsuhiko/pluginbase development by creating an account on GitHub.
- 28eyeD3 is a Python module and command line program for processing ID3 tags. Information about mp3 files (i.e bit rate, sample frequency, play time, etc.) is also provided. The formats supported are ID3v1 (1.0/1.1) and ID3v2 (2.3/2.4).
https://github.com/nicfit/eyeD3
eyeD3 is a Python module and command line program for processing ID3 tags. Information about mp3 files (i.e bit rate, sample frequency, play time, etc.) is also provided. The formats supported are ...
- 29dogpile.cache is a Python caching API which provides a generic interface to caching backends of any variety
https://github.com/sqlalchemy/dogpile.cache
dogpile.cache is a Python caching API which provides a generic interface to caching backends of any variety - sqlalchemy/dogpile.cache
- 30Panda3D | Open Source Framework for 3D Rendering & Games
https://www.panda3d.org/
Panda3D is an open-source, cross-platform, completely free-to-use engine for realtime 3D games, visualizations, simulations, experiments ā you name it! Its rich feature set readily tailors to your specific workflow and development needs.
- 31mimetypes ā Map filenames to MIME types
https://docs.python.org/3/library/mimetypes.html
Source code: Lib/mimetypes.py The mimetypes module converts between a filename or URL and the MIME type associated with the filename extension. Conversions are provided from filename to MIME type a...
- 32music library manager and MusicBrainz tagger
https://github.com/beetbox/beets
music library manager and MusicBrainz tagger. Contribute to beetbox/beets development by creating an account on GitHub.
- 33Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.
https://github.com/ansible/ansible
Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to clo...
- 34Python CLI utility and library for manipulating SQLite databases
https://github.com/simonw/sqlite-utils
Python CLI utility and library for manipulating SQLite databases - simonw/sqlite-utils
- 35Asset management for Python web development.
https://github.com/miracle2k/webassets
Asset management for Python web development. Contribute to miracle2k/webassets development by creating an account on GitHub.
- 36JSON Web Token implementation in Python
https://github.com/jpadilla/pyjwt
JSON Web Token implementation in Python. Contribute to jpadilla/pyjwt development by creating an account on GitHub.
- 37Python Classes Without Boilerplate
https://github.com/python-attrs/attrs
Python Classes Without Boilerplate. Contribute to python-attrs/attrs development by creating an account on GitHub.
- 38Basic Utilities for PyTorch Natural Language Processing (NLP)
https://github.com/PetrochukM/PyTorch-NLP
Basic Utilities for PyTorch Natural Language Processing (NLP) - PetrochukM/PyTorch-NLP
- 39A Python library that generates static type annotations by collecting runtime types
https://github.com/Instagram/MonkeyType
A Python library that generates static type annotations by collecting runtime types - Instagram/MonkeyType
- 40Collection of awesome Python types, stubs, plugins, and tools to work with them.
https://github.com/typeddjango/awesome-python-typing
Collection of awesome Python types, stubs, plugins, and tools to work with them. - typeddjango/awesome-python-typing
- 41Streamlit ā A faster way to build and share data apps.
https://github.com/streamlit/streamlit
Streamlit ā A faster way to build and share data apps. - streamlit/streamlit
- 42Project Jupyter
https://jupyter.org
The Jupyter Notebook is a web-based interactive computing platform. The notebook combines live code, equations, narrative text, visualizations, interactive dashboards and other media.
- 43Python library that provides a method of accessing lists and dicts with a dotted path notation.
https://github.com/carlosescri/DottedDict
Python library that provides a method of accessing lists and dicts with a dotted path notation. - carlosescri/DottedDict
- 44Postgres CLI with autocompletion and syntax highlighting
https://github.com/dbcli/pgcli
Postgres CLI with autocompletion and syntax highlighting - dbcli/pgcli
- 45MySQL for Python
https://sourceforge.net/projects/mysql-python/
Download MySQL for Python for free. MySQL database connector for Python programming. MySQLdb is a Python DB API-2.0-compliant interface; see PEP-249 for details.
- 46Real-time monitor and web admin for Celery distributed task queue
https://github.com/mher/flower
Real-time monitor and web admin for Celery distributed task queue - mher/flower
- 47Concurrent networking library for Python
https://github.com/eventlet/eventlet
Concurrent networking library for Python. Contribute to eventlet/eventlet development by creating an account on GitHub.
- 48Python Sorted Container Types: Sorted List, Sorted Dict, and Sorted Set
https://github.com/grantjenks/python-sortedcontainers
Python Sorted Container Types: Sorted List, Sorted Dict, and Sorted Set - grantjenks/python-sortedcontainers
- 49š„ļø Session manager for tmux, build on libtmux.
https://github.com/tmux-python/tmuxp
š„ļø Session manager for tmux, build on libtmux. Contribute to tmux-python/tmuxp development by creating an account on GitHub.
- 50Application Framework for Python
https://github.com/datafolklabs/cement
Application Framework for Python. Contribute to datafolklabs/cement development by creating an account on GitHub.
- 51Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python.
https://github.com/grantjenks/python-diskcache
Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python. - grantjenks/python-diskcache
- 52Library for building powerful interactive command line applications in Python
https://github.com/prompt-toolkit/python-prompt-toolkit
Library for building powerful interactive command line applications in Python - prompt-toolkit/python-prompt-toolkit
- 53It's not just a linter that annoys you!
https://github.com/pylint-dev/pylint
It's not just a linter that annoys you! Contribute to pylint-dev/pylint development by creating an account on GitHub.
- 54logging ā Logging facility for Python
https://docs.python.org/3/library/logging.html
Source code: Lib/logging/__init__.py Important: This page contains the API reference information. For tutorial information and discussion of more advanced topics, see Basic Tutorial, Advanced Tutor...
- 55pathlib ā Object-oriented filesystem paths
https://docs.python.org/3/library/pathlib.html
Source code: Lib/pathlib.py This module offers classes representing filesystem paths with semantics appropriate for different operating systems. Path classes are divided between pure paths, which p...
- 56subprocess ā Subprocess management
https://docs.python.org/3/library/subprocess.html
Source code: Lib/subprocess.py The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace seve...
- 57unittest ā Unit testing framework
https://docs.python.org/3/library/unittest.html
Source code: Lib/unittest/__init__.py(If you are already familiar with the basic concepts of testing, you might want to skip to the list of assert methods.) The unittest unit testing framework was ...
- 58Python 3+ compatible port of the configobj library
https://github.com/DiffSK/configobj
Python 3+ compatible port of the configobj library - DiffSK/configobj
- 59CLI for SQLite Databases with auto-completion and syntax highlighting
https://github.com/dbcli/litecli
CLI for SQLite Databases with auto-completion and syntax highlighting - dbcli/litecli
- 60A library for audio and music analysis, feature extraction.
https://github.com/libAudioFlux/audioFlux
A library for audio and music analysis, feature extraction. - libAudioFlux/audioFlux
- 61Dead simple CLI tool to try Python packages - It's never been easier!
https://github.com/timofurrer/try
Dead simple CLI tool to try Python packages - It's never been easier! :package: - GitHub - timofurrer/try: Dead simple CLI tool to try Python packages - It's never been easier!
- 62Pretty good call graphs for dynamic languages
https://github.com/scottrogowski/code2flow
Pretty good call graphs for dynamic languages. Contribute to scottrogowski/code2flow development by creating an account on GitHub.
- 63A cross platform package to do curses-like operations, plus higher level APIs and widgets to create text UIs and ASCII art animations
https://github.com/peterbrittain/asciimatics
A cross platform package to do curses-like operations, plus higher level APIs and widgets to create text UIs and ASCII art animations - peterbrittain/asciimatics
- 64Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications
https://github.com/tyiannak/pyAudioAnalysis
Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications - tyiannak/pyAudioAnalysis
- 65Multilingual text (NLP) processing toolkit
https://github.com/aboSamoor/polyglot
Multilingual text (NLP) processing toolkit . Contribute to aboSamoor/polyglot development by creating an account on GitHub.
- 66PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything. After parsing the input, PathPicker presents you with a nice UI to select which files you're interested in. After that you can open them in your favorite editor or execute arbitrary commands.
https://github.com/facebook/PathPicker
PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything. After parsing the input, PathPicker presents you with a nice UI to select which...
- 67Cross-platform Python Framework for NUI
https://kivy.org/
Open source Python framework for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps.
- 68Python library for audio and music analysis
https://github.com/librosa/librosa
Python library for audio and music analysis. Contribute to librosa/librosa development by creating an account on GitHub.
- 69Easy-to-use data handling for SQL data stores with support for implicit table creation, bulk loading, and transactions.
https://github.com/pudo/dataset
Easy-to-use data handling for SQL data stores with support for implicit table creation, bulk loading, and transactions. - pudo/dataset
- 70A Python wrapper around the libmemcached interface from TangentOrg.
https://github.com/lericson/pylibmc
A Python wrapper around the libmemcached interface from TangentOrg. - GitHub - lericson/pylibmc: A Python wrapper around the libmemcached interface from TangentOrg.
- 71Developer-friendly asynchrony for Django
https://github.com/django/channels
Developer-friendly asynchrony for Django. Contribute to django/channels development by creating an account on GitHub.
- 72Buildout is a deployment automation tool written in and extended with Python
https://github.com/buildout/buildout
Buildout is a deployment automation tool written in and extended with Python - buildout/buildout
- 73WebSocket and WAMP in Python for Twisted and asyncio
https://github.com/crossbario/autobahn-python
WebSocket and WAMP in Python for Twisted and asyncio - crossbario/autobahn-python
- 74A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
https://github.com/dbcli/mycli
A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting. - dbcli/mycli
- 75A Python library that provides an easy way to identify devices like mobile phones, tablets and their capabilities by parsing (browser) user agent strings.
https://github.com/selwin/python-user-agents
A Python library that provides an easy way to identify devices like mobile phones, tablets and their capabilities by parsing (browser) user agent strings. - selwin/python-user-agents
- 76Python library and shell utilities to monitor filesystem events.
https://github.com/gorakhargosh/watchdog
Python library and shell utilities to monitor filesystem events. - gorakhargosh/watchdog
- 77A Django content management system focused on flexibility and user experience
https://github.com/wagtail/wagtail
A Django content management system focused on flexibility and user experience - wagtail/wagtail
- 78A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
https://github.com/oauthlib/oauthlib
A generic, spec-compliant, thorough implementation of the OAuth request-signing logic - oauthlib/oauthlib
- 79radar
https://pypi.org/project/radar/
Generate random date(time).
- 80Modularity, scalability & security for your business
http://www.tryton.org/
TRYTON is business software, ideal for companies of any size, easy to use, complete and 100% Open Source.
- 81unittest.mock ā mock object library
https://docs.python.org/3/library/unittest.mock.html
Source code: Lib/unittest/mock.py unittest.mock is a library for testing in Python. It allows you to replace parts of your system under test with mock objects and make assertions about how they hav...
- 82Official home for the pymssql source code.
https://github.com/pymssql/pymssql
Official home for the pymssql source code. Contribute to pymssql/pymssql development by creating an account on GitHub.
- 83Ajenti Core and stock plugins
https://github.com/ajenti/ajenti
Ajenti Core and stock plugins. Contribute to ajenti/ajenti development by creating an account on GitHub.
- 84instant coding answers via the command line
https://github.com/gleitz/howdoi
instant coding answers via the command line. Contribute to gleitz/howdoi development by creating an account on GitHub.
- 85A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/
https://github.com/pypa/bandersnatch/
A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/ - pypa/bandersnatch
- 86Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.
https://github.com/indico/indico
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born. - indico/indico
- 87concurrent.futures ā Launching parallel tasks
https://docs.python.org/3/library/concurrent.futures.html
Source code: Lib/concurrent/futures/thread.py and Lib/concurrent/futures/process.py The concurrent.futures module provides a high-level interface for asynchronously executing callables. The asynchr...
- 88HermesCache
https://pypi.org/project/HermesCache/
Python caching library with tag-based invalidation and dogpile effect prevention
- 89Unidecode
https://pypi.org/project/Unidecode/
ASCII transliterations of Unicode text
- 90Web Scraping Framework
https://github.com/lorien/grab
Web Scraping Framework. Contribute to lorien/grab development by creating an account on GitHub.
- 91Python object-oriented database
https://github.com/zopefoundation/ZODB
Python object-oriented database. Contribute to zopefoundation/ZODB development by creating an account on GitHub.
- 92The Python programming language
https://github.com/python/cpython
The Python programming language. Contribute to python/cpython development by creating an account on GitHub.
- 93Minimal examples of data structures and algorithms in Python
https://github.com/keon/algorithms
Minimal examples of data structures and algorithms in Python - keon/algorithms
- 94GeoDjango | Django documentation
https://docs.djangoproject.com/en/dev/ref/contrib/gis/
The web framework for perfectionists with deadlines.
- 95flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.
https://github.com/PyCQA/flake8
flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code. - PyCQA/flake8
- 96datetime ā Basic date and time types
https://docs.python.org/3/library/datetime.html
Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr...
- 97sqlite3 ā DB-API 2.0 interface for SQLite databases
https://docs.python.org/3/library/sqlite3.html
Source code: Lib/sqlite3/ SQLite is a C library that provides a lightweight disk-based database that doesnāt require a separate server process and allows accessing the database using a nonstandard ...
- 98Chef-like functionality for Fabric
https://github.com/sebastien/cuisine
Chef-like functionality for Fabric. Contribute to sebastien/cuisine development by creating an account on GitHub.
- 99A Python module for creating Excel XLSX files.
https://github.com/jmcnamara/XlsxWriter
A Python module for creating Excel XLSX files. Contribute to jmcnamara/XlsxWriter development by creating an account on GitHub.
- 100fastFM: A Library for Factorization Machines
https://github.com/ibayer/fastFM
fastFM: A Library for Factorization Machines. Contribute to ibayer/fastFM development by creating an account on GitHub.
- 101šļø Open Source Audio Matching and Mastering
https://github.com/sergree/matchering
šļø Open Source Audio Matching and Mastering. Contribute to sergree/matchering development by creating an account on GitHub.
- 102cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.
https://github.com/pyca/cryptography
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. - pyca/cryptography
- 103pytz
https://pypi.org/project/pytz/
World timezone definitions, modern and historical
- 104A jquery-like library for python
https://github.com/gawel/pyquery
A jquery-like library for python. Contribute to gawel/pyquery development by creating an account on GitHub.
- 105The leading native Python SSHv2 protocol library.
https://github.com/paramiko/paramiko
The leading native Python SSHv2 protocol library. Contribute to paramiko/paramiko development by creating an account on GitHub.
- 106Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting.
https://github.com/laixintao/iredis
Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting. - laixintao/iredis
- 107PyPy / pypy Ā· GitLab
https://foss.heptapod.net/pypy/pypy
PyPy is a very fast and compliant implementation of the Python language.
- 108Performant type-checking for python.
https://github.com/facebook/pyre-check
Performant type-checking for python. Contribute to facebook/pyre-check development by creating an account on GitHub.
- 109A collection of design patterns/idioms in Python
https://github.com/faif/python-patterns
A collection of design patterns/idioms in Python. Contribute to faif/python-patterns development by creating an account on GitHub.
- 110šØ Generate and change color-schemes on the fly.
https://github.com/dylanaraps/pywal
šØ Generate and change color-schemes on the fly. Contribute to dylanaraps/pywal development by creating an account on GitHub.
- 111SCons - a software construction tool
https://github.com/SCons/scons
SCons - a software construction tool. Contribute to SCons/scons development by creating an account on GitHub.
- 112cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python
https://github.com/beetbox/audioread
cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python - beetbox/audioread
- 113Simple tagging for django
https://github.com/jazzband/django-taggit
Simple tagging for django. Contribute to jazzband/django-taggit development by creating an account on GitHub.
- 114Pipeline is an asset packaging library for Django.
https://github.com/jazzband/django-pipeline
Pipeline is an asset packaging library for Django. - jazzband/django-pipeline
- 115A Django app that creates automatic web UIs for Python scripts.
https://github.com/wooey/wooey
A Django app that creates automatic web UIs for Python scripts. - wooey/Wooey
- 116The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.
https://github.com/lepture/authlib
The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included. - lepture/authlib
- 117Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
https://github.com/google/python-fire
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. - google/python-fire
- 118kapre: Keras Audio Preprocessors
https://github.com/keunwoochoi/kapre
kapre: Keras Audio Preprocessors. Contribute to keunwoochoi/kapre development by creating an account on GitHub.
- 119The official bitbake Git is at https://git.openembedded.org/bitbake/. Do not open issues or file pull requests here.
https://github.com/openembedded/bitbake
The official bitbake Git is at https://git.openembedded.org/bitbake/. Do not open issues or file pull requests here. - openembedded/bitbake
- 120Apache Kafka
https://kafka.apache.org/documentation/streams/
Apache Kafka: A Distributed Streaming Platform.
- 121the Python IDE for data science and web development
https://www.jetbrains.com/pycharm/
The Python IDE for data science and web development with intelligent code completion, on-the-fly error checking, quick-fixes, and much more.
- 122ćļø Create standard barcodes with Python. No external dependencies. 100% Organic Python.
https://github.com/WhyNotHugo/python-barcode
ćļø Create standard barcodes with Python. No external dependencies. 100% Organic Python. - WhyNotHugo/python-barcode
- 123Standards-compliant library for parsing and serializing HTML documents and fragments in Python
https://github.com/html5lib/html5lib-python
Standards-compliant library for parsing and serializing HTML documents and fragments in Python - html5lib/html5lib-python
- 124A curated list of awesome PostgreSQL software, libraries, tools and resources, inspired by awesome-mysql
https://github.com/dhamaniasad/awesome-postgres
A curated list of awesome PostgreSQL software, libraries, tools and resources, inspired by awesome-mysql - dhamaniasad/awesome-postgres
- 125plotting in the terminal
https://github.com/glamp/bashplotlib
plotting in the terminal. Contribute to glamp/bashplotlib development by creating an account on GitHub.
- 126Hydra is a framework for elegantly configuring complex applications
https://github.com/facebookresearch/hydra
Hydra is a framework for elegantly configuring complex applications - facebookresearch/hydra
- 127All Algorithms implemented in Python
https://github.com/TheAlgorithms/Python
All Algorithms implemented in Python. Contribute to TheAlgorithms/Python development by creating an account on GitHub.
- 128scalable audio processing framework and server written in Python
https://github.com/Parisson/TimeSide
scalable audio processing framework and server written in Python - Parisson/TimeSide
- 129The uncompromising Python code formatter
https://github.com/psf/black
The uncompromising Python code formatter. Contribute to psf/black development by creating an account on GitHub.
- 130Python composable command line interface toolkit
https://github.com/pallets/click/
Python composable command line interface toolkit. Contribute to pallets/click development by creating an account on GitHub.
- 131Write scalable load tests in plain Python ššØ
https://github.com/locustio/locust
Write scalable load tests in plain Python ššØ. Contribute to locustio/locust development by creating an account on GitHub.
- 132An ASGI web server, for Python. š¦
https://github.com/encode/uvicorn
An ASGI web server, for Python. š¦. Contribute to encode/uvicorn development by creating an account on GitHub.
- 133Collection of library stubs for Python, with static types
https://github.com/python/typeshed
Collection of library stubs for Python, with static types - python/typeshed
- 134Intercept HTTP requests at the Python socket level. Fakes the whole socket module
https://github.com/gabrielfalcao/HTTPretty
Intercept HTTP requests at the Python socket level. Fakes the whole socket module - gabrielfalcao/HTTPretty
- 135Audio fingerprinting and recognition in Python
https://github.com/worldveil/dejavu
Audio fingerprinting and recognition in Python. Contribute to worldveil/dejavu development by creating an account on GitHub.
- 136Rich is a Python library for rich text and beautiful formatting in the terminal.
https://github.com/Textualize/rich
Rich is a Python library for rich text and beautiful formatting in the terminal. - Textualize/rich
- 137Bowler Ā· Safe code refactoring for modern Python
https://pybowler.io/
Safe code refactoring for modern Python
- 138:truck: Agile Data Preparation Workflows madeĀ easy with Pandas, Dask, cuDF, Dask-cuDF, Vaex and PySpark
https://github.com/hi-primus/optimus
:truck: Agile Data Preparation Workflows madeĀ easy with Pandas, Dask, cuDF, Dask-cuDF, Vaex and PySpark - hi-primus/optimus
- 139Python binding to the Networking and Cryptography (NaCl) library
https://github.com/pyca/pynacl
Python binding to the Networking and Cryptography (NaCl) library - pyca/pynacl
- 140MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
https://github.com/micropython/micropython
MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems - micropython/micropython
- 141Manipulate audio with a simple and easy high level interface
https://github.com/jiaaro/pydub
Manipulate audio with a simple and easy high level interface - jiaaro/pydub
- 142Event-driven networking engine written in Python.
https://github.com/twisted/twisted
Event-driven networking engine written in Python. Contribute to twisted/twisted development by creating an account on GitHub.
- 143Qt | Tools for Each Stage of Software Development Lifecycle
https://www.qt.io/
All the essential Qt tools for all stages of Software Development Lifecycle: planning, design, development, testing, and deployment.
- 144spaCy Ā· Industrial-strength Natural Language Processing in Python
https://spacy.io/
spaCy is a free open-source library for Natural Language Processing in Python. It features NER, POS tagging, dependency parsing, word vectors and more.
- 145A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations!
https://github.com/rsalmei/alive-progress
A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations! - rsalmei/alive-progress
- 146team-simpy / simpy Ā· GitLab
https://gitlab.com/team-simpy/simpy
GitLab.com
- 147Lightweight, extensible data validation library for Python
https://github.com/pyeve/cerberus
Lightweight, extensible data validation library for Python - pyeve/cerberus
- 148A simple library for implementing common design patterns.
https://github.com/tylerlaberge/PyPattyrn
A simple library for implementing common design patterns. - tylerlaberge/PyPattyrn
- 149Strict separation of config from code.
https://github.com/HBNetwork/python-decouple
Strict separation of config from code. Contribute to HBNetwork/python-decouple development by creating an account on GitHub.
- 150A Django-based CMS with a focus on extensibility and concise code
https://github.com/feincms/feincms
A Django-based CMS with a focus on extensibility and concise code - feincms/feincms
- 151Tensors and Dynamic neural networks in Python with strong GPU acceleration
https://github.com/pytorch/pytorch
Tensors and Dynamic neural networks in Python with strong GPU acceleration - pytorch/pytorch
- 152Software build automation tool for Python.
https://github.com/pybuilder/pybuilder
Software build automation tool for Python. Contribute to pybuilder/pybuilder development by creating an account on GitHub.
- 153Geometric Computer Vision Library for Spatial AI
https://github.com/kornia/kornia/
Geometric Computer Vision Library for Spatial AI. Contribute to kornia/kornia development by creating an account on GitHub.
- 154Find dead Python code
https://github.com/jendrikseipp/vulture
Find dead Python code. Contribute to jendrikseipp/vulture development by creating an account on GitHub.
- 155Python module for handling audio metadata
https://github.com/quodlibet/mutagen
Python module for handling audio metadata. Contribute to quodlibet/mutagen development by creating an account on GitHub.
- 156A static type analyzer for Python code
https://github.com/google/pytype
A static type analyzer for Python code. Contribute to google/pytype development by creating an account on GitHub.
- 157Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
https://github.com/pythonnet/pythonnet
Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET develo...
- 158tmux source code
https://github.com/tmux/tmux
tmux source code. Contribute to tmux/tmux development by creating an account on GitHub.
- 159Ultra fast asyncio event loop.
https://github.com/MagicStack/uvloop
Ultra fast asyncio event loop. Contribute to MagicStack/uvloop development by creating an account on GitHub.
- 160Motor - the async Python driver for MongoDB and Tornado or asyncio
https://github.com/mongodb/motor
Motor - the async Python driver for MongoDB and Tornado or asyncio - mongodb/motor
- 161Official s3cmd repo -- Command line tool for managing S3 compatible storage services (including Amazon S3 and CloudFront).
https://github.com/s3tools/s3cmd
Official s3cmd repo -- Command line tool for managing S3 compatible storage services (including Amazon S3 and CloudFront). - s3tools/s3cmd
- 162Awesome Django authorization, without the database
https://github.com/dfunckt/django-rules
Awesome Django authorization, without the database - dfunckt/django-rules
- 163Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc.
https://github.com/JaidedAI/EasyOCR
Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc. - JaidedAI/EasyOCR
- 164pandas on AWS - Easy integration with Athena, Glue, Redshift, Timestream, Neptune, OpenSearch, QuickSight, Chime, CloudWatchLogs, DynamoDB, EMR, SecretManager, PostgreSQL, MySQL, SQLServer and S3 (Parquet, CSV, JSON and EXCEL).
https://github.com/aws/aws-sdk-pandas
pandas on AWS - Easy integration with Athena, Glue, Redshift, Timestream, Neptune, OpenSearch, QuickSight, Chime, CloudWatchLogs, DynamoDB, EMR, SecretManager, PostgreSQL, MySQL, SQLServer and S3 (...
- 165Optional static typing for Python
https://github.com/python/mypy
Optional static typing for Python. Contribute to python/mypy development by creating an account on GitHub.
- 166A JOSE implementation in Python
https://github.com/mpdavis/python-jose/
A JOSE implementation in Python. Contribute to mpdavis/python-jose development by creating an account on GitHub.
- 167Errbot is a chatbot, a daemon that connects to your favorite chat service and bring your tools and some fun into the conversation.
https://github.com/errbotio/errbot/
Errbot is a chatbot, a daemon that connects to your favorite chat service and bring your tools and some fun into the conversation. - errbotio/errbot
- 168No non-sense and no BS repo for how data structure code should be in Python - simple and elegant.
https://github.com/prabhupant/python-ds
No non-sense and no BS repo for how data structure code should be in Python - simple and elegant. - prabhupant/python-ds
- 169OAuth2 goodies for the Djangonauts!
https://github.com/jazzband/django-oauth-toolkit
OAuth2 goodies for the Djangonauts! Contribute to jazzband/django-oauth-toolkit development by creating an account on GitHub.
- 170Python Stream Processing
https://github.com/robinhood/faust
Python Stream Processing. Contribute to robinhood/faust development by creating an account on GitHub.
- 171Apache Libcloud is a standard Python library that abstracts away differences among multiple cloud provider APIs
https://libcloud.apache.org/
Python library for interacting with many of the popular cloud service providers using a unified API.
- 172ē»å·“äøęåčÆ
https://github.com/fxsjy/jieba
ē»å·“äøęåčÆ. Contribute to fxsjy/jieba development by creating an account on GitHub.
- 173The bidirectional mapping library for Python.
https://github.com/jab/bidict
The bidirectional mapping library for Python. Contribute to jab/bidict development by creating an account on GitHub.
- 174A curated list of awesome Python asyncio frameworks, libraries, software and resources
https://github.com/timofurrer/awesome-asyncio
A curated list of awesome Python asyncio frameworks, libraries, software and resources - timofurrer/awesome-asyncio
- 175š„§ HTTPie CLI ā modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.
https://github.com/httpie/cli
š„§ HTTPie CLI ā modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. - httpie/cli
- 176:octocat: A curated awesome list of flake8 extensions. Feel free to contribute! :mortar_board:
https://github.com/DmytroLitvinov/awesome-flake8-extensions
:octocat: A curated awesome list of flake8 extensions. Feel free to contribute! :mortar_board: - DmytroLitvinov/awesome-flake8-extensions
- 177A curated list of awesome Flask resources and plugins
https://github.com/humiaozuzu/awesome-flask
A curated list of awesome Flask resources and plugins - humiaozuzu/awesome-flask
- 178Magnificent app which corrects your previous console command.
https://github.com/nvbn/thefuck
Magnificent app which corrects your previous console command. - nvbn/thefuck
- 179Python requests like API built on top of Twisted's HTTP client.
https://github.com/twisted/treq
Python requests like API built on top of Twisted's HTTP client. - twisted/treq
- 180:art: Diagram as Code for prototyping cloud system architectures
https://github.com/mingrammer/diagrams
:art: Diagram as Code for prototyping cloud system architectures - mingrammer/diagrams
- 181SQLAlchemy
https://www.sqlalchemy.org/
The Database Toolkit for Python
- 182Accelerate your web app development | Build fast. Run fast.
https://github.com/sanic-org/sanic
Accelerate your web app development | Build fast. Run fast. - sanic-org/sanic
- 183structlog
https://www.structlog.org/en/stable/
Simple. Powerful. Fast. Pick three. Release 24.4.0( Whatās new?) structlog is the production-ready logging solution for Python: Simple: Everything is about functions that take and return dictionari...
- 184Python for Windows (pywin32) Extensions
https://github.com/mhammond/pywin32
Python for Windows (pywin32) Extensions. Contribute to mhammond/pywin32 development by creating an account on GitHub.
- 185MySQL client library for Python
https://github.com/PyMySQL/PyMySQL
MySQL client library for Python. Contribute to PyMySQL/PyMySQL development by creating an account on GitHub.
- 186Your Gateway to Embedded Software Development Excellence :alien:
https://github.com/platformio/platformio-core
Your Gateway to Embedded Software Development Excellence :alien: - platformio/platformio-core
- 187Build software better, together
https://github.com/tesseract-ocr.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 188An open source multi-tool for exploring and publishing data
https://github.com/simonw/datasette
An open source multi-tool for exploring and publishing data - simonw/datasette
- 189A curated list of awesome tools for Sphinx Python Documentation Generator
https://github.com/yoloseem/awesome-sphinxdoc
A curated list of awesome tools for Sphinx Python Documentation Generator - yoloseem/awesome-sphinxdoc
- 190A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.
https://github.com/cookiecutter/cookiecutter
A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects. - cookiecutter/cookiecutter
- 191Trio ā a friendly Python library for async concurrency and I/O
https://github.com/python-trio/trio
Trio ā a friendly Python library for async concurrency and I/O - python-trio/trio
- 192Paranoid text spacing in Python
https://github.com/vinta/pangu.py
Paranoid text spacing in Python. Contribute to vinta/pangu.py development by creating an account on GitHub.
- 193Pythonic task management & command execution.
https://github.com/pyinvoke/invoke
Pythonic task management & command execution. Contribute to pyinvoke/invoke development by creating an account on GitHub.
- 194Python Tools for Visual Studio
https://github.com/Microsoft/PTVS
Python Tools for Visual Studio. Contribute to microsoft/PTVS development by creating an account on GitHub.
- 195Jet Admin ā No-code Business App builder
https://github.com/jet-admin/jet-bridge
Jet Admin ā No-code Business App builder. Contribute to jet-admin/jet-bridge development by creating an account on GitHub.
- 196Home
https://opencv.org/
OpenCV provides a real-time optimized Computer Vision library, tools, and hardware. It also supports model execution for Machine Learning (ML) and Artificial Intelligence (AI).
- 197HARFANGĀ® 3D - Real Time Visualization Tools
http://www.harfang3d.com
Software framework for modern multimedia application development.
- 198Python email address and Mime parsing library
https://github.com/mailgun/flanker
Python email address and Mime parsing library. Contribute to mailgun/flanker development by creating an account on GitHub.
- 199shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included.
https://github.com/linkedin/shiv
shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included. - linkedin/shiv
- 200Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.
https://github.com/ray-project/ray/
Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads. - ray-project/ray
- 201MySQL database connector for Python (with Python 3 support)
https://github.com/PyMySQL/mysqlclient
MySQL database connector for Python (with Python 3 support) - PyMySQL/mysqlclient
- 202Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.
https://github.com/justquick/django-activity-stream
Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams. - justquick/django-activity-stream
- 203A collection of awesome sqlite tools, scripts, books, etc
https://github.com/planetopendata/awesome-sqlite
A collection of awesome sqlite tools, scripts, books, etc - planetopendata/awesome-sqlite
- 204Make your functions return something meaningful, typed, and safe!
https://github.com/dry-python/returns
Make your functions return something meaningful, typed, and safe! - dry-python/returns
- 205Ultra fast JSON decoder and encoder written in C with Python bindings
https://github.com/esnme/ultrajson
Ultra fast JSON decoder and encoder written in C with Python bindings - ultrajson/ultrajson
- 206FastAPI framework, high performance, easy to learn, fast to code, ready for production
https://github.com/tiangolo/fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production - fastapi/fastapi
- 207A code-completion engine for Vim
https://github.com/Valloric/YouCompleteMe
A code-completion engine for Vim. Contribute to ycm-core/YouCompleteMe development by creating an account on GitHub.
- 208Build software better, together
https://github.com/python-greenlet/greenlet.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 209A serialization/deserialization/validation library for strings, mappings and lists.
https://github.com/Pylons/colander
A serialization/deserialization/validation library for strings, mappings and lists. - Pylons/colander
- 210pickleDB is an open source key-value store using Python's json module.
https://github.com/patx/pickledb
pickleDB is an open source key-value store using Python's json module. - patx/pickledb
- 211Python library for processing Chinese text
https://github.com/isnowfy/snownlp
Python library for processing Chinese text. Contribute to isnowfy/snownlp development by creating an account on GitHub.
- 212Fast Python Collaborative Filtering for Implicit Feedback Datasets
https://github.com/benfred/implicit
Fast Python Collaborative Filtering for Implicit Feedback Datasets - benfred/implicit
- 213Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization.
https://github.com/clips/pattern
Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization. - clips/pattern
- 214pkusegå¤é¢åäøęåčÆå·„å ·; The pkuseg toolkit for multi-domain Chinese word segmentation
https://github.com/lancopku/pkuseg-python
pkusegå¤é¢åäøęåčÆå·„å ·; The pkuseg toolkit for multi-domain Chinese word segmentation - lancopku/pkuseg-python
- 215fsociety Hacking Tools Pack ā A Penetration Testing Framework
https://github.com/Manisso/fsociety
fsociety Hacking Tools Pack ā A Penetration Testing Framework - Manisso/fsociety
- 216The Sphinx documentation generator
https://github.com/sphinx-doc/sphinx/
The Sphinx documentation generator. Contribute to sphinx-doc/sphinx development by creating an account on GitHub.
- 217Simple, Pythonic remote execution and deployment.
https://github.com/fabric/fabric
Simple, Pythonic remote execution and deployment. Contribute to fabric/fabric development by creating an account on GitHub.
- 218Simple framework for creating REST APIs
https://github.com/flask-restful/flask-restful
Simple framework for creating REST APIs. Contribute to flask-restful/flask-restful development by creating an account on GitHub.
- 219Deep Learning for humans
https://github.com/keras-team/keras
Deep Learning for humans. Contribute to keras-team/keras development by creating an account on GitHub.
- 220Redis Python client
https://github.com/redis/redis-py
Redis Python client. Contribute to redis/redis-py development by creating an account on GitHub.
- 221Luigi is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built in.
https://github.com/spotify/luigi
Luigi is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built in. ...
- 222AKShare is an elegant and simple financial data interface library for Python, built for human beings! å¼ęŗč“¢ē»ę°ę®ę„å£åŗ
https://github.com/jindaxiang/akshare
AKShare is an elegant and simple financial data interface library for Python, built for human beings! å¼ęŗč“¢ē»ę°ę®ę„å£åŗ - akfamily/akshare
- 223A Python wrapper for Google Tesseract
https://github.com/madmaze/pytesseract
A Python wrapper for Google Tesseract. Contribute to madmaze/pytesseract development by creating an account on GitHub.
- 224A pythonic interface to Amazon's DynamoDB
https://github.com/pynamodb/PynamoDB
A pythonic interface to Amazon's DynamoDB. Contribute to pynamodb/PynamoDB development by creating an account on GitHub.
- 225A slick ORM cache with automatic granular event-driven invalidation.
https://github.com/Suor/django-cacheops
A slick ORM cache with automatic granular event-driven invalidation. - Suor/django-cacheops
- 226Home
https://airflow.apache.org/
Platform created by the community to programmatically author, schedule and monitor workflows.
- 227Using the jedi autocompletion library for VIM.
https://github.com/davidhalter/jedi-vim
Using the jedi autocompletion library for VIM. Contribute to davidhalter/jedi-vim development by creating an account on GitHub.
- 228Data validation using Python type hints
https://github.com/pydantic/pydantic
Data validation using Python type hints. Contribute to pydantic/pydantic development by creating an account on GitHub.
- 229A Python implementation of LightFM, a hybrid recommendation algorithm.
https://github.com/lyst/lightfm
A Python implementation of LightFM, a hybrid recommendation algorithm. - lyst/lightfm
- 230bpython - A fancy curses interface to the Python interactive interpreter
https://github.com/bpython/bpython
bpython - A fancy curses interface to the Python interactive interpreter - bpython/bpython
- 231Python Data Structures for Humansā¢.
https://github.com/schematics/schematics
Python Data Structures for Humansā¢. Contribute to schematics/schematics development by creating an account on GitHub.
- 232Safely pass trusted data to untrusted environments and back.
https://github.com/pallets/itsdangerous
Safely pass trusted data to untrusted environments and back. - pallets/itsdangerous
- 233PYthon svg GrAph plotting Library
https://github.com/Kozea/pygal
PYthon svg GrAph plotting Library. Contribute to Kozea/pygal development by creating an account on GitHub.
- 234The most widely used Python to C compiler
https://github.com/cython/cython
The most widely used Python to C compiler. Contribute to cython/cython development by creating an account on GitHub.
- 235Parallel computing with task scheduling
https://github.com/dask/dask
Parallel computing with task scheduling. Contribute to dask/dask development by creating an account on GitHub.
- 236Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
https://github.com/RaylockLLC/DearPyGui/
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies - hoffstadt/DearPyGui
- 237(No longer maintained) A faster and highly-compatible implementation of the Python programming language.
https://github.com/pyston/pyston/
(No longer maintained) A faster and highly-compatible implementation of the Python programming language. - pyston/pyston
- 238matplotlib: plotting with Python
https://github.com/matplotlib/matplotlib
matplotlib: plotting with Python. Contribute to matplotlib/matplotlib development by creating an account on GitHub.
- 239pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications.
https://github.com/pyglet/pyglet
pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications. - pyglet/pyglet
- 240Vim python-mode. PyLint, Rope, Pydoc, breakpoints from box.
https://github.com/python-mode/python-mode
Vim python-mode. PyLint, Rope, Pydoc, breakpoints from box. - python-mode/python-mode
- 241Stanford NLP Python library for tokenization, sentence segmentation, NER, and parsing of many human languages
https://github.com/stanfordnlp/stanza
Stanford NLP Python library for tokenization, sentence segmentation, NER, and parsing of many human languages - stanfordnlp/stanza
- 242Automatic SQL injection and database takeover tool
https://github.com/sqlmapproject/sqlmap
Automatic SQL injection and database takeover tool - sqlmapproject/sqlmap
- 243PyMongo - the Official MongoDB Python driver
https://github.com/mongodb/mongo-python-driver
PyMongo - the Official MongoDB Python driver. Contribute to mongodb/mongo-python-driver development by creating an account on GitHub.
- 244š¹ Better dates & times for Python
https://github.com/arrow-py/arrow
š¹ Better dates & times for Python. Contribute to arrow-py/arrow development by creating an account on GitHub.
- 245A python wrapper for libmagic
https://github.com/ahupp/python-magic
A python wrapper for libmagic. Contribute to ahupp/python-magic development by creating an account on GitHub.
- 246š¦ Never use print() to debug again.
https://github.com/gruns/icecream
š¦ Never use print() to debug again. Contribute to gruns/icecream development by creating an account on GitHub.
- 247A Python native, OS native GUI toolkit.
https://github.com/pybee/toga
A Python native, OS native GUI toolkit. Contribute to beeware/toga development by creating an account on GitHub.
- 248Every web site provides APIs.
https://github.com/gaojiuli/toapi
Every web site provides APIs. Contribute to elliotgao2/toapi development by creating an account on GitHub.
- 249Python packaging and dependency management made easy
https://github.com/sdispater/poetry
Python packaging and dependency management made easy - python-poetry/poetry
- 250Sixpack is a language-agnostic a/b-testing framework
https://github.com/seatgeek/sixpack
Sixpack is a language-agnostic a/b-testing framework - sixpack/sixpack
- 251Object-oriented file system path manipulation
https://github.com/jaraco/path.py
Object-oriented file system path manipulation. Contribute to jaraco/path development by creating an account on GitHub.
- 252Python PyPi staging server and packaging, testing, release tool
https://github.com/devpi/devpi
Python PyPi staging server and packaging, testing, release tool - devpi/devpi
- 253An implementation of the JSON Schema specification for Python
https://github.com/python-jsonschema/jsonschema
An implementation of the JSON Schema specification for Python - python-jsonschema/jsonschema
- 254Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk
https://github.com/spotify/annoy
Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk - spotify/annoy
- 255Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime.
https://github.com/IronLanguages/ironpython3
Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime. - IronLanguages/ironpython3
- 256zerorpc for python
https://github.com/0rpc/zerorpc-python
zerorpc for python. Contribute to 0rpc/zerorpc-python development by creating an account on GitHub.
- 257Freeze (package) Python programs into stand-alone executables
https://github.com/pyinstaller/pyinstaller
Freeze (package) Python programs into stand-alone executables - pyinstaller/pyinstaller
- 258Inspects Python source files and provides information about type and location of classes, methods etc
https://github.com/PyCQA/prospector
Inspects Python source files and provides information about type and location of classes, methods etc - landscapeio/prospector
- 259A Python implementation of John Gruberās Markdown with Extension support.
https://github.com/waylan/Python-Markdown
A Python implementation of John Gruberās Markdown with Extension support. - Python-Markdown/markdown
- 260Scapy: the Python-based interactive packet manipulation program & library.
https://github.com/secdev/scapy
Scapy: the Python-based interactive packet manipulation program & library. - secdev/scapy
- 261NumPy aware dynamic Python compiler using LLVM
https://github.com/numba/numba
NumPy aware dynamic Python compiler using LLVM. Contribute to numba/numba development by creating an account on GitHub.
- 262Full-screen console debugger for Python
https://github.com/inducer/pudb
Full-screen console debugger for Python. Contribute to inducer/pudb development by creating an account on GitHub.
- 263The Social-Engineer Toolkit (SET) repository from TrustedSec - All new versions of SET will be deployed here.
https://github.com/trustedsec/social-engineer-toolkit
The Social-Engineer Toolkit (SET) repository from TrustedSec - All new versions of SET will be deployed here. - trustedsec/social-engineer-toolkit
- 264Build software better, together
https://github.com/jonathanslenders/python-prompt-toolkit.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 265Create standalone Windows programs from Python code
https://github.com/py2exe/py2exe
Create standalone Windows programs from Python code - py2exe/py2exe
- 266Magenta: Music and Art Generation with Machine Intelligence
https://github.com/magenta/magenta
Magenta: Music and Art Generation with Machine Intelligence - magenta/magenta
- 267Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis
https://github.com/chapmanb/bcbio-nextgen
Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis - bcbio/bcbio-nextgen
- 268No longer maintained, please migrate to model_bakery
https://github.com/vandersonmota/model_mommy
No longer maintained, please migrate to model_bakery - berinhard/model_mommy
- 269Topic Modelling for Humans
https://github.com/RaRe-Technologies/gensim
Topic Modelling for Humans. Contribute to piskvorky/gensim development by creating an account on GitHub.
- 270xlwings is a Python library that makes it easy to call Python from Excel and vice versa. It works with Excel on Windows and macOS as well as with Google Sheets and Excel on the web.
https://github.com/ZoomerAnalytics/xlwings
xlwings is a Python library that makes it easy to call Python from Excel and vice versa. It works with Excel on Windows and macOS as well as with Google Sheets and Excel on the web. - GitHub - xlw...
- 271Build software better, together
https://github.com/mre/awesome-static-analysis.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 272A formatter for Python files
https://github.com/google/yapf
A formatter for Python files. Contribute to google/yapf development by creating an account on GitHub.
- 273Simple, elegant, Pythonic functional programming.
https://github.com/evhub/coconut
Simple, elegant, Pythonic functional programming. Contribute to evhub/coconut development by creating an account on GitHub.
- 274The POX network software platform
https://github.com/noxrepo/pox
The POX network software platform. Contribute to noxrepo/pox development by creating an account on GitHub.
- 275Write desktop and web apps in pure Python
https://github.com/zoofIO/flexx
Write desktop and web apps in pure Python. Contribute to flexxui/flexx development by creating an account on GitHub.
- 276py2app is a Python setuptools command which will allow you to make standalone Mac OS X application bundles and plugins from Python scripts.
https://github.com/ronaldoussoren/py2app
py2app is a Python setuptools command which will allow you to make standalone Mac OS X application bundles and plugins from Python scripts. - ronaldoussoren/py2app
- 277Rich Python data types for Redis
https://github.com/stephenmcd/hot-redis
Rich Python data types for Redis. Contribute to stephenmcd/hot-redis development by creating an account on GitHub.
- 278A lightweight, object-oriented finite state machine implementation in Python with many extensions
https://github.com/pytransitions/transitions
A lightweight, object-oriented finite state machine implementation in Python with many extensions - pytransitions/transitions
- 279A Python Mail Server
https://github.com/moggers87/salmon
A Python Mail Server. Contribute to moggers87/salmon development by creating an account on GitHub.
- 280Python client for Apache Kafka
https://github.com/dpkp/kafka-python
Python client for Apache Kafka. Contribute to dpkp/kafka-python development by creating an account on GitHub.
- 281A powerful workflow engine implemented in pure Python
https://github.com/knipknap/SpiffWorkflow
A powerful workflow engine implemented in pure Python - sartography/SpiffWorkflow
- 282Supercharge your API testing, catch bugs, and ensure compliance
https://github.com/kiwicom/schemathesis
Supercharge your API testing, catch bugs, and ensure compliance - schemathesis/schemathesis
- 283The Web framework for perfectionists with deadlines.
https://github.com/django/django
The Web framework for perfectionists with deadlines. - django/django
- 284:zap: A Fast, Extensible Progress Bar for Python and CLI
https://github.com/tqdm/tqdm
:zap: A Fast, Extensible Progress Bar for Python and CLI - tqdm/tqdm
- 285Python job scheduling for humans.
https://github.com/dbader/schedule
Python job scheduling for humans. Contribute to dbader/schedule development by creating an account on GitHub.
- 286Visual profiler for Python
https://github.com/nvdv/vprof
Visual profiler for Python. Contribute to nvdv/vprof development by creating an account on GitHub.
- 287An async ORM. š
https://github.com/encode/orm
An async ORM. š. Contribute to encode/orm development by creating an account on GitHub.
- 288Mail hosting made simple
https://github.com/modoboa/modoboa
Mail hosting made simple. Contribute to modoboa/modoboa development by creating an account on GitHub.
- 289A system-level, binary package and environment manager running on all major operating systems and platforms.
https://github.com/conda/conda/
A system-level, binary package and environment manager running on all major operating systems and platforms. - conda/conda
- 290Python library for reading audio file metadata
https://github.com/devsnd/tinytag
Python library for reading audio file metadata. Contribute to tinytag/tinytag development by creating an account on GitHub.
- 291Automatically generate a RESTful API service for your legacy database. No code required!
https://github.com/jeffknupp/sandman2
Automatically generate a RESTful API service for your legacy database. No code required! - jeffknupp/sandman2
- 292A Python scikit for building and analyzing recommender systems
https://github.com/NicolasHug/Surprise
A Python scikit for building and analyzing recommender systems - NicolasHug/Surprise
- 293ICU - International Components for Unicode
http://site.icu-project.org/.
News 2024-04-17: ICU 75 is now available. It updates to CLDR 45 (beta blog) locale data with new locales and various additions and corrections. C++ code now requires C++17 and is being made more robust. The CLDR MessageFormat 2.0 specification is now in technology preview, together with a
- 294A computer algebra system written in pure Python
https://github.com/sympy/sympy
A computer algebra system written in pure Python. Contribute to sympy/sympy development by creating an account on GitHub.
- 295WordPress models and views for Django.
https://github.com/istrategylabs/django-wordpress
WordPress models and views for Django. Contribute to jcarbaugh/django-wordpress development by creating an account on GitHub.
- 296Simple and extensible administrative interface framework for Flask
https://github.com/flask-admin/flask-admin
Simple and extensible administrative interface framework for Flask - pallets-eco/flask-admin
- 297Virtual Python Environment builder
https://github.com/pypa/virtualenv
Virtual Python Environment builder. Contribute to pypa/virtualenv development by creating an account on GitHub.
- 298The Python micro framework for building web applications.
https://github.com/pallets/flask
The Python micro framework for building web applications. - pallets/flask
- 299API Documentation for Python Projects
https://github.com/mitmproxy/pdoc
API Documentation for Python Projects. Contribute to mitmproxy/pdoc development by creating an account on GitHub.
- 300Python IMAP for Human beings
https://github.com/martinrusev/imbox
Python IMAP for Human beings. Contribute to martinrusev/imbox development by creating an account on GitHub.
- 301Supervisor process control system for Unix (supervisord)
https://github.com/Supervisor/supervisor
Supervisor process control system for Unix (supervisord) - Supervisor/supervisor
- 302ClickHouse Python Driver with native interface support
https://github.com/mymarilyn/clickhouse-driver
ClickHouse Python Driver with native interface support - mymarilyn/clickhouse-driver
- 303Pony Object Relational Mapper
https://github.com/ponyorm/pony/
Pony Object Relational Mapper. Contribute to ponyorm/pony development by creating an account on GitHub.
- 304x86-64 assembler embedded in Python
https://github.com/Maratyszcza/PeachPy
x86-64 assembler embedded in Python. Contribute to Maratyszcza/PeachPy development by creating an account on GitHub.
- 305Incubator for useful bioinformatics code, primarily in Python and R
https://github.com/chapmanb/bcbb
Incubator for useful bioinformatics code, primarily in Python and R - chapmanb/bcbb
- 306A curated list of awesome tools for SQLAlchemy
https://github.com/dahlia/awesome-sqlalchemy
A curated list of awesome tools for SQLAlchemy. Contribute to dahlia/awesome-sqlalchemy development by creating an account on GitHub.
- 307TinyDB is a lightweight document oriented database optimized for your happiness :)
https://github.com/msiemens/tinydb
TinyDB is a lightweight document oriented database optimized for your happiness :) - msiemens/tinydb
- 308Apache Spark - A unified analytics engine for large-scale data processing
https://github.com/apache/spark
Apache Spark - A unified analytics engine for large-scale data processing - apache/spark
- 309Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
https://github.com/tornadoweb/tornado
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. - tornadoweb/tornado
- 310Library for building WebSocket servers and clients in Python
https://github.com/aaugustin/websockets
Library for building WebSocket servers and clients in Python - python-websockets/websockets
- 311Cython implementation of Toolz: High performance functional utilities
https://github.com/pytoolz/cytoolz/
Cython implementation of Toolz: High performance functional utilities - pytoolz/cytoolz
- 312A developer-friendly Python library to interact with Apache HBase
https://github.com/python-happybase/happybase
A developer-friendly Python library to interact with Apache HBase - python-happybase/happybase
- 313Per object permissions for Django
https://github.com/django-guardian/django-guardian
Per object permissions for Django. Contribute to django-guardian/django-guardian development by creating an account on GitHub.
- 314Parsing ELF and DWARF in Python
https://github.com/eliben/pyelftools
Parsing ELF and DWARF in Python. Contribute to eliben/pyelftools development by creating an account on GitHub.
- 315A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
https://github.com/dashingsoft/pyarmor
A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts. - dashingsoft/pyarmor
- 316Python QR Code image generator
https://github.com/lincolnloop/python-qrcode
Python QR Code image generator. Contribute to lincolnloop/python-qrcode development by creating an account on GitHub.
- 317A pure Python Database Abstraction Layer
https://github.com/web2py/pydal/
A pure Python Database Abstraction Layer. Contribute to web2py/pydal development by creating an account on GitHub.
- 318Use a docx as a jinja2 template
https://github.com/elapouya/python-docx-template
Use a docx as a jinja2 template. Contribute to elapouya/python-docx-template development by creating an account on GitHub.
- 319A Library for Field-aware Factorization Machines
https://github.com/guestwalk/libffm
A Library for Field-aware Factorization Machines. Contribute to ycjuan/libffm development by creating an account on GitHub.
- 320A better Python REPL
https://github.com/jonathanslenders/ptpython
A better Python REPL. Contribute to prompt-toolkit/ptpython development by creating an account on GitHub.
- 321A fancy and practical functional tools
https://github.com/Suor/funcy
A fancy and practical functional tools. Contribute to Suor/funcy development by creating an account on GitHub.
- 322Subprocesses for Humans 2.0.
https://github.com/amitt001/delegator.py
Subprocesses for Humans 2.0. Contribute to amitt001/delegator.py development by creating an account on GitHub.
- 323Emacs Python Development Environment
https://github.com/jorgenschaefer/elpy
Emacs Python Development Environment. Contribute to jorgenschaefer/elpy development by creating an account on GitHub.
- 324Build software better, together
https://github.com/tayllan/awesome-algorithms.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 325Computer art based on quadtrees.
https://github.com/fogleman/Quads
Computer art based on quadtrees. Contribute to fogleman/Quads development by creating an account on GitHub.
- 326A toolbar overlay for debugging Flask applications
https://github.com/pallets-eco/flask-debugtoolbar
A toolbar overlay for debugging Flask applications - pallets-eco/flask-debugtoolbar
- 327Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020)
https://github.com/benedekrozemberczki/karateclub
Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020) - benedekrozemberczki/karateclub
- 328More routines for operating on iterables, beyond itertools
https://github.com/erikrose/more-itertools
More routines for operating on iterables, beyond itertools - more-itertools/more-itertools
- 329Python GUIs for Humans! PySimpleGUI is the top-rated Python application development environment. Launched in 2018 and actively developed, maintained, and supported in 2024. Transforms tkinter, Qt, WxPython, and Remi into a simple, intuitive, and fun experience for both hobbyists and expert users.
https://github.com/PySimpleGUI/PySimpleGUI
Python GUIs for Humans! PySimpleGUI is the top-rated Python application development environment. Launched in 2018 and actively developed, maintained, and supported in 2024. Transforms tkinter, Qt, ...
- 330Prefect is a workflow orchestration framework for building resilient data pipelines in Python.
https://github.com/PrefectHQ/prefect
Prefect is a workflow orchestration framework for building resilient data pipelines in Python. - PrefectHQ/prefect
- 331RPyC (Remote Python Call) - A transparent and symmetric RPC library for python
https://github.com/tomerfiliba/rpyc
RPyC (Remote Python Call) - A transparent and symmetric RPC library for python - tomerfiliba-org/rpyc
- 332A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files
https://github.com/mstamy2/PyPDF2
A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files - py-pdf/pypdf
- 333Models | Django documentation
https://docs.djangoproject.com/en/dev/topics/db/models/
The web framework for perfectionists with deadlines.
- 334Build Web Services with Pyramid.
https://github.com/Cornices/cornice
Build Web Services with Pyramid. Contribute to Cornices/cornice development by creating an account on GitHub.
- 335Deduplicating archiver with compression and authenticated encryption.
https://github.com/borgbackup/borg
Deduplicating archiver with compression and authenticated encryption. - borgbackup/borg
- 336Theano was a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It is being continued as PyTensor: www.github.com/pymc-devs/pytensor
https://github.com/Theano/Theano
Theano was a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It is being continued as PyTensor: www.github....
- 337An implementation of Python in Common Lisp
https://github.com/metawilm/cl-python
An implementation of Python in Common Lisp. Contribute to metawilm/cl-python development by creating an account on GitHub.
- 338lightweight python wrapper for vowpal wabbit
https://github.com/josephreisinger/vowpal_porpoise
lightweight python wrapper for vowpal wabbit. Contribute to josephreisinger/vowpal_porpoise development by creating an account on GitHub.
- 339Integration of IPython pdb
https://github.com/gotcha/ipdb
Integration of IPython pdb. Contribute to gotcha/ipdb development by creating an account on GitHub.
- 340Main repository for Vispy
https://github.com/vispy/vispy
Main repository for Vispy. Contribute to vispy/vispy development by creating an account on GitHub.
- 341Python datetimes made easy
https://github.com/sdispater/pendulum
Python datetimes made easy. Contribute to sdispater/pendulum development by creating an account on GitHub.
- 342Web APIs for Django. šø
https://github.com/encode/django-rest-framework
Web APIs for Django. šø. Contribute to encode/django-rest-framework development by creating an account on GitHub.
- 343local pypi server (custom packages and auto-mirroring of pypi)
https://github.com/jazzband/localshop
local pypi server (custom packages and auto-mirroring of pypi) - mvantellingen/localshop
- 344The Python Package Index
https://github.com/pypa/warehouse
The Python Package Index. Contribute to pypi/warehouse development by creating an account on GitHub.
- 345A functional standard library for Python.
https://github.com/pytoolz/toolz
A functional standard library for Python. Contribute to pytoolz/toolz development by creating an account on GitHub.
- 346A toolkit for developing and comparing reinforcement learning algorithms.
https://github.com/openai/gym
A toolkit for developing and comparing reinforcement learning algorithms. - openai/gym
- 347Cartopy - a cartographic python library with matplotlib support
https://github.com/SciTools/cartopy
Cartopy - a cartographic python library with matplotlib support - SciTools/cartopy
- 348a python refactoring library
https://github.com/python-rope/rope
a python refactoring library. Contribute to python-rope/rope development by creating an account on GitHub.
- 349Python process launching
https://github.com/amoffat/sh
Python process launching. Contribute to amoffat/sh development by creating an account on GitHub.
- 350Statistical data visualization in Python
https://github.com/mwaskom/seaborn
Statistical data visualization in Python. Contribute to mwaskom/seaborn development by creating an account on GitHub.
- 351Fast data visualization and GUI tools for scientific / engineering applications
https://github.com/pyqtgraph/pyqtgraph
Fast data visualization and GUI tools for scientific / engineering applications - pyqtgraph/pyqtgraph
- 352Create Open XML PowerPoint documents in Python
https://github.com/scanny/python-pptx
Create Open XML PowerPoint documents in Python. Contribute to scanny/python-pptx development by creating an account on GitHub.
- 353Declarative User Interfaces for Python
https://github.com/nucleic/enaml
Declarative User Interfaces for Python. Contribute to nucleic/enaml development by creating an account on GitHub.
- 354Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.
https://github.com/numenta/nupic
Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex. - numenta/nupic-...
- 355A Python utility / library to sort imports.
https://github.com/timothycrosley/isort
A Python utility / library to sort imports. Contribute to PyCQA/isort development by creating an account on GitHub.
- 356Run Python in Apache Storm topologies. Pythonic API, CLI tooling, and a topology DSL.
https://github.com/Parsely/streamparse
Run Python in Apache Storm topologies. Pythonic API, CLI tooling, and a topology DSL. - pystorm/streamparse
- 357Declarative statistical visualization library for Python
https://github.com/altair-viz/altair
Declarative statistical visualization library for Python - vega/altair
- 358Crontab jobs management in Python
https://github.com/fengsp/plan
Crontab jobs management in Python. Contribute to fengsp/plan development by creating an account on GitHub.
- 359A calendaring app for Django. It is now stable, Please feel free to use it now. Active development has been taken over by bartekgorny.
https://github.com/thauber/django-schedule
A calendaring app for Django. It is now stable, Please feel free to use it now. Active development has been taken over by bartekgorny. - thauber/django-schedule
- 360A Python Object-Document-Mapper for working with MongoDB
https://github.com/MongoEngine/mongoengine
A Python Object-Document-Mapper for working with MongoDB - MongoEngine/mongoengine
- 361Build software better, together
https://github.com/timofurrer/awesome-asyncio.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 362New generation PostgreSQL database adapter for the Python programming language
https://github.com/psycopg/psycopg
New generation PostgreSQL database adapter for the Python programming language - GitHub - psycopg/psycopg: New generation PostgreSQL database adapter for the Python programming language
- 363Build software better, together
https://github.com/realpython/list-of-python-api-wrappers.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 364Python Imaging Library (Fork)
https://github.com/python-pillow/Pillow
Python Imaging Library (Fork). Contribute to python-pillow/Pillow development by creating an account on GitHub.
- 365Stream Framework is a Python library, which allows you to build news feed, activity streams and notification systems using Cassandra and/or Redis. The authors of Stream-Framework also provide a cloud service for feed technology:
https://github.com/tschellenbach/Stream-Framework
Stream Framework is a Python library, which allows you to build news feed, activity streams and notification systems using Cassandra and/or Redis. The authors of Stream-Framework also provide a clo...
- 366thumbor is an open-source photo thumbnail service by globo.com
https://github.com/thumbor/thumbor
thumbor is an open-source photo thumbnail service by globo.com - thumbor/thumbor
- 367REST API framework designed for human beings
https://github.com/pyeve/eve
REST API framework designed for human beings. Contribute to pyeve/eve development by creating an account on GitHub.
- 368Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow
https://github.com/dmlc/xgboost
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow - dmlc/x...
- 369Official upstream for the cloud-init: cloud instance initialization
https://github.com/canonical/cloud-init
Official upstream for the cloud-init: cloud instance initialization - canonical/cloud-init
- 370create custom test databases that are populated with fake data
https://github.com/emirozer/fake2db
create custom test databases that are populated with fake data - emirozer/fake2db
- 371Fixes mojibake and other glitches in Unicode text, after the fact.
https://github.com/LuminosoInsight/python-ftfy
Fixes mojibake and other glitches in Unicode text, after the fact. - rspeer/python-ftfy
- 372Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.
https://github.com/JohnLangford/vowpal_wabbit/.
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive lea...
- 373Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:
https://github.com/saltstack/salt
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here: - GitHub - saltstack/salt: Software to...
- 374Plotting library for IPython/Jupyter notebooks
https://github.com/bloomberg/bqplot
Plotting library for IPython/Jupyter notebooks. Contribute to bqplot/bqplot development by creating an account on GitHub.
- 375Python interface to Graphviz graph drawing package
https://github.com/pygraphviz/pygraphviz/
Python interface to Graphviz graph drawing package - pygraphviz/pygraphviz
- 376š© Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.
https://github.com/mahmoud/boltons
š© Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton. - mahmoud/boltons
- 377Selenium
http://www.seleniumhq.org/
Selenium automates browsers. That's it! What you do with that power is entirely up to you. Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should) also be automated as well. Getting Started Selenium WebDriver Selenium WebDriver If you want to create robust, browser-based regression automation suites and tests, scale and distribute scripts across many environments, then you want to use Selenium WebDriver, a collection of language specific bindings to drive a browser - the way it is meant to be driven.
- 378Machine learning evaluation metrics, implemented in Python, R, Haskell, and MATLAB / Octave
https://github.com/benhamner/Metrics
Machine learning evaluation metrics, implemented in Python, R, Haskell, and MATLAB / Octave - benhamner/Metrics
- 379DataStax Python Driver for Apache Cassandra
https://github.com/datastax/python-driver
DataStax Python Driver for Apache Cassandra. Contribute to datastax/python-driver development by creating an account on GitHub.
- 380A configurable set of panels that display various debug information about the current request/response.
https://github.com/jazzband/django-debug-toolbar
A configurable set of panels that display various debug information about the current request/response. - jazzband/django-debug-toolbar
- 381Creating delicious APIs for Django apps since 2010.
https://github.com/django-tastypie/django-tastypie
Creating delicious APIs for Django apps since 2010. - django-tastypie/django-tastypie
- 382A Grammar of Graphics for Python
https://github.com/has2k1/plotnine
A Grammar of Graphics for Python. Contribute to has2k1/plotnine development by creating an account on GitHub.
- 383The platform for building AI from enterprise data
https://github.com/mindsdb/mindsdb
The platform for building AI from enterprise data. Contribute to mindsdb/mindsdb development by creating an account on GitHub.
- 384A curated list of awesome Jupyter projects, libraries and resources
https://github.com/markusschanta/awesome-jupyter
A curated list of awesome Jupyter projects, libraries and resources - markusschanta/awesome-jupyter
- 385Useful extensions to the standard Python datetime features
https://github.com/dateutil/dateutil
Useful extensions to the standard Python datetime features - dateutil/dateutil
- 386Debugging manhole for python applications.
https://github.com/ionelmc/python-manhole
Debugging manhole for python applications. Contribute to ionelmc/python-manhole development by creating an account on GitHub.
- 387The comprehensive WSGI web application library.
https://github.com/pallets/werkzeug
The comprehensive WSGI web application library. Contribute to pallets/werkzeug development by creating an account on GitHub.
- 388A little Python library for making simple Electron-like HTML/JS GUI apps
https://github.com/ChrisKnott/Eel
A little Python library for making simple Electron-like HTML/JS GUI apps - python-eel/Eel
- 389Python flexible slugify function
https://github.com/dimka665/awesome-slugify
Python flexible slugify function. Contribute to voronind/awesome-slugify development by creating an account on GitHub.
- 390Bayesian Modeling and Probabilistic Programming in Python
https://github.com/pymc-devs/pymc3
Bayesian Modeling and Probabilistic Programming in Python - pymc-devs/pymc
- 391A set of tools to keep your pinned Python dependencies fresh.
https://github.com/jazzband/pip-tools
A set of tools to keep your pinned Python dependencies fresh. - jazzband/pip-tools
- 392Browsable web APIs for Flask.
https://github.com/flask-api/flask-api
Browsable web APIs for Flask. Contribute to flask-api/flask-api development by creating an account on GitHub.
- 393The official Python SDK for Sentry.io
https://github.com/getsentry/sentry-python
The official Python SDK for Sentry.io. Contribute to getsentry/sentry-python development by creating an account on GitHub.
- 394Remote task execution tool
https://github.com/gunnery/gunnery
Remote task execution tool. Contribute to gunnery/gunnery development by creating an account on GitHub.
- 395Statsmodels: statistical modeling and econometrics in Python
https://github.com/statsmodels/statsmodels
Statsmodels: statistical modeling and econometrics in Python - statsmodels/statsmodels
- 396pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands.
https://github.com/pyinfra-dev/pyinfra
pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast ...
- 397Interactive Data Visualization in the browser, from Python
https://github.com/bokeh/bokeh
Interactive Data Visualization in the browser, from Python - bokeh/bokeh
- 398Send email in Python conveniently for gmail using yagmail
https://github.com/kootenpv/yagmail
Send email in Python conveniently for gmail using yagmail - kootenpv/yagmail
- 399A fast Python in-process signal/event dispatching system.
https://github.com/jek/blinker
A fast Python in-process signal/event dispatching system. - pallets-eco/blinker
- 400š The official Python client library for Google's discovery based APIs.
https://github.com/google/google-api-python-client
š The official Python client library for Google's discovery based APIs. - googleapis/google-api-python-client
- 401š Compute distance between sequences. 30+ algorithms, pure python implementation, common interface, optional external libs usage.
https://github.com/orsinium/textdistance
š Compute distance between sequences. 30+ algorithms, pure python implementation, common interface, optional external libs usage. - life4/textdistance
Queriesor most google FAQ's about Python.
mail [email protected] to add more queries here š.
- 1
how does python programming work
- 2
which app is best for python programming
- 3
what python programming can do
- 4
when was python programming language created
- 5
how long will it take to learn python programming
- 6
how to learn python programming for free
- 7
what can we do with python programming language
- 8
is python programming useful
- 9
why python programming is used
- 10
what are python programming language
- 11
what python programming language
- 12
why python programming is awesome
- 13
how to do python programming in mobile
- 14
why python programming language
- 15
which type of programming does python support
- 16
is python programming hard
- 17
is python coding free
- 18
where is python coding used
- 19
what does python programming look like
- 20
what are some limitations of python programming language
- 21
how to do python programming in jupyter notebook
- 22
is python programming language easy to learn
- 23
how to do python programming in vs code
- 24
is python programming hard to learn
- 25
which laptop is best for python programming
- 26
how to do python programming
- 27
which book is best for python programming
- 28
will python 4 come out
- 29
how to use anaconda for python programming
- 30
what can you do with python programming
- 31
what are the basics of python programming
- 32
how will i learn atl skills with python programming
- 33
what are variables in python programming
- 34
is python programming or scripting
- 35
why learn python programming
- 36
how long has python programming been around
- 37
where is python used and why
- 38
how to do python programming in laptop
- 39
what can you do with python programming language
- 40
what programming language should i learn after python
- 41
what has python been used for
- 42
is python sequential programming
- 43
who is the best python programmer in the world
- 44
how long does it take to learn python programming
- 45
can i do python programming on ipad
- 46
when is python used
- 47
is python programming easy to learn
- 48
who developed python programming language
- 49
where to start python programming
- 50
why python programming language named python
- 51
what are the uses of python programming
- 52
why python programming is important
- 53
which programming language is used in python
- 54
where python programming language is used
- 55
what are the good python programming practices
- 56
- 57
how is python different from other programming languages
- 58
is python named after monty python
- 59
is python the easiest programming language
- 60
is python programming in demand
- 61
why was python developed
- 62
will python die
- 63
why was python programming language created
- 64
does python support functional programming
- 65
where to learn python programming for free
- 66
where to program python
- 67
what are the functions of python programming
- 68
who is the father of python programming language
- 69
is python a programming software
- 70
why you should learn python programming
- 71
what is python as a programming language
- 72
who coded python
- 73
what is socket programming python
- 74
have python point to python3
- 75
can i do competitive programming in python
- 76
how did python programming get its name
- 77
who owns python programming language
- 78
is python programming language or scripting language
- 79
who developed python and when
- 80
what should be considered when using operators in python programming
- 81
why python is important
- 82
what should be used to terminate statements in python programming
- 83
how to make a programming language in python
- 84
where to practice python programming
- 85
how to practice python programming
- 86
why python is the best programming language
- 87
will python be replaced
- 88
who wrote python programming language
- 89
why is python good for beginners
- 90
why python programming is necessary
- 91
does python have object oriented programming
- 92
how long does it take to master python programming
- 93
how to do python programming in computer
- 94
does python support object oriented programming
- 95
what is functional programming in python
- 96
what jobs can you get with python programming
- 97
was python written in c
- 98
what are the features of python programming language
- 99
how would you describe object-oriented programming in python
- 100
who create python programming language
- 101
which app is used for python programming
- 102
who uses python programming language
- 103
what are the applications of python programming
- 104
what can python programming be used for
- 105
when python was created
- 106
who can learn python programming
- 107
where python programming is used
- 108
why was python invented
- 109
should you learn python
- 110
why should we learn python programming
- 111
why python is famous
- 112
will python become obsolete
- 113
what does python programming do
- 114
how python programming language works
- 115
who created python and why
- 116
which software is used for python programming
- 117
why python is most popular programming language
- 118
why python is popular programming language
- 119
how to do python programming for beginners
- 120
is python programming language
- 121
who developed python programming language and when
- 122
what python programming is used for
- 123
why python programming is called python
- 124
how is a function written in python programming language
- 125
is python programming free
- 126
what is object oriented programming in python
- 127
which software is best for python programming
- 128
how does python compare to other programming languages
- 129
what are the advantages of python programming language
- 130
what jobs can i get with python programming
- 131
who is the father of python
- 132
what does python programming mean
- 133
who uses python programming
- 134
what is gui programming in python
- 135
how to programming in python
- 136
is python necessary
- 137
do python programming online
More Sitesto check out once you're finished browsing here.
https://www.0x3d.site/
0x3d is designed for aggregating information.
https://nodejs.0x3d.site/
NodeJS Online Directory
https://cross-platform.0x3d.site/
Cross Platform Online Directory
https://open-source.0x3d.site/
Open Source Online Directory
https://analytics.0x3d.site/
Analytics Online Directory
https://javascript.0x3d.site/
JavaScript Online Directory
https://golang.0x3d.site/
GoLang Online Directory
https://python.0x3d.site/
Python Online Directory
https://swift.0x3d.site/
Swift Online Directory
https://rust.0x3d.site/
Rust Online Directory
https://scala.0x3d.site/
Scala Online Directory
https://ruby.0x3d.site/
Ruby Online Directory
https://clojure.0x3d.site/
Clojure Online Directory
https://elixir.0x3d.site/
Elixir Online Directory
https://elm.0x3d.site/
Elm Online Directory
https://lua.0x3d.site/
Lua Online Directory
https://c-programming.0x3d.site/
C Programming Online Directory
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
https://r-programming.0x3d.site/
R Programming Online Directory
https://perl.0x3d.site/
Perl Online Directory
https://java.0x3d.site/
Java Online Directory
https://kotlin.0x3d.site/
Kotlin Online Directory
https://php.0x3d.site/
PHP Online Directory
https://react.0x3d.site/
React JS Online Directory
https://angular.0x3d.site/
Angular JS Online Directory