Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for pagination to lists of files #572

Merged
merged 8 commits into from
May 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,6 @@ target/

#Ipython Notebook
.ipynb_checkpoints

# Rider
.idea
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,28 @@ 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.

Also, run the following command to get `autogen.sh` installed: ```bash
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](https://hatch.pypa.io) to manage this project.

Follow these [instructions](https://hatch.pypa.io/latest/install/) 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

```sh
Expand Down
210 changes: 202 additions & 8 deletions docs/KaggleApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,11 @@ Method | HTTP request | Description
[**kernel_push**](KaggleApi.md#kernel_push) | **POST** /kernels/push | Push a new kernel version. Can be used to create a new kernel and update an existing one.
[**kernel_status**](KaggleApi.md#kernel_status) | **GET** /kernels/status | Get the status of the latest kernel version
[**kernels_list**](KaggleApi.md#kernels_list) | **GET** /kernels/list | List kernels
[**kernels_list_files**](KaggleApi.md#kernels_list_files) | **GET** /kernels/files | List kernel files
[**metadata_get**](KaggleApi.md#metadata_get) | **GET** /datasets/metadata/{ownerSlug}/{datasetSlug} | Get the metadata for a dataset
[**metadata_post**](KaggleApi.md#metadata_post) | **POST** /datasets/metadata/{ownerSlug}/{datasetSlug} | Update the metadata for a dataset
[**model_instance_files**](KaggleApi.md#model_instance_files) | **GET** /models/{ownerSlug}/{modelSlug}/{framework}/{instanceSlug}/files | List model instance files for the current version
[**model_instance_version_files**](KaggleApi.md#model_instance_version_files) | **GET** /models/{ownerSlug}/{modelSlug}/{framework}/{instanceSlug}/{versionNumber}/files | List model instance version files
[**model_instance_versions_download**](KaggleApi.md#model_instance_versions_download) | **GET** /models/{ownerSlug}/{modelSlug}/{framework}/{instanceSlug}/{versionNumber}/download | Download model instance version files
[**models_create_instance**](KaggleApi.md#models_create_instance) | **POST** /models/{ownerSlug}/{modelSlug}/create/instance | Create a new model instance
[**models_create_instance_version**](KaggleApi.md#models_create_instance_version) | **POST** /models/{ownerSlug}/{modelSlug}/{framework}/{instanceSlug}/create/version | Create a new model instance version
Expand Down Expand Up @@ -252,7 +255,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **competitions_data_list_files**
> Result competitions_data_list_files(id)
> Result competitions_data_list_files(id, page_token=page_token, page_size=page_size)

List competition data files

Expand All @@ -272,10 +275,12 @@ configuration.password = 'YOUR_PASSWORD'
# create an instance of the API class
api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
id = 'id_example' # str | Competition name
page_token = 'page_token_example' # str | Page token for pagination (optional)
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)

try:
# List competition data files
api_response = api_instance.competitions_data_list_files(id)
api_response = api_instance.competitions_data_list_files(id, page_token=page_token, page_size=page_size)
pprint(api_response)
except ApiException as e:
print("Exception when calling KaggleApi->competitions_data_list_files: %s\n" % e)
Expand All @@ -286,6 +291,8 @@ except ApiException as e:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **str**| Competition name |
**page_token** | **str**| Page token for pagination | [optional]
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]

### Return type

Expand Down Expand Up @@ -977,7 +984,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **datasets_list_files**
> Result datasets_list_files(owner_slug, dataset_slug, dataset_version_number=dataset_version_number)
> Result datasets_list_files(owner_slug, dataset_slug, dataset_version_number=dataset_version_number, page_token=page_token, page_size=page_size)

List dataset files

Expand All @@ -999,10 +1006,12 @@ api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
owner_slug = 'owner_slug_example' # str | Dataset owner
dataset_slug = 'dataset_slug_example' # str | Dataset name
dataset_version_number = 'dataset_version_number_example' # str | Dataset version number (optional)
page_token = 'page_token_example' # str | Page token for pagination (optional)
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)

try:
# List dataset files
api_response = api_instance.datasets_list_files(owner_slug, dataset_slug, dataset_version_number=dataset_version_number)
api_response = api_instance.datasets_list_files(owner_slug, dataset_slug, dataset_version_number=dataset_version_number, page_token=page_token, page_size=page_size)
pprint(api_response)
except ApiException as e:
print("Exception when calling KaggleApi->datasets_list_files: %s\n" % e)
Expand All @@ -1015,6 +1024,8 @@ Name | Type | Description | Notes
**owner_slug** | **str**| Dataset owner |
**dataset_slug** | **str**| Dataset name |
**dataset_version_number** | **str**| Dataset version number | [optional]
**page_token** | **str**| Page token for pagination | [optional]
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]

### Return type

Expand Down Expand Up @@ -1594,7 +1605,7 @@ configuration.password = 'YOUR_PASSWORD'
# create an instance of the API class
api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
page = 1 # int | Page number (optional) (default to 1)
page_size = 20 # int | Page size (optional) (default to 20)
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)
search = '' # str | Search terms (optional) (default to )
group = 'everyone' # str | Display only your kernels (optional) (default to everyone)
user = 'user_example' # str | Display kernels by a particular group (optional)
Expand All @@ -1619,7 +1630,7 @@ except ApiException as e:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**page** | **int**| Page number | [optional] [default to 1]
**page_size** | **int**| Page size | [optional] [default to 20]
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]
**search** | **str**| Search terms | [optional] [default to ]
**group** | **str**| Display only your kernels | [optional] [default to everyone]
**user** | **str**| Display kernels by a particular group | [optional]
Expand All @@ -1646,6 +1657,65 @@ Name | Type | Description | Notes

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **kernels_list_files**
> Result kernels_list_files(user_name, kernel_slug, kernel_version_number=kernel_version_number, page_size=page_size, page_token=page_token)

List kernel files

### Example
```python
from __future__ import print_function
import time
import kaggle
from kaggle.rest import ApiException
from pprint import pprint

# Configure HTTP basic authorization: basicAuth
configuration = kaggle.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'

# create an instance of the API class
api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
user_name = 'user_name_example' # str | Kernel owner
kernel_slug = 'kernel_slug_example' # str | Kernel name
kernel_version_number = 'kernel_version_number_example' # str | Kernel version number (optional)
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)
page_token = 'page_token_example' # str | Page token for pagination (optional)

try:
# List kernel files
api_response = api_instance.kernels_list_files(user_name, kernel_slug, kernel_version_number=kernel_version_number, page_size=page_size, page_token=page_token)
pprint(api_response)
except ApiException as e:
print("Exception when calling KaggleApi->kernels_list_files: %s\n" % e)
```

### Parameters

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**user_name** | **str**| Kernel owner |
**kernel_slug** | **str**| Kernel name |
**kernel_version_number** | **str**| Kernel version number | [optional]
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]
**page_token** | **str**| Page token for pagination | [optional]

### Return type

[**Result**](Result.md)

### Authorization

[basicAuth](../README.md#basicAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **metadata_get**
> Result metadata_get(owner_slug, dataset_slug)

Expand Down Expand Up @@ -1754,6 +1824,130 @@ Name | Type | Description | Notes

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **model_instance_files**
> Result model_instance_files(owner_slug, model_slug, framework, instance_slug, page_size=page_size, page_token=page_token)

List model instance files for the current version

### Example
```python
from __future__ import print_function
import time
import kaggle
from kaggle.rest import ApiException
from pprint import pprint

# Configure HTTP basic authorization: basicAuth
configuration = kaggle.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'

# create an instance of the API class
api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
owner_slug = 'owner_slug_example' # str | Model owner
model_slug = 'model_slug_example' # str | Model name
framework = 'framework_example' # str | Model instance framework
instance_slug = 'instance_slug_example' # str | Model instance slug
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)
page_token = 'page_token_example' # str | Page token for pagination (optional)

try:
# List model instance files for the current version
api_response = api_instance.model_instance_files(owner_slug, model_slug, framework, instance_slug, page_size=page_size, page_token=page_token)
pprint(api_response)
except ApiException as e:
print("Exception when calling KaggleApi->model_instance_files: %s\n" % e)
```

### Parameters

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**owner_slug** | **str**| Model owner |
**model_slug** | **str**| Model name |
**framework** | **str**| Model instance framework |
**instance_slug** | **str**| Model instance slug |
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]
**page_token** | **str**| Page token for pagination | [optional]

### Return type

[**Result**](Result.md)

### Authorization

[basicAuth](../README.md#basicAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **model_instance_version_files**
> Result model_instance_version_files(owner_slug, model_slug, framework, instance_slug, version_number, page_size=page_size, page_token=page_token)

List model instance version files

### Example
```python
from __future__ import print_function
import time
import kaggle
from kaggle.rest import ApiException
from pprint import pprint

# Configure HTTP basic authorization: basicAuth
configuration = kaggle.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'

# create an instance of the API class
api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
owner_slug = 'owner_slug_example' # str | Model owner
model_slug = 'model_slug_example' # str | Model name
framework = 'framework_example' # str | Model instance framework
instance_slug = 'instance_slug_example' # str | Model instance slug
version_number = 'version_number_example' # str | Model instance version number
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)
page_token = 'page_token_example' # str | Page token for pagination (optional)

try:
# List model instance version files
api_response = api_instance.model_instance_version_files(owner_slug, model_slug, framework, instance_slug, version_number, page_size=page_size, page_token=page_token)
pprint(api_response)
except ApiException as e:
print("Exception when calling KaggleApi->model_instance_version_files: %s\n" % e)
```

### Parameters

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**owner_slug** | **str**| Model owner |
**model_slug** | **str**| Model name |
**framework** | **str**| Model instance framework |
**instance_slug** | **str**| Model instance slug |
**version_number** | **str**| Model instance version number |
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]
**page_token** | **str**| Page token for pagination | [optional]

### Return type

[**Result**](Result.md)

### Authorization

[basicAuth](../README.md#basicAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **model_instance_versions_download**
> Result model_instance_versions_download(owner_slug, model_slug, framework, instance_slug, version_number)

Expand Down Expand Up @@ -2001,7 +2195,7 @@ api_instance = kaggle.KaggleApi(kaggle.ApiClient(configuration))
search = '' # str | Search terms (optional) (default to )
sort_by = 'hotness' # str | Sort the results (optional) (default to hotness)
owner = 'owner_example' # str | Display models by a specific user or organization (optional)
page_size = 1 # int | Page size (optional) (default to 1)
page_size = 20 # int | Number of items per page (default 20) (optional) (default to 20)
page_token = 'page_token_example' # str | Page token for pagination (optional)

try:
Expand All @@ -2019,7 +2213,7 @@ Name | Type | Description | Notes
**search** | **str**| Search terms | [optional] [default to ]
**sort_by** | **str**| Sort the results | [optional] [default to hotness]
**owner** | **str**| Display models by a specific user or organization | [optional]
**page_size** | **int**| Page size | [optional] [default to 1]
**page_size** | **int**| Number of items per page (default 20) | [optional] [default to 20]
**page_token** | **str**| Page token for pagination | [optional]

### Return type
Expand Down
Loading