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

    43,838 Listeners

    Software Engineering Daily by Software Engineering Daily

    Software Engineering Daily

    623 Listeners

    Heavy Networking by Packet Pushers

    Heavy Networking

    327 Listeners

    Talk Python To Me by Michael Kennedy

    Talk Python To Me

    585 Listeners

    Python Bytes by Michael Kennedy and Brian Okken

    Python Bytes

    215 Listeners

    Darknet Diaries by Jack Rhysider

    Darknet Diaries

    8,035 Listeners

    The Real Python Podcast by Real Python

    The Real Python Podcast

    142 Listeners

    Unexplainable by Vox

    Unexplainable

    2,308 Listeners

    Network Automation Nerds by Packet Pushers

    Network Automation Nerds

    3 Listeners