Skip to content
Table of contents

marketwatch: A client around a virtual trading game

marketwatch is an archived Python client for MarketWatch’s virtual trading game. It wraps login, game queries and simulated order operations. These are game interactions, not connections to a brokerage account.

Library Archived
  • Updated
  • 20
  • Python · 77.68%
  • Apache-2.0
Documented components
2Explore modules
Source documents
3Read the instructions
Repository languagesPython 77.68%4

Shares calculated from GitHub Linguist bytes.

Python77.68%
77.68%103,813 bytes
Jupyter Notebook13.22%
13.22%17,674 bytes
Jinja7.65%
7.65%10,228 bytes
Dockerfile1.45%
1.45%1,934 bytes
Language%Bytes
Python77.68%103,813
Jupyter Notebook13.22%17,674
Jinja7.65%10,228
Dockerfile1.45%1,934

1. Overview

1.1. Why it exists

Robust Python client library scraping and wrapping the MarketWatch virtual stock market game API.

1.2. Best fit

Automated trading bot development and portfolio backtesting.

2. Use cases

Python client for the MarketWatch stock game: quotes, trades, portfolios and watchlists (login now blocked by captcha).

Use-case diagram for marketwatch: Get a stock price; Buy, sell, short or cover; Read portfolio and orders; Manage watchlists; Serve HTML game cards; Trade on an EMA crossovermarketwatchGet a stock priceBuy, sell, short or coverRead portfolio and ordersManage watchlistsServe HTML game cardsTrade on an EMA crossoverGame player«system»MarketWatch website«system»GitHub Actions
People on the left, external systems on the right; each oval is a use case backed by the files cited below.
Get a stock price
Game playerMarketWatch website

MarketWatch.get_price in marketwatch/__init__.py fetches the stock page with httpx and reads the intraday price with BeautifulSoup; the README marks it as working with skip_login=True.

Buy, sell, short or cover
Game playerMarketWatch website

buy, sell, short and cover build an order payload and submit it to a game; MarketWatchGame in marketwatch/game.py binds the same calls to one game ID.

Read portfolio and orders
Game playerMarketWatch website

get_portfolio, get_positions, get_pending_orders, get_leaderboard and get_game_settings scrape game pages; cancel_order and cancel_all_orders remove pending orders.

Manage watchlists
Game playerMarketWatch website

create_watchlist, add_to_watchlist, get_watchlists, delete_watchlist and delete_watchlist_item call the MarketWatch watchlist endpoints.

Serve HTML game cards
Game playerMarketWatch website

api/app.py is a FastAPI app with HTTP Basic auth that renders Jinja2 templates for /game, /portfolio, /leaderboard, /card and /watchlist.

Trade on an EMA crossover
GitHub ActionsMarketWatch website

.github/workflows/ema-workflow.yml runs on a five-minute cron, pulls prices with yfinance, computes 20 and 80 period EMAs and buys or sells 100 shares on a crossover.

2.1. Scenario: Check a quote, then trade in a game

  1. Install the package with pip install marketwatch.
  2. Create MarketWatch(email, password, skip_login=True) and call get_price("AAPL").
  3. For game calls, log in with real credentials; the README warns this step currently fails on a captcha.
  4. Once logged in, call get_games(), then buy(game_id, "AAPL", 100).
  5. Check the result with get_positions(game_id) and get_pending_orders(game_id).

Files readREADME.mdmarketwatch/__init__.pymarketwatch/game.pyapi/app.pyapi/setup.md.github/workflows/ema-workflow.ymlnotebook/ema.ipynb

3. Try it

Address published in the repository README. The page opens in a sandboxed frame, only when you ask.

Open in a new tab https://antoinebou12.github.io/marketwatch/

4. Getting started

These commands come from the repository documentation. They were not run during this review.

README.md · Installation
pip install marketwatch
README.md · Installation
pip install git+https://github.com/antoinebou12/marketwatch.git
README.md · Installation
git clone https://github.com/antoinebou12/marketwatch.git

5. Repository references

Excerpts from the repository’s guides, in their original language. Links open the inspected source revision.

Configuration and usage

5.1. Usage

README.md

Here are some examples of how you can use the MarketWatch class:
Read the full instructions ↗

5.2. Usage (getting-started.md)

docs/getting-started.md

First, you need to create an account on MarketWatch and then create a virtual game. Once you have created a game, you will be able to get the game’s id from its URL, which will be used throughout the library.
Read the full instructions ↗
Development and contributions

5.3. Contributing

README.md

Contributions are welcome. Please open an issue or submit a pull request.
Read the full instructions ↗
Source documentation

3 documents read from 3 candidates.

6. Features and components 2

Session and game scope
MarketWatchGame subclasses MarketWatch and stores a game identifier. Methods such as buy and sell delegate to the base client with that identifier. Ledger and portfolio operations are scoped by the game.
Remote dependency
The client depends on the website’s authentication and response structure. A Python method still existing does not mean its remote counterpart remains accessible. Authentication failure can block otherwise unchanged game methods.

7. Architecture

Expand a component to follow its connections, or explore the full diagram.

System components Context
Mermaid Interactive diagram

System overview of the components and connections verified in the repository.

Static architecture view for marketwatch
Static preview. The interactive diagram replaces it after Mermaid loads.
flowchart LR
  n0["Python caller"]
  n1["MarketWatchGame wrapper"]
  n2["Base HTTP client"]
  n3["Virtual game service"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
  n3 --> n2
Text version of the diagram
  • Python caller → MarketWatchGame wrapper
  • MarketWatchGame wrapper → Base HTTP client
  • Base HTTP client → Virtual game service
  • Virtual game service → Base HTTP client
Follow one path through the code

Follow buy from the game wrapper into the base client. The wrapper adds the game ID; session handling and the actual HTTP request happen below it.

8. Technical dossier

Built from the source at commit 9a8bd76 (32 files). Each item comes from a pattern match in the code, so open the linked file before relying on it.

8.1. Layers and modules

Folders are sorted into layers by name, from the user interface down to data access. Because the sorting uses names only, the diagram says nothing about calls between layers.

Mermaid Layered view
flowchart TB
  subgraph L_interface["Entry points and API"]
    direction TB
    interface_0["api<br/>2 files"]
  end
  subgraph L_domain["Domain and business rules"]
    direction TB
    domain_0["marketwatch<br/>1 file"]
  end
  subgraph L_core["Core source"]
    direction TB
    core_0["marketwatch<br/>4 files"]
    core_1["(root)<br/>1 file"]
  end
  subgraph L_tests["Tests"]
    direction TB
    tests_0["test<br/>7 files"]
  end
  subgraph L_hosting["Build, CI and hosting"]
    direction TB
    hosting_0[".github<br/>10 files"]
    hosting_1[".devcontainer<br/>2 files"]
    hosting_2["api<br/>2 files"]
    hosting_3["(root)<br/>1 file"]
  end
  L_interface ~~~ L_domain
  L_domain ~~~ L_core
  L_core ~~~ L_tests
  L_core ~~~ L_hosting
Modules and their main layer
ModuleLayerFilesTypesExtensions
marketwatchCore source513.py
apiEntry points and API20.py
(root)Core source10.py

8.2. C4 model

From system context to code declarations. Each level reflects the available source evidence.

UML 1 · System context
1 · System context

The widest C4 view: who uses the project and which outside systems and data stores it relies on. Rendered with uml-mcp.

PlantUML source
@startuml
!include <C4/C4_Context>
LAYOUT_LEFT_RIGHT()
Person(P_http, "HTTP client")
System(SYS, "marketwatch", "marketwatch is an archived Python client for MarketWatch’s virtual tr…")
Rel(P_http, SYS, "Uses")
@enduml
UML 2 · Containers
2 · Containers

One level closer: the parts that run separately inside the project, their main language and how calls flow between them. Rendered with uml-mcp.

PlantUML source
@startuml
!include <C4/C4_Container>
LAYOUT_LEFT_RIGHT()
Person(P_http, "HTTP client")
System_Boundary(SYS, "marketwatch") {
  Container(APP, "marketwatch", "Python")
}
Rel(P_http, APP, "Uses")
@enduml
UML 3 · Components and layers
3 · Components and layers

Modules grouped by source-layer classification. Boundaries show organization, not runtime isolation or call relationships. Rendered with uml-mcp.

PlantUML source
@startuml
!include <C4/C4_Component>
LAYOUT_TOP_DOWN()
System_Boundary(SYS, "marketwatch") {
Boundary(L0, "Entry points and API", "layer") {
Component(M0_0, "api", "Python", "2 files")
}
Boundary(L1, "Domain and business rules", "layer") {
Component(M1_0, "marketwatch", "Python", "1 files")
}
Boundary(L2, "Core source", "layer") {
Component(M2_0, "marketwatch", "Python", "4 files")
Component(M2_1, "(root)", "Python", "1 files")
}
Boundary(L3, "Tests", "layer") {
Component(M3_0, "test", "Python", "7 files")
}
Boundary(L4, "Build, CI and hosting", "layer") {
Component(M4_0, ".github", ".yml, .md, .svg", "10 files")
Component(M4_1, ".devcontainer", "Dockerfile, .json", "2 files")
Component(M4_2, "api", "Dockerfile, .yml", "2 files")
Component(M4_3, "(root)", ".json", "1 files")
}
}
@enduml
UML 4 · Code
4 · Code

Selected declarations, fields and methods grouped by source file. No inheritance or call edges are inferred. Rendered with uml-mcp.

PlantUML source
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
top to bottom direction
hide empty members
package "marketwatch" {
package "marketwatch/__init__.py" as F0 {
class "MarketWatch" as T0_0 {
  create_session()
  generate_csrf_token()
  get_client_id()
  get_user_id()
  get_ledger_id()
  get_user_agent()
}
}
package "marketwatch/game.py" as F1 {
class "MarketWatchGame" as T1_0 {
  create_game()
  buy()
  sell()
  short()
  cover()
  reset_game()
}
}
package "marketwatch/schemas.py" as F2 {
class "Game" as T2_0 {
  __str__()
  __repr__()
}
class "OrderType" as T2_1 {
}
class "PriceType" as T2_2 {
}
class "Term" as T2_3 {
}
}
package "marketwatch/watchlist.py" as F3 {
class "MarketWatchWatchlist" as T3_0 {
  delete_item()
  add_item()
  create()
  delete()
  watchlists()
  watchlist()
}
}
}
@enduml

8.3. Public interface

Outside code can use everything listed here. The project also declares 13 public types.

UML Use cases
Use cases

Each actor is a kind of caller, linked to what it can ask the project to do. Rendered with uml-mcp.

PlantUML source
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
left to right direction
actor "HTTP client" as A_http
rectangle "marketwatch" {
  usecase "GET /" as U0
  usecase "GET /game" as U1
  usecase "GET /portfolio" as U2
  usecase "GET /leaderboard" as U3
  usecase "GET /card" as U4
  usecase "GET /watchlist" as U5
}
A_http --> U0
A_http --> U1
A_http --> U2
A_http --> U3
A_http --> U4
A_http --> U5
@enduml

HTTP routes 6

Mermaid Route map by prefix
flowchart LR
  api(["HTTP API"])
  g0["/"]
  api --> g0
  g0r0["GET /"]
  g0 --> g0r0
  g1["/card"]
  api --> g1
  g1r0["GET /card/'game_id'"]
  g1 --> g1r0
  g2["/game"]
  api --> g2
  g2r0["GET /game/'game_id'"]
  g2 --> g2r0
  g3["/leaderboard"]
  api --> g3
  g3r0["GET /leaderboard/'game_id'"]
  g3 --> g3r0
  g4["/portfolio"]
  api --> g4
  g4r0["GET /portfolio/'game_id'"]
  g4 --> g4r0
  g5["/watchlist"]
  api --> g5
  g5r0["GET /watchlist/'watchlist_id'"]
  g5 --> g5r0
MethodPathSource
GET/api/app.py:38
GET/game/{game_id}api/app.py:42
GET/portfolio/{game_id}api/app.py:47
GET/leaderboard/{game_id}api/app.py:52
GET/card/{game_id}api/app.py:57
GET/watchlist/{watchlist_id}api/app.py:62

Entry points

8.4. Private interface

These names are internal by the language’s conventions: a leading underscore, private, static or pub(crate).

underscore helper
8

8.5. Entities and data model 3

Mermaid Entity class diagram
classDiagram
  direction LR
  class E0["OrderType"] {
    <<enumeration>>
  }
  class E1["PriceType"] {
    <<enumeration>>
  }
  class E2["Term"] {
    <<enumeration>>
  }

An arrow links a field to the entity its type names.

EntityKindFirst fields
OrderTypeEnumeration
PriceTypeEnumeration
TermEnumeration

8.6. Business logic

Once UI code and the services and entities above are set aside, these classes have the most methods.

MarketWatch Core source, 50 methods
create_session, generate_csrf_token, get_client_id, get_user_id, get_ledger_id, get_user_agent
MarketWatchGame Core source, 17 methods
create_game, buy, sell, short, cover, reset_game
Game Domain and business rules, 2 methods
__str__, __repr__
MarketWatchWatchlist Core source, 7 methods
delete_item, add_item, create, delete, watchlists, watchlist

8.7. External integrations

HTTP clients

httpx

Hosts named in the code

8.8. Stack and dependencies

Python pyproject.toml 3 runtime

Open the manifest

Python requirements.txt 3 runtime

Open the manifest

Python api/requirements.txt 6 runtime

Open the manifest

External dependencies

7 declared packages (7 runtime, 0 development) in pyproject.toml, requirements.txt, api/requirements.txt.

Package table 7
External dependencies
PackageVersionScopePurposeRegistry
beautifulsoup4^4.12.0runtimeScraping and parsingpypi.org
rich^13.3.2runtimeCommand linepypi.org
fastapi—runtimeWeb frameworkpypi.org
uvicorn—runtimeApplication serverpypi.org
marketwatch—runtimeMarketWatch's APIpypi.org
jinja2—runtimeTemplatespypi.org
pydantic—runtimeData validationpypi.org

8.9. CI/CD pipeline

5 GitHub Actions workflows, 5 jobs. Each box is a job; double-bordered boxes publish or deploy, and arrows follow needs.

Mermaid Pipeline flow
flowchart LR
  subgraph wf0["Check URLs"]
    direction LR
    wf0_build["build<br/>ubuntu-latest"]
  end
  subgraph wf1["Trade on EMA Crossover"]
    direction LR
    wf1_trade["trade<br/>ubuntu-latest"]
  end
  subgraph wf2["Python Docs"]
    direction LR
    wf2_build[["build<br/>ubuntu-latest"]]
  end
  subgraph wf3["Publish Python to PyPI"]
    direction LR
    wf3_deploy[["deploy<br/>ubuntu-latest"]]
  end
  subgraph wf4["Python Test and Build"]
    direction LR
    wf4_test["test<br/>matrix"]
  end
  t0(["push"])
  t1(["schedule"])
  t2(["push · pull request"])
  t3(["release · manual run"])
  t4(["push · pull request · manual run"])
  d0[("GitHub Pages")]
  d1[("PyPI")]
  t0 --> wf0_build
  t1 --> wf1_trade
  t2 --> wf2_build
  wf2_build -.-> d0
  t3 --> wf3_deploy
  wf3_deploy -.-> d1
  t4 --> wf4_test
Workflows, triggers, jobs and targets
WorkflowTriggersJobsPublishes to
Check URLs
.github/workflows/URL_Checker.yml
push
  • build ubuntu-latest
    actions/checkout · urls-checker
—
Trade on EMA Crossover
.github/workflows/ema-workflow.yml
schedule
  • trade ubuntu-latest
    Checkout code · Set up Python · Install dependencies · Run trading script
—
Python Docs
.github/workflows/python-docs.yml
push, pull request
  • build ubuntu-latest
    actions/checkout · Check for changes in /docs · Set up Python 3.8 · Install dependencies · Test with doctest · Build mkdocs
GitHub Pages
Publish Python to PyPI
.github/workflows/python-publish.yml
release, manual run
  • deploy ubuntu-latest
    actions/checkout · Set up Python · Install dependencies · Build package · Publish package
PyPI
Python Test and Build
.github/workflows/python-test.yml
push, pull request, manual run
  • test matrix
    actions/checkout · Set up Python · Install dependencies · Export Environment Variables · Test with pytest · Build package
—

8.10. Deployment

Mermaid Deployment diagram
flowchart LR
  repo[("GitHub repository")]
  ci[["GitHub Actions<br/>5 workflows"]]
  image["Docker image<br/>FROM python:3.13.0a6-slim"]
  pub_GitHub_Pages[("GitHub Pages")]
  pub_PyPI[("PyPI")]
  host_Vercel("Vercel<br/>vercel.json")
  host_MkDocs_site("Documentation site (MkDocs)<br/>mkdocs.yml")
  repo -->|"push or pull request"| ci
  ci -->|"docker build"| image
  ci -->|"publishes"| pub_GitHub_Pages
  ci -->|"publishes"| pub_PyPI
  ci -.->|"configured"| host_Vercel
  ci -.->|"configured"| host_MkDocs_site
UML Deployment
Deployment

The outer node is where the code runs. Each base image points to what it builds, solid arrows lead to databases and dashed ones to outside services. Rendered with uml-mcp.

PlantUML source
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
node "Docker image" as H {
  artifact "marketwatch" as APP
}
artifact "FROM mcr.microsoft.com/vscode/devconta…" as IMG0
IMG0 ..> APP : builds
artifact "FROM python:3.13.0a6-slim" as IMG1
IMG1 ..> APP : builds
artifact "FROM python:3.13.0a6-slim" as IMG2
IMG2 ..> APP : builds
cloud "Vercel" as X0
X0 ..> APP
@enduml

Where it runs

Published to

Docker base images

mcr.microsoft.com/vscode/devcontainers/python: python:3.13.0a6-slim python:3.13.0a6-slim

8.11. Security

Controls

Supply chain

Environment variables 2

The page lists names without their values and underlines the ones that look like secrets.

MARKETWATCH_PASSWORD MARKETWATCH_USERNAME

8.12. Testing

Test files
7
Source files
8
Test cases, about
52
Unit tests
7

Code coverage

No measured coverage report in the analyzed sources.

Where the tests are

test 7

Continuous integration

UML CI pipeline
CI pipeline

The main GitHub Actions workflow runs these steps. Jobs that run in parallel sit side by side. Rendered with uml-mcp.

PlantUML source
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
title Python Docs
start
partition "build" {
  :actions/checkout;
  :Check for changes in /docs;
  :Set up Python 3.8;
  :Install dependencies;
  :Test with doctest;
  :Build mkdocs;
  :Archive site;
  :Configure Git;
}
stop
@enduml

Nothing found for: Services, Database, Monitoring.

9. Types and file structure

13 declared types, with 12 in the base-relationship overview.

Type diagram
classDiagram
direction TB
class t342c57589891["MarketWatch"] {
  __init__()
  create_session()
  generate_csrf_token()
  get_client_id()
}
class te2660179edef["MarketWatchGame"] {
  __init__()
  create_game()
  buy()
  sell()
}
class tc6adc7beb6df["MarketWatchException"] {
  __init__()
}
class tc9e9c1f2c012["MarketWatchGameException"] {
  __init__()
}
class td4c12f6259f0["Term"] {
}
class tb06037cc6ec7["PriceType"] {
}
class t3d7a45c40645["OrderType"] {
}
class t7d8a40bf3f38["GameSettings"] {
  __init__()
  __str__()
}
class tc2b2eb26d380["Order"] {
  __init__()
  __str__()
  __repr__()
}
class t45b8a20e40d7["Position"] {
  __init__()
  __str__()
  __repr__()
}
class t0783a857f7ca["Player"] {
  __init__()
  __str__()
  __repr__()
}
class t6ddf82fcb3c7["Game"] {
  __init__()
  __str__()
  __repr__()
}
class b4a739b8cc727["MarketWatch"] {
  <<unresolved_base>>
}
b4a739b8cc727 <|-- te2660179edef
class b218d46208022["Exception"] {
  <<unresolved_base>>
}
b218d46208022 <|-- tc6adc7beb6df
b218d46208022 <|-- tc9e9c1f2c012
class bcdccbbebe0a2["Enum"] {
  <<unresolved_base>>
}
bcdccbbebe0a2 <|-- td4c12f6259f0
bcdccbbebe0a2 <|-- tb06037cc6ec7
bcdccbbebe0a2 <|-- t3d7a45c40645

Unresolved bases remain labelled; full signatures are not reconstructed.

10. Reference

20 / 20 eligible files read (65 in the tree); 0 oversized, 0 failed reads and 0 syntax diagnostics.

What the scan covers

Known dependency/build folders, credential files and binaries are excluded. The scan covers READMEs, recognized manifests and parser-supported source files.

Linguist statistics cover the whole repository and may include other languages.

12. Files to read 3

13. Glossary

Repository

The versioned source files, configuration, and history of a project.

README

The repository’s entry document, usually covering its purpose and initial setup.

Dependency

A library, tool, or service that another component needs to build or run.

HTTP

A request-and-response protocol used by browsers and web services. A method, path, headers, and optional body describe a request.

Session

State kept across related requests, often to track a signed-in user. Authentication and permission checks remain separate concerns.

Container

An isolated process environment created from an image. Persistent data needs storage outside the container’s disposable filesystem.

Published port

A host port mapped to a service’s container port. Publishing a port can expose that service beyond its container network.

14. References

  1. antoinebou12. (2026, November 5). marketwatch. [Software repository] github.com.
  2. antoinebou12. (2026, November 5). marketwatch: README. [Repository documentation] github.com.
  3. antoinebou12. (2026, November 5). marketwatch/game.py. [Source file] github.com.
  4. antoinebou12. (2026, November 5). marketwatch/__init__.py. [Source file] github.com.
  5. antoinebou12. (2026, November 5). README.md. [Source file] github.com.
  6. Boucher, A. (2026, April 13). Python library for MarketWatch virtual trading. [Project article] antoineboucher.info.
  7. Boucher, A. (2021, September 6). MarketWatch API Python library. [Project article] antoineboucher.info.
  8. Boucher, A. (2026, October 23). marketwatch: A client around a virtual trading game. [Project article] antoineboucher.info.

Sources without a publication date show the date they were last checked, November 5, 2026. File links retain the inspected revision where available.