12 of 20 files were uploaded without provenance metadata. View details.
Atabet-Terminal
A browser-based financial terminal for the Atabet Quant Intelligence product line: professional charting, built-in and custom indicators, paper and live trading, strategy visualization, and an in-terminal AI assistant.
Status: Phases 1–11 complete (skeleton + demo data, licensing gate, real data channels, professional Atabet layout, default indicators, live updates, custom indicator editor, broker Engine, AI chatbox, Quant Intelligence launcher, strategy session). Packaging polish is Phase 12 of the build guide. Product spec: 07-atabet-terminal.md. Real channels flow through atabet-data and broker access through atabet-trader (never a vendor SDK directly).
Features (current)
- Demo mode — deterministic synthetic OHLCV for
DEMO.A/DEMO.B/DEMO.C(~20k one-minute bars each), cached as Parquet - Bars API —
/api/barswith1m/5m/15m/1h/1Dresampling; all times are UTC Unix seconds (Lightweight Charts contract). Search and source chips map a typed name onto the channel-native ticker (700→ yahoo0700.HK, futuHK.00700) and refuse mismatches (DEMO.Aon yahoo) with a suggested alternative. - Live stream —
/ws/streamsubscribe/unsubscribe; demo keeps the Phase 1 simulator; real channels share a process-wide refresh hub that polls atabet-data (intraday 1–5 s, daily 30–60 s, no poll forlocalcsv/tushare) and pushes{type:"bar"|"bar_new"}. Futu/qmt overlay a live snapshot onto cached bars (no kline on each poll). N subscribers coalesce to one upstream request per (source, symbol); the task cancels when the last client unsubscribes - Licensing gate — Quant Intelligence license (
com.atabet.chat) validated at boot viaatabet-token;basic/professionalplan rules mirroratabet-data's entitlements exactly; standalone key entry (/api/license/activate) or seat-sharing handoff from the app; 402 with upgrade message for Pro-only channels; demo mode otherwise - Real data channels — Basic:
yahoo,localcsv,tushare. Pro:futu,ib,qmt. Interactive Brokers is both a broker gateway and an atabet-data chart channel (source='ib') once TWS / IB Gateway is running. Simulate/Live withlive_source='ib'switches the chart to IB history + snapshot polls. Catalog comes fromatabet-data(hiddenadapters are omitted, not deleted). Parquet cache per (source, ticker, granularity): intraday charts store raw 1m bars and resample; daily charts store native 1D bars. Timeframe switches reuse that 1m store (with a small slack so “now” does not force a re-download); only missing head/tail gaps hit the vendor, and a rate-limit after a successful fill still serves the cache. Yahoo 1m is fetched in ≤6-day slices (vendor cap is 7 calendar days per call). Boundlocalcsvcharts default to the last 500 bars actually in the folder (4000 days on 1D) and pickK_1M/K_1Dfrom the timeframe; they do not assume a live tail ending now. Channel errors surface honestly (422 range / 501 unsupported / 502 transport or vendor runtime) - Channel catalog —
GET /api/channelsrenders the operation matrix (operations, params, ticker conventions,requires_pro,intraday_capable) straight fromatabet_data.channel_catalog.json - Health —
/api/healthreports status, mode, licensing state - Professional layout — persistent beta banner (preview status; copy follows locale), TopBar (logo + two-line brand, symbol-search typeahead with recents, channel chips with 🔒 for Pro-only, plan badge, timezone + locale pickers), region grid (watchlist rail | chart + status bar | collapsible AI drawer with persisted width). The status bar (feed time, source, mode, short license expiry, clock in the display timezone) stays under the chart so it does not cross the composer. Visual language of the Atabet training site (forest/gold/cream, serif headings, pill chips)
- Charting — Lightweight Charts v5 candlesticks + volume, crosshair O/H/L/C/V legend, display timezone (TopBar + Settings, persisted; bars stay UTC, axis/legend/clocks format in the chosen zone), timeframe buttons disabled on channels that aren't
intraday_capable(auto-fallback to 1D), one ref-counted WebSocket for live bars - Default indicators — registry-backed SMA, EMA, RSI, MACD, BBANDS, ATR, Stochastic, OBV computed on the backend through
atabet_data.ta(GET /api/indicators,POST /api/indicators/compute, same gated bar path as/api/bars); searchable picker with ParamSpec-driven settings dialogs; overlays render on the price pane, oscillators in their own panes (level lines, histogram coloring, value badges); debounced ≥1 s recompute on live bar closes; active set persisted inlocalStorage - Custom indicators — Monaco drawer (
ƒ Indicator editor) with debounce-lint, Run / Validate / Save / Add to chart; user scripts areMETA+compute(df, **params)and neverexec'd in FastAPI — alwayspython -I worker.pywith CPU/AS limits and a 10 s parent timeout; 9-check validation suite (including optional reference vsatabet_data.ta); saved scripts getcustom:ids;kind: "signal"outputs render as candle markers (illustrative-only stats strip) - Broker — one
atabet-traderEngine on a worker thread; paper mode (BacktestGateway+ kline CSVs from the Phase 3 cache) on any licensed plan; Futu / IB / QMT simulate+live require Pro; IB Connect needs the official TWS API ibapi 10.48 in the Terminal interpreter (atabet_env— not the PyPI 9.81 package, and not onlyatabet_trader_env); OrderTicket is Confirm-only; kill switch cancels open orders and blocks new ones until unlock; LIVE badge + statusbar warning on a live gateway; JSONL audit even for paper. CQG is not exposed. A ticket session and a strategy session are mutually exclusive. - Strategy session — Load / Save / Start / Stop. Load inspects the folder and checks data (backtest) or config + trading-channel connectivity (simulate/live) without starting Engine. After Load, start/end/kwargs are editable; Save writes
atabet_terminal.jsonin the folder. Start runs the Engine (Arm still required for simulate/live). Candle B/S markers are the focused ticker only; several fills on one bar share one B and one S arrow, and hover lists every order. Done opens a performance sheet (CAGR, Sharpe, Sortino, Calmar, win rate, best/worst period, equity curve). Hide Chart gives the sheet the candle region's space; a watchlist click restores candles. Sample:samples/strategy_session/. - AI chatbox — one-turn assistant with token-by-token SSE (Grok / OpenAI-compatible, Gemini, Anthropic), collapsible tool cards, and chart add/remove events. Keys from
ATABET_AI_*(QI handoff) or Settings (password field →~/.atabet/terminal/ai.json). Tools: bars, localcsv file coverage, channels, compute/add/remove indicator. Chart context includes the bound CSV datetime span so a date-range question does not needget_bars. The assistant cannot place orders. Green/red drawer status; Stop cancels the in-flight turn. - Quant Intelligence launcher — Settings → Local runtime in the desktop app starts this backend on loopback and opens it in an Atabet window of that app (not the OS browser). The app license and seat are reused (
seat: "app"). The selected model key is passed in asATABET_AI_*to that local process only. The primary workspace folder is passed asATABET_WORKSPACE_ROOTso the Strategy Load field defaults to it. Closing the Terminal window or Quant Intelligence stops uvicorn. Buildfrontend/(npm run build) so/serves the UI; otherwise/is a splash page. - i18n — English / 简体中文 / 繁體中文 UI, locale persisted in
localStorage
Project Structure
├── atabet_terminal/ # backend package (Cython-protected wheel)
│ ├── main.py # FastAPI app factory + license lifespan + live hub + /api/health + SPA
│ ├── static_ui.py # Serve frontend/dist (or a splash) from the backend port
│ ├── live.py # coalesced per-subscription refresh tasks (Phase 6)
│ ├── config.py # env-driven settings (data dir, licensing server URL, workspace root)
│ ├── strategy/ # folder inspect + Engine session + MonitorSink adapter (Phase 11)
│ ├── licensing/
│ │ ├── gate.py # basic/professional plan rules (mirror of entitlement.py)
│ │ └── seats.py # LicenseManager: validate, heartbeat, activate, logout
│ ├── data/
│ │ ├── demo.py # deterministic synthetic generator
│ │ ├── store.py # Parquet cache + timeframe resampling
│ │ ├── atadata.py # atabet-data adapter: the ONLY path to vendor data
│ │ ├── cache.py # per-(source, ticker, granularity) real-channel cache
│ │ └── tickers.py # user phrase → channel-native ticker (search + /api/bars)
│ ├── ai/ # prompt, provider adapters, tools, one-turn SSE loop
│ ├── broker/ # Engine wall, paper CSV export, live gateway factory, audit JSONL
│ ├── indicators/
│ │ ├── base.py # pydantic ParamSpec/OutputSpec/IndicatorMeta contract
│ │ ├── ta_registry.py # thin adapters over atabet_data.ta (SMA/EMA/RSI/MACD/BBANDS/ATR/Stoch/OBV)
│ │ ├── custom_store.py # saved scripts under <data_dir>/custom/
│ │ ├── sandbox/ # AST checks + isolated worker.py (kept as source in the wheel)
│ │ └── validation/ # 9-check suite vs contract / lookahead / atabet_data.ta
│ └── routers/
│ ├── market.py # /api/symbols, gated /api/bars, /ws/stream (demo sim + live hub)
│ ├── indicators.py # /api/indicators (registry + custom:), /api/indicators/compute
│ ├── custom.py # /api/custom check/run/validate/save
│ ├── license.py # /api/license/status, /api/license/activate
│ ├── channels.py # /api/channels (operation matrix from the catalog)
│ ├── broker.py # /api/broker session, orders, positions, kill
│ ├── strategy.py # /api/strategy load/save/start/stop + /ws/strategy
│ └── chat.py # /api/chat SSE, status, Settings key, stop
├── frontend/ # React 18 + Vite + TypeScript (dev proxy -> :8000)
│ └── src/
│ ├── layout/ # Shell grid + beta banner, TopBar (search/channels/timezone/locale/LIVE/kill/settings), StatusBar
│ ├── chat/ # ChatDrawer + tool cards + SettingsModal
│ ├── broker/ # OrderTicket (Confirm only) + BrokerPanel
│ ├── strategy/ # StrategyPanel (lazy-loaded; Load/Save/Start/Stop + performance)
│ ├── chart/ # ChartRegion + seriesManager (LWC v5 panes + Deal markers + equity)
│ ├── editor/ # Monaco drawer + validation report (lazy-loaded)
│ ├── api/ # typed REST client + ref-counted stream client
│ ├── lib/ # tickerMap + display timezone helpers
│ └── i18n.ts # en / zh-CN / zh-TW strings
├── tests/ # pytest suite (mock licensing + fake channels + TA + live hub + sandbox + paper broker + mock chat + strategy session)
├── samples/ # run_terminal.py + custom_rsi.py + strategy_session/ (DemoStrategy folder + kline)
├── scripts/smoke.sh # end-to-end smoke (CI-safe, no license server)
├── environment.yml # conda env: atabet_terminal_env
├── pyproject.toml # deps, pytest/ruff/mypy/cibuildwheel config
├── setup.py + build_wheel.py # Cython-compiled, source-protected wheels
└── .github/workflows/ # tests on push; wheels + publish on "[build ci]"
Setup
Quant Intelligence users: create the combined stack with
../atabet-quant-intelligence/environment.yml
(atabet_env) instead of a terminal-only env.
conda env create -f environment.yml
conda activate atabet_terminal_env
Run the backend:
# From the repo root (dev runs use the source tree; pip install -e . also works
# but triggers Cython compilation of the package)
ATABET_TERMINAL_DATA_DIR=sample_data python samples/run_terminal.py
# -> http://127.0.0.1:8000 (uvicorn atabet_terminal.main:app)
Run the frontend (in a second terminal):
cd frontend
npm install
npm run dev
# -> http://localhost:5173 (Vite proxies /api and /ws to the backend)
On macOS the Vite dev server binds IPv6 (
http://localhost:5173), while the backend binds127.0.0.1:8000— both defaults work with the bundled proxy config.
Production UI on the backend port (Quant Intelligence launcher):
cd frontend && npm install && npm run build
# uvicorn then serves frontend/dist at GET http://127.0.0.1:<port>/
From the Quant Intelligence desktop app: Settings → Local runtime → Atabet Terminal. Point it at this checkout, use a Python that can import atabet_terminal (the combined atabet_env from Quant Intelligence environment.yml, or atabet_terminal_env), then Open Terminal. That process receives this install's license JWT, device/session seat, the selected model's API key as ATABET_AI_*, and the open workspace as ATABET_WORKSPACE_ROOT. Closing Quant Intelligence stops uvicorn.
Strategy folder
Write a BaseStrategy in Quant Intelligence (or any local folder). The folder must contain atabet_trader_config.py with DATA_PATH["kline"] pointing at the parent of K_1D / K_1M, plus one BaseStrategy subclass (in *strategy*.py, or named by optional terminal_session.py). Daily trees use K_1D/{code}/ohlcv.csv; 1-minute trees use K_1M/{code}/YYYY-MM-DD.csv (TIME_STEP=60000). In the Strategy panel: Load prepares and validates (it does not start); edit start/end/other kwargs and Save to write atabet_terminal.json; Start runs the Engine; Stop ends it. The watchlist becomes that folder's localcsv universe. The chart then uses that tree's last 500 bars (4000 days on 1D) instead of a window ending now, and 1m/1D pick K_1M/K_1D under the same kline root. A running backtest keeps the focused candles and overlays B/S markers for that ticker (hover lists every fill on the bar). Done opens performance stats and the equity curve; Hide Chart expands that sheet, and clicking a watchlist ticker restores the candles. Arm + a Pro license switches the same class onto Futu / IB / QMT (terminal_session.live_source pre-selects the gateway on first Load). Backtest mode shows only the Backtest gateway; Futu / IB / QMT appear when Mode is Simulate or Live. Simulate/Live runs from now until Stop (or an optional Auto-stop clock in the display timezone). Start/End stay visible but greyed (backtest-only) and are not written from that clock. Mode and Gateway stay editable except while Starting/Running — click Stop first. After a run finishes, the strategy broker session is released so the Broker strip unlocks. Changing Mode or Gateway greys Start until you Load again (that re-runs IB/Futu/QMT checks). Stop, then Start in Simulate/Live, reuses that folder; BarEventEngine.run starts Engine so the sqlite persist thread is not launched twice. Strategies are trusted author code — they are not run through the custom-indicator sandbox. See samples/strategy_session/ and Decision #55. Without terminal_session.py, the first BaseStrategy in alphabetically first *strategy*.py is used. A 1-minute example for QMT, Futu, and IB (the clock picks 600519.SH, HK.00700 / US.AAPL, or weekend BTC.USD) lives at ../atabet-demo/demo/single_ticker_intraday_strategy.
Environment variables
| Variable | Purpose |
|---|---|
ATABET_TERMINAL_DATA_DIR |
Directory for the bar cache (default sample_data) |
LICENSING_SERVER_URL |
Licensing server base URL (default http://39.101.65.167:5001). The QI launcher copies its LICENSE_SERVER_URL into this name. |
ATABET_TERMINAL_FRONTEND_DIST |
Override path to the Vite frontend/dist folder (tests) |
ATABET_TERMINAL_LICENSE_FILE |
Where the standalone license key is kept (default ~/.atabet/terminal/license.json) |
ATABET_DATA_TOKEN / ATABET_TRADER_TOKEN |
License JWT handed off by the Quant Intelligence app launcher (selects "app" seat) |
ATABET_DEVICE_NAME / ATABET_CLIENT_ID |
Device identity for the seat (default: hostname) |
ATABET_SESSION_TOKEN |
Handed-off session token — shares the app's seat instead of taking a new one |
ATABET_SESSION_STORE |
atabet-token session store (default ~/.atabet/session.json) |
ATABET_TERMINAL_LIVE_INTRADAY_POLL |
Live hub poll seconds for intraday charts (default 2, range 1–5) |
ATABET_TERMINAL_LIVE_DAILY_POLL |
Live hub poll seconds for daily charts (default 45, range 30–60) |
ATABET_FUTU_HOST / _PORT / _ACCOUNT / _PWD_UNLOCK |
Futu OpenD overlays for GATEWAYS['Futu'] |
ATABET_IB_HOST / _PORT / _CLIENTID / _ACCOUNT |
IB Gateway / TWS overlays |
ATABET_QMT_REDIS_HOST / _PORT / _PASSWORD / _DB / ATABET_QMT_KEY_PREFIX |
Big QMT Redis bridge (names match atabet-trader GATEWAYS['Qmt']; default prefix atabet:qmt) |
ATABET_AI_PROVIDER / _API_KEY / _MODEL / _BASE_URL |
QI AI handoff (wins over Settings). Provider ids match QI: google, openai, anthropic, deepseek, kimi, minimax, qwen, huggingface, grok |
ATABET_WORKSPACE_ROOT |
QI primary workspace folder. The Strategy Load dialog defaults to this path. Custom env cannot keep a leftover value; the launcher overwrites it. |
ATABET_TERMINAL_AI_FILE |
Standalone AI key file (default ~/.atabet/terminal/ai.json) |
Without any token the terminal boots in demo mode: no seat is taken, and
any request for a real channel answers 402 with the subscribe/upgrade
message. Standalone users enter their key via /api/license/activate; the
terminal then owns its own seat and frees it on clean shutdown.
Standalone AI keys are entered in Settings (password field). Env handoff always wins.
Tests
python -m pytest tests/ -q # no network needed
sh scripts/smoke.sh # end-to-end: boot -> /api/bars -> RSI compute -> good_rsi validate -> broker gateways -> chat status -> stop
Real-channel requests in tests run against a FakeChannelClient that
speaks the exact atabet-data frame contract (multi-index FLDS frames),
so the adapter path (request → gate → cache → resample → rows, including
timezone conversion) is verified offline. Licensed live smokes (Yahoo
AAPL daily, Futu HK.00700 with OpenD) are manual steps from the build
guide.
# Manual live smoke (needs a license and a channel, e.g. yahoo + yfinance):
ATABET_DATA_TOKEN=<jwt> ATABET_TERMINAL_DATA_DIR=sample_data \
python samples/run_terminal.py
# then: curl 'http://127.0.0.1:8000/api/bars?symbol=AAPL&source=yahoo&timeframe=1D'
# Paper broker (needs a license + atabet-trader from local source):
# pip install -e ../atabet-trader
# then connect Backtest in the Broker panel, Confirm a size-1 market buy.
# Manual Futu simulate smoke (Pro token, OpenD running, market hours):
# ATABET_DATA_TOKEN=<jwt> ATABET_FUTU_HOST=127.0.0.1 ATABET_FUTU_PORT=11111 \
# python samples/run_terminal.py
# then: Connect Futu / simulate on HK.00700, Confirm size 1 (one board lot =
# 100 shares), Kill a resting far-limit. US names may be unsupported on
# some OpenD simulate accounts.
# Manual Gemini chat smoke (needs ATABET_AI_API_KEY, chart on AAPL/1D):
# ATABET_AI_PROVIDER=google ATABET_AI_API_KEY=<key> \
# python samples/run_terminal.py
# then ask "what's this chart" and "add RSI(14)" — the RSI pane should appear.
Quality gates
ruff check atabet_terminal testsandmypy(strict) on the package- Frontend:
npm run buildrunstsc+ a production build (Lightweight Charts 5 viaaddSeries) - Wheels: build all three platforms with a commit message containing
[build ci](GitHub Actions), or locally viabuild_wheel.py
License
Atabet Terminal is licensed under the Quant Intelligence license (com.atabet.chat), validated against the Atabet licensing server through atabet-token — the same token and seat used by atabet-data and atabet-trader. Launched from the Quant Intelligence app, the terminal shares the app's seat (no second device seat, no logout on exit); launched standalone, it activates with the license key and frees its seat on shutdown. Basic covers yahoo / localcsv / tushare and backtesting; Professional adds futu / ib / qmt data and the live broker gateways.
Metadata
Release files for atabet-terminal 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Incomplete provenance
12 of 20 files were uploaded without provenance metadata.
We recommend further investigation before installing these files. View details.
Built distributions (wheels)
Total release size: 118.9 MB
Release files / atabet_terminal-0.1.0-cp313-cp313-win_amd64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ad5a2a42778638388ef280122ebdeafb8859c1851ce67d9adba05c1403f33c2e
|
|
BLAKE2b-256 checksum How to use checksums |
99205b64d965b4e362d609aa7c56797edbcb2621fe76c5fcfef69acc812e23c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp313-cp313-win32.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp313-cp313-win32.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
b8fe661b48ab2f110dc784a0294741905f20f23934293da1e5eeafe2fd68dc90
|
|
BLAKE2b-256 checksum How to use checksums |
f5a17cbb4c749d5d507f0d51b5988dc5b64fb3278f9b02118f3e1753db9e9cb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 13.0 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e25f5ba3d6d978e5635811ce97c7a860f0a10fbfb8c5d52568d99536a0cd922e
|
|
BLAKE2b-256 checksum How to use checksums |
a84bb2861a05e9ba067c810661d44ebb55be5229b0041c32a49a12d9e7f4e8fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 12.3 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
c1d80e2f9beb2e0b34eb0c7ad481ce62a98a37433d79a9eb4b658c0225237e8d
|
|
BLAKE2b-256 checksum How to use checksums |
4366439557ce5939abc48bc350687978790d712801829eb25148b2b49156bd4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7b525fbedfc47017c2a2c5a9b1280ca71b0bfaff969f9ed9165eb44e1974b8e4
|
|
BLAKE2b-256 checksum How to use checksums |
58c655f8006670e56b5dbd2dc5366066faf6921df9aee4ad5a03999217dee1fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Release files / atabet_terminal-0.1.0-cp312-cp312-win_amd64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
68060b83f9448b304f70d95a9eb063ec5095a3e9f553308be97a752405b6659d
|
|
BLAKE2b-256 checksum How to use checksums |
a7718e5c7f34ba5ab62ee5bb9546c94899d580e6635e524c749282657a39f0c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp312-cp312-win32.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp312-cp312-win32.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
d7d2836c5c0e5e466a77dac2e1c2f106334ba6cbfc163e1282f6f7bdef7dd44a
|
|
BLAKE2b-256 checksum How to use checksums |
397079f137e73097558236375a52a101c4e770b54171f52e3fa8d867e8bb0539
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 13.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b7c63070b8cc905d2036f177ac074038337d47a90d09a03339595c70def5b637
|
|
BLAKE2b-256 checksum How to use checksums |
7bb0150bee3b5738229e1f5212109090a6e16ac914aaf5e1e255ee7ba6592f16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 12.5 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
89550d217ac1a9c856df1fad26e8f581ef9bd981a1280595c51ee79f803a2b65
|
|
BLAKE2b-256 checksum How to use checksums |
82d9f60a32143bfe79f6519135432342c49b0af4809cd24239b307ad16983166
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cd9a9f0dbd10ced80f686ddc2e08a8eef238d4d0f48575b1314eccd8677e663f
|
|
BLAKE2b-256 checksum How to use checksums |
40b6995704831ee63fe54694b32d2c1b05bd5f66d46b41182ab7d69df0e6e99b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Release files / atabet_terminal-0.1.0-cp311-cp311-win_amd64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
35be3a70dd4a1ede9066320424acd382a81874565fadced2555dbec2406f1463
|
|
BLAKE2b-256 checksum How to use checksums |
e32210f7731faed5195b88d9e025ab23e9648ef7eb1419e372cb5bd8c11ce862
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp311-cp311-win32.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp311-cp311-win32.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
bd4bdba8962d375f55084bc17593a47c7300775fd424d0733a50b6c792038f5d
|
|
BLAKE2b-256 checksum How to use checksums |
cef2fa377778fff2e8d31c01aad182c4a8e61bed94a2db6b5d3649434192e445
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.8 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
827b305a0342910634910be0fffd6196a13bcd79b7fb2ba30b8c380a2fdbf5af
|
|
BLAKE2b-256 checksum How to use checksums |
8d13c381e3120f74cc244a5a797d0012a8a355791df9b8c7da676ab80939894d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
b801754b6e2eb7864eb5b9fb88d96df7daa0a4ccbe52cd67d3dd02a795b0efcd
|
|
BLAKE2b-256 checksum How to use checksums |
7bc9788fe84bb4fe5263f7c4544fae7971b5722e987f06f58d22f91609aa10dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9ca331dd3432d8a27cf2ad39d4e6b881001f54bd5d04b41bad17a7ae83f28f00
|
|
BLAKE2b-256 checksum How to use checksums |
9d948be192e674e0928ad97d65937a8ebbe30701229b34855ce2457efd49db4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Release files / atabet_terminal-0.1.0-cp310-cp310-win_amd64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f3cb63af1dea0f51336bc515b9267dc60722c97aaa6c5b3247b9fd9978ba347b
|
|
BLAKE2b-256 checksum How to use checksums |
043e2c258aa141b120f8a156a31177bda2a4608e33707b35f8e1bd5e58931956
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp310-cp310-win32.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp310-cp310-win32.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
26eec148bf1fe08fad29b4158ae8eb1456dbab61095e5d0a9fae6c94b91956db
|
|
BLAKE2b-256 checksum How to use checksums |
441b7dd2ee743f3d1baca65ef06dc9c968f12f9a85246e68057f49893c334b17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / atabet_terminal-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
78bc36b23c909b6a838e2f81aaa4bc64a5ce51f95b8050f0a082464e2ad08469
|
|
BLAKE2b-256 checksum How to use checksums |
6df4043add7c7c389bde9ac7983432f6470a36272b42644746720374165cb72d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
52745369997443aefb9a250a889c4bdd9032029a211a422f163deebaf17fa9a5
|
|
BLAKE2b-256 checksum How to use checksums |
1c988edb99de781e539ef8df6513bf0b8308f2c6d0b31fcca169ca07a8f0d53e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / atabet_terminal-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | atabet_terminal-0.1.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6dc51050d237fedb8923b5eaa61192e45b4901caefeb2f49021222f100752267
|
|
BLAKE2b-256 checksum How to use checksums |
60ed1ba32e95675e5160678acddac9a22031546721a19f7fb767d46c447ba868
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Security for atabet-terminal 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Incomplete provenance
12 of 20 files were uploaded without provenance metadata.
Attestations for atabet_terminal-0.1.0-cp313-cp313-win_amd64.whl
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.