0%

Chapter 12

Where to Go Next

What You Can Build Now

The finished lending tool can begin with source files and an empty path, build the exact database it expects, import catalog rows without duplicating an exact retry, and keep lending activity after the program exits. Together, those pieces make a complete small application.

The evidence is spread across files you can name:

  • catalog_setup.py creates version 2, moves an exact version 1 forward, and refuses a version whose tables and columns disagree.

  • catalog_import.py validates every CSV row before writing, then makes the whole import one outcome.

  • catalog_db.py keeps connections, queries, and commands behind focused .

  • lending.py gives those functions a with stable output and honest error statuses.

  • tests/test_catalog.py and tests/test_lending.py exercise fresh temporary databases and one complete workflow.

The SQL underneath those files is also yours now. You can design a small relational schema with keys and constraints, join related rows, summarize groups, bind values safely, and make several changes commit or roll back together. You can test what the database does without requiring one exact spelling of the query.

There is one boundary worth keeping clear. Run on Python Land used a temporary directory. That made the demonstration repeatable and kept generated database files out of your saved source. It did not turn the site workspace into permanent database storage.

Local persistence begins when the downloaded program receives a path on your computer, such as "catalog data.db". One command can create that file, exit, and a later command can reopen the same file. The download instructions show that workflow. Because it happens on your computer, the site cannot inspect the resulting database file.

You now have a source project that knows how to create its own state. That distinction matters: the Python, SQL, CSV, tests, and README are authored source; a particular .db file is generated state. Keeping those roles separate makes the project easier to understand, test, rebuild, and share.