Test & Code

81: TDD with flit


Listen Later

In the last episode, we talked about going from script to supported package.

I worked on a project called subark and did the packaging with flit.

Today's episode is a continuation where we add new features to a supported package and how to develop and test a flit based package.

Covered:

  • viewing stages of a project with git tags
  • flit support for editable installs
  • flit description entry in pyproject.toml to put README on pypi.
  • development dependencies in pyproject.toml
  • editor layout for optimal TDD-ing
  • test case grouping
  • modifications to traditional TDD that helps me develop faster.
  • code and command snippets from episode:

    For git checkout of versions:

    $ git clone https://github.com/okken/submark.git
    $ cd submark
    $ python3 -m venv venv --prompt submark
    $ source ./bin/activate
    (submark) $ git checkout v0.1
    ... etc ...
    (submark) $ git checkout v0.7

    To grab the latest again:

    (submark) $ git checkout master

    pyproject.toml change for README to show up on pypi:

    [tool.flit.metadata]
    ...
    description-file = "README.md"
    ...

    Adding dev dependencies to pyproject.toml:

    [tool.flit.metadata.requires-extra]
    test = ["pytest", "pytest-cov", "tox"]

    Installing in editable mode (in top level repo directory). works in mac, linux, windows:

    (submark) $ flit install --pth-file

    or for mac/linux:

    (submark) $ flit install -s

    Links:

    • submark · PyPI
    • submark on GitHub
    • The pyproject.toml config file — Flit 1.3 documentation
    • Flit install — Flit 1.3 documentation
    • Test & Code 80: From Python script to Maintainable Package
    ...more
    View all episodesView all episodes
    Download on the App Store

    Test & CodeBy Brian Okken

    • 4.7
    • 4.7
    • 4.7
    • 4.7
    • 4.7

    4.7

    70 ratings


    More shows like Test & Code

    View all
    Radiolab by WNYC Studios

    Radiolab

    44,013 Listeners

    Software Engineering Daily by Software Engineering Daily

    Software Engineering Daily

    625 Listeners

    Heavy Networking by Packet Pushers

    Heavy Networking

    328 Listeners

    Talk Python To Me by Michael Kennedy

    Talk Python To Me

    588 Listeners

    Python Bytes by Michael Kennedy and Brian Okken

    Python Bytes

    214 Listeners

    Darknet Diaries by Jack Rhysider

    Darknet Diaries

    8,001 Listeners

    The Real Python Podcast by Real Python

    The Real Python Podcast

    141 Listeners

    Unexplainable by Vox

    Unexplainable

    2,278 Listeners

    Network Automation Nerds by Packet Pushers

    Network Automation Nerds

    3 Listeners