AT Informatics

AfterTime — third-party components

Last updated 10 September 2026 · applies to AT Informatics software and to atinformatics.com

Draft prepared in good faith for review. Not legal advice. Regenerated 2026-09-10 from each installed package's own metadata, reading the modern License-Expression field (PEP 639) as well as the older classifiers.

132 packages. Every one resolved. None unknown.

Correction to the earlier version of this file. It said "55 packages declare no licence in their metadata". That was wrong. The scan only read the legacy classifier field, and modern wheels declare their licence in License-Expression instead. All 55 do declare a licence. The earlier file also missed the two LGPL packages named below.

The findings that matter

1. One strong-copyleft component, and it is optional

pedalboard (Spotify) — GPL-3.0.

GPLv3 is strong copyleft. If AfterTime were distributed with it, the copyleft terms could reach the whole distributed work.

It is not distributed and not required. Measured 2026-09-10:

Rule for the build: never bundle it.

2. Two LGPL components — these are real and must be stated

packagelicencewhat it does
soxrLGPL-2.1-or-laterhigh-quality resampling, pulled in by librosa
lameencLGPL-3.0-or-laterMP3 encoding

LGPL is not GPL. It permits use in a product that is not itself LGPL, on one main condition: the user must be able to replace the LGPL library with their own version.

For AfterTime that condition is met by how Python works — both are installed by pip as separate, replaceable shared libraries, and a user can pip install a different build. Do not statically link either into a frozen binary without taking advice, because that is the case where the obligation bites.

soxr arrives as a dependency of librosa, not by direct choice.

3. Weak copyleft, file-level only

certifi (MPL-2.0), tqdm (MPL-2.0 AND MIT). MPL-2.0 is file-level copyleft: it does not reach the rest of the product, but a modified MPL file must stay MPL and be made available. We have not modified them, so there is nothing to do.

tld is tri-licensed MPL-1.1 OR GPL-2.0-only OR LGPL-2.1-or-later — you elect one. Elect MPL-1.1 or LGPL-2.1; do not elect GPL-2.0.

4. Everything else is permissive

licencepackages
MIT (incl. MIT-CMU, MIT variants)55
BSD (2- and 3-clause)39
Apache-2.019
Python Software Foundation1
Unlicense (public domain)1

These need attribution only. This file is that attribution.


Full inventory

packagedeclared licence
aiohappyeyeballsPython Software Foundation License
aiohttpApache-2.0 AND MIT
aiosignalApache Software License
annotated-docMIT
annotated-typesMIT
antlr4-python3-runtimeBSD
anyioMIT
APSchedulerMIT License
attrsMIT
audioreadMIT
babelBSD License
beautifulsoup4MIT License
bottleMIT License
certifiMozilla Public License 2.0 (MPL 2.0)
cffiMIT-0
charset-normalizerMIT
clickBSD-3-Clause
cloudpickleBSD License
courlanApache-2.0
cryptographyApache-2.0 OR BSD-3-Clause
dateparserBSD-3-Clause
decoratorBSD-2-Clause
demucsMIT License
distroApache Software License
dora_searchMIT License
einopsMIT License
fastapiMIT
fastuuidBSD License
filelockMIT
frozenlistApache-2.0
fsspecBSD-3-Clause
greenletMIT AND PSF-2.0
h11MIT License
hf-xetApache-2.0
htmldateApache-2.0
httpcoreBSD-3-Clause
httpxBSD License
httpx-sseMIT
huggingface_hubApache Software License
idnaBSD-3-Clause
importlib_metadataApache-2.0
Jinja2BSD License
jiterMIT
joblibBSD-3-Clause
jsonschemaMIT
jsonschema-specificationsMIT
juliusMIT License
jusTextBSD License
lameencLGPL-3.0-or-later
lazy-loaderBSD-3-Clause
librosaISC License (ISCL)
litellmMIT
llvmliteBSD-2-Clause AND Apache-2.0 WITH LLVM-exception
lxmlBSD-3-Clause
lxml_html_cleanBSD-3-Clause
MarkupSafeBSD-3-Clause
mcpMIT License
mpmathBSD License
msgpackApache-2.0
mssMIT License
multidictApache License 2.0
narwhalsMIT
networkxBSD-3-Clause
numbaBSD License
numpyBSD License
omegaconfBSD License
openaiApache Software License
openunmixMIT License
packagingApache-2.0 OR BSD-2-Clause
pedalboardGNU General Public License v3 (GPLv3)
pillowMIT-CMU
pipMIT
platformdirsMIT
playwrightApache-2.0
poochBSD-3-Clause
propcacheApache Software License
proxy_toolsMIT License
psutilBSD-3-Clause
pycparserBSD-3-Clause
pydanticMIT
pydantic-settingsMIT
pydantic_coreMIT
pyeeMIT License
PyJWTMIT
pyloudnormMIT
pyobjc-coreMIT
pyobjc-framework-CocoaMIT
pyobjc-framework-QuartzMIT
pyobjc-framework-SecurityMIT
pyobjc-framework-UniformTypeIdentifiersMIT
pyobjc-framework-WebKitMIT
pypdfBSD-3-Clause
python-dateutilBSD License
python-dotenvBSD-3-Clause
python-multipartApache-2.0
pytzMIT License
pywebviewBSD License
PyYAMLMIT License
referencingMIT
regexApache-2.0 AND CNRI-Python
requestsApache Software License
retryingApache-2.0
rpds-pyMIT
scikit-learnBSD-3-Clause
scipyBSD License
setuptoolsMIT
sixMIT License
sniffioMIT License
soundfileBSD License
soupsieveMIT
soxrLGPL-2.1-or-later
sse-starletteBSD-3-Clause
starletteBSD-3-Clause
submititMIT License
sympyBSD License
threadpoolctlBSD License
tiktokenMIT License Copyright (c) 2022 OpenAI, S
tldMPL-1.1 OR GPL-2.0-only OR LGPL-2.1-or-later
tokenizersApache Software License
torchBSD-3-Clause
torchaudioBSD License
tqdmMPL-2.0 AND MIT
trafilaturaApache-2.0
treetableUnlicense license
typing-inspectionMIT
typing_extensionsPSF-2.0
tzlocalMIT
urllib3MIT
uvicornBSD-3-Clause
websocketsBSD-3-Clause
yarlApache-2.0
zippMIT

Not Python