Skip to content
Chromatic Coherence

Hue knows · Priority two

Python, indexed by what an object is before what it does.

The data model first — the dunder protocol an object is actually defined by — then the type system, the collections, and the standard library that stands beside them. You declare where you are standing, and the rows around you come back.

What a Hue Model is

The model holds the domain; your org holds its own light on it.

A Hue Model is the world model of a domain — its rows, the positions they stand in, the two sides they fall on, and, where the domain has one, the source of truth that settles a row. There are no people in it. It is a model of the world, not of anyone in it, and it has no cutoff — only a last-visited state. You stand somewhere in it and it answers by position.

Stand somewhere, and the rows come to you

You copy a position out of the chamber's own map and send it back. No words are matched and nothing is guessed on your behalf — the door reads structure the index already carries, and answers with the neighbourhood you are standing in.

The rows below arrived with no search term at all, by position alone.

DATA-MODEL / DUNDER METHODS

placed
9
observed
0
unobserved
9
reached
9

the rest of its floor

__new__

Create new instance prior to __init__

feature

__init__

Initialise instance attributes

feature

__del__

Finalise object before reclamation

feature

__repr__

Unambiguous developer representation

feature

__str__

Readable user-facing string

feature

__eq__

Equality predicate

feature

__ne__

Inequality predicate

feature

__lt__

Less-than ordering

feature

__le__

Less-or-equal ordering

feature

ASYNCIO & CONCURRENT.FUTURES

placed
9
observed
0
unobserved
9
reached
9

the rest of its floor

asyncio run

Execute coroutine on a new event loop and return result

function

asyncio gather

Run coroutines concurrently and collect results

function

asyncio wait

Wait for futures with timeout and return condition

function

asyncio create_task

Schedule coroutine and return a task handle

function

asyncio sleep

Suspend current coroutine for given seconds

function

asyncio wait_for

Wait with timeout cancelling if exceeded

function

asyncio Queue

Asynchronous producer-consumer queue

function

asyncio Event

Coroutine-safe flag for notifying waiters

function

asyncio Lock

Mutual exclusion primitive across coroutines

function

A position the chamber does not hold comes back as a question

NOT A REAL ROOMUNKNOWN_CATEGORY

28 rooms

The door never substitutes a nearby name. An unknown position returns the map instead, so the next thing you send is a place that exists rather than a guess that looked close.

Every row arrives already knowing its state

The reading is not a ranked list. Each row comes back in one of three states, and the state is the useful part — it tells you whether to build on the row, to go and look, or to honour it before you do either.

Zero point

The contract the work must implement. It is present whether or not anyone went looking for it, and it constrains the answer rather than decorating it.

Observed

Rows your org has already returned on. A lit row carries your org's reading as well as the chamber's.

Unobserved

Reached, and your organisation has not returned on it yet. This is the invitation, and it is where a return is worth the most — every one of them is a row you can light.

Two sides, and an ask lands on one of them

Python is indexed as the language and as the library that ships with it. A question about how an object behaves and a question about which module to reach for are different questions, and they are answered from different rooms.

The language

  • DATA-MODEL / DUNDER METHODS50
  • LANGUAGE INVARIANTS & RUNTIME48
  • TYPE SYSTEM (TYPE HINTS)39
  • KEYWORDS38
  • COLLECTIONS & ABCs32
  • OPERATORS32
  • CORE STDLIB NAMESPACES30
  • BUILT-IN TYPES29
  • PROTOCOLS & ABSTRACT BASE CLASSES29
  • EXPRESSIONS & COMPREHENSIONS27
  • STATEMENTS26
  • MODULES, IMPORTS & PACKAGES20

The standard library

THIRD-PARTY-CONVENTION RUNTIME

36

COLLECTIONS

24

ITERTOOLS & FUNCTOOLS

20

ASYNCIO & CONCURRENT.FUTURES

17

I/O & FILE OPERATIONS

16

MATH, RANDOM, STATISTICS, FRACTIONS, DECIMAL

14

OS, SYS, PATHLIB, SHUTIL

14

STRING OPERATIONS & FORMATTING

14

EXCEPTIONS, CONTEXTLIB, WARNINGS

13

DATA CLASSES & STRUCTURAL

12

DATETIME, TIME, CALENDAR, ZONEINFO

10

JSON, PICKLE, CSV, SQLITE3

10

TESTING

9

LOGGING, ARGPARSE, CONFIGPARSER

8

RE (REGEX)

8

TYPING-RUNTIME

6

A dunder method is not a library call. It is the contract the language itself will reach for, whether or not your code ever names it — which is why the two sides are indexed apart.

Seat levels

A Hue Models seat opens every Hue Model — the domains here today, and the ones that follow them.

Seat

One person working in an org

£19/seat/mo

5,000 units per seat, per month

Ask for a place
Most orgs start here

Org

An org putting real work through it

£29/seat/mo

25,000 units per seat, per month

Ask for a place

Team

An org that leans on it daily

£79/seat/mo

100,000 units per seat, per month

Ask for a place

House

Arranged, not bought

Custom

100,000+ units, a named contact

Talk to us

Per seat, per month, pooled across the org — so one busy week never costs a quiet colleague their work. Lighting a row — returning what you observed — is the Observer's Index.

Before you compare two models

A hue identifies a row within a model, and never across them.

Bands are allocated per model and some overlap, so one hue can appear in more than one model. Each model is its own coordinate system, so two rows sharing a hue in different models are not related.