python libs
Table of Contents
- 1. python libs
- 1.1. Web
- 1.2. Bases de datos
- 1.3. Generales
- 1.4. GUIs
- 1.5. Juegos
- 1.6. Tests y comprobación/validación
- 1.7. CLIs
- 1.8. Android
- 1.9. Visualización
- 1.10. Audio/Música
- 1.11. Data Science
- 1.12. Machine Learning
- 1.13. Data Pipelines
- 1.14. Ciencia
- 1.15. HTTP y Redes
- 1.16. git
- 1.17. pdfs
- 1.18. Sin clasificar
- 1.19. lenguajes naturales y fuzzy match / NLP
- 1.20. Las más conocidas
1. python libs
- https://python3statement.org/ Recopilación (accidental) de librerías de Python
- The most underrated python packages
- https://pymotw.com/3/ python module of the week
1.1. Web
- streamlit Desplegar páginas web en python muy rápido, en python puro, oriendato a dash
- heroku también despliegue rápido de webs
- playwright como selenium, automatización del navegador
- Sillynium (Demo) Automatically generate python selenium scripts by drawing coloured boxes around webpage elements.
- Python Async (ASGI) Web Frameworks Benchmark
1.1.1. django
- Django Packages Lista de paquetes de Django
- dj-database-url Parsear urls para pasárselas a Django
1.1.2. flask
FastAPI Construido encima de flask para cuando sólo quieres hacer una api
1.1.3. javascript
- iodide-project/pyodide,
The Python scientific stack, compiled to WebAssembly - pyodide
- PyScript
1.1.4. Consumir APIs
1.1.5. fastapi
fastapi
https://github.com/yuval9313/fastapi-restful/ fork actualizado de fastapi-utils
https://github.com/trallnag/prometheus-fastapi-instrumentator
1.2. Bases de datos
1.2.1. shilelagh: everything in SQL
shilelagh : Python library and CLI that allows you to query many resources (APIs, files, in memory objects) using SQL
1.2.2. pandasql : query pandas dataframes using SQLite
1.2.3. Asíncrono
- aiomysql (MySQL)
- aiopg (Postgres)
- aioodbc
(ODBC) - DuckDB Construido sobre Numpy y Pandas, trabaja a nivel de columnas en vez de registros individuales
- piccolo-orm A fast, user friendly ORM and query builder which supports asyncio.
- beanie Asynchronous Python ODM for MongoDB
- asyncdb · PyPI Interfaz de alto nivel a:
pg: AsyncPG (PostgreSQL)
postgres: aiopg (PostgreSQL)
mysql: aiomysql (mySQL)
influx: influxdb (InfluxDB)
redis: aioredis (Redis)
mcache: aiomcache (Memcache)
odbc: aiodbc (ODBC)
1.2.4. ETL de muchos datos
- Overview — odo latest documentation
pandas suele ser muy lenta cuando hay que tratar grandes cantidades de datos, más rápido utilizar herramientas externas optimizadas para ello
1.2.5. ORM
- Prisma python client → Basado en un ORM escrito en Rust con soporte para Javascript, async opcional, type safe (por Rust)
1.3. Generales
- attrs Crea boilerplate para las clases (métodos dunder automáticamente)
- imphook allows to easily define per file type import hooks, i.e. overload or extend import processing for particular file types, without affecting processing of other file types
- apacheconfig pure-Python implementation of Apache-like configuration file parser into Python built-in types
- plumbum Make bash scripts using python (example)
- SHTK alternative
- SHTK alternative
- sh sh is a full-fledged subprocess replacement for Python 2.6 - 3.8, PyPy and PyPy3 that allows you to call any program as if it were a function
1.3.1. Asíncrono
- uvloop asyncio event loop replacement in Cython
- gunicorn → Hay links a librerías interesantes
- ray → Funciona con Redis (aunque no por defecto) y tiene integraciones con Spark, Dask, MARS, Modin, Horovod, Hugging Face, Scikit-learn, …
- aio-pool → Utilizar funciones asíncronas dentro de pools de Multiprocessing. Cuando tienes procesos que son a la vez intensivos en I/O y CPU
1.3.2. Análisis de código
- pycodestyle pep8 Python style guide checker
- https://flake8.pycqa.org/en/latest/flake8 Flake8: Your Tool For Style Guide Enforcement
- wily A command-line application for tracking, reporting on complexity of Python tests and applications.
- mypy análisis estático de código
- pytype
- It flags mistakes such as misspelled attribute names, incorrect function calls, etc. You can use pytype instead of pylint.
- With a nod towards future compilation, pytype generates type annotations in pyi files. The resulting pyi files are merged back into the Python source with the merge-pyi tool.
- It flags mistakes such as misspelled attribute names, incorrect function calls, etc. You can use pytype instead of pylint.
- PyRe PyRe (Python Reliability) is a python module for structural reliability analysis
- pysa identifies potential security defects using taint analysis of input data.
- codacy catches more errors and suspect code than pylint, including some of the stylistic warning we ignore → automate code review
- loguru Better, more enjoyable logging than standard package
1.3.3. TRSTN4/br4nch: br4nch - Data Structure Tree Builder for Python.
1.4. GUIs
- PySimpleGUI
- PyVirtualDisplay Capturas de pantalla de GUIs
- DearPyGui Interfaz declarativa (muy nueva) (github)
1.4.1. Automatización de GUI
- pynput control the moment of external devices like a mouse and keyboard.
- playsound, webbrowser para repoducir sonido, abrir webs
1.4.2. GUIs de pandas
- pandasgui Otra GUI para pandas
- tabloo Otra GUI para pandas
- pandastable YAPD (Yet Another Pandas GUI), esta usa Tkinter
- qgrid Librería para manipular DataFrames en Jupyter Notebooks
- Bamboolib Otra librería para manipular DataFrames en Jupyter Notebooks
- dtale Otra librería para manipular DataFrames en Jupyter Notebooks
- https://stackoverflow.com/questions/10636024/python-pandas-gui-for-viewing-a-dataframe-or-matrix
- qgrid → Parece muy buena
- mito → No sé hasta qué punto es gratis
1.5. Juegos
- https://jmckew.com/2019/10/04/intro-to-games-in-python-with-pyglet/
Pyglet es la buena para hacer juegos, no pygame - https://github.com/p5py/p5 Implementación de Processing en python
1.6. Tests y comprobación/validación
1.6.1. por ordenar
- tsfaker Recopila muchas otras librerías
- radar
datetime
ydate
falsos - https://github.com/emirozer/fake2db Crea una base de datos con datos falsos (soporta muchos motores distintos), por debajo usa Faker
1.6.1.1. Generar dataframes falsos
- Mismo problema de siempre, crear datos con bucles
for
es lento - pandas_faker
- mimesis Mucho soporte de locales de otros países
- Hypothesis genera arrays de numpy y dataframes, buena integración con las APIs de pandas
- panderas Mejor integración con API de pandas que Hypothesis, puedes utilizar frictionless para especificar el schema
1.7. CLIs
- Click Librería de CLIs
- https://github.com/python-cmd2/cmd2 Librería de CLIs
- xonsh terminal basada en Python
- interfzf Para filtrar un iterable usando fzf
- Austin TUI Interfaz declarativa usando xmls que usa ncurses por debajo
- colorama Colores para la terminal
- rich Rich text for the terminal
- textual UI (Text User Interface) framework for Python inspired by modern web development, uses Rich
- Python Prompt Toolkit vi/emacs text completionframework, pure python, async, with type annotations
- urwid
- asciimatics
- pytermgui
- pudb Debugger de Python con una interfaz por consola estilo años 80
- asciipy Convert images and videos to ascii art and you can print them to the terminal or save them in image / video formats or in .txt file.
- pyfiglet → crear ascii art a partir de texto
1.7.1. Barras y status de progreso
- tqdm Barras de progreso CLI
- Recopilación
- Progress
- Alive
- Com PySimpleGUI también se pueden hacer barras de progreso
- lazy-table Una tabla con la información de cada iteración
1.8. Android
1.9. Visualización
- datasette An open source multi-tool for exploring and publishing data
- datashader Plotear datos muy pesados
- toyplot Visualización de datos avanzada. Grafos
- tryton “business software” (es un ERP)
- pyvista Visualización 3d
- manim Librería de 3brown1blue
- missingno Plotear datos que faltan y nulos
- moving pandas
Librería para visualizar información geográfica usando pandas y geopandas - vectorfields Visualización de campos vectoriales, también los crea
- Esto no debería ir aquí pero bueno:
- glitch-this Efecto glitch de Hollywood en vídeos
1.9.1. Dashboards/BI
- A Guide to Data Visualization with Plotly Parece ser que no hay ninguna guía buena de Plotly
- voila-dashboards/voila: Voilà turns Jupyter notebooks into standalone web applications
- Altair Declarative Visualization in Python
- 1
- Panel Documentation — Panel v0.13.1
Panel has a model that wraps around a plotly plot - holoviews allows you to chose the backend to be either Bokeh (best for web) or Matplotlib (best for print publications) from a unified front end.
- gleam Plots interactivos en Web
- pygal Otro plot interactivo estilo plotly
1.9.2. Headless png maps
- folium y plotly hacen mapas en html, pero para sacar una captura necesitas un navegador y/o un paquete de node instalado. Como alternativa estas librerías:
- https://github.com/MatthewDaws/TileMapBase
- https://github.com/rossant/smopy
- https://github.com/SciTools/cartopy
1.10. Audio/Música
- librosa package for music and audio analysis
- pyAudioAnalyis A Python library for audio feature extraction, classification, segmentation and applications
1.11. Data Science
- CleverCSV Cargar csv, resistente a fallos del csv
- texthero Procesamiento sencillo de texto
- PAIR-code/facets: Visualizations for machine learning datasets
- jsiddique/facets_labeling
- Interactively create machine learning datasets using facets visualization tool and active learning or semi-supervised learning. Visualizations for machine learning datasets
- Interactively create machine learning datasets using facets visualization tool and active learning or semi-supervised learning. Visualizations for machine learning datasets
- pyod Anomaly/outlier detection in Python
- dtw-python Dynamic Time Warping
1.11.1. NetworkX - Wikipedia
1.11.3. Jupyter notebook
1.12. Machine Learning
- Time Series Projects: Tools, Packages, and Libraries That Can Help - neptune.ai (lista de librerías)
- statsmodel
- pmdarima Estimación de series temporales, interfaz de scikit y statsmodel más simple
- Optuna - A hyperparameter optimization framework
- Merlion A ML lib for Time Series (with anomaly detection, autoML, ensembles, benchmarking and visualization)
- Tienen un tabla donde ponen más libs de series temporales/anomalías temporales
- Tienen un tabla donde ponen más libs de series temporales/anomalías temporales
- tsfresh It automatically calculates a large number of time series characteristics
- pingouing simple yet exhaustive stats functions
- darts Interfaz común y simplificada a muchas librerías de series temporales
- igel Interfaz de scikit-learn con yamls, declarativo (medium)
- opencv Computer Vision
- PyClustering
- PyCaret PyCaret is an open-source, low-code machine learning library in Python that automates machine learning workflows.
- hora approximate nearest neighbor search algorithm library. We implement all code in Rust🦀
- Ikomia API documentation open source dev tool designed to simplify the development and deployment of Computer Vision solutions.
1.12.1. Reinforcement Learning
1.13. Data Pipelines
- Python libraries | Everything I know
- cgarciae/pypeln: Concurrent data pipelines in Python >>>
- olirice/flupy: Fluent data pipelines for python and your shell
- EntilZha/PyFunctional: Python library for creating data pipelines with chain functional programming
- alegonz/baikal: A graph-based functional API for building complex scikit-learn pipelines.
- cgarciae/pypeln: Concurrent data pipelines in Python >>>
1.14. Ciencia
- Axelrod librería de investigación del dilema del prisionero
- AgentPy - Agent-based modeling in Python
- psi4 Química Cuántica
- ProjectQ Computación cuántica
- QuTiP Quantum Toolbox in Python, sobre todo óptica cuántica
- https://github.com/quantum-visualizations/qmsolve%7Cqmsolve
Visualizaciones de mecánica cuántica - stan Inferencia bayesiana y MCMC
- celerite Scalable Gaussian Process (GP) Regression in one dimension
- skfdiff ecuaciones en derivadas parciales por elementos finitos (siempre que no sean deformaciones de sólidos, etc. que en teoría están mejor en
sfepy) - py-pde stochastic PDEs
- findiff Calcula diferencias finitas a orden n
- dipy spatial normalization, signal processing, machine learning, statistical analysis and visualization of medical images. Additionally, it contains specialized methods for computational anatomy including diffusion, perfusion and structural imaging. (neural stuff)
1.14.1. profiling
- austin Zero instrumentation;Minimal impact;Fast and lightweight;Time and memory profiling;Built-in support for multi-process applications
- perfplot Gráficas de tiempo en función de N: O(N), O(N^2), ..
- Scalene a high-performance, high-precision CPU and memory profiler for Python
- pyinstrument profiler for async code
1.14.1.1. bloomberg/memray: Memray is a memory profiler for Python
1.15. HTTP y Redes
- an interactive HTTPS proxy
- aoihttp http asíncrono
- tenacity Librería para reintentar funciones con timeouts flexibles
- BeautifulSoup
- requests
1.15.1. JSON
- JMESPAth Extraer datos de json con paths
- simplejson más rápido que
json
pero compatible con él - Box Elementos de dict como atributos
config.timeout, config.server.time.throttling
recursivo - easydict Lo mismo que el anterior, menos estable
1.16. git
- pre-commit checks antes de hacer un commit
- GitPython python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.
- pydriller Python framework that helps developers in analyzing Git repositories (higher level than gitpython)
1.17. pdfs
- pypdf Manipulación de archivos pdfs
- Camelot extración de tablas pdf
- pdfrw Manipulación de archivos pdfs
- reportlab
- pdfminer
- pdfme + comparativas de librerías
- borb open-source, pure python, PDF library to enable you to create PDF’s
and process existing ones. De pago - Python PDF Handling Tutorial
1.18. Sin clasificar
- pyinstaller Correr apps de Python sin instalarlo
- MNE EEG en python
- IBM: Adversarial Robustness Toolbox
- tikzplotlib convertir de matplotlib a \[\LaTeX\]
- https://github.com/nschloe/betterbib Actualizar entradas de BibTeX desde internet
- homeassistant
- The most underrated Python packages (lista)
1.19. lenguajes naturales y fuzzy match / NLP
- NLTK, Gensim
- Levenshtein, thefuzz, spacy
- Text Blob TextBlob stands on the giant shoulders of NLTK and pattern, and plays nicely with both. (medium tutorial)
- gensim Latent semantic indexing
(Singular value decomposition)
- Efficient multicore implementations of popular algorithms, such as online Latent Semantic Analysis (LSA/LSI/SVD), Latent Dirichlet Allocation (LDA), Random Projections (RP), Hierarchical Dirichlet Process (HDP) or word2vec deep learning.
- Efficient multicore implementations of popular algorithms, such as online Latent Semantic Analysis (LSA/LSI/SVD), Latent Dirichlet Allocation (LDA), Random Projections (RP), Hierarchical Dirichlet Process (HDP) or word2vec deep learning.
- clavier
Measure edit distance based on keyboard layout.
1.19.1. Hugging Face
1.20. Las más conocidas
- numpy, scipy, pandas, sympy
- statsmodels
- scikit-learn, tensorflow, keras, Theano
- matplotlib, seaborn, plotly, bokeh
- scrapy, selenium
- Pillow
- collections, itertools, more-itertools
- logging
- unittest, mock, pytest
- calendar
- pytz Timezones, python-dateutil