Install & Compatibility
Where this runs
tested against v25.4.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 1.094s · 51.5MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 6.6s · import 1.004s · 53MB
54MB installed
● package 54MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Tapis
✓ from tapipy.tapis import Tapis
✗ import tapipy
Tapis client class is in tapipy.tapis module, not top-level.
Initialize a Tapis client and authenticate. Use environment variables for credentials.
from tapipy.tapis import Tapis
import os
t = Tapis(
base_url=os.environ.get('TAPIS_BASE_URL', 'https://example.tapis.io'),
username=os.environ.get('TAPIS_USERNAME', ''),
password=os.environ.get('TAPIS_PASSWORD', '')
)
t.get_tokens()
print(t.tapis_available())
Errors
Common errors & fixes
AttributeError: module 'tapipy' has no attribute 'Tapis'
Incorrect import; `Tapis` class is not at the top level.
fixUse `from tapipy.tapis import Tapis`
TypeError: __init__() got multiple values for argument 'base_url'
Passing `tenant_id` as first positional argument and also `base_url` as keyword in older code.
fixRemove the positional argument and only use `base_url=...`
Upgrade
Version history
25.4.0latest on PyPI · released Dec 3, 2025
Audit
Dependencies
requestsrequiredHTTP client for API calls
pyjwtrequiredJWT token handling