This lesson is still being designed and assembled (Pre-Alpha version)

Packaging and Publishing with Python

Data Carpentry workshops provide the fundamentals to learning to use scientific computing to facilitate research. In this lesson, we look at some next steps and examples of best practices for organizing a project. We will integrate the data organization ideas from the Spreadsheets lesson with coding in Python and explore how to share code within a lab and as published material.

Prerequisites

Data Carpentry Spreadsheets Lesson and a Software or Data Carpentry Python are the minimum requirements. This material will be easier to follow some time after the workshop and you’ve spent some time incorporating those practices into your own work.

This lesson also assumes comfort with the unix command line, but the command line operations could be done through a GUI instead and plain language explanations that accompany command line sections may be enough for a user comfortable creating files and folders and moving them around to do so without use of the command line.

Schedule

Setup Download files required for the lesson
00:00 1. Introduction to Data Python Data Analysis Projects What are common features of a project?
What do I need to do to get my project shared?
What will this lesson cover
00:00 2. Setting up a Project How do I set up a project in practice?
What organization will help support the goals of my project?
What additional infrastructure will support opening my project
00:00 3. Packaging Python Projects How do I use my own functions?
How can I make my functions most usable for my collaborators?
00:00 4. Managing Python Environments with Conda How can I make sure the whole team (or lab) gets the same results?
How can I simplify setup and dependencies for people to use my code or reproduce my results?
00:00 5. Managing Python Environments with VirtualEnv How can I make sure the whole team (or lab) gets the same results?
How can I simplify setup and dependencies for people to use my code or reproduce my results?
00:00 6. Getting started with Documentation How do I tell people how to use my code and advertise my project
00:00 7. Documentation in Code How should I document my code in the files?
00:00 8. Building Documentation with Sphinx How can I make my documentation more accessible
00:00 9. Example Gallery with Sphinx Gallery How can I include a number of use cases?
00:00 10. Publishing code and data
00:00 11. Testing and Continuous Integration How can I make sure code doesn’t get broken by changes?
How can I automate that checking?
00:00 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.