#
Lab contents
The left hand side of a project is the result of the english.md file. The right hand side, "the lab", is the result of the Docker image built during the project creation phase.
The process is advanced and you have a lot of control about how to build your image. But, for now, the only thing you have to know is that ANYTHING that you include in the notebooks/ directory will be included in the final lab image.
With the exception of Solution.ipynb and activity_solutions_files that have a special treatment.
#
Notebooks
The main notebook you have to worry about for now is Project.ipynb, which is the "stripped down/clean" version of your `Solution.ipynb".
#
Adding your datasets
Just include your datasets in the notebooks/ directory. I'd recommend just leaving them in the root of the folder. So, for example, upload the dataset to notebooks/pokemon.csv. The Project.ipynb notebook will then read it as pd.read_csv('pokemon.csv'), as Project.ipynb and pokemon.csv are in the same directory:
notebooks/
Project.ipynb
pokemon.csv
If you want, you can create a subdirectory, but this is not necessary (actually discouraged for simple datasets) for example:
notebooks/
Project.ipynb
data/
pokemon.csv
In this case, the notebook will read the file as: pd.read_csv(data/pokemon.csv).
#
Special libraries and requirements
If your project uses any libraries outside of the regular stack from DataWars projects, you can include them in the requirements.txt
#
Advanced usage
Advanced users only
This is only intended for advanced projects/users. You probably don't need it.
The Dockerfile contains the steps used to build the lab. You can fully customize this if required. The docker-compose.yml can contain special values:
version: "3.9"
services:
jupyter:
build:
args:
NB_BASE_IMAGE: datawars/data-analysis-base-3.11:v3 # The base image
context: notebooks # The directory used to build your lab
image: datawars/lab-28959bbcc-pokemon-data-analysis:v1 # The name of the final image
config: python-jupyter
# The following attributes are optional and reserved
# ONLY for advanced users
command: jupyter nbclassic # The command to run the container
x-ram: "1024" # The memory assigned to the container
x-cpu: 0.5 # The CPU assigned to the container
x-views:
- name: Project # The name of the view for the user
url: "/notebooks/Project.ipynb" # the URL path of the view
port: "8888" # The port it's running on
x-envvars:
- name: MY_SECRET
value: 123