GDS IDEA Python Package Index

An internal PyPI index for GDS IDEA packages. View on GitHub

Last rebuilt: 2026-03-23 00:06 UTC

Latest versions

Package Latest All versions Repo
cognito-auth 0.3.1 wheel 0.3.1, 0.3.0, 0.2.5, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.5, 0.1.4, 0.1.3, 0.1.2, 0.1.1 gds-idea-app-auth
gds-idea-app-kit 0.3.2 wheel 0.3.2, 0.3.1, 0.3.0, 0.2.7, 0.2.6, 0.2.5, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.0 gds-idea-app-kit
gds-idea-box2-0 0.2.0 source only 0.2.0, 0.1.8, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2, 0.1.1, 0.1.0 gds-idea-box2.0
gds-idea-cdk-constructs 0.3.0 wheel 0.3.0, 0.2.0 gds-idea-cdk-constructs-new
gds-idea-gh-kit 0.3.2 wheel 0.3.2, 0.3.1, 0.3.0, 0.2.6 gds-idea-gh-kit
llmbo-bedrock 0.2.3 wheel 0.2.3, 0.2.2, 0.2.1, 0.2.0 gds-idea-llmbo

Using packages in a project

When adding an internal package you must tell uv which index to use, so it records the source in your pyproject.toml. Without this, the package will still install (uv finds it on the index automatically) but pyproject.toml won't show where it came from — making your project harder to understand and less reproducible.

You have two options:

Option 1 — Always pass the full index URL

uv add cognito-auth --index gds-idea=https://co-cddo.github.io/gds-idea-pypi/simple/
uv add llmbo-bedrock --index gds-idea=https://co-cddo.github.io/gds-idea-pypi/simple/

uv writes a source pin for each package and won't duplicate the index entry if it's already in your pyproject.toml. Note: --index gds-idea (without the URL) looks like it works but treats gds-idea as a file path — don't use it.

After adding, your pyproject.toml will contain:

[tool.uv.sources]
cognito-auth = { index = "gds-idea" }   # pinned to this index; PyPI not used for this package
llmbo-bedrock = { index = "gds-idea" }

[[tool.uv.index]]
name = "gds-idea"
url = "https://co-cddo.github.io/gds-idea-pypi/simple/"

Option 2 — Use idea-tools add (recommended)

If you have set up the idea-tools shell function (see below), it bakes in the URL for you — same result, less typing:

idea-tools add cognito-auth
idea-tools add llmbo-bedrock
idea-tools add "gds-idea-app-kit>=0.2.0"

Version constraints

idea-tools add "gds-idea-app-kit>=0.2.0"   # any version from 0.2.0 onwards
idea-tools add "gds-idea-app-kit~=0.2.0"   # compatible: >=0.2.0, <0.3.0
idea-tools add "gds-idea-app-kit>=0.2,<1"  # explicit range

Using CLI tools

Some packages provide a CLI and can be installed as global tools with uv tool install — equivalent to pipx.

You must always pass the full index URL when installing tools. Unlike project installs, uv tool install has no pyproject.toml in scope, so uv cannot read a stored index definition. This is a uv design constraint — use the idea-tools shell function below to avoid typing the URL every time.

One-time shell setup

If you use zsh (the default shell on a Mac), run this command to add idea-tools automatically — no file editing needed. Then open a new terminal window and it will be available:

cat >> ~/.zshrc << 'EOF'
idea-tools() {
  local cmd="$1"; shift
  case "$cmd" in
    add)     uv add "$@" --index "gds-idea=https://co-cddo.github.io/gds-idea-pypi/simple/" ;;
    install) uv tool install "$@" --index "gds-idea=https://co-cddo.github.io/gds-idea-pypi/simple/" ;;
    upgrade) [ $# -eq 0 ] && uv tool upgrade --all || uv tool upgrade "$@" ;;
    *)       echo "Usage:"
             echo "  idea-tools add <package>       add internal package to current project"
             echo "  idea-tools install <package>   install internal tool globally"
             echo "  idea-tools upgrade [package]   upgrade tool (omit package to upgrade all)" ;;
  esac
}
EOF

If you use bash, or prefer to edit your config manually, add the function block above (without the cat/EOF wrapper) to your ~/.zshrc or ~/.bashrc.

Adding packages and installing tools

# Add an internal package to the current project
idea-tools add cognito-auth
idea-tools add "gds-idea-app-kit>=0.2.7"

# Install an internal tool globally
idea-tools install gds-idea-app-kit
idea-tools install "gds-idea-app-kit>=0.2.7"

# Upgrade a specific tool
idea-tools upgrade gds-idea-app-kit

# Upgrade all installed idea tools at once
idea-tools upgrade

Migrating from git URL installs

If you previously installed a tool from a git URL, reinstall from the index to switch the tracked source. After this, idea-tools upgrade will resolve from the index correctly going forward.

# Previously installed via git URL:
uv tool install "gds-idea-app-kit @ git+https://github.com/co-cddo/gds-idea-app-kit"

# Switch to the index:
idea-tools install gds-idea-app-kit --reinstall

Maintaining this index or adding a new package? See the project README on GitHub.