Skip to main content

A Python toolsets library

Project description

toolsets

A Python toolsets library.

Installation

This package requires Python 3.10 or higher. Install with pip:

pip install toolsets

or with uv:

uv pip install toolsets

Usage

import toolsets

# Your code here

Development

To set up the package for development, clone this repository and run:

pip install -e ".[dev]"

Testing

Run tests with:

pytest

Code Formatting

Format code using Ruff:

ruff check --fix --select I && ruff format

CI/CD Setup

This repository uses GitHub Actions for automated testing and publishing. To enable publishing to PyPI, you need to configure two things:

1. GitHub Personal Access Token (GRADIO_PAT)

The changesets/action requires a GitHub Personal Access Token to create pull requests and push commits.

Steps to create and add the token:

  1. Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Click "Generate new token (classic)"
  3. Name it (e.g., "toolsets-ci")
  4. Set expiration (or no expiration)
  5. Select the following scopes:
    • repo (full control of private repositories) — or at minimum:
      • repo:status
      • repo_deployment
      • public_repo (if the repo is public)
      • workflow (if you need to trigger workflows)
  6. Click "Generate token"
  7. Copy the token immediately (you won't see it again)
  8. Go to your repository → Settings → Secrets and variables → Actions
  9. Click "New repository secret"
  10. Name: GRADIO_PAT
  11. Value: paste the token you created
  12. Click "Add secret"

If you're using the publish environment, you may also need to add the secret in:

  • Settings → Environments → publish → Add secret

2. PyPI Trusted Publishing (OIDC)

The workflow uses OpenID Connect (OIDC) to authenticate with PyPI, which requires configuring a trusted publisher.

Steps to add trusted publisher on PyPI:

  1. Go to PyPI and log in
  2. Navigate to Account settings → Manage API tokens → Add a new pending publisher
  3. Select GitHub as the provider
  4. Enter the following information:
    • Owner: Your GitHub organization or username (e.g., your-org or your-username)
    • Repository name: Your repository name (e.g., toolsets)
    • Workflow filename: .github/workflows/publish.yml
    • Environment name: publish (since the workflow uses environment: publish)
  5. Click "Add"

After adding the trusted publisher, the next workflow run should successfully authenticate with PyPI and publish your package.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

toolsets-0.1.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file toolsets-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: toolsets-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for toolsets-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8002e866a1e273e5013b684c0c7f255e0a16fa29291d32b57a0cab73ca36b18
MD5 f8ca9296d51b9020670243e5133e82a4
BLAKE2b-256 e029baea4df3ffa3b1de53d297ca8667760a857f2de74c72d0853b065b742e17

See more details on using hashes here.

Provenance

The following attestation bundles were made for toolsets-0.1.0-py3-none-any.whl:

Publisher: publish.yml on abidlabs/toolsets

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page