diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0dc5836..cb0d75b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,7 +9,7 @@ jobs: name: Unit tests strategy: matrix: - python-version: ['3.10'] + python-version: ['3.10', '3.12'] os: [macos-latest, ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} @@ -37,7 +37,7 @@ jobs: - name: set up Python uses: actions/setup-python@v2 with: - python-version: 3.7 + python-version: '3.12' - name: set up node # we need node for for semantic release uses: actions/setup-node@v4 with: @@ -85,7 +85,7 @@ jobs: - name: set up Python uses: actions/setup-python@v2 with: - python-version: 3.7 + python-version: '3.12' - name: install dependencies run: | pip install -U . diff --git a/README.md b/README.md index 272cd2a..791b477 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,9 @@ A library that assigns basic display attributes to ladybug-geometry objects with methods to translate them to a VisualzationSet (Sunpath, WindRose, etc.). ## Installation + +To install the library use: + ```console pip install ladybug-display ``` diff --git a/dev-requirements.txt b/dev-requirements.txt index c211332..37c85bd 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,23 +1,18 @@ -coverage==5.5 -coveralls==1.7.0;python_version<'3.0' -coveralls==2.2.0;python_version>='3.6' -pytest==4.6.9;python_version<'3.0' -pytest==6.2.4;python_version>='3.6' -pytest-cov==2.12.0 -Sphinx==1.8.5;python_version<'3.0' -Sphinx==5.3.0;python_version>='3.6' -docutils==0.17;python_version>='3.6' +pytest==8.3.2;python_version>='3.6' +Sphinx==8.0.2;python_version>='3.6' sphinx-bootstrap-theme==0.8.1 sphinxcontrib-fulltoc==1.2.0 +sphinxcontrib-websupport==2.0.0;python_version>='3.6' +sphinx-click==6.0.0;python_version>='3.6' +twine==5.1.1;python_version>='3.6' +wheel==0.44.0;python_version>='3.6' +setuptools==75.1.0;python_version>='3.6' +importlib-metadata==8.5.0;python_version>='3.6' +pytest==4.6.9;python_version<'3.0' +Sphinx==1.8.5;python_version<'3.0' sphinxcontrib-websupport==1.1.2;python_version<'3.0' -sphinxcontrib-websupport==1.2.4;python_version>='3.6' -sphinx-click==4.4.0 +sphinx-click==4.4.0;python_version<'3.0' twine==1.13.0;python_version<'3.0' -twine==3.4.1;python_version>='3.6' -wheel==0.38.1 +wheel==0.38.1;python_version<'3.0' setuptools==44.1.0;python_version<'3.0' -setuptools==65.5.1;python_version>='3.6' importlib-metadata==2.0.0;python_version<'3.0' -importlib-metadata==4.8.0;python_version>='3.6' -jinja2==3.0.3;python_version>='3.6' -markupsafe==2.0.1;python_version>='3.6' diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 5e15300..8929223 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -5,44 +5,61 @@ * Sphinx stylesheet -- Bootstrap theme. */ +/* Overwrite colors */ +div.navbar-inverse { + background-color: #EB2227; + border-color: #EB2227; +} +a { + color: #EB2227; +} +a:visited { + color: #Bf0408; +} +code { + color: #Bf0408; +} +div.bs-sidenav a { + color: #333333; +} -/* The code below is based on the bootstrap website sidebar */ +/* Prevent top nav from blocking docs */ +div.navbar-fixed-top { + position: absolute; +} +/* Indent the side nav when in mobile mode */ +@media screen and (min-width: 0px) { + div.bs-sidenav ul { + margin-bottom: 0; + padding-left: 5px; + list-style: none; + } +} -/* Show and affix the side nav when space allows it */ +/* Widen and de-indent the side nav when space is restricted */ @media screen and (min-width: 992px) { .bs-sidenav .nav > .active > ul { display: block; } div.bs-sidenav ul { margin-bottom: 0; - padding-left: 5px; + padding-left: 0px; list-style: none; } - div.bs-sidenav a { - color: #333333; - } - /* Widen the fixed sidenav */ - .bs-sidenav.affix, - .bs-sidenav.affix-bottom { - width: 292px; - } - .bs-sidenav.affix { - position: fixed; /* Undo the static from mobile first approach */ - } - .bs-sidenav.affix-bottom { - position: absolute; /* Undo the static from mobile first approach */ - } - .bs-sidenav.affix-bottom .bs-sidenav, - .bs-sidenav.affix .bs-sidenav { - margin-top: 0; - margin-bottom: 0; + .bs-sidenav { + width: 300px; } } + +/* Slightly indent the side nav when space allows it */ @media screen and (min-width: 1200px) { - /* Widen the fixed sidenav again */ - .bs-sidenav.affix-bottom, - .bs-sidenav.affix { - width: 360px; + div.bs-sidenav ul { + margin-bottom: 0; + padding-left: 5px; + list-style: none; + } + .bs-sidenav { + width: 370px; } } diff --git a/docs/conf.py b/docs/conf.py index 0a17543..62776e3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,6 +16,10 @@ import sys import re import datetime + +# The theme to use for HTML and HTML Help pages +import sphinx_bootstrap_theme + now = datetime.datetime.now() sys.path.insert(0, os.path.abspath('../')) @@ -71,7 +75,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -81,14 +85,11 @@ # The name of the Pygments (syntax highlighting) style to use. pygments_style = None +# hide the class names in the nav bar +toc_object_entries_show_parents = 'hide' # -- Options for HTML output ------------------------------------------------- -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -import sphinx_bootstrap_theme - # html_theme = 'alabaster' html_theme = 'bootstrap' html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() @@ -125,6 +126,7 @@ # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +html_css_files = ['custom.css'] # Custom sidebar templates, must be a dictionary that maps document names # to template names. @@ -596,7 +598,8 @@ def update_doc_index(proj_folder, lib_name): with open(os.path.join(proj_folder, "index.rst"), 'w') as index_file: text = index_file.write(text_updated) else: - print("[CLI doc\\index]: index.rst update not possible - content format cannot be recognized.") + print("[CLI doc\\index]: index.rst update not possible - content \ + format cannot be recognized.") return -1 return 1 @@ -607,13 +610,3 @@ def update_doc_index(proj_folder, lib_name): create_cli_files() # ----------------------------------------------------------------------------- - - -def setup(app): - """Run custom code with access to the Sphinx application object - Args: - app: the Sphinx application object - """ - - # Add bootstrap theme custom stylesheet - app.add_css_file("custom.css") diff --git a/ladybug_display/extension/sunpath.py b/ladybug_display/extension/sunpath.py index 545c2ad..f3a6a1b 100644 --- a/ladybug_display/extension/sunpath.py +++ b/ladybug_display/extension/sunpath.py @@ -35,15 +35,17 @@ def sunpath_to_vis_set( solar_time: A boolean to indicate if the sunpath should be drawn with solar time hours instead of standard or daylight time. (Default: False) daily: Boolean to note whether the sunpath should display only one daily - arc for each unique day in the input hoys_ (True) or whether the + arc for each unique day in the input hoys (True) or whether the output sun path geometry should be for the entire year, complete with analemmas for all sun-up hours and a daily arc for each month (False). (Default: False) projection: Optional text for the name of a projection to use from the sky dome hemisphere to the 2D plane. If None, a 3D sun path will be drawn instead of a 2D one. (Default: None) Choose from the following: + * Orthographic * Stereographic + sun_spheres: Boolean to note whether sun positions should be drawn as points or as fully-detailed spheres. Note that this option should only be used when there are relatively few hoys input. Anything more than