Awesome
Kaggle API
Official API for https://www.kaggle.com, accessible using a command line tool implemented in Python 3.
Installation
Ensure you have Python 3 and the package manager pip
installed.
Run the following command to access the Kaggle API using the command line:
pip install kaggle
Development
Kaggle Internal
Obviously, this depends on Kaggle services. When you're extending the API and modifying
or adding to those services, you should be working in your Kaggle mid-tier development
environment. You'll run Kaggle locally, in the container, and test the Python code by
running it in the container so it can connect to your local testing environment.
However, do not try to create a release from within the container. The code formatter
(yapf3
) changes much more than intended.
Also, run the following command to get autogen.sh
installed:
rm -rf /tmp/autogen && mkdir -p /tmp/autogen && unzip -qo /tmp/autogen.zip -d /tmp/autogen &&
mv /tmp/autogen/autogen-*/* /tmp/autogen && rm -rf /tmp/autogen/autogen-* &&
sudo chmod a+rx /tmp/autogen/autogen.sh
Prerequisites
We use hatch to manage this project.
Follow these instructions to install it.
If you are working in a managed environment, you may want to use pipx
. If it isn't already installed
try sudo apt install pipx
. Then you should be able to proceed with pipx install hatch
.
Dependencies
hatch run install-deps
Compile
hatch run compile
The compiled files are generated in the kaggle/
directory from the src/
directory.
All the changes must be done in the src/
directory.
Run
You can also run the code in python directly:
hatch run python
import kaggle
from kaggle.api.kaggle_api_extended import KaggleApi
api = KaggleApi()
api.authenticate()
api.model_list_cli()
Next Page Token = [...]
[...]
Or in a single command:
hatch run python -c "import kaggle; from kaggle.api.kaggle_api_extended import KaggleApi; api = KaggleApi(); api.authenticate(); api.model_list_cli()"
Example
Let's change the model_list_cli
method in the source file:
❯ git diff src/kaggle/api/kaggle_api_extended.py
[...]
+ print('hello Kaggle CLI update')^M
models = self.model_list(sort_by, search, owner, page_size, page_token)
[...]
❯ hatch run compile
[...]
❯ hatch run python -c "import kaggle; from kaggle.api.kaggle_api_extended import KaggleApi; api = KaggleApi(); api.authenticate(); api.model_list_cli()"
hello Kaggle CLI update
Next Page Token = [...]
Integration Tests
To run integration tests on your local machine, you need to set up your Kaggle API credentials. You can do this in one of these two ways described this doc. Refer to the sections:
- Using environment variables
- Using credentials file
After setting up your credentials by any of these methods, you can run the integration tests as follows:
# Run all tests
hatch run integration-test
License
The Kaggle API is released under the Apache 2.0 license.