I’ve noticed that a lot of my projects follow the same basic architecture and I often like to write some simple tools for myself where it takes much longer to set up the project than it does to write the domain specific code. So I’ve been looking into scaffolding tools to help with this. I’m aware of Cookiecutter and Copier. Are there others? How do they compare? What are your preferences and why?

  • logging_strict@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    11 days ago

    Package DevOPs is a skill. Half assing it will not:

    • impress a published package author’s peers

    • encourage confidence in the authors perseverance to maintain the package

    • encourage confidence in the author’s willingness to politely respond to Issues and PRs

    • package will have issues that never get resolved cuz the author packaging skillset is woefully lacking including but not limited to: Makefile, pre-commit, tox, gha, doctest, documentation, test coverage, multiple platform support, manylinux support, setup for collaboration, and static typing.

    So suggest redirecting efforts towards studying how to improve packaging rather than how to avoid packaging.

    A suggestion on things to improve documentation:

    move the doctest out of in-code documentation and into test suite! So the doctest are proof and contribute to coverage

    python -m coverage run --parallel --data-file=.coverage-combine-tests -m pytest --doctest-glob="*.rst" --showlocals $(verbose_text) tests/safe tests/a tests/b
    

    This is straight from a Makefile. Where the file extension for doctest was changed to .rst. Can see have A B testing setup to compare two packages.

    Example how to include doctest into Sphinx document

    .. literalinclude:: ../tests/a/test_presentation.rst
        :language: pycon
        :name: unique-id
        :caption: illustrative-description
    
      • logging_strict@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        9 days ago

        On this board, and hope everyone else is, to learn and share. Try to contribute, not just state my opinion.

        Didn’t feel this thread offered anything substantial to learn, so threw out some gem that others might find useful in their projects.