Skip to main content

No project description provided

Project description

adiumentum

Running this project requires copier, git, uv, and flake. Install nix and install the others by running nix-shell -p uv python3 git. You can now copy the project and run the toy CLI provided out-of-the-box:

copier copy --trust \
    /home/isaac/repos/dev-envs/python-uv-nix /tmp/hello-world \
    --data-file /home/isaac/repos/dev-envs/python-uv-nix/example-data-uv.yml

nix run /tmp/hello-world

You can also enter a development environment with all dependencies installed:

nix develop

Once in this dev shell, you have a number of development utils you can try out (via just):

✔just
✔just format
✔just check
✔just fix
✔just typecheck
✔just lint
✔just deal
✔just vulture
✔just pydeps-full
✔just pydeps
✔just pydeps-simple
✔just view-deps
✔just snakefood
✔just deply
✔just bandit
✔just bandit-html
✔just bandit-view
✔just pyflame
✔just flamegraph
✔just perf-flamegraph
✔just check-structure
✔just check-imports
✔just smoke
✔just unit
✔just test
✔just test-cov
✔just docs
✔just scalene
✔just view-cov
✔just view-docs
✔just view-flamegraphs
✔just sbom

lefthook validate
lefthook run all

Roadmap

  1. ✔ Sync package lists in uv.nix.jinja and README.md

  2. ✔ Parametrize each package for copier and update copier.yml

  3. ✔ Clean up copier.yml and example-data.yml

  4. ✔ Get impure environment working -> draw from buildFHSUserEnv approach in consilium and other projects

  5. ✔ Write working version of scripts and test them on datethyme

  6. ✔ create reference project (revised from datethyme)

  7. ✔ use copier to re-create it (make a datethyme answers file)

  8. ✔ find good CLI tools for diffing an entire folder

  9. ✔ iteratively modify template until copier perfectly re-creates the reference project

  10. ✔ package mdformat with mdformat-mkdocs (via nix)

  11. ✔ remove super-linter, but look over it and steal any good ideas

  12. ✔ add commitizen and commitmsgfmt

  13. ✔ Modify nix to support any python version via nixpkgs-python and tox

  14. ✔ Read through jinja2-ansible-filters

  15. Go through https://www.youtube.com/results?search_query=nix+and+python and any relevant NixCon talks

  16. ✔ restructure nix code

  17. ✔ add poetry support (selectable via copier)

  18. re-make datethyme package using template, iteratively polishing the template

  19. add copier switch to include a CLI or not

Later

Note: first get working the way it is for datathyme.

  1. conventional-changelog

  2. Package all docs packages via nix, since they run independently of the other Python packages.

  3. Do the same for testing dependencies, if possible.

  4. Add different types of git hooks

  • Client-Side Hooks

    • Pre-commit hooks run before a commit is created and are ideal for code quality checks. They're perfect for running linters, formatters, static analysis tools, or tests to catch issues before they enter the repository. If the hook exits with a non-zero status, the commit is aborted

    • Prepare-commit-msg hooks execute after the default commit message is created but before the editor opens. These work well for automatically adding ticket numbers, branch names, or standardized formatting to commit messages based on branch patterns or other context

    • Commit-msg hooks run after you've written your commit message and are excellent for enforcing commit message conventions. They can validate that messages follow specific formats, contain required information like issue references, or meet length requirements

    • Post-commit hooks trigger after a commit completes successfully. Since they can't affect the commit outcome, they're useful for notifications, triggering builds, updating external systems, or logging commit information

    • Pre-rebase hooks run before rebasing and help prevent rebasing published commits or branches that shouldn't be rebased. They're particularly valuable for protecting main branches or enforcing workflow policies

    • Post-checkout and post-merge hooks execute after checking out branches or completing merges. These are ideal for environment setup tasks like updating dependencies, clearing caches, generating files, or syncing external resources that depend on the current branch state

  • Server-Side Hooks

    • Pre-receive hooks run before any references are updated when receiving a push. They're powerful for enforcing repository-wide policies like preventing force pushes to protected branches, validating that all commits meet standards, or checking permissions before allowing updates

    • Update hooks execute once per branch being updated and are perfect for branch-specific policies. They can enforce different rules for different branches, validate individual commits, or check that updates follow branching strategies

    • Post-receive hooks run after all references are successfully updated and are ideal for deployment triggers, sending notifications, updating issue trackers, or kicking off CI/CD pipelines. Since they run after the push succeeds, they're commonly used for automation that depends on the repository being in its new state

Dependency Classes

Dependency Classes

TODO: look at jj-fzf, lazyjj, gg-jj look at luxuries

To Look at for Later

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

adiumentum-0.1.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

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

adiumentum-0.1.1-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file adiumentum-0.1.1.tar.gz.

File metadata

  • Download URL: adiumentum-0.1.1.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for adiumentum-0.1.1.tar.gz
Algorithm Hash digest
SHA256 bd9bc196f9cb60f556d693e342cfd59c22f70dc4f1304d5304585aa96302a602
MD5 fc3e56326a3e42a54a7988235fc00696
BLAKE2b-256 b17b9b5f343671a2ad0d69c144c203adfae982419b66c87bdf58ac2e23202396

See more details on using hashes here.

Provenance

The following attestation bundles were made for adiumentum-0.1.1.tar.gz:

Publisher: python-publish.yml on yelircaasi/adiumentum

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

File details

Details for the file adiumentum-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: adiumentum-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for adiumentum-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb9ff36e9fa3ea8ea2c17ae871e7bf3fa5a76e9e8a353a5d232477f755650c40
MD5 9a341d1aac76b9a60b43160d90c7e6ee
BLAKE2b-256 9e3e2abe382a8f1098359ee5066abff1f757afaefaf3c3db6e69540ca046684a

See more details on using hashes here.

Provenance

The following attestation bundles were made for adiumentum-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on yelircaasi/adiumentum

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