Catalog PyPI
PACKAGE EXPLORERView in registry

adipro

PyPI

One import for the whole toolbox - every package I use, lazily loaded.

importslazy-loadingmeta-packagetoolkit
Versions collected1
Direct dependencies54From release 0.1.0
Last observed20 Oct, 19:32 UTC

README

Version 0.1.0 documentation

adipro

One import for the whole toolbox.

import adipro as ap

df   = ap.pd.read_csv("rows.csv")
soup = ap.BeautifulSoup(ap.requests.get(url).text, "lxml")
doc  = ap.Document()
ap.load_dotenv()

No import block at the top of every script, and one pip install on a new machine instead of forty.

Install

pip install adipro

That installs everything — all 50 packages, every group below. On a machine where you only need a slice of it:

pip install adipro[scraping]   # bs4, lxml, cloudscraper, curl_cffi, ddgs, ...
pip install adipro[llm]        # openai, groq, anthropic, langgraph, tiktoken, ...
pip install adipro[docs]       # python-docx, python-pptx, openpyxl, pdf
pip install adipro[browser]    # playwright, selenium
pip install adipro[media]      # gTTS, edge-tts, pillow, lameenc
pip install adipro[data]       # gspread, pyodbc
pip install adipro[cloud]      # boto3
pip install adipro[app]        # fastapi, streamlit, gradio, pydantic, ...

Development install:

git clone <this repo> && cd adipro
pip install -e ".[dev]"
pytest

Nothing loads until you touch it

import adipro takes about 4 ms whether you have 5 packages installed or 50. Aliases resolve on first attribute access and are cached afterwards, so ap.pd imports pandas once and every later ap.pd is a dict lookup.

Two things follow from that:

  • A missing package only breaks the line that needs it. If playwright failed to build on this machine, ap.pd still works fine.

  • You get told how to fix it, not a bare traceback:

    MissingPackage: adipro.sync_playwright needs 'playwright', which is not installed.
    
        pip install adipro[browser]   # the whole browser group
        pip install playwright        # just this one
    

Finding things

ap.search("pdf")     # {'PdfReader': 'pypdf:PdfReader', 'open_pdf': ..., ...}
ap.doctor()          # what is installed, what is missing, how to fix it
ap.loaded()          # aliases resolved so far this process
dir(ap)              # every alias — tab-completion works in Jupyter

From the shell:

python -m adipro          # health report
python -m adipro pdf      # search aliases

Import styles

StyleLazy?Use it?
import adipro as ap then ap.pdyespreferred
from adipro import pd, requestsyesfine
from adipro import *nostdlib + core only, on purpose

from adipro import * is deliberately limited to the stdlib and core aliases — the ones a base install guarantees are present. Star-importing the heavy groups would have to load all of them eagerly and would die if any single one were missing, so __all__ leaves them out. Reach for them through ap..

What is in it

GroupPackages
stdlibPath, json, re, os, dt, defaultdict, dataclass, ThreadPoolExecutor, sha256, urljoin, … — no install needed
corepandas, numpy, requests, httpx, python-dotenv, rich, tqdm
scrapingbeautifulsoup4, lxml, cloudscraper, curl_cffi, ddgs, feedparser, readability-lxml, ftfy, dateparser, rapidfuzz, pycryptodome
browserplaywright, selenium
llmopenai, groq, anthropic, google-generativeai, langgraph, langchain-google-genai, langchain-groq, langchain-text-splitters, tiktoken
docspython-docx, python-pptx, openpyxl, pdfplumber, pypdf
datagspread, pyodbc
mediagTTS, edge-tts, pillow, lameenc
cloudboto3
appfastapi, uvicorn, pydantic, streamlit, gradio, schedule, aiohttp, nest-asyncio

Run python -m adipro for the live list with install status.

Adding a package

Two edits, in this order:

  1. Add it to the right group in src/adipro/_registry.py — its import root and pip name under packages, and the aliases you want under aliases.
  2. Add the pip name to that extra and to dependencies and all in pyproject.toml.

tests/test_adipro.py::test_registry_matches_pyproject fails if you do one and forget the other, and test_every_installed_alias_resolves fails if an alias points at a module path or attribute that does not exist.

Notes

  • Versions are loose on purpose. Only a few floors are pinned. Hard pins here would fight the pins in projects you install alongside this, so installing adipro will not drag your other venvs sideways.
  • google-generativeai is end-of-life upstream. It still works and is still in the llm group because it is what is installed, but Google has stopped updating it in favour of google-genai (from google import genai). Worth migrating when convenient; the alias is ap.genai.
  • Two aliases are renamed to avoid a clash. readability-lxml's Document is ap.ReadabilityDoc, because python-docx already owns ap.Document.

Licence

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.025 Aug 202654

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:32 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:d52ce0a3e26ce7934465700da96356fb6dcfdeb7f20a784cf9fdd78f9d181dd3