diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..1b9b1743 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,3 @@ +# PTXBOA Documentation + +::: ptxboa.api diff --git a/environment.yaml b/environment.yaml index b0c8fc03..fde3f2cf 100644 --- a/environment.yaml +++ b/environment.yaml @@ -12,10 +12,13 @@ dependencies: - pylint==2.17.3 - pytest==7.1.2 - python==3.10.8 - - bumpversion~=1.0 + - conda-forge::bumpversion~=0.5 - pandas~=2.1 - numpy~=1.25 - streamlit~=1.26 - openpyxl~=3.1 - plotly~=5.16 - faker~=18.9 + - conda-forge::mkdocs~=1.5 + - conda-forge::mkdocs-material~=9.4 + - conda-forge::mkdocstrings~=0.23 diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..40117814 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,38 @@ +site_name: PTXBOA_API + +# Configuration +theme: + name: readthedocs + locale: en + features: + #- navigation.tabs + #- navigation.tabs.sticky + #- navigation.sections + #- navigation.indexes + #- navigation.path + #- navigation.tracking + #- navigation.footer + #- navigation.top + #- toc.follow + #- search.suggest + #- search.share + +# Extensions +markdown_extensions: + #- admonition + #- attr_list + #- def_list + #- md_in_html + #- pymdownx.details + #- pymdownx.superfences + +plugins: + #- mkdocs-jupyter: + # execute: false + - mkdocstrings: + handlers: + python: + options: + show_source: false + - search: + lang: en diff --git a/ptxboa/api.py b/ptxboa/api.py index 4260dc49..cc3812f4 100644 --- a/ptxboa/api.py +++ b/ptxboa/api.py @@ -8,7 +8,7 @@ import pandas as pd from pandas import DataFrame -from .data import load_data +from .data import load_context_data, load_data class PtxboaAPI: @@ -221,3 +221,7 @@ def _get_output_unit_dimension(self) -> DataFrame: return DataFrame([{"unit_name": "USD/MWh"}, {"unit_name": "USD/t"}]).set_index( "unit_name", drop=False ) + + def load_context_data(self, name: str) -> pd.DataFrame: + """Load context data.""" + return load_context_data(name) diff --git a/ptxboa/functions.py b/ptxboa/functions.py index 25b7db1e..03695f4f 100644 --- a/ptxboa/functions.py +++ b/ptxboa/functions.py @@ -5,7 +5,7 @@ import plotly.graph_objects as go import streamlit as st -from .api import PtxboaAPI, load_context_data +from .api import PtxboaAPI def cache_func_PtxboaAPI(obj: PtxboaAPI) -> int: @@ -283,19 +283,19 @@ def create_scatter_plot(df_res, settings: dict): st.write(df_res) -def content_context_data(): +def content_context_data(api): st.subheader( "What regulations and/or standards are relevant " "for which PTX BOA demand countries?" ) - data_countries = load_context_data("context_cs_countries") + data_countries = api.load_context_data("context_cs_countries") st.dataframe(data_countries, use_container_width=True) st.subheader("Are the following criteria considered in this scheme?") - data_scope = load_context_data("context_cs_scope") + data_scope = api.load_context_data("context_cs_scope") st.dataframe(data_scope, use_container_width=True) -def content_dashboard(res_costs: dict, settings: pd.DataFrame): +def content_dashboard(api, res_costs: dict, settings: pd.DataFrame): st.markdown("Welcome to our dashboard!") st.markdown( "Here you will find your central selection options, " @@ -305,7 +305,7 @@ def content_dashboard(res_costs: dict, settings: pd.DataFrame): c_1, c_2 = st.columns([1, 2]) with c_1: - create_infobox(settings) + create_infobox(api, settings) with c_2: create_world_map(settings, res_costs) @@ -342,8 +342,8 @@ def content_market_scanning(res_costs: dict, settings: pd.DataFrame): ) -def create_infobox(settings: dict): - data = load_context_data("_context_data_infobox") +def create_infobox(api, settings: dict): + data = api.load_context_data("_context_data_infobox") st.markdown(f"**Key information on {settings['sel_country_name']}:**") demand = data.at[settings["sel_country_name"], "Projected H2 demand [2030]"] info1 = data.at[settings["sel_country_name"], "key_info_1"] diff --git a/ptxboa_mockup.py b/ptxboa_mockup.py index f3172fca..428f9783 100644 --- a/ptxboa_mockup.py +++ b/ptxboa_mockup.py @@ -52,7 +52,7 @@ def get_results(settings): # dashboard: with t_dashboard: - pf.content_dashboard(res_costs, settings) + pf.content_dashboard(api, res_costs, settings) with t_market_scanning: st.markdown("**Market Scanning**")