Skip to content

Commit

Permalink
Add default values to endpoint doc generation
Browse files Browse the repository at this point in the history
  • Loading branch information
TK05 committed Apr 18, 2019
1 parent 564ad19 commit 0211681
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
23 changes: 18 additions & 5 deletions tools/stats/endpoint_documentation_generator/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import urllib.parse
from datetime import datetime

from nba_api.stats.library import parameters as class_parameters

from .template import endpoint_documentation_template, data_set_template, parameter_line_template

from tools.library.functions import get_python_variable_name
Expand All @@ -10,18 +12,27 @@
from tools.stats.library.mapping import endpoint_list, parameter_map, parameter_variations


def get_endpoint_query_string_parameters(parameters, nullable_parameters, parameter_patterns):
def get_endpoint_query_string_parameters_and_defaults(parameters, nullable_parameters, parameter_patterns):
params = {}
params_defaults = {}
for parameter in parameters:
if parameter in nullable_parameters:
value = ''
default_value = ''
else:
map_key = 'non-nullable'
pattern_key = parameter_map[parameter][map_key][parameter_patterns[parameter]]
value = parameter_variations[pattern_key]['parameter_value']
parameter_class = parameter_variations[pattern_key]['default_py_value']
if parameter_class:
default_value = getattr(class_parameters, parameter_variations[pattern_key]['default_py_value'].split('.')[0]).default
else:
default_value = ''
params[parameter] = value
params_defaults[parameter] = default_value
valid_url = urllib.parse.urlencode(params)
return valid_url

return valid_url, params_defaults


def get_endpoint_documentation(endpoint, endpoints_information):
Expand All @@ -33,9 +44,10 @@ def get_endpoint_documentation(endpoint, endpoints_information):
parameter_patterns = endpoint_analysis['parameter_patterns']
data_sets = endpoint_analysis['data_sets']

query_string_parameters = get_endpoint_query_string_parameters(parameters=parameters,
nullable_parameters=nullable_parameters,
parameter_patterns=parameter_patterns)
query_string_parameters, params_defaults = get_endpoint_query_string_parameters_and_defaults(
parameters=parameters,
nullable_parameters=nullable_parameters,
parameter_patterns=parameter_patterns)

data_set_texts = []
for data_set_name, columns in data_sets.items():
Expand Down Expand Up @@ -64,6 +76,7 @@ def get_endpoint_documentation(endpoint, endpoints_information):

parameter_line = parameter_line_template.format(api_parameter_name=parameter,
python_parameter_variable=python_parameter_variable,
default_value=params_defaults[parameter],
pattern=pattern, required=required, nullable=nullable)
if parameter in nullable_parameters:
parameter_texts.append(parameter_line)
Expand Down
6 changes: 3 additions & 3 deletions tools/stats/endpoint_documentation_generator/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
>[https://stats.nba.com/stats/{endpoint__lowercase}?{query_string_parameters}](https://stats.nba.com/stats/{endpoint__lowercase}?{query_string_parameters})
## Parameters
API Parameter Name | Python Parameter Variable | Pattern | Required | Nullable
------------ | ------------ | :-----------: | :---: | :---:
API Parameter Name | Python Parameter Variable | Default Value | Pattern | Required | Nullable
------------ | ------------ | :-----------: | :-----------: | :---: | :---:
{parameters}
## Data Sets
Expand All @@ -28,4 +28,4 @@
```
'''

parameter_line_template = '''[_**{api_parameter_name}**_](https://github.com/swar/nba_api/blob/master/docs/nba_api/stats/library/parameters.md#{api_parameter_name}) | {python_parameter_variable} | {pattern} | {required} | {nullable} | '''
parameter_line_template = '''[_**{api_parameter_name}**_](https://github.com/swar/nba_api/blob/master/docs/nba_api/stats/library/parameters.md#{api_parameter_name}) | {python_parameter_variable} | {default_value} |{pattern} | {required} | {nullable} | '''

0 comments on commit 0211681

Please sign in to comment.