Skip to main content

Improve reading flow by arranging functions and other code blocks.

Project description

funkshway 🕺

Improve reading flow by arranging functions and other code blocks.

The formatter applies the following prioritized ordering:

  • Idiomatic structure (dunders and other conventions)
  • Topological order (callers before the helpers they use)
  • Lexical order (for a stable, idempotent layout)

Usage

# Format specific files in-place
funkshway path/to/file.py [other/files.py ...]

# Recursive mode from current folder
funkshway .

# Log errors but exit with zero (relaxed mode for CI)
funkshway --relaxed .

# Check if files need formatting (exit 1 if so, no changes written)
funkshway --check .

# Show a unified diff of what would change (no changes written)
funkshway --diff .

Unresolvable code blocks will trigger an error, and that file will be skipped.

Vertical space and other formatting

  • Vertical spacing: funkshway enforces minimal PEP 8 vertical spacing (e.g., two blank lines before top-level functions and classes) to ensure reordered code is immediately compatible with standard linters.
  • Out of scope: All other formatting (indentation, line length, internal whitespace, etc.) is ignored. It is recommended to run ruff format or black after funkshway.

Development environment

Initialize with just bootstrap (includes linters). Test with just test.

See just --list for additional SDLC commands.

Publishing

To publish a release:

glab auth login
just publish

The new release is automatically delivered to PyPI via Trusted Publishing.

You may update the release notes in GitLab after the fact.

Sharing and contributions

funkshway 🕺
https://lofidevops.neocities.org
Copyright 2026 David Seaward and contributors
SPDX-License-Identifier: Apache-2.0

Shared under Apache-2.0. We adhere to the Contributor Covenant 3.0, and certify origin per DCO 1.1 with a signed-off-by line. Contributions under the same terms are welcome.

Submit security and conduct issues as private tickets. Sign commits with git commit --signoff. For a software bill of materials run reuse spdx. For more details see CONDUCT, COPYING and CONTRIBUTING.

Colophon

Feng shui is the practice of arranging objects to improve flow.

Built (almost) exclusively with AGENTS.md, specification.toml and PLAN.md for agent guidance.

Project details


Download files

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

Source Distribution

funkshway-2026.7.1.tar.gz (87.8 kB view details)

Uploaded Source

Built Distribution

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

funkshway-2026.7.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file funkshway-2026.7.1.tar.gz.

File metadata

  • Download URL: funkshway-2026.7.1.tar.gz
  • Upload date:
  • Size: 87.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for funkshway-2026.7.1.tar.gz
Algorithm Hash digest
SHA256 3ebde3fee9ba175351204789aa18ba0024dd476026aafa9835705a3d731e6bc7
MD5 ed02048951938e31243bfc4954b4f7f4
BLAKE2b-256 2ffa8e9d30c9391b8a1dc84eee2a2d12f0a93d5564384ba51bad21274677f984

See more details on using hashes here.

File details

Details for the file funkshway-2026.7.1-py3-none-any.whl.

File metadata

  • Download URL: funkshway-2026.7.1-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for funkshway-2026.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff2fc238420b87b07c0aade88f6251972564f89b66d915b2d22701a24a7bfba1
MD5 929306278fba823ce916c549aafab1da
BLAKE2b-256 eccb82889170297f8325125d535dfb572be7436cff8f8843409b02aaf6d9fc9a

See more details on using hashes here.

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