Skip to content

Commit

Permalink
Merge pull request #18 from jpn--/develop
Browse files Browse the repository at this point in the history
xarray accessors
  • Loading branch information
jpn-- committed Mar 7, 2022
2 parents 3c01a36 + f5753e2 commit 85356fe
Show file tree
Hide file tree
Showing 54 changed files with 2,848 additions and 3,888 deletions.
10 changes: 1 addition & 9 deletions .github/workflows/dev-docs.yml
Expand Up @@ -59,18 +59,10 @@ jobs:
run: |
conda info -a
conda list
- name: Cache documentation html
id: cachedocs
uses: actions/cache@v2
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: larch/book/_build/html
key: ${{ runner.os }}-docs-html-${{ env.LARCH_VERSION }} }}
- name: Build the docs
if: steps.cachedocs.outputs.cache-hit != 'true'
run: |
python larch/book/_scripts/hide_test_cells.py
python larch/book/_scripts/developer_doc_title.py ${{ env.LARCH_VERSION }}
python larch/book/_scripts/developer_doc_title.py v${{ env.LARCH_VERSION }}
jb build larch/book
- name: Push to GitHub Pages
uses: peaceiris/actions-gh-pages@v3.8.0
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -71,3 +71,6 @@ latent-class-example-report.html
doc/build
sandbox.py
/LARCH_VERSION.txt
exampville_dest_choice.html
exampville_mode_choice.html
logsums.zarr.zip
2 changes: 2 additions & 0 deletions .idea/Larch.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 31 additions & 31 deletions book/_config.yml
@@ -1,7 +1,7 @@
# Book settings
# Learn more at https://jupyterbook.org/customize/config.html

title: "v5.6.1"
title: "v5.7.0"
author: Jeffrey Newman
logo: img/larch-logo.png

Expand All @@ -19,7 +19,7 @@ execute:

# Add a bibtex file so that we can create citations
bibtex_bibfiles:
- references.bib
- references.bib

# Information about where the book exists on the web
repository:
Expand All @@ -36,21 +36,21 @@ html:

sphinx:
extra_extensions:
- 'sphinx.ext.autodoc'
- 'sphinx.ext.autosummary'
- 'sphinx.ext.napoleon'
- 'sphinx.ext.mathjax'
- 'sphinx.ext.intersphinx'
- 'sphinx.ext.doctest'
- 'sphinx.ext.graphviz'
- 'sphinx.ext.viewcode'
- sphinx.ext.autodoc
- sphinx.ext.autosummary
- sphinx.ext.napoleon
- sphinx.ext.mathjax
- sphinx.ext.intersphinx
- sphinx.ext.doctest
- sphinx.ext.graphviz
- sphinx.ext.viewcode
mathjax_config:
TeX:
Macros:
"N": "\\mathbb{N}"
"floor": [ "\\lfloor#1\\rfloor", 1 ]
"bmat": [ "\\left[\\begin{array}" ]
"emat": [ "\\end{array}\\right]" ]
N: \mathbb{N}
floor: [\lfloor#1\rfloor, 1]
bmat: ['\left[\begin{array}']
emat: ['\end{array}\right]']
latex_elements:
preamble: |
\newcommand\N{\mathbb{N}}
Expand All @@ -59,27 +59,27 @@ sphinx:
\newcommand{\emat}{\end{array}\right]}
intersphinx_mapping:
pandas:
- "http://pandas.pydata.org/pandas-docs/stable/"
- null
- http://pandas.pydata.org/pandas-docs/stable/
-
sklearn:
- "https://scikit-learn.org/stable/"
- null
- https://scikit-learn.org/stable/
-
networkx:
- "https://networkx.github.io/documentation/latest/"
- null
- https://networkx.github.io/documentation/latest/
-
conda:
- "https://docs.conda.io/projects/conda/en/latest/"
- null
- https://docs.conda.io/projects/conda/en/latest/
-
xarray:
- "https://xarray.pydata.org/en/stable/"
- null
- https://xarray.pydata.org/en/stable/
-
config:
bibtex_reference_style: author_year
autosummary_generate: True
autosummary_generate: true
autodoc_default_options:
show-inheritance: True
add_module_names: False
napoleon_use_rtype: False
show-inheritance: true
add_module_names: false
napoleon_use_rtype: false
rst_epilog: |
.. |idca| replace:: :ref:`idca <idca>`
.. |idco| replace:: :ref:`idco <idco>`
Expand All @@ -97,8 +97,8 @@ sphinx:
sizes: 32x32
href: img/larch_favicon.png
switcher:
json_url: "https://larch.newman.me/_static/switcher.json"
url_template: "https://larch.newman.me/v{version}/"
version_match: "5.6.1"
json_url: https://larch.newman.me/_static/switcher.json
url_template: https://larch.newman.me/v{version}/
version_match: 5.7.0
navbar_end:
- version-switcher
4 changes: 2 additions & 2 deletions book/_static/switcher.json
@@ -1,7 +1,7 @@
[
{
"name": "v5.6.1 (latest)",
"version": "5.6.1"
"name": "v5.7.0 (latest)",
"version": "5.7.0"
},
{
"version": "5.4.1"
Expand Down
1 change: 1 addition & 0 deletions book/api/dataset.rst
Expand Up @@ -53,6 +53,7 @@ Methods
Dataset.caseids
Dataset.dissolve_zero_variance
Dataset.query_cases
Dataset.set_altids
Dataset.set_altnames
Dataset.set_dtypes
Dataset.setup_flow
Expand Down
8 changes: 4 additions & 4 deletions book/example/000_mtc_data.ipynb
Expand Up @@ -107,7 +107,7 @@
"metadata": {},
"outputs": [],
"source": [
"ds = lx.Dataset.from_idca(df)\n",
"ds = lx.Dataset.construct.from_idca(df)\n",
"ds"
]
},
Expand Down Expand Up @@ -141,8 +141,8 @@
"assert ds['ivtt'].dims == ('casenum','altnum')\n",
"assert ds['ivtt'].dtype.kind == 'f'\n",
"assert ds.dims == {'casenum': 5029, 'altnum': 6}\n",
"assert ds.CASEID == 'casenum'\n",
"assert ds.ALTID == 'altnum'"
"assert ds.dc.CASEID == 'casenum'\n",
"assert ds.dc.ALTID == 'altnum'"
]
},
{
Expand All @@ -162,7 +162,7 @@
"metadata": {},
"outputs": [],
"source": [
"ds = ds.set_altnames({\n",
"ds = ds.dc.set_altnames({\n",
" 1:'DA', 2:'SR2', 3:'SR3+', 4:'Transit', 5:'Bike', 6:'Walk',\n",
"})\n",
"ds"
Expand Down
27 changes: 20 additions & 7 deletions book/example/017A_mnl_segmented.ipynb
Expand Up @@ -70,8 +70,8 @@
"metadata": {},
"outputs": [],
"source": [
"d1 = d.query_cases(\"numveh <= 1\")\n",
"d2 = d.query_cases(\"numveh > 1\")\n",
"d1 = d.dc.query_cases(\"numveh <= 1\")\n",
"d2 = d.dc.query_cases(\"numveh > 1\")\n",
"m1 = lx.Model(d1, title=\"Cars<=1\")\n",
"m2 = lx.Model(d2, title=\"Cars>=2\")"
]
Expand Down Expand Up @@ -296,7 +296,11 @@
"cell_type": "code",
"execution_count": null,
"id": "8aec3d88",
"metadata": {},
"metadata": {
"tags": [
"remove_cell"
]
},
"outputs": [],
"source": [
"# TEST\n",
Expand Down Expand Up @@ -341,7 +345,11 @@
"cell_type": "code",
"execution_count": null,
"id": "157e18c6",
"metadata": {},
"metadata": {
"tags": [
"remove_cell"
]
},
"outputs": [],
"source": [
"# TEST\n",
Expand Down Expand Up @@ -378,13 +386,18 @@
"cell_type": "code",
"execution_count": null,
"id": "a308716f",
"metadata": {},
"metadata": {
"tags": [
"remove_cell"
]
},
"outputs": [],
"source": [
"# TEST\n",
"import re\n",
"import re, platform\n",
"mash = lambda x: re.sub('\\\\s+', ' ', str(x)).strip()\n",
"assert mash(mg.parameter_summary().data) == mash('''\n",
"if platform.system() != \"Windows\":\n",
" assert mash(mg.parameter_summary().data) == mash('''\n",
" Value Std Err t Stat Signif Null Value\n",
"Category Parameter \n",
"LOS costbyincome -0.0174 0.0117 -1.49 0.0\n",
Expand Down
2 changes: 1 addition & 1 deletion book/example/017_mnl_final.ipynb
Expand Up @@ -347,7 +347,7 @@
"df = pd.read_csv(lx.example_file(\"MTCwork.csv.gz\"), index_col=['casenum','altnum'])\n",
"df.index = df.index.rename('altid', level=1)\n",
"df['altnum'] = df.index.get_level_values(1)\n",
"m.datatree = lx.Dataset.from_idce(df)\n",
"m.datatree = lx.Dataset.construct.from_idce(df)\n",
"m.availability_var = '1'\n",
"assert m.loglike() == approx(-3444.185105027836)\n",
"assert m.n_cases == 5029\n",
Expand Down
4 changes: 2 additions & 2 deletions book/example/022-nl.ipynb
Expand Up @@ -141,7 +141,7 @@
" 'wkempden_SR3+': 0.0016377373877722236,\n",
" 'wkempden_Transit': 0.0022365960915132523,\n",
" 'wkempden_Walk': 0.0021703617647683077,\n",
"})"
"}, rel=1e-3)"
]
},
{
Expand Down Expand Up @@ -197,7 +197,7 @@
" 'wkempden_Transit': 4.408676458615664,\n",
" 'wkempden_Walk': 2.8469911145512783\n",
"}, name='t_stat')\n",
"pd.testing.assert_series_equal(m.pf.t_stat, expected_t)"
"pd.testing.assert_series_equal(m.pf.t_stat, expected_t, rtol=5.0e-2)"
]
}
],
Expand Down
4 changes: 2 additions & 2 deletions book/example/028-nl.ipynb
Expand Up @@ -132,7 +132,7 @@
" 'wkempden_SR3+': 0.0014014004179079879,\n",
" 'wkempden_Transit': 0.002309868017949087,\n",
" 'wkempden_Walk': 0.0022363349074798343\n",
"})"
"}, rel=1e-3)"
]
},
{
Expand Down Expand Up @@ -189,7 +189,7 @@
" 'wkempden_Transit': 4.423243628445124,\n",
" 'wkempden_Walk': 2.912974554332499,\n",
"}, name='t_stat')\n",
"pd.testing.assert_series_equal(m.pf.t_stat, expected_t)"
"pd.testing.assert_series_equal(m.pf.t_stat, expected_t, rtol=5.0e-2)"
]
}
],
Expand Down
8 changes: 6 additions & 2 deletions book/example/101_swissmetro_mnl.ipynb
Expand Up @@ -237,7 +237,7 @@
"metadata": {},
"outputs": [],
"source": [
"ds = lx.Dataset.from_idco(selected_data, alts={1:'Train', 2:'SM', 3:'Car'})"
"ds = lx.Dataset.construct.from_idco(selected_data, alts={1:'Train', 2:'SM', 3:'Car'})"
]
},
{
Expand Down Expand Up @@ -332,7 +332,11 @@
"cell_type": "code",
"execution_count": null,
"id": "b06b8f7d",
"metadata": {},
"metadata": {
"tags": [
"remove_cell"
]
},
"outputs": [],
"source": [
"# TEST\n",
Expand Down
10 changes: 7 additions & 3 deletions book/example/102-swissmetro-weighted.ipynb
Expand Up @@ -58,7 +58,7 @@
"outputs": [],
"source": [
"raw_data = pd.read_csv(lx.example_file('swissmetro.csv.gz')).rename_axis(index='CASEID')\n",
"data = lx.Dataset.from_idco(raw_data, alts={1:'Train', 2:'SM', 3:'Car'})\n",
"data = lx.Dataset.construct.from_idco(raw_data, alts={1:'Train', 2:'SM', 3:'Car'})\n",
"data"
]
},
Expand All @@ -78,7 +78,7 @@
"metadata": {},
"outputs": [],
"source": [
"m = lx.Model(data.query_cases(\"PURPOSE in (1,3) and CHOICE != 0\"))"
"m = lx.Model(data.dc.query_cases(\"PURPOSE in (1,3) and CHOICE != 0\"))"
]
},
{
Expand Down Expand Up @@ -257,7 +257,11 @@
"cell_type": "code",
"execution_count": null,
"id": "b4f540ea",
"metadata": {},
"metadata": {
"tags": [
"remove_cell"
]
},
"outputs": [],
"source": [
"# TEST\n",
Expand Down
4 changes: 2 additions & 2 deletions book/example/109-swissmetro-nl.ipynb
Expand Up @@ -58,8 +58,8 @@
"outputs": [],
"source": [
"raw_data = pd.read_csv(lx.example_file('swissmetro.csv.gz')).rename_axis(index='CASEID')\n",
"data = lx.Dataset.from_idco(raw_data, alts={1:'Train', 2:'SM', 3:'Car'})\n",
"m = lx.Model(data.query_cases(\"PURPOSE in (1,3) and CHOICE != 0\"))"
"data = lx.Dataset.construct.from_idco(raw_data, alts={1:'Train', 2:'SM', 3:'Car'})\n",
"m = lx.Model(data.dc.query_cases(\"PURPOSE in (1,3) and CHOICE != 0\"))"
]
},
{
Expand Down

0 comments on commit 85356fe

Please sign in to comment.