~~stoggle_buttons~~ * [[https://python3statement.org/]] Recopilación (accidental) de librerías de Python * [[https://towardsdatascience.com/the-most-underrated-python-packages-e22bf6049b5e|The most underrated python packages]] * [[https://pymotw.com/3/]] python module of the week ===== Web ===== * [[https://www.streamlit.io/|streamlit]] Desplegar páginas web en python muy rápido, en python puro * [[https://medium.com/@henson.casper/how-to-publish-your-first-python-app-on-heroku-6af91c5bb138|heroku]] también despliegue rápido de webs * [[https://github.com/microsoft/playwright-python|playwright]] como selenium, automatización del navegador * [[https://github.com/con-dog/sillynium|Sillynium]] ([[https://www.reddit.com/r/Python/comments/k9nqmt/sillynium_auto_generate_python_selenium_scripts/|Demo]]) Automatically generate python selenium scripts by drawing coloured boxes around webpage elements. ==== django ==== * [[https://djangopackages.org/|Django Packages]] Lista de paquetes de Django * [[https://github.com/jacobian/dj-database-url|dj-database-url]] Parsear urls para pasárselas a Django ==== flask ==== [[https://towardsdatascience.com/fastapi-has-ruined-flask-forever-for-me-73916127da|FastAPI]] Construido encima de flask para cuando sólo quieres hacer una api ==== javascript ==== * [[https://hacks.mozilla.org/2019/04/pyodide-bringing-the-scientific-python-stack-to-the-browser/|iodide-project/pyodide]], The Python scientific stack, compiled to WebAssembly [[https://github.com/iodide-project/pyodide/|pyodide]] ==== Consumir APIs ==== * [[https://pypi.org/project/googletrans/|googletrans]] * [[https://github.com/MarioVilas/googlesearch|googlesearch]] * [[https://pypi.org/project/wikipedia/|wikipedia]] ==== Bases de datos ==== === Asíncrono === * [[https://github.com/aio-libs/aiomysql|aiomysql]] (MySQL) * [[https://github.com/aio-libs/aiopg|aiopg]] (Postgres) * [[https://github.com/aio-libs/aioodbc|aioodbc]] ([[https://en.wikipedia.org/wiki/Open_Database_Connectivity|ODBC]]) ===== Generales ===== * [[https://www.attrs.org/en/stable/|attrs]] Crea boilerplate para las clases (métodos dunder automáticamente) * [[https://github.com/pfalcon/python-imphook|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 * [[https://github.com/etingof/apacheconfig|apacheconfig]] pure-Python implementation of Apache-like configuration file parser into Python built-in types]] * [[https://plumbum.readthedocs.io/en/latest/|plumbum]] Make bash scripts using python * [[https://www.reddit.com/r/Python/comments/lah2qv/introducing_shtk_a_python_module_that_makes_it/|SHTK]] alternative ==== Asíncrono ==== * [[https://github.com/MagicStack/uvloop|uvloop]] asyncio event loop replacement in Cython * [[https://docs.gunicorn.org/en/stable/design.html|gunicorn]] -> Hay links a librerías interesantes * [[https://docs.ray.io/en/master/|ray]] -> Funciona con Redis por defecto, y tiene integraciones con Spark, Dask, MARS, Modin, Horovod, Hugging Face, Scikit-learn, ... ==== Análisis de código ==== * [[https://pypi.org/project/pycodestyle/|pycodestyle]] pep8 Python style guide checker * [[https://flake8.pycqa.org/en/latest/flake8]] Flake8: Your Tool For Style Guide Enforcement * [[https://github.com/tonybaloney/wily|wily]] A command-line application for tracking, reporting on complexity of Python tests and applications. * [[https://mypy-lang.org|mypy]] análisis estático de código * [[https://github.com/google/pytype|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. * [[https://github.com/hackl/pyre|PyRe]] PyRe (Python Reliability) is a python module for structural reliability analysis * [[https://pyre-check.org/docs/pysa-running/|pysa]] identifies potential security defects using taint analysis of input data. * [[https://www.codacy.com/|codacy]] catches more errors and suspect code than pylint, including some of the stylistic warning we ignore -> automate code review * [[https://github.com/Delgan/loguru|loguru]] Better, more enjoyable logging than standard package ===== GUIs ===== * [[https://pypi.org/project/PySimpleGUI/|PySimpleGUI]] * [[https://pypi.org/project/PyVirtualDisplay/|PyVirtualDisplay]] Capturas de pantalla de GUIs * [[https://hoffstadt.github.io/DearPyGui/|DearPyGui]] Interfaz declarativa (muy nueva) ==== Automatización de GUI ==== * [[https://pypi.org/project/pynput/|pynput]] control the moment of external devices like a mouse and keyboard. * playsound, webbrowser para repoducir sonido, abrir webs ==== GUIs de pandas ==== * [[https://pypi.org/project/pandasgui/|pandasgui]] Otra GUI para pandas * [[https://github.com/bluenote10/tabloo|tabloo]] Otra GUI para pandas * [[https://github.com/dmnfarrell/pandastable|pandastable]] YAPD (Yet Another Pandas GUI), esta usa Tkinter * [[https://github.com/quantopian/qgrid|qgrid]] Librería para manipular DataFrames en Jupyter Notebooks * [[https://towardsdatascience.com/introducing-bamboolib-a-gui-for-pandas-4f6c091089e3|Bamboolib]] Otra librería para manipular DataFrames en Jupyter Notebooks * [[https://github.com/man-group/dtale|dtale]] Otra librería para manipular DataFrames en Jupyter Notebooks * [[https://stackoverflow.com/questions/10636024/python-pandas-gui-for-viewing-a-dataframe-or-matrix]] * [[https://github.com/quantopian/qgrid|qgrid]] -> Parece muy buena * [[https://docs.trymito.io/getting-started/installing-mito|mito]] -> No sé hasta qué punto es gratis ===== 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 ===== Tests y comprobación/validación ===== * [[https://faker.readthedocs.io/en/master/|Faker]] * [[https://github.com/FactoryBoy/factory_boy|FactoryBoy]] * [[https://link.medium.com/hkSnKVBh88|pydantic]] * [[https://pandera.readthedocs.io/en/stable/|pandera]] pandera provides a flexible and expressive API for performing data validation on tidy (long-form) and wide data to make data processing pipelines more readable and robust. (check types also) * [[https://coverage.readthedocs.io/en/coverage-5.4/|coverage]] ==== por ordenar ==== * [[https://pypi.org/project/tsfaker/|tsfaker]] Recopila muchas otras librerías * [[https://pypi.org/project/radar/|radar]] ''datetime'' y ''date'' falsos * [[https://github.com/emirozer/fake2db]] Crea una base de datos con datos falsos (soporta muchos motores distintos), por debajo usa Faker === Generar dataframes falsos === * Mismo problema de siempre, crear datos con bucles ''for'' es lento * [[https://github.com/nickc1/pandas_faker|pandas_faker]] * [[https://mimesis.readthedocs.io/index.html|mimesis]] Mucho soporte de locales de otros países * [[https://hypothesis.readthedocs.io/en/latest/|Hypothesis]] genera arrays de numpy y dataframes, buena integración con las APIs de pandas ===== CLIs ===== * [[https://towardsdatascience.com/how-to-write-python-command-line-interfaces-like-a-pro-f782450caf0d|Click]] Librería de CLIs * [[https://github.com/python-cmd2/cmd2]] Librería de CLIs * [[https://xon.sh/|xonsh]] terminal basada en Python * [[https://pypi.org/project/iterfzf/|interfzf]] Para filtrar un iterable usando fzf * [[https://p403n1x87.github.io/the-austin-tui-way-to-resourceful-text-based-user-interfaces.html|Austin TUI]] Interfaz declarativa usando xmls que usa ncurses por debajo * [[https://github.com/tartley/colorama|colorama]] Colores para la terminal * [[https://github.com/willmcgugan/rich|rich]] Rich text for the terminal * [[https://github.com/inducer/pudb|pudb]] Debugger de Python con una interfaz por consola estilo años 80 * [[https://pypi.org/project/asciipy/|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 ==== Barras de progreso ==== * [[https://github.com/tqdm/tqdm|tqdm]] Barras de progreso CLI * [[https://towardsdatascience.com/learning-to-use-progress-bars-in-python-2dc436de81e5|Recopilación]] * [[https://github.com/verigak/progress/|Progress]] * [[https://github.com/rsalmei/alive-progress|Alive]] * Com PySimpleGUI también se pueden hacer barras de progreso ===== Android ===== * [[https://kivy.org/|kivy]] Desarrollo multiplataforma (Android, por ejemplo) * [[https://chaquo.com/chaquopy/|tchaquopy]] Desarrollo Android * [[https://beeware.org/|beeware]] ===== Visualización/BI ===== * [[https://towardsdatascience.com/python-for-data-science-a-guide-to-data-visualization-with-plotly-969a59997d0c|A Guide to Data Visualization with Plotly]] Parece ser que no hay ninguna guía buena de Plotly * [[https://altair-viz.github.io/|Altair]] Declarative Visualization in Python * [[https://datashader.org/|datashader]] Plotear datos muy pesados * [[https://toyplot.readthedocs.io|toyplot]] Visualización de datos avanzada. Grafos * [[https://www.tryton.org/tryton|tryyon]] "business software" * [[https://docs.pyvista.org/|pyvista]] Visualización 3d * [[https://github.com/3b1b/manim|manim]] Librería de 3brown1blue * [[https://github.com/ResidentMario/missingno|missingno]] Plotear datos que faltan y nulos * [[https://pypi.org/project/glitch-this/|glitch-this]] Efecto //glitch// de Hollywood en vídeos * [[https://github.com/dgrtwo/gleam|gleam]] Plots interactivos en Web * [[https://link.medium.com/wz7Baw9EA9|pygal]] Otro plot interactivo estilo plotly * [[https://anitagraser.github.io/movingpandas/|moving pandas]] Librería para visualizar información geográfica usando pandas y geopandas * [[https://pypi.org/project/vectorfields/|vectorfields]] Visualización de campos vectoriales, también los crea ===== Audio/Música ===== * [[https://librosa.org/doc/latest/index.html|librosa]] package for music and audio analysis * [[https://github.com/tyiannak/pyAudioAnalysis|pyAudioAnalyis]] A Python library for audio feature extraction, classification, segmentation and applications ===== Data Science ===== * [[https://github.com/alan-turing-institute/CleverCSV|CleverCSV]] Cargar csv, resistente a fallos del csv * [[https://github.com/jbesomi/texthero|texthero]] Procesamiento sencillo de texto ==== Geocosas ==== * [[https://geopy.readthedocs.io/en/stable/|geopy]] ==== Jupyter notebook ==== * [[https://github.com/connorferster/handcalcs|handcalcs]] Renderizar los cálculos de python como si los hicieses a mano en latex ===== Machine Learning ===== * [[https://www.statsmodels.org/stable/index.html|statsmodel]] * [[http://alkaline-ml.com/pmdarima/|pmdarima]] Estimación de series temporales, interfaz de scikit y statsmodel más simple * [[https://pingouin-stats.org/index.html|pingouing]] simple yet exhaustive stats functions * [[https://link.medium.com/YehsTVSec9|darts]] Interfaz común y simplificada a muchas librerías de series temporales * [[https://github.com/nidhaloff/igel|igel]] Interfaz de scikit-learn con yamls, declarativo ([[https://medium.com/swlh/machine-learning-without-writing-code-984b238dd890|medium]]) * [[https://pypi.org/project/opencv-python/|opencv]] Computer Vision * [[https://pyclustering.github.io/|PyClustering]] * [[https://zachary-a-zazueta.medium.com/shap-library-in-python-80ea1fb64e13|SHAP]] [[https://github.com/slundberg/shap|shap]] is a game theoretic approach to explain the output of any machine learning model. It connects optimal credit allocation with local explanations ===== Ciencia ===== * [[https://github.com/Axelrod-Python/Axelrod|Axelrod]] librería de investigación del dilema del prisionero * [[http://psicode.org/|psi4]] Química Cuántica * [[https://projectq.ch/|ProjectQ]] Computación cuántica * [[https://mc-stan.org/|stan]] Inferencia bayesiana y MCMC * [[https://celerite.readthedocs.io/en/stable/|celerite]] Scalable Gaussian Process (GP) Regression in one dimension * [[https://pypi.org/project/skfdiff/|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 [[http://sfepy.org/doc-devel/index.html|sfepy]]) * [[https://py-pde.readthedocs.io/en/latest/|py-pde]] stochastic PDEs * [[https://maroba.github.io/findiff-docs/|findiff]] Calcula diferencias finitas a orden n * [[https://www.dipy.org/|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) ==== profiling ==== * [[https://github.com/P403n1x87/austin|austin]] Zero instrumentation;Minimal impact;Fast and lightweight;Time and memory profiling;Built-in support for multi-process applications * [[https://github.com/nschloe/perfplot/|perfplot]] Gráficas de tiempo en función de N: O(N), O(N^2), .. * [[https://github.com/emeryberger/scalene|Scalene]] a high-performance, high-precision CPU and memory profiler for Python ===== HTTP y Redes ===== * [[https://mitmproxy.org/|an interactive HTTPS proxy]] * [[https://docs.aiohttp.org/en/stable/|aoihttp]] http asíncrono * [[https://tenacity.readthedocs.io|tenacity]] Librería para reintentar funciones con timeouts flexibles * [[https://www.crummy.com/software/BeautifulSoup|BeautifulSoup]] * [[https://docs.python-requests.org/en/master/|requests]] * [[https://hodovi.ch/blog/advanced-usage-python-requests-timeouts-retries-hooks/|Advanced usage of Python requests - timeouts, retries, hooks]] ==== JSON ==== * [[https://jmespath.org/|JMESPAth]] Extraer datos de json con paths * [[https://pypi.org/project/simplejson/|simplejson]] más rápido que ''json'' pero compatible con él * [[https://github.com/cdgriffith/Box|Box]] Elementos de dict como atributos ''config.timeout, config.server.time.throttling'' recursivo * [[https://pypi.org/project/easydict/|easydict]] Lo mismo que el anterior, menos estable ===== git ===== * [[https://pre-commit.com/|pre-commit]] checks antes de hacer un commit * [[https://nbdime.readthedocs.io|nbdime]] Lib para diff de jupyter notebooks. Integración con git. * [[https://gitpython.readthedocs.io/en/stable/|GitPython]] python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing. * [[https://github.com/ishepard/pydriller|pydriller]] Python framework that helps developers in analyzing Git repositories (higher level than gitpython) ===== Sin clasificar ===== * [[https://github.com/pyinstaller/pyinstaller|pyinstaller]] Correr apps de Python sin instalarlo * [[https://mne.tools/stable/index.html|MNE]] EEG en python * [[https://github.com/IBM/adversarial-robustness-toolbox|IBM: Adversarial Robustness Toolbox]] * [[https://github.com/nschloe/tikzplotlib|tikzplotlib]] convertir de matplotlib a $\LaTeX$ * [[https://github.com/nschloe/betterbib]] Actualizar entradas de BibTeX desde internet * [[https://pythonhosted.org/PyPDF2/|PyPDF2]] Manipulación de archivos pdfs * [[https://pypi.org/project/pdfrw/|pdfrw]] Manipulación de archivos pdfs * [[https://pypi.org/project/homeassistant/|homeassistant]] * [[https://towardsdatascience.com/the-most-underrated-python-packages-e22bf6049b5e|The most underrated Python packages]] (lista) ===== lenguajes naturales y fuzzy match ===== * NLTK, Gensim * Levenshtein, fuzzywuzzy, spacy * [[https://pypi.org/project/textblob/|Text Blob]] TextBlob stands on the giant shoulders of NLTK and pattern, and plays nicely with both. ==== Hugging Face ==== [[https://github.com/huggingface|Esta gente se ha pasado el NLP en modo difícil]] * [[https://github.com/huggingface/transformers]] ===== Las más conocidas ===== * numpy, scipy, pandas, sympy * statsmodels * scikit-learn, tensorflow, keras, Theano * matplotlib, seaborn, plotly, bokeh * scrapy, selenium * Pillow * [[https://docs.python.org/3/library/collections.html|collections]], [[https://docs.python.org/3/library/itertools.html|itertools]], [[https://pypi.org/project/more-itertools/|more-itertools]] * [[https://docs.python.org/3/library/logging.html|logging]] * [[https://docs.python.org/3/library/unittest.html|unittest]], [[https://realpython.com/python-mock-library/|mock]], [[https://docs.pytest.org/en/latest/|pytest]] * [[https://docs.python.org/3/library/calendar.html|calendar]] * [[http://pytz.sourceforge.net/|pytz]] Timezones, [[https://pypi.org/project/python-dateutil/|python-dateutil]]